]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
Hwinfo-Hardwareerkennung entfernt.
authorms <ms@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Sat, 28 Apr 2007 09:01:53 +0000 (09:01 +0000)
committerms <ms@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Sat, 28 Apr 2007 09:01:53 +0000 (09:01 +0000)
Alte Paketdateien entfernt, da der Packager neu geschrieben wird.

git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@505 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8

409 files changed:
config/rootfiles/common/misc-progs
doc/language_issues.de
doc/language_issues.en
lfs/dbus [deleted file]
lfs/hal [deleted file]
lfs/hwinfo [deleted file]
lfs/iptraf [deleted file]
lfs/libxml2
make.sh
src/hwinfo/COPYING [deleted file]
src/hwinfo/ChangeLog [deleted file]
src/hwinfo/Makefile [deleted file]
src/hwinfo/Makefile.common [deleted file]
src/hwinfo/README [deleted file]
src/hwinfo/VERSION [deleted file]
src/hwinfo/doc/example1.c [deleted file]
src/hwinfo/doc/example2.c [deleted file]
src/hwinfo/doc/footer.html [deleted file]
src/hwinfo/doc/hwinfo.8 [deleted file]
src/hwinfo/doc/libhd.doc [deleted file]
src/hwinfo/doc/libhd.doxy [deleted file]
src/hwinfo/gen-hwcfg-disk.sh [deleted file]
src/hwinfo/getsysinfo [deleted file]
src/hwinfo/hwbootscan [deleted file]
src/hwinfo/hwbootscan.rc [deleted file]
src/hwinfo/hwinfo.c [deleted file]
src/hwinfo/hwscan.c [deleted file]
src/hwinfo/hwscand.c [deleted file]
src/hwinfo/hwscanqueue.c [deleted file]
src/hwinfo/init_message.h [deleted file]
src/hwinfo/scripts/mci [deleted file]
src/hwinfo/src/Makefile [deleted file]
src/hwinfo/src/hd/Makefile [deleted file]
src/hwinfo/src/hd/adb.c [deleted file]
src/hwinfo/src/hd/adb.h [deleted file]
src/hwinfo/src/hd/bios.c [deleted file]
src/hwinfo/src/hd/bios.h [deleted file]
src/hwinfo/src/hd/block.c [deleted file]
src/hwinfo/src/hd/block.h [deleted file]
src/hwinfo/src/hd/braille.c [deleted file]
src/hwinfo/src/hd/braille.h [deleted file]
src/hwinfo/src/hd/cpu.c [deleted file]
src/hwinfo/src/hd/cpu.h [deleted file]
src/hwinfo/src/hd/edd.c [deleted file]
src/hwinfo/src/hd/edd.h [deleted file]
src/hwinfo/src/hd/fb.c [deleted file]
src/hwinfo/src/hd/fb.h [deleted file]
src/hwinfo/src/hd/floppy.c [deleted file]
src/hwinfo/src/hd/floppy.h [deleted file]
src/hwinfo/src/hd/hd.c [deleted file]
src/hwinfo/src/hd/hd.h [deleted file]
src/hwinfo/src/hd/hd_int.h [deleted file]
src/hwinfo/src/hd/hddb.c [deleted file]
src/hwinfo/src/hd/hddb.h [deleted file]
src/hwinfo/src/hd/hddb_int.h [deleted file]
src/hwinfo/src/hd/hdp.c [deleted file]
src/hwinfo/src/hd/hdp.h [deleted file]
src/hwinfo/src/hd/ibm-notebooks.h [deleted file]
src/hwinfo/src/hd/input.c [deleted file]
src/hwinfo/src/hd/input.h [deleted file]
src/hwinfo/src/hd/int.c [deleted file]
src/hwinfo/src/hd/int.h [deleted file]
src/hwinfo/src/hd/isa.c [deleted file]
src/hwinfo/src/hd/isa.h [deleted file]
src/hwinfo/src/hd/isapnp.c [deleted file]
src/hwinfo/src/hd/isapnp.h [deleted file]
src/hwinfo/src/hd/isdn.c [deleted file]
src/hwinfo/src/hd/isdn.h [deleted file]
src/hwinfo/src/hd/kbd.c [deleted file]
src/hwinfo/src/hd/kbd.h [deleted file]
src/hwinfo/src/hd/klog.c [deleted file]
src/hwinfo/src/hd/klog.h [deleted file]
src/hwinfo/src/hd/manual.c [deleted file]
src/hwinfo/src/hd/manual.h [deleted file]
src/hwinfo/src/hd/memory.c [deleted file]
src/hwinfo/src/hd/memory.h [deleted file]
src/hwinfo/src/hd/misc.c [deleted file]
src/hwinfo/src/hd/misc.h [deleted file]
src/hwinfo/src/hd/modem.c [deleted file]
src/hwinfo/src/hd/modem.h [deleted file]
src/hwinfo/src/hd/monitor.c [deleted file]
src/hwinfo/src/hd/monitor.h [deleted file]
src/hwinfo/src/hd/mouse.c [deleted file]
src/hwinfo/src/hd/mouse.h [deleted file]
src/hwinfo/src/hd/net.c [deleted file]
src/hwinfo/src/hd/net.h [deleted file]
src/hwinfo/src/hd/parallel.c [deleted file]
src/hwinfo/src/hd/parallel.h [deleted file]
src/hwinfo/src/hd/pci.c [deleted file]
src/hwinfo/src/hd/pci.h [deleted file]
src/hwinfo/src/hd/pcmcia.c [deleted file]
src/hwinfo/src/hd/pcmcia.h [deleted file]
src/hwinfo/src/hd/pppoe.c [deleted file]
src/hwinfo/src/hd/pppoe.h [deleted file]
src/hwinfo/src/hd/prom.c [deleted file]
src/hwinfo/src/hd/prom.h [deleted file]
src/hwinfo/src/hd/s390.c [deleted file]
src/hwinfo/src/hd/s390.h [deleted file]
src/hwinfo/src/hd/sbus.c [deleted file]
src/hwinfo/src/hd/sbus.h [deleted file]
src/hwinfo/src/hd/serial.c [deleted file]
src/hwinfo/src/hd/serial.h [deleted file]
src/hwinfo/src/hd/smbios.c [deleted file]
src/hwinfo/src/hd/smbios.h [deleted file]
src/hwinfo/src/hd/sys.c [deleted file]
src/hwinfo/src/hd/sys.h [deleted file]
src/hwinfo/src/hd/usb.c [deleted file]
src/hwinfo/src/hd/usb.h [deleted file]
src/hwinfo/src/hd/version.h [deleted file]
src/hwinfo/src/hd/veth.c [deleted file]
src/hwinfo/src/hd/veth.h [deleted file]
src/hwinfo/src/hd/wlan.c [deleted file]
src/hwinfo/src/hd/wlan.h [deleted file]
src/hwinfo/src/ids/Makefile [deleted file]
src/hwinfo/src/ids/cdb_x11 [deleted file]
src/hwinfo/src/ids/check_hd.c [deleted file]
src/hwinfo/src/ids/convert_hd [deleted file]
src/hwinfo/src/ids/get_adaptec [deleted file]
src/hwinfo/src/ids/get_pcmcia [deleted file]
src/hwinfo/src/ids/hd_ids.c [deleted file]
src/hwinfo/src/ids/src/braille [deleted file]
src/hwinfo/src/ids/src/bus [deleted file]
src/hwinfo/src/ids/src/camera [deleted file]
src/hwinfo/src/ids/src/chipcard [deleted file]
src/hwinfo/src/ids/src/class [deleted file]
src/hwinfo/src/ids/src/dvb [deleted file]
src/hwinfo/src/ids/src/extra [deleted file]
src/hwinfo/src/ids/src/isapnp [deleted file]
src/hwinfo/src/ids/src/modem [deleted file]
src/hwinfo/src/ids/src/modem.i386 [deleted file]
src/hwinfo/src/ids/src/monitor [deleted file]
src/hwinfo/src/ids/src/mouse [deleted file]
src/hwinfo/src/ids/src/network [deleted file]
src/hwinfo/src/ids/src/pci [deleted file]
src/hwinfo/src/ids/src/pcmcia [deleted file]
src/hwinfo/src/ids/src/ppc [deleted file]
src/hwinfo/src/ids/src/s390 [deleted file]
src/hwinfo/src/ids/src/scanner [deleted file]
src/hwinfo/src/ids/src/sound [deleted file]
src/hwinfo/src/ids/src/special [deleted file]
src/hwinfo/src/ids/src/storage [deleted file]
src/hwinfo/src/ids/src/tv [deleted file]
src/hwinfo/src/ids/src/usb [deleted file]
src/hwinfo/src/ids/src/usb2 [deleted file]
src/hwinfo/src/ids/src/x11.amd64 [deleted file]
src/hwinfo/src/ids/src/x11.axp [deleted file]
src/hwinfo/src/ids/src/x11.i386 [deleted file]
src/hwinfo/src/ids/src/x11.ia64 [deleted file]
src/hwinfo/src/ids/src/x11.ppc [deleted file]
src/hwinfo/src/ids/src/x11.ppc.special [deleted file]
src/hwinfo/src/ids/src/x11.sparc [deleted file]
src/hwinfo/src/ids/update_x11 [deleted file]
src/hwinfo/src/int10/AsmMacros.h [deleted file]
src/hwinfo/src/int10/Makefile [deleted file]
src/hwinfo/src/int10/README [deleted file]
src/hwinfo/src/int10/emu_vm86.c [deleted file]
src/hwinfo/src/int10/i10_int.c [deleted file]
src/hwinfo/src/int10/i10_io.c [deleted file]
src/hwinfo/src/int10/i10_pci.c [deleted file]
src/hwinfo/src/int10/i10_v86.c [deleted file]
src/hwinfo/src/int10/i10_vbios.c [deleted file]
src/hwinfo/src/int10/int10.c [deleted file]
src/hwinfo/src/int10/pci.h [deleted file]
src/hwinfo/src/int10/v86bios.h [deleted file]
src/hwinfo/src/int10/vbios.h [deleted file]
src/hwinfo/src/int10/vm86_struct.h [deleted file]
src/hwinfo/src/isdn/Makefile [deleted file]
src/hwinfo/src/isdn/cdb/ISDN.axp.txt [deleted file]
src/hwinfo/src/isdn/cdb/ISDN.i386.txt [deleted file]
src/hwinfo/src/isdn/cdb/ISDN.ppc.txt [deleted file]
src/hwinfo/src/isdn/cdb/ISDN.x86_64.txt [deleted file]
src/hwinfo/src/isdn/cdb/Makefile [deleted file]
src/hwinfo/src/isdn/cdb/cdb_hwdb.h [deleted file]
src/hwinfo/src/isdn/cdb/cdb_read.c [deleted file]
src/hwinfo/src/isdn/cdb/cdb_read.h [deleted file]
src/hwinfo/src/isdn/cdb/isdn_cdb.c [deleted file]
src/hwinfo/src/isdn/cdb/isdn_cdb.lex [deleted file]
src/hwinfo/src/isdn/cdb/isdn_cdb_def.h [deleted file]
src/hwinfo/src/isdn/cdb/mk_isdnhwdb.c [deleted file]
src/hwinfo/src/isdn/cdbisdn.c [deleted file]
src/hwinfo/src/isdn/isa_probe.c [deleted file]
src/hwinfo/src/isdn/libihw.txt [deleted file]
src/hwinfo/src/smp/Makefile [deleted file]
src/hwinfo/src/smp/README [deleted file]
src/hwinfo/src/smp/smp.c [deleted file]
src/hwinfo/src/x86emu/LICENSE [deleted file]
src/hwinfo/src/x86emu/Makefile [deleted file]
src/hwinfo/src/x86emu/debug.c [deleted file]
src/hwinfo/src/x86emu/decode.c [deleted file]
src/hwinfo/src/x86emu/fpu.c [deleted file]
src/hwinfo/src/x86emu/include/x86emu.h [deleted file]
src/hwinfo/src/x86emu/include/x86emu/fpu_regs.h [deleted file]
src/hwinfo/src/x86emu/include/x86emu/regs.h [deleted file]
src/hwinfo/src/x86emu/include/x86emu/types.h [deleted file]
src/hwinfo/src/x86emu/ops.c [deleted file]
src/hwinfo/src/x86emu/ops2.c [deleted file]
src/hwinfo/src/x86emu/prim_ops.c [deleted file]
src/hwinfo/src/x86emu/sys.c [deleted file]
src/hwinfo/src/x86emu/validate.c [deleted file]
src/hwinfo/src/x86emu/x86emu/debug.h [deleted file]
src/hwinfo/src/x86emu/x86emu/decode.h [deleted file]
src/hwinfo/src/x86emu/x86emu/fpu.h [deleted file]
src/hwinfo/src/x86emu/x86emu/ops.h [deleted file]
src/hwinfo/src/x86emu/x86emu/prim_asm.h [deleted file]
src/hwinfo/src/x86emu/x86emu/prim_ops.h [deleted file]
src/hwinfo/src/x86emu/x86emu/x86emui.h [deleted file]
src/misc-progs/Makefile
src/misc-progs/sambactrl.c
src/misc-progs/setdate.c [deleted file]
src/paks/amavisd/ROOTFILES [deleted file]
src/paks/amavisd/depends.txt [deleted file]
src/paks/amavisd/install.sh [deleted file]
src/paks/amavisd/uninstall.sh [deleted file]
src/paks/applejuice/ROOTFILES [deleted file]
src/paks/applejuice/depends.txt [deleted file]
src/paks/applejuice/install.sh [deleted file]
src/paks/applejuice/uninstall.sh [deleted file]
src/paks/asterisk/ROOTFILES [deleted file]
src/paks/asterisk/depends.txt [deleted file]
src/paks/asterisk/install.sh [deleted file]
src/paks/asterisk/uninstall.sh [deleted file]
src/paks/bristuff/ROOTFILES [deleted file]
src/paks/bristuff/depends.txt [deleted file]
src/paks/bristuff/install.sh [deleted file]
src/paks/bristuff/uninstall.sh [deleted file]
src/paks/cftp/ROOTFILES [deleted file]
src/paks/cftp/depends.txt [deleted file]
src/paks/cftp/install.sh [deleted file]
src/paks/cftp/uninstall.sh [deleted file]
src/paks/clamav/ROOTFILES [deleted file]
src/paks/clamav/depends.txt [deleted file]
src/paks/clamav/install.sh [deleted file]
src/paks/clamav/uninstall.sh [deleted file]
src/paks/cups/ROOTFILES [deleted file]
src/paks/cups/depends.txt [deleted file]
src/paks/cups/install.sh [deleted file]
src/paks/cups/uninstall.sh [deleted file]
src/paks/cyrusimap/ROOTFILES [deleted file]
src/paks/cyrusimap/depends.txt [deleted file]
src/paks/cyrusimap/install.sh [deleted file]
src/paks/cyrusimap/uninstall.sh [deleted file]
src/paks/ethereal/ROOTFILES [deleted file]
src/paks/ethereal/depends.txt [deleted file]
src/paks/ethereal/install.sh [deleted file]
src/paks/ethereal/uninstall.sh [deleted file]
src/paks/fetchmail/ROOTFILES [deleted file]
src/paks/fetchmail/depends.txt [deleted file]
src/paks/fetchmail/install.sh [deleted file]
src/paks/fetchmail/uninstall.sh [deleted file]
src/paks/ffmpeg/ROOTFILES [deleted file]
src/paks/ffmpeg/depends.txt [deleted file]
src/paks/ffmpeg/install.sh [deleted file]
src/paks/ffmpeg/uninstall.sh [deleted file]
src/paks/ghostscript/ROOTFILES [deleted file]
src/paks/ghostscript/depends.txt [deleted file]
src/paks/ghostscript/install.sh [deleted file]
src/paks/ghostscript/uninstall.sh [deleted file]
src/paks/gnump3d/ROOTFILES [deleted file]
src/paks/gnump3d/depends.txt [deleted file]
src/paks/gnump3d/install.sh [deleted file]
src/paks/gnump3d/uninstall.sh [deleted file]
src/paks/iptraf/ROOTFILES [deleted file]
src/paks/iptraf/depends.txt [deleted file]
src/paks/iptraf/install.sh [deleted file]
src/paks/iptraf/uninstall.sh [deleted file]
src/paks/java/ROOTFILES [deleted file]
src/paks/java/depends.txt [deleted file]
src/paks/java/install.sh [deleted file]
src/paks/java/uninstall.sh [deleted file]
src/paks/lame/ROOTFILES [deleted file]
src/paks/lame/depends.txt [deleted file]
src/paks/lame/install.sh [deleted file]
src/paks/lame/uninstall.sh [deleted file]
src/paks/libjpeg/ROOTFILES [deleted file]
src/paks/libjpeg/depends.txt [deleted file]
src/paks/libjpeg/install.sh [deleted file]
src/paks/libjpeg/uninstall.sh [deleted file]
src/paks/libmad/ROOTFILES [deleted file]
src/paks/libmad/depends.txt [deleted file]
src/paks/libmad/install.sh [deleted file]
src/paks/libmad/uninstall.sh [deleted file]
src/paks/libogg/ROOTFILES [deleted file]
src/paks/libogg/depends.txt [deleted file]
src/paks/libogg/install.sh [deleted file]
src/paks/libogg/uninstall.sh [deleted file]
src/paks/libpri/ROOTFILES [deleted file]
src/paks/libpri/depends.txt [deleted file]
src/paks/libpri/install.sh [deleted file]
src/paks/libpri/uninstall.sh [deleted file]
src/paks/libtiff/ROOTFILES [deleted file]
src/paks/libtiff/depends.txt [deleted file]
src/paks/libtiff/install.sh [deleted file]
src/paks/libtiff/uninstall.sh [deleted file]
src/paks/libvorbis/ROOTFILES [deleted file]
src/paks/libvorbis/depends.txt [deleted file]
src/paks/libvorbis/install.sh [deleted file]
src/paks/libvorbis/uninstall.sh [deleted file]
src/paks/lynx/ROOTFILES [deleted file]
src/paks/lynx/depends.txt [deleted file]
src/paks/lynx/install.sh [deleted file]
src/paks/lynx/uninstall.sh [deleted file]
src/paks/mailx/ROOTFILES [deleted file]
src/paks/mailx/depends.txt [deleted file]
src/paks/mailx/install.sh [deleted file]
src/paks/mailx/uninstall.sh [deleted file]
src/paks/mldonkey/ROOTFILES [deleted file]
src/paks/mldonkey/depends.txt [deleted file]
src/paks/mldonkey/install.sh [deleted file]
src/paks/mldonkey/uninstall.sh [deleted file]
src/paks/mpeg2dec/ROOTFILES [deleted file]
src/paks/mpeg2dec/depends.txt [deleted file]
src/paks/mpeg2dec/install.sh [deleted file]
src/paks/mpeg2dec/uninstall.sh [deleted file]
src/paks/mpg123/ROOTFILES [deleted file]
src/paks/mpg123/depends.txt [deleted file]
src/paks/mpg123/install.sh [deleted file]
src/paks/mpg123/uninstall.sh [deleted file]
src/paks/nagios/ROOTFILES [deleted file]
src/paks/nagios/depends.txt [deleted file]
src/paks/nagios/install.sh [deleted file]
src/paks/nagios/uninstall.sh [deleted file]
src/paks/ncftp/ROOTFILES [deleted file]
src/paks/ncftp/depends.txt [deleted file]
src/paks/ncftp/install.sh [deleted file]
src/paks/ncftp/uninstall.sh [deleted file]
src/paks/nfs/ROOTFILES [deleted file]
src/paks/nfs/depends.txt [deleted file]
src/paks/nfs/install.sh [deleted file]
src/paks/nfs/uninstall.sh [deleted file]
src/paks/nmap/ROOTFILES [deleted file]
src/paks/nmap/depends.txt [deleted file]
src/paks/nmap/install.sh [deleted file]
src/paks/nmap/uninstall.sh [deleted file]
src/paks/ntop/ROOTFILES [deleted file]
src/paks/ntop/depends.txt [deleted file]
src/paks/ntop/install.sh [deleted file]
src/paks/ntop/uninstall.sh [deleted file]
src/paks/portmap/ROOTFILES [deleted file]
src/paks/portmap/depends.txt [deleted file]
src/paks/portmap/install.sh [deleted file]
src/paks/portmap/uninstall.sh [deleted file]
src/paks/postfix/ROOTFILES [deleted file]
src/paks/postfix/depends.txt [deleted file]
src/paks/postfix/install.sh [deleted file]
src/paks/postfix/uninstall.sh [deleted file]
src/paks/procmail/ROOTFILES [deleted file]
src/paks/procmail/depends.txt [deleted file]
src/paks/procmail/install.sh [deleted file]
src/paks/procmail/uninstall.sh [deleted file]
src/paks/razor/ROOTFILES [deleted file]
src/paks/razor/depends.txt [deleted file]
src/paks/razor/install.sh [deleted file]
src/paks/razor/uninstall.sh [deleted file]
src/paks/rsync/ROOTFILES [deleted file]
src/paks/rsync/depends.txt [deleted file]
src/paks/rsync/install.sh [deleted file]
src/paks/rsync/uninstall.sh [deleted file]
src/paks/samba/ROOTFILES [deleted file]
src/paks/samba/depends.txt [deleted file]
src/paks/samba/install.sh [deleted file]
src/paks/samba/uninstall.sh [deleted file]
src/paks/sane/ROOTFILES [deleted file]
src/paks/sane/depends.txt [deleted file]
src/paks/sane/install.sh [deleted file]
src/paks/sane/uninstall.sh [deleted file]
src/paks/sox/ROOTFILES [deleted file]
src/paks/sox/depends.txt [deleted file]
src/paks/sox/install.sh [deleted file]
src/paks/sox/uninstall.sh [deleted file]
src/paks/spamassassin/ROOTFILES [deleted file]
src/paks/spamassassin/depends.txt [deleted file]
src/paks/spamassassin/install.sh [deleted file]
src/paks/spamassassin/uninstall.sh [deleted file]
src/paks/spandsp/ROOTFILES [deleted file]
src/paks/spandsp/depends.txt [deleted file]
src/paks/spandsp/install.sh [deleted file]
src/paks/spandsp/uninstall.sh [deleted file]
src/paks/subversion/ROOTFILES [deleted file]
src/paks/subversion/depends.txt [deleted file]
src/paks/subversion/install.sh [deleted file]
src/paks/subversion/uninstall.sh [deleted file]
src/paks/tcpwrapper/ROOTFILES [deleted file]
src/paks/tcpwrapper/depends.txt [deleted file]
src/paks/tcpwrapper/install.sh [deleted file]
src/paks/tcpwrapper/uninstall.sh [deleted file]
src/paks/tftp-hpa/ROOTFILES [deleted file]
src/paks/tftp-hpa/depends.txt [deleted file]
src/paks/tftp-hpa/install.sh [deleted file]
src/paks/tftp-hpa/uninstall.sh [deleted file]
src/paks/videolan/ROOTFILES [deleted file]
src/paks/videolan/depends.txt [deleted file]
src/paks/videolan/install.sh [deleted file]
src/paks/videolan/uninstall.sh [deleted file]
src/paks/webcyradm/ROOTFILES [deleted file]
src/paks/webcyradm/depends.txt [deleted file]
src/paks/webcyradm/install.sh [deleted file]
src/paks/webcyradm/uninstall.sh [deleted file]
src/paks/xvid/ROOTFILES [deleted file]
src/paks/xvid/depends.txt [deleted file]
src/paks/xvid/install.sh [deleted file]
src/paks/xvid/uninstall.sh [deleted file]
src/paks/yasuc/ROOTFILES [deleted file]
src/paks/yasuc/depends.txt [deleted file]
src/paks/yasuc/install.sh [deleted file]
src/paks/yasuc/uninstall.sh [deleted file]
src/paks/zaptel/ROOTFILES [deleted file]
src/paks/zaptel/depends.txt [deleted file]
src/paks/zaptel/install.sh [deleted file]
src/paks/zaptel/uninstall.sh [deleted file]

index b9570def07db484b318a8593c56b90d7b5dee0ce..c6b4673585a47dd210fc770f6d10c73799cc8c33 100644 (file)
@@ -19,7 +19,6 @@ usr/local/bin/restartsyslogd
 usr/local/bin/restartwireless
 #usr/local/bin/sambactrl
 usr/local/bin/setaliases
 usr/local/bin/restartwireless
 #usr/local/bin/sambactrl
 usr/local/bin/setaliases
-usr/local/bin/setdate
 usr/local/bin/setdmzholes
 usr/local/bin/setfilters
 usr/local/bin/setportfw
 usr/local/bin/setdmzholes
 usr/local/bin/setfilters
 usr/local/bin/setportfw
index c0c806382ae26b0da201775d5ccad1cac3d88002..eed43da582371c13b5569d3edb50f7c282236fab 100644 (file)
@@ -8,6 +8,8 @@ WARNING: translation string unused: Remote VPN IP
 WARNING: translation string unused: Resolv
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: add new ovpn
 WARNING: translation string unused: Resolv
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: add new ovpn
+WARNING: translation string unused: admin user password has been changed
+WARNING: translation string unused: administrator user password
 WARNING: translation string unused: advproxy LDAP auth
 WARNING: translation string unused: advproxy NTLM auth
 WARNING: translation string unused: advproxy advanced proxy
 WARNING: translation string unused: advproxy LDAP auth
 WARNING: translation string unused: advproxy NTLM auth
 WARNING: translation string unused: advproxy advanced proxy
@@ -89,6 +91,8 @@ WARNING: translation string unused: dhcp base ip fixed lease
 WARNING: translation string unused: dhcp create fixed leases
 WARNING: translation string unused: dhcp fixed lease err1
 WARNING: translation string unused: dhcp fixed lease help1
 WARNING: translation string unused: dhcp create fixed leases
 WARNING: translation string unused: dhcp fixed lease err1
 WARNING: translation string unused: dhcp fixed lease help1
+WARNING: translation string unused: dial user password
+WARNING: translation string unused: dial user password has been changed
 WARNING: translation string unused: dialup settings
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: disk access per
 WARNING: translation string unused: dialup settings
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: disk access per
@@ -221,7 +225,9 @@ WARNING: translation string unused: ovpn log
 WARNING: translation string unused: ovpnstatus log
 WARNING: translation string unused: ovpnsys log
 WARNING: translation string unused: package failed to install
 WARNING: translation string unused: ovpnstatus log
 WARNING: translation string unused: ovpnsys log
 WARNING: translation string unused: package failed to install
+WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
 WARNING: translation string unused: password crypting key
+WARNING: translation string unused: passwords must be at least 6 characters in length
 WARNING: translation string unused: polfile
 WARNING: translation string unused: pots
 WARNING: translation string unused: profiles
 WARNING: translation string unused: polfile
 WARNING: translation string unused: pots
 WARNING: translation string unused: profiles
@@ -252,6 +258,7 @@ WARNING: translation string unused: squid extension methods invalid
 WARNING: translation string unused: squid fix cache
 WARNING: translation string unused: ssh access tip
 WARNING: translation string unused: ssnetwork status
 WARNING: translation string unused: squid fix cache
 WARNING: translation string unused: ssh access tip
 WARNING: translation string unused: ssnetwork status
+WARNING: translation string unused: sspasswords
 WARNING: translation string unused: sssystem status
 WARNING: translation string unused: sstraffic graphs
 WARNING: translation string unused: successfully refreshed updates list
 WARNING: translation string unused: sssystem status
 WARNING: translation string unused: sstraffic graphs
 WARNING: translation string unused: successfully refreshed updates list
index f213190cf68ad8fe2f5fd075b97c2ee118ab8d00..ad6d029646a05624e3a6a51ef5a4dfc8d1efe454 100644 (file)
@@ -8,6 +8,8 @@ WARNING: translation string unused: Remote VPN IP
 WARNING: translation string unused: Resolv
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: add new ovpn
 WARNING: translation string unused: Resolv
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: add new ovpn
+WARNING: translation string unused: admin user password has been changed
+WARNING: translation string unused: administrator user password
 WARNING: translation string unused: advproxy LDAP auth
 WARNING: translation string unused: advproxy NTLM auth
 WARNING: translation string unused: advproxy advanced proxy
 WARNING: translation string unused: advproxy LDAP auth
 WARNING: translation string unused: advproxy NTLM auth
 WARNING: translation string unused: advproxy advanced proxy
@@ -101,6 +103,8 @@ WARNING: translation string unused: dbfile
 WARNING: translation string unused: debugme
 WARNING: translation string unused: dhcp server disabled on blue interface
 WARNING: translation string unused: dhcp server enabled on blue interface
 WARNING: translation string unused: debugme
 WARNING: translation string unused: dhcp server disabled on blue interface
 WARNING: translation string unused: dhcp server enabled on blue interface
+WARNING: translation string unused: dial user password
+WARNING: translation string unused: dial user password has been changed
 WARNING: translation string unused: dialup settings
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: disk access per
 WARNING: translation string unused: dialup settings
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: disk access per
@@ -235,6 +239,8 @@ WARNING: translation string unused: ovpn log
 WARNING: translation string unused: ovpnstatus log
 WARNING: translation string unused: ovpnsys log
 WARNING: translation string unused: package failed to install
 WARNING: translation string unused: ovpnstatus log
 WARNING: translation string unused: ovpnsys log
 WARNING: translation string unused: package failed to install
+WARNING: translation string unused: password contains illegal characters
+WARNING: translation string unused: passwords must be at least 6 characters in length
 WARNING: translation string unused: polfile
 WARNING: translation string unused: pots
 WARNING: translation string unused: profiles
 WARNING: translation string unused: polfile
 WARNING: translation string unused: pots
 WARNING: translation string unused: profiles
@@ -259,6 +265,7 @@ WARNING: translation string unused: smbreload
 WARNING: translation string unused: squid extension methods
 WARNING: translation string unused: squid extension methods invalid
 WARNING: translation string unused: ssnetwork status
 WARNING: translation string unused: squid extension methods
 WARNING: translation string unused: squid extension methods invalid
 WARNING: translation string unused: ssnetwork status
+WARNING: translation string unused: sspasswords
 WARNING: translation string unused: sssystem status
 WARNING: translation string unused: sstraffic graphs
 WARNING: translation string unused: successfully refreshed updates list
 WARNING: translation string unused: sssystem status
 WARNING: translation string unused: sstraffic graphs
 WARNING: translation string unused: successfully refreshed updates list
diff --git a/lfs/dbus b/lfs/dbus
deleted file mode 100644 (file)
index 57a0880..0000000
--- a/lfs/dbus
+++ /dev/null
@@ -1,93 +0,0 @@
-###############################################################################
-# This file is part of the IPCop Firewall.                                    #
-#                                                                             #
-# IPCop is free software; you can redistribute it and/or modify               #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation; either version 2 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# IPCop is distributed in the hope that it will be useful,                    #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with IPCop; if not, write to the Free Software                        #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
-#                                                                             #
-# Makefiles are based on LFSMake, which is                                    #
-# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 0.62
-
-THISAPP    = dbus-$(VER)
-DL_FILE    = dbus-$(VER).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = ba7692f63d0e9f1ef06703dff56cb650
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-       @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-       @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-       @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && CPPFLAGS="-I/opt/$(MACHINE)-uClibc/include" \
-                          ./configure --prefix=/opt/$(MACHINE)-uClibc --sysconfdir=/etc \
-                          --localstatedir=/var --disable-python \
-                          --disable-glib --disable-shared
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install
-else
-       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \
-            --localstatedir=/var --disable-python
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install
-endif
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
diff --git a/lfs/hal b/lfs/hal
deleted file mode 100644 (file)
index 46a1f6e..0000000
--- a/lfs/hal
+++ /dev/null
@@ -1,95 +0,0 @@
-###############################################################################
-# This file is part of the IPCop Firewall.                                    #
-#                                                                             #
-# IPCop is free software; you can redistribute it and/or modify               #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation; either version 2 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# IPCop is distributed in the hope that it will be useful,                    #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with IPCop; if not, write to the Free Software                        #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
-#                                                                             #
-# Makefiles are based on LFSMake, which is                                    #
-# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 0.5.7.1
-
-THISAPP    = hal-$(VER)
-DL_FILE    = hal-$(VER).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = d7a7741808ba130f8aff3f5d3b5689e4
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-       @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-       @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-       @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && CPPFLAGS="-I/opt/$(MACHINE)-uClibc/include" \
-                          ./configure --prefix=/opt/$(MACHINE)-uClibc \
-                          --disable-shared --disable-glib --disable-policy-kit \
-                          --disable-acpi-proc --disable-acpi-acpid
-       cd $(DIR_APP)/libhal && make $(MAKETUNING)
-       cd $(DIR_APP)/libhal && make install
-       install -v -m755 -d /opt/$(MACHINE)-uClibc/var/run/hald
-else
-       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \
-                               --libexecdir=/usr/lib/hal --localstatedir=/var
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install
-       install -v -m755 -d /var/run/hald
-endif
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
diff --git a/lfs/hwinfo b/lfs/hwinfo
deleted file mode 100644 (file)
index 1a49022..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-###############################################################################
-# This file is part of the IPCop Firewall.                                    #
-#                                                                             #
-# IPCop is free software; you can redistribute it and/or modify               #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation; either version 2 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# IPCop is distributed in the hope that it will be useful,                    #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with IPCop; if not, write to the Free Software                        #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
-#                                                                             #
-# Makefiles are based on LFSMake, which is                                    #
-# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = ipfire
-
-THISAPP    = hwinfo-$(VER)
-DIR_APP    = $(DIR_SRC)/hwinfo
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-install : $(TARGET)
-
-check :
-
-download :
-
-md5 :
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) :
-       @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cp -av $(DIR_SRC)/src/hwinfo $(DIR_SRC)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && make CC="/opt/$(MACHINE)-uClibc/bin/$(MACHINE)-linux-gcc -I/opt/$(MACHINE)-uClibc/include" \
-               EXTRA_FLAGS="-fno-pic -DUCLIBC" \
-               SHARED_FLAGS= LIBS="-lhd -lsysfs"
-       cd $(DIR_APP) && install -m 755 hwinfo /install/initrd/sbin
-else
-       cd $(DIR_APP) && make tinystatic
-       cd $(DIR_APP) && make tinystaticinstall
-endif
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
diff --git a/lfs/iptraf b/lfs/iptraf
deleted file mode 100644 (file)
index 48e9e2d..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-###############################################################################
-# This file is part of the IPCop Firewall.                                    #
-#                                                                             #
-# IPCop is free software; you can redistribute it and/or modify               #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation; either version 2 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# IPCop is distributed in the hope that it will be useful,                    #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with IPCop; if not, write to the Free Software                        #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
-#                                                                             #
-# Makefiles are based on LFSMake, which is                                    #
-# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 3.0.0
-
-THISAPP    = iptraf-$(VER)
-DL_FILE    = $(THISAPP).bin.i386.tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 0b022f233731ca09a7c16d659c769dad
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist: 
-       @$(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-       @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-       @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-       @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP).bin.i386/src && yes 'n' | make install TARGET=/usr/bin
-       @rm -rf $(DIR_APP).bin.i386
-       @$(POSTBUILD)
index be15f8307e136b6db8818e9bb1d03719f7ad5025..4d79b697b9142033d7a073f16a871a6cf925b49f 100644 (file)
@@ -32,11 +32,7 @@ THISAPP    = libxml2-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
 
 ###############################################################################
 # Top-level Rules
@@ -76,14 +72,8 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --prefix=/ --disable-shared
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install DESTDIR=/opt/$(MACHINE)-uClibc
-else
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/make.sh b/make.sh
index 341ab387480b4de681764a9b6d4ba1112fa6f332..ce965171c629fb74a535fa20b4dc2e22b1d2e003 100644 (file)
--- a/make.sh
+++ b/make.sh
@@ -170,7 +170,7 @@ prepareenv() {
     # Setup environment
     set +h
     LC_ALL=POSIX
     # Setup environment
     set +h
     LC_ALL=POSIX
-    MAKETUNING="-j6"
+    MAKETUNING="-j4"
     export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING
     unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
 
     export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING
     unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
 
@@ -446,9 +446,6 @@ buildipfire() {
   ipfiremake Locale-Country
   ipfiremake XML-Parser
   ipfiremake glib
   ipfiremake Locale-Country
   ipfiremake XML-Parser
   ipfiremake glib
-  ipfiremake dbus
-  ipfiremake hal
-  ipfiremake hwinfo
   ipfiremake GeoIP
   ipfiremake fwhits
   ipfiremake noip_updater
   ipfiremake GeoIP
   ipfiremake fwhits
   ipfiremake noip_updater
@@ -533,7 +530,6 @@ buildipfire() {
   ipfiremake etherwake
   ipfiremake ethereal
   ipfiremake tftp-hpa
   ipfiremake etherwake
   ipfiremake ethereal
   ipfiremake tftp-hpa
-  ipfiremake iptraf
   ipfiremake bwm-ng
   ipfiremake nagios
   ipfiremake tripwire
   ipfiremake bwm-ng
   ipfiremake nagios
   ipfiremake tripwire
@@ -573,11 +569,7 @@ buildinstaller() {
   installmake pciutils
   installmake zlib
   installmake wget
   installmake pciutils
   installmake zlib
   installmake wget
-  installmake libxml2
-  installmake dbus
-  installmake hal
   installmake hwdata
   installmake hwdata
-  installmake hwinfo
   installmake kudzu
   installmake installer
   installmake initrd
   installmake kudzu
   installmake installer
   installmake initrd
diff --git a/src/hwinfo/COPYING b/src/hwinfo/COPYING
deleted file mode 100644 (file)
index 1609d96..0000000
+++ /dev/null
@@ -1,341 +0,0 @@
-----------------------------------------------------------------------
-
-                   GNU GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                          675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-\f
-                   GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-\f
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-\f
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-\f
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                           NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-           How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/src/hwinfo/ChangeLog b/src/hwinfo/ChangeLog
deleted file mode 100644 (file)
index 58c542d..0000000
+++ /dev/null
@@ -1,1956 +0,0 @@
-22/3/2005:     v10.16
-       - updated X11 data (#74130)
-
-21/3/2005:     v10.15
-       - mls: faster hwscand
-
-21/3/2005:     v10.14
-       - updated X11 data (#74022)
-
-19/3/2005:     v10.13
-       - fix wrong entry for Fritz!Card DSL SL USB and
-         make ppp mode detection safer (#71995)
-       - adjusted ltmodem info (#71979)
-
-18/3/2005:     v10.12
-       - updated nongpl info
-       - reverting slamr patch (#72301)
-       - pcmcia info updated (#73057)
-       - pci dev names updated
-       - read /proc/modules less often
-       - updated X11 data
-       - aic7xxx/aic79xx driver info update
-       - fix Fritz!Box Fon entry in database
-
-17/3/2005:     v10.11
-       - another notebook (#67412)
-       - do wlan detection for --netcard (#73077)
-       - remove Eicon cards from 64 bit archs, the driver does not support
-         64 bit yet (#55722)
-
-16/3/2005:     v10.10
-       - updated notebook display data
-       - fix udev db reading
-       - updated X11 data
-       - ltmodem device id update
-       - no check for gfx card changes (#72907)
-
-14/3/2005:     v10.9
-       - hardware detection for ISDN PCMCIA cards (#71208)
-       - updated ISDN data
-       - updated X11 data
-       - better network type detection (#70991, #71231, #67325)
-       - load some acpi modules on hp notebook (#72146)
-       - fixed isapnp sound card detection (#67303)
-       - slamr: ttySL0 -> ttyLT0 (#72301)
-
-7/3/2005:      v10.8
-       - updated X11 data
-
-4/3/2005:      v10.7
-       - s390: made ccwgroup walking more robust
-       - fixed bios base mem detection
-       - allow device class in 'hwinfo --db' request
-       - updated X11 data
-
-28/2/2005:     v10.6
-       - jg: improved wlan patch (no dependency on libiw)
-
-28/2/2005:     v10.5
-       - fixed model name for some SGI hardware (#63973)
-       - fix Fritz!Card DSL SL USB ID (#66674)
-       - better heuristics to assign BIOS driver numbers (#66669)
-       - removed ahci vs. ata_piix hack (#65218)
-
-25/2/2005:     v10.4
-       - report pci class 0x403 as audio devices (#66466)
-       - load ahci *and* ata_piix (#65218)
-       - symlink /dev/fb might be missing; trying fb0, too (#66501)
-       - reorder modules.pcimap entries so that more specific matches are
-         considered first (#66594)
-       - ensure nvida network cards are network cards (#65852)
-       - updated X11 data 
-
-23/2/2005:     v10.3
-       - reworked pcmcia code to give cardbus devices sysfs ids
-
-21/2/2005:     v10.2
-       - jg: added wlan feature detection
-
-17/2/2005:     v10.1
-       - notebook lcd data update
-       - build shared tiny lib
-
-15/2/2005:     v10.0
-       - libhd interface changes: geometry values
-       - prepare for wlan feature detection
-       - x11 db update
-       - better disk geometry handling
-
-8/2/2005:      v9.36
-       - added '--kernel-version' option
-
-31/1/2004:     v9.35
-       - updated X11 data
-
-14/12/2004:    v9.34
-       - fixed access to undefined memory (#39238)
-       - fix segfault when using 'x11=foo' boot option (#46367)
-       - add additional check to catch broken BIOSes (#48665)
-       - abort BIOS code execution if it takes too long (#48665)
-       - find usb serial lines
-
-2/12/2004:     v9.33
-       - s390: identify new CU types 2107, 1750 as DASD
-       - fixed some dvb entries (#47057)
-       - s390: added new prog_if ID pif_dasd_fba to identify FBA DASDs
-         (reqd. by fehr)
-       - less agressively assume scsi devs are disks (#47654)
-       - fixed external hardware db parser (#47606, comment 6)
-       - ibm notebook data updated
-       - avoid libsysfs accidentally reading pci config space
-       - fixed parsing of scsi serial id (#48757)
-       - look at /sys/class/net/*/type, too (#48812)
-
-13/10/2004:    v9.32
-       - report network interfaces correctly even though udev lists them
-
-12/10/2004:    v9.31
-       - report usb host-to-host links as network devs (#22739)
-
-11/10/2004:    v9.30
-       - find ide devices != cdrom & disk (#39911, #45229)
-       - return special ids for synaptics touchpad (#46649)
-
-7/10/2004:     v9.29
-       - fixed segfault with large /proc/interrupt entries (e.g. 512 cpus) (#46582)
-
-1/10/2004:     v9.28
-       - list bluetooth isdn box as bt device, too (#46626)
-
-1/10/2004:     v9.27
-       - smartlink-softmodem is back (#46594)
-       - added some dvb cards (#46612)
-
-30/9/2004:     v9.26
-       - updated X11 data (#45870)
-
-29/9/2004:     v9.25
-       - removed obsolete module info; reworked pcmcia info
-
-29/9/2004:     v9.24
-       - updated pcmcia & usb network data (#33647)
-       - updated pci device names
-
-29/9/2004:     v9.23
-       - use SG_IO for SCSI device accesses (#46058)
-
-28/9/2004:     v9.22
-       - added gen-hwcfg-disk.sh (#46311)
-
-27/9/2004:     v9.21
-       - updated ancient audio info (#46096)
-       - add ipw/atmel firmware packages (#45960)
-       - updated X11 data
-       - added new isdn cards to database
-
-27/9/2004:     v9.20
-       - report bluetooth devices (#45893)
-
-24/9/2004:     v9.19
-       - return package info for sony notebooks, too (35245)
-
-23/9/2004:     v9.18
-       - added --pcmcia option to hwscanqueue (#44290)
-       - return package info in system entry (#35245)
-
-22/9/2004:     v9.17
-       - updated X11 data
-
-21/9/2004:     v9.16
-       - drop workaround for multiple hotplug events by broken kernel
-
-21/9/2004:     v9.15
-       - replaced raiddetect with dmraid
-
-20/9/2004:     v9.14
-       - sata info update (#45551)
-       - look at smbios data for smp detection, too
-
-17/9/2004:     v9.13
-       - added some epson scanners (#45074)
-       - adaptec module info update
-
-13/9/2004:     v9.12
-       - kernel-nongpl stuff only for i386 (#45099)
-       - updated megaraid module info
-       - ibm notebook info update (#45038)
-
-13/9/2004:     v9.11
-       - clear hd_data struct after it has been released (#44855)
-       - updated X11 data
-       - changed sata vendor name handling a bit
-       - isdn: remove old bluetooth packages from database
-
-10/9/2004:     v9.10
-       - sata driver seems to generate a dummy scsi vendor name (#44286)
-
-6/9/2004:      v9.9
-       - updated tv-card info
-
-6/9/2004:      v9.8
-       - removed ancient function hd_has_special_eide()
-       - use edd module to get extended BIOS features (#44649)
-       - 'hwinfo --map' includes a hardware scan
-
-3/9/2004:      v9.7
-       - win modem dev name change (#44253)
-       - added nongpl module info
-       - fixed /tmp file handling (#44538)
-
-30/8/2004:     v9.6
-       - changed hwbootscan to use bash (#44199)
-       - fixed hd.ids parser bug
-       - updated X11 data
-
-23/8/2004:     v9.5
-       - updated X11 data
-       - added display sizes for a number of IBM notebooks
-
-18/8/2004:     v9.4
-       - new wlan data (#42759, #39481, #43921)
-       - hwscan now really moved to /sbin 
-
-16/8/2004:     v9.3
-       - move hwscan* to /sbin (#43601)
-
-5/8/2004:      v9.2
-       - push/pop don't work with 32bit regs on amd64 (#43531)
-
-4/8/2004:      v9.1
-       - get netcard link state via ethtool ioctl
-
-6/7/2004:      v9.0
-       - ids/src/s390: changed "OSA Express Ethernet card" to "OSA Express
-          Network card" (can be Token Ring, too)
-       - joined changes up to 8.60 from 9.1 branch:
-       - major 229, minors >= 128 are hvsi%u devies (host virtual
-          serial interface) (requested by IBM)
-       - ids/src/s390: use subclass 0x86 for OSA Express (bug #41461)
-       - changed Broadcom netcard name (#42362)
-       - dac960 data corrected (#41659)
-       - s390: set status.available to yes for IUCV devs (bug #41525)
-       - s390: give bus_iucv a name (bug #41525)
-       - s390: give the IUCV "controller" subclass ID and name (bug #41525)
-       - ia64: fixed unaligned accesses (#41589)
-       - check file size so we don't read outside mmap()-ed region
-       - ppc: handle iseries_veth correctly in loaded and unloaded module
-         state. #41347/LTC#8984
-       - send smaller scsi INQUIRY command (#38731)
-       - added scsi.noserial probe option; useful for some usb sticks (#40485)
-       - adding pci id fix from #40175
-       - updated b44 vs. bcm4400 data
-       - s390: fixed several DASD IDs
-       - s390: fixed --disk filtering (bug #41231)
-       - made --only more effective (#37933)
-       - hwscanqueue: closing file descriptors to allow parent to terminate
-       - added debug option to cpu emulation to help tracing bios related system
-         crashes (#40644)
-       - use sysfs_bus_id for unique ID calculation on CCW devices to avoid
-         duplicate IDs (bug #40587)
-       - read /proc/iSeries/config to get number of veth devs (#40527)
-       - load sg module before looking for scanners (#40478)
-       - updated usb scanner data (#40480)
-       - got latest pci device names from pciutils
-       - use mmap() to access /dev/mem & re-enable bios access
-         on ia64 (#34550)
-       - take out ips (#39993)
-       - fixed cdb_x11 script (#40335)
-       - updated X11 data (#40335)
-       - fixed UML fix (#40271)
-       - don't check alternate settings (#40266)
-       - added functions necessary to build a model name to tiny version;
-         this is needed by linuxrc (#39092)
-       - detect IUCV pseudodevices (bug #39456)
-       - added hd_busid_to_hwcfg() (bug #39456)
-       - updated X11 data (#39767)
-       - fixed strange side effect of UML detection (#39946)
-       - s390: enhance grouped channel detection using ccwgroup bus
-       - use *last* console parameter for serial console
-       - look for usb network cards (#37870)
-       - network class id cleanup (#39456)
-       - add bus.name for bus.id == bus_ccw
-       - avoid unspecific network types (#38874)
-       - fixed memory size detection (#34895, #38758)
-       - report UML network (#39521)
-       - 'hwinfo --map' returns mapping new -> old block
-         device names (#39437)
-       - s390: set is.notready flag on unformatted DASDs (bug #39174)
-       - rewrote serial console handling (#39029, #23322, #35824)
-       - updated X11 data (#39282)
-       - subclass 0x83 for xpnet card (#35867)
-       - add UML keyboard (#38922)
-       - s390: add bus id bus_ccw
-       - s390: set bus.id, sysfs_bus_id and sysfs_device_link for all devices
-       - s390: do not do pr_s390disks by default, and run it after pr_s390
-         to keep already detected non-disk devices from being deleted
-       - s390: implement rw/ro info properly
-       - s390: fake geometry and size of unformatted DASDs to most likely
-         values
-       - removed veth.* (not needed)
-       - fixed bug in modules.alias conversion script (#38800)
-       - fixed linmodem data (#38800)
-       - handle veth devices on iSeries (#38696, #37981)
-       - another de4x5 vs. tulip case (#39127)
-       - fixed cdrom config segfault (might happen while reading inconsistent
-         cdrom config data)
-       - support pSeries vscsi (#36029)
-       - bcm5700, not tg3 on ppc* (#38647)
-       - add Acer TravelMate 660 & Asus S5200N LCD sizes (#38149)
-       - make SGI IOC4 known as storage controller (#38628)
-       - support SGI XPNET (#35867)
-
-6/4/2004:      v8.38
-       - do call --partion with --fast in hwscand polling code
-
-6/4/2004:      v8.37
-       - fixed unique ids for pci devs (#37570)
-
-6/4/2004:      v8.36
-       - run raiddetect only on x86-like archs (#36157)
-       - don't run raiddetect if we didn't find any disks
-
-5/4/2004:      v8.35
-       - don't run raiddetect if --fast option is used
-
-5/4/2004:      v8.34
-       - make --only accept device names, too (#38265)
-       - check return value from hd_sysfs_id() (#38266)
-       - make it more resistant against strange libsysfs data (#38259)
-       - tg3 vs bcm5700 again (#38268)
-
-2/4/2004:      v8.33
-       - another wlan card (#38119)
-
-2/4/2004:      v8.32
-       - store driver list & sysfs info in hardware config files
-
-2/4/2004:      v8.31
-       - add Fritz!Card DSL SL USB in database
-       - hwbootscan: move icon creation from coldplug
-       - lt modem (#36552)
-       - fixed some module names (#37285, #37518)
-       - added dvb cards (#32730)
-       - use old bios disk assign code if there's no edd info
-
-1/4/2004:      v8.30
-       - wlan card detection fix (#37872)
-       - updated X11 data
-       - read isapnp from sysfs (#35157)
-
-1/4/2004:      v8.29
-       - hwscanqueue: remember commands and ignore the same commands for 20
-         seconds (workaround some unexpected signals from kernel)
-       - hwscand: set long timeout to 10 seconds
-       - hwscan*: add --partition command
-
-31/3/2004:     v8.28
-       - rewrote input device handling
-       - load ide-cd, sd_mod, sr_mod before looking for block devs (#37558)
-       - fixed usb printer detection
-       - run 'raiddetect' to tag ide soft raid devices
-       - minor vbe bios fixes
-
-30/3/2004:     v8.27
-       - changed bios probing to do less things
-       - added duplicate DASD detection code from the late dasd.c
-         to block.c (bug #37068)
-       - changed bios probing to do less things
-       - another winmodem (#37335)
-
-29/3/2004:     v8.26
-       - don't run modprobe if it doesn't exist
-
-29/3/2004:     v8.25
-       - add edd support
-
-28/3/2004:     v8.24
-       - added hwscand hwscanqueue
-       - use sysfs for usb devices
-       - scsi tapes detected again
-       - added hardware class 'tape'
-       - added getsysinfo script (collect data to debug hw detection)
-
-25/3/2004:     v8.23
-       - added hd_is_uml() to report if we're running in an UM kernel
-       - b44 vs. bcm4400 (#36763)
-       - fix inconsitency in device name list
-       - allow device names in 'hwscan --show'
-
-22/3/2004:     v8.22
-       - removed Intel-v92ham support (#36667)
-       - worked on new sysfs block code
-
-21/3/2004:     v8.21
-       - use sysfs for block devices
-
-15/3/2004:     v8.20
-       - fixed 8139cp/too module info (#36028)
-
-15/3/2004:     v8.19
-       - do not reverse sysfs order (libsysfs does it)
-       - updated X11 data
-       - return real device name, not udev symlink
-       - DSL hardware detection for none pppoe (kkeil)
-
-14/3/2004:     v8.18
-       - s390: added two missing DASD device types
-       - added '--root' option (for testing)
-       - added '--db' option for database queries
-       - fixed 'x11i' parameter handling
-       - read pci.handmap
-
-9/3/2004:      v8.17
-       - udevinfo moved to /usr/bin
-
-8/3/2004:      v8.16
-       - added host info for s390 SCSI devices
-       - added disk-only probing method for s390
-       - added WWPN, FCP LUN for s390 SCSI devices
-       - updated X11 data
-
-4/3/2004:      v8.15
-       - s390: added LCSS info to ccw_t
-       - link libhd against libsysfs
-       - added hw item for quick DASD rescanning
-       - updated digital camera ids.
-       - pci from sysfs finished
-       - network interfaces from sysfs
-
-1/3/2004:      v8.14
-       - fix smp detection on ia32e (#34742)
-       - store some new fields in unique-id files
-       - better error logging for vbios init
-       - disable all BIOS related things on ia64 (#34550)
-       - updated X11 data
-       - use sysfs for pci data (not default)
-
-24/2/2004:     v8.13
-       - include x86emu into libhd.so
-       - don't segfault if we couldn't get a shared memory segment
-
-23/2/2004:     v8.12
-       - fixed Makefile
-
-23/2/2004:     v8.11
-       - added '--version' (#31925)
-
-23/2/2004:     v8.10
-       - check for hyperthreading on amd64 (#34742)
-       - removed last references to ataraid from hardware db
-       - added new x86 emulator (#34545)
-       - return MacRISC<n> (#34591)
-
-17/2/2004:     v8.09
-       - handle '-' vs. '_' in module names
-
-17/2/2004:     v8.08
-       - isdn database optional read from /usr/share/hwinfo/ISDN.CDB.hwdb
-       - mk_isdnhwdb tool to convert CDB data to ISDN.CDB.hwdb
-       - fixed Makefile
-
-16/2/2004:     v8.07
-       - fixed ia64 unaligned access (#32396)
-       - use modprobe for tulip (#32911)
-
-11/2/2004:     v8.06
-       - fixed segfault on s390*
-       - removed special ia64 hardware data: new kernel, new game
-
-9/2/2004:      v8.05
-       - nvnet -> forcedeth (#25531)
-       - sata module data updated
-       - moved psaux mice to input/mice
-       - make convert_hd understand modules.alias files
-
-6/2/2004:      v8.04
-       - sysfs includes moved
-       - usb modules renamed
-       - really basic udev & sysfs support for block devs
-
-4/12/2003:     v8.03
-       - proper multichannel device detection (finally...)
-       - identify virtual reader/punch/printer
-
-2/12/2003:     v8.02
-       - build with "-pipe"
-       - accommodated to changes in format of /proc/dasd/devices
-       - ditched storage subclass dasd, introduced s390disk prog_if instead
-       - ditched fake CTC controller generation
-       - deal with unsorted bus trees in multichannel device detection
-
-18/11/2003:    v8.01
-       - converted s390 HW detection to sysfs
-       - moved CU/device models to separate data structure
-       - added more s390 devices
-       - rewrote parsing of SMBIOS data structures
-
-28/10/2003:    v8.00
-       - get pci config type from kernel log (#30704)
-       - add new flag 'cpuemu' to use cpu emulation on i386
-
-22/9/2003:     v7.30
-       - updated usb scanner & webcam data
-       - updated X11 data
-       - hwbootscan: split 'hwscan --pci --disk' call to avoid
-         wrong unique ids for some pci devices (#31545)
-
-21/9/2003:     v7.29
-       - updated X11 data
-
-18/9/2003:     v7.28
-       - set ATA RAID bus type to 'RAID' (#31235)
-
-17/9/2003:     v7.27
-       - don't make every parport into a printer (#31161)
-       - some driver data updated
-
-16/9/2003:     v7.26
-       - default to 'printer' if a class tag is missing in parport
-         autoprobe data (#30982)
-       - fixed serial console detection (#30936)
-
-15/9/2003:     v7.25
-       - pcmcia data update
-
-15/9/2003:     v7.24
-       - report pci modems (#30887)
-       - don't get fooled by removed pcmcia cards
-       - wlan data update (#30886, #30823, #30501)
-       - driver data update (#30384, #29468, #30745)
-
-15/9/2003:     v7.23
-       - ignore alternative usb interface settings
-
-11/9/2003:     v7.22
-       - updated X11 data
-       - don't read from cd drives that don't exist (#23248)
-
-10/9/2003:     v7.21
-       - fixed monitor data interpretation bug (#29718)
-
-9/9/2003:      v7.20
-       - more ltmodem ids
-       - uli: implementation of S/390 hardware detection
-
-8/9/2003:      v7.19
-       - updated driver info (#25457, #29481, #25531)
-       - updated X11 data
-       - added --combine option to check_hd to assist in creating
-         driver data
-       - fixed minor typos
-
-6/9/2003:      v7.18
-       - updated usb mouse data (#29719)
-       - better touch pad/track point reporting for notebooks
-       - fork() for serial mouse & modem detection (#25843, #26513)
-       - fixed hwbootscan (#29959)
-       - don't load imm.o module (#14175)
-
-2/9/2003:      v7.17
-       - catch more vm86() faults (#28381)
-       - added 'active' status flag (not modified by libhd)
-
-1/9/2003:      v7.16
-       - update ISDN CDB data
-       - catch faults inside vm86() code (#29571)
-       - give wlan cards their own subclass (#29506)
-       - updated X11 data
-
-28/8/2003:     v7.15
-       - iopl() may fail even if we're root (#29494)
-
-27/8/2003:     v7.14
-       - probe for multiple hardware classes at a time
-
-26/8/2003:     v7.13
-       - default ISDN data for all ARCH
-       - update ISDN CDB data
-
-26/8/2003:     v7.12
-       - updated X11 data (#29316)
-       - add ISDN database for ia64
-       - fix minor warnings
-
-25/8/2003:     v7.11
-       - don't try BIOS things on SGI Altix (#28663)
-
-25/8/2003:     v7.10
-       - added lots of new camera ids.
-       - new isdn data taken from cdb
-       - updated X11 data
-
-18/8/2003:     v7.09
-       - add ChildIDs field (reverse of ParentID)
-
-12/8/2003:     v7.08
-       - better internal hwclass handling
-
-11/8/2003:     v7.07
-       - define HARDWARE_DIR in hd.h
-
-8/8/2003:      v7.06
-       - use modprobe instead of insmod for scsi modules
-
-5/8/2003:      v7.05
-       - ltmodem is back
-       - parent id, again
-
-5/8/2003:      v7.04
-       - hp officejet scanner gets package info & own subclass
-
-1/8/2003:      v7.03
-       - reworked usb things
-
-18/7/2003:     v7.02
-       - changed disk size reading for 2.6
-       - more 2.6 header fixes
-
-17/7/2003:     v7.01
-       - store parent id (#27508) and hotplug field
-       - new attempt to work around broken cciss_ioctl.h inclue file
-
-16/7/2003:     v7.00
-       - detect pcmcia cards
-       - updated x11 data
-
-16/4/2003:     v6.20
-       - fixed megaraid info (#26325)
-
-27/3/2003:     v6.19
-       - scan for partitions
-
-13/3/2003:     v6.18
-       - ltmodem stuff makes trouble, removed (#25309)
-
-13/3/2003:     v6.17
-       - updated X11 data (#25217)
-
-12/3/2003:     v6.16
-       - be more careful when joining feature flags of
-         ide-scsi handled devices (#25169)
-
-12/3/2003:     v6.15
-       - limit the maximum amount of data we expect looking
-         for serial mice (#25153) 
-
-11/3/2003:     v6.14
-       - updated ide raid info (#25010)
-
-10/3/2003:     v6.13
-       - added more notebook data
-
-8/3/2003:      v6.12
-       - fixed ide-scsi detection bug (device names mixed up if more than
-         one device is handled by ide-scsi)
-
-8/3/2003:      v6.11
-       - updated data from pci utils
-
-8/3/2003:      v6.10
-       - detect wlan cards (#23491)
-
-7/3/2003:      v6.09
-       - usb multiple interfaces again: only for HID devices (#24824)
-       - add monitor vendor & device name
-       - allow hwscan to be disabled at boot time via 'hwprobe=-scan'
-
-6/3/2003:      v6.08
-       - updated X11 data
-       - added '--dsl' option to hwscan
-
-6/3/2003:      v6.07
-       - write ff to /dev/lp0 if imm.o didn't load (#14175)
-       - probe for scsi cache even in fast mode, else we miss scsi cd writers
-       - better Epson scanner detection (#20837)
-       - fixed stupid '\0'-missing-at-end-of-buffer bug
-       - added '--slient' option to hwscan (don't show ids)
-       - cleaned up notebook lcd detection and added more data
-
-4/3/2003:      v6.06
-       - fixed floppy detection (#24283)
-
-4/3/2003:      v6.05
-       - fixed ataraid detection (format of /proc/ide/ide?/config
-         changed, #23057, #24528)
-
-3/3/2003:      v6.04
-       - bcm instead of tg3 (request by ak)
-       - reenable mouse probing, but without serial mice and no dialog (#20309)
-       - support some winmodems
-       - updated X11 data
-
-26/2/2003:     v6.03
-       - better ZIP drive handling
-       - handle usb devices with multiple interfaces (#21487, #22223, #22843)
-       - removed 'Looking for braille...' line
-       - fixed multi-CDROM bug (#24280)
-       - save/restore feature flags (#23364)
-       - keep feature flags for ide-scsi handled drives (#23550)
-
-25/2/2003:     v6.02
-       - fixed 64 bit int -> pointer gcc warnings
-       - fixed minor database lookup bug
-       - database parser logs to logfile, not stderr
-       - support serial mice with really strange vendor ids (#24137)
-
-24/2/2003:     v6.01
-       - add fibre channel adapters to storage controller list (#23686)
-
-24/2/2003:     v6.00
-       - fixed gcc warnings
-       - updated module info
-       - increased major version
-
-18/2/2003:     v5.55
-       - added pppoe detection
-       - updated X11 data
-
-18/2/2003:     v5.54
-       - removed experimental code causing segfault on compaq machines
-
-10/2/2003:     v5.53
-       - remove mouse probing from hwbootscan, it sometimes
-         hangs and takes too long.
-       - add --fast to --cdrom probe, so the cdrom is not opened.
-       - updated X11 data
-
-4/2/2003:      v5.52
-       - fixed pci base addresses on 64bit archs (#21075)
-
-20/1/2003:     v5.51
-       - detection of more Microcom modems
-       - updated the pcmcia controllers fallback list
-       - added a minimal man page
-       - add AVM Fritz!Card DSL USB
-       - updated X11 data
-
-13/1/2003:     v5.50
-       - added Myrinet support (#21130)
-       - make it compile on !(x86_64 & ia64) again
-
-9/1/2003:      v5.49
-       - fixed some network card names (#22795)
-       - added wheel mouse data (#22797)
-       - make it compile on x86_64 & ia64 again
-
-13/12/2002:    v5.48
-       - cdrom feature list (dvd, cdr, etc)
-
-27/11/2002:    v5.47
-       - changed tg3/bcm* on ia64 (#21984)
-       - one ncr53c8xx vs. sym53c8xx issue (#21984)
-       - cleanup ISDN ids, remove unsupported protocols (#22179)
-
-25/11/2002:    v5.46
-       - rewrote assignment of BIOS driver numbers
-       - slight cleanup of int10 code
-
-19/11/2002:    v5.45
-       - use eepro100 instead of e100 on ia64 (#21055)
-
-18/11/2002:    v5.44
-       - fixed qla* module info (#21567)
-
-6/11/2002:     v5.43
-       - joined with 8.1 branch
-
-4/11/2002:     v5.42
-       - check for REDIRECT in hwscan init script (in case it gets called
-         from the commandline). #17773
-
-4/11/2002:     v5.41
-       - do some consistency checks on legacy data from BIOS area (#21462)
-
-17/10/2002:    v5.40
-       - updated megaraid info (#21043)
-
-10/10/2002:    v5.39
-       - updated tg3/bcm5700 driver info (#19913)
-
-7/10/2002:     v5.38
-       - added aacraid driver info (#20592)
-       - don't run yast if no keyboard is attached (#19768)
-
-30/9/2002:     v5.37
-       - add "Virtual" to veth description string (#20319)
-
-27/9/2002:     v5.36
-       - fixed floppy detection (#20269)
-       - x11 data update (#20182)
-       - added IBM ServeRAID ids (#20268)
-
-23/9/2002:     v5.35
-       - 'hwscan --pci' should add prom id (#19648)
-
-20/9/2002:     v5.34
-       - ia64: switch back to reading ACPI tables for SMP detection.
-
-18/9/2002:     v5.33
-       - fixed chksum call causing hwinfo to hang in some cases on ia64
-       - don't overwrite vga modelist
-
-10/9/2002:     v5.32
-       - avoid alignment problems on ia64
-       - fixed usb-cdrom probing (#19407, #19440)
-       - removed '--fast' for disk probing; instead, fixed i2o & cciss
-
-10/9/2002:     v5.31
-       - probe for cdrom & disk at boot (#19297)
-       - '--fast' option has effect on disk probing (no i2o & cciss)
-       - dmfe instead of tulip (#19271)
-       - convert_hd now understands XML properly
-       - removed outdated docs
-
-9/9/2002:      v5.30
-       - probe also USB isdn controllers (#18830)
-       - added '--help' option to check_hd & convert_hd
-       - converted pci info to utf8
-
-7/9/2002:      v5.29
-       - make sure usb floppies are reported as such (#12262)
-
-6/9/2002:      v5.28
-       - new x11 data
-       - report s390x arch properly
-
-5/9/2002:      v5.27
-       - added amd-8111 info
-       - fixed dpt info (#18914)
-       - always smp on s390* (#18990)
-       - changed pcnet32 description (#18892)
-
-4/9/2002:      v5.26
-       - show boot catalog address in cd info
-
-4/9/2002:      v5.25
-       - switched escon adapter from 0x70 to 0x8
-       - corrected number for CTC, IUCV, HSI and QETH
-       - fix usb isdn adapter detection (#18829)
-       - updated pci & usb data
-
-3/9/2002:      v5.24
-       - fixed ata raid code
-       - new usb mouse (#18296)
-
-3/9/2002:      v5.23
-       - updated x11 data
-
-02/9/2002:     v5.22
-       - code for detekting configured CTC, IUCV, HSI and QETH
-         adapters on s390/s390x
-       - fixed iSeries network id
-
-29/8/2002:     v5.21
-       - braille detection on sparc
-       - fixed script that reads CDB data
-       - log error messages from vm86 code
-       - better chipcard reader support
-       - use _exit instead of exit on some more places.
-       - prepared for uclibc
-       - save & restore resource data
-
-28/8/2002:     v5.20
-       - got rid of gcc warning
-
-28/8/2002:     v5.19
-       - added x86_64 x11 data
-
-27/8/2002:     v5.18
-       - changed dasd.c to accept old and new format of /proc/dasd/devices
-       - better serial mouse detection (#18384)
-
-27/8/2002:     v5.17
-       - msvec: detect some microcom modems (#15359)
-
-26/8/2002:     v5.16
-       - use "reprobe" as yast2 argument, not (.reprobe)
-       - added some new hardware types
-       - fixed usb & ieee1394 controller detection
-
-22/8/2002:     v5.15
-       - check cpuid for hyperthreading (#13532)
-       - add new bus id 'Virtual IO' for DASD (#18202)
-       - use grub on x86_64
-       - fixed s390 cpu detection
-
-20/8/2002:     v5.14
-       - mls: x86 emu for BIOS calls on ia64
-
-19/8/2002:     v5.13
-       - mls: x86 emu for BIOS calls on x86_64
-       - updated x11 data
-
-16/8/2002:     v5.12
-       - changes in libhd interface
-
-15/8/2002:     v5.11
-       - segfault in hwinfo, part 2
-       - fixed symbios module entry
-
-13/8/2002:     v5.10
-       - get isdn model name from isdn database
-       - updated megaraid info
-       - make install creates /etc/init.d
-
-13/8/2002:     v5.09
-       - added info for firewire module
-       - fixed convert_hd to work with perl 5.8
-
-12/8/2002:     v5.08
-       - fixed evil segfault in hwinfo
-       - updated docs
-
-9/8/2002:      v5.07
-       - moved unique key file to var/lib/hardware/unique-keys
-       - moved things from var/lib/libhd to var/lib/hardware
-       - added HD_VERSION #define to hd.h
-
-8/8/2002:      v5.06
-       - extended isdn package info
-       - detect dvb cards
-       - fixed reading driver info
-       - updated driver info
-       - changed tv card detection code
-
-6/8/2002:      v5.05
-       - minor libhd interface changes
-
-5/8/2002:      v5.04
-       - gmac -> sungem
-       - don't source rc.config
-       - report cardbus cards
-       - _exit instead of exit to avoid calling QT destructors in Yast2
-       - activated new database code
-
-22/7/2002:     v5.03
-       - updated x11 data
-
-22/7/2002:     v5.02
-       - run hwbootscan rc script after "kbd" script
-       - don't _change_ config status in hwbootscan
-       - save %gs register around vm86() syscall (%gs may be used in glibc)
-       - isdn changes
-       - better handling of dasd devs
-       - grub instead of lilo on ix86
-
-13/6/2002:     v5.01
-       - made ia64 cpu model entry more useful
-       - get bios led status
-
-6/6/2002:      v5.00
-       - assign hardware added via 'hwprobe' a proper inital status
-       - added alsa driver info
-       - dropped old pnpdump() code
-
-24/4/2002:     v4.26
-       - add x86-64 support
-
-27/3/2002:     v4.25
-       - prevent doubled cdrom hardware items
-
-27/3/2002:     v4.24
-       - fixed cdrom device detection (#15553)
-       - don't assign lp8 to nonexistent usb printers
-
-25/3/2002:     v4.23
-       - updated help texts
-
-25/3/2002:     v4.22
-       - recognize fibre channel controllers as storage controllers
-
-24/3/2002:     v4.21
-       - read bios data in libhd_tiny (to allow vaio handling in linuxrc, #12075)
-       - read /etc/module.pcimap, too (it's there during installation)
-       - new x11 data
-       - de4x5.o vs. tulip.o issue (#15303)
-       - added Netgear WLAN-Card data (#14848)
-
-21/3/2002:     v4.20
-       - remove /var/lib/hardware/LOCK in hwbootscan (#15217)
-       - updated X11 data
-       - prefer tg3 over bcm5700
-       - fixed broken framebuffer detection: reenabled & fixed pci setup code
-
-18/3/2002:     v4.19
-       - fixed segfault in ide code
-
-16/3/2002:     v4.18
-       - fixed bug that caused 'Processor' scsi devices to be treated
-         as disks (mentioned in #15007)
-
-14/3/2002:     v4.17
-       - udated mptbase driver info (#14732)
-       - better handling of usb-storage devices
-       - add mouse info we got from smbios
-       - use info from modules.pcimap
-       - detect memory size > 4GB (#14287)
-
-9/3/2002:      v4.16
-       - made hwbootscan an init script again, started after hotplug.
-       - do not delete the reconfig.needed files, but set configured=no
-         and needed=no to avoid problems with unsupported graphic cards.
-       - added usb ids from usbutils
-       - fixed network module info (#14529)
-       - improved smbios parser
-       - updated x11 driver info
-       - isdn: fix wrong names (AVM) and add more USB devices
-       - disabled pci setup code that caused infinite loops on
-         some systems with isa gfxcards
-
-4/3/2002:      v4.15
-       - new isdn data
-       - look at /proc/apm, too
-       - updated network driver info
-       - detect fujitsu siemens notebook lcd
-       - updated x11 driver info
-       - updated pci device list
-       - check for isapnp devs in boot.hwscan, too
-
-1/3/2002:      v4.14
-       - detect USB scanner by just looking if the module is usbscanner
-       - new scanner ids
-       - camera subclass ids were 1 off from enumeration
-       - added some new hardware classes: bios, bridge, hub, usb_ctrl
-       - added '--pci' and '--isapnp' options to hwscan
-       - fixed evil segfault caused by reading some hardware configs
-       - added '--fast' option to hwscan: don't check for tricky hardware
-         as serial mice or parport zips unless they had been found
-         previously
-       - boot.hwscan: probe for mice & pci hardware only (to be faster)
-       - don't try to access 'not available' devices
-
-25/2/2002:     v4.13
-       - meissner: boot.hwscan:
-         probe for storage, network, tv, sound handware
-       - updated x11 data
-       - handle usb ehci controller
-       - added basic smbios parser
-
-21/2/2002:     v4.12
-       - meissner: boot.hwscan: fixed confused curses output
-       - new isdn database
-       - update 'not available' state
-       - changed unique_id algorithm for usb devices
-
-18/2/2002:     v4.11
-       - added new scanner
-       - updated x11 data
-       - experimental support for hpt3* ideraid
-
-12/2/2002:     v4.10
-       - meissner: mouse probing is in choose_mouse
-       - meissner: added arguments for light probing '(.reprobe)' as suggested by tom
-
-11/2/2002:     v4.09
-       - isdn database now in libhd, support for multiple isdn driver
-
-7/2/2002:      v4.08
-       - renamed a function to avoid conflicts with linuxrc
-
-7/2/2002:      v4.07
-       - fixed dac960 detection: we used to return just the 1st disk
-
-7/2/2002:      v4.06
-       - first attempt to handle ide raid controller
-       - use /proc/partitions to find disks, too
-
-6/2/2002:      v4.05
-       - make hd_list() work properly if LIBHD_TINY is defined
-       - added new braille display
-       - hwinfo accepts '--netcard' as alias to '--network_ctrl'
-
-4/2/2002:      v4.04
-       - store a config string along with the config status
-
-4/2/2002:      v4.03
-       - changed hd_change_status() prototype
-
-20/1/2002:     v4.02
-       - fixed bug that prevented hwprobe env var to work in some cases
-
-28/1/2002:     v4.01
-       - hwscan: touch /var/lib/hardware/.update if things have changed
-       - meissner: added boot scripts
-
-21/1/2001:     v4.00
-       - increased major version number, as we're incompatible to v3 meanwhile
-       - added function to set hardware config status data directly
-
-20/1/2002:     v3.40
-       - updated hwscan so it does something useful
-       - updated x11 data
-
-14/1/2002:     v3.39
-       - next try with dietlibc on sparc
-
-14/1/2002:     v3.38
-       - olh: assume veth always present
-       - make it work with dietlibc on sparc
-       - new class: hw_usb_ctrl
-
-4/1/2002:      v3.37
-       - reimplemented iSeries veth device detection (#12680)
-
-14/12/2001:    v3.36
-       - create version for linking against dietlibc
-       - mls: continue even if some vbe calls fail
-
-26/11/2001:    v3.35
-       - prepare for arm
-
-22/11/2001:    v3.34
-       - call cpu probe for keyboard query
-       - reduced libhd_tiny size
-
-2/11/2001:.    v3.33
-       - read country code from usb devices
-
-30/10/2001:    v3.32
-       - handle iSeries network and storage devices
-         return ppc64 when uname -m returns it
-
-18/10/2001:    v3.31
-       - gmac controllers are powered off when unconfigured, so
-         we have to provide the class id ourself (#11733)
-
-15/10/2001:    v3.30
-       - don't load parport modules on pmac (#11743)
-       - provide monitor sync data if they are missing
-
-10/10/2001:    v3.29
-       - more apple monitor fixes
-
-9/10/2001:     v3.28
-       - work around incorrect iMac monitor data
-
-8/10/2001:     v3.27
-       - ppc: detect swim3 floppy (#11643)
-       - ppc: pr_prom needs pr_pci in some cases
-       - add monitor entry based on fbdev data, if we have
-         nothing better (#11344)
-
-5/10/2001:     v3.26
-       - fix the check for active framebuffer (ppc)
-         the current one is a hack and doesnt work in all cases
-       - use pc104 instead of powerpcps2 (ppc)
-       - longer timeouts in modem detection (#11432)
-       - don't merge pci and proc data on ppc (#10435)
-       - pci data are inconsistent on ppc, remove consistency check (#11551)
-       - new x11 data (ppc)
-
-24/9/2001:     v3.25
-       - updated X11 data
-       - no longer default to XF3 for installation on ppc (#11260)
-
-24/9/2001:     v3.24
-       - added LSIFC9xx/LSI409xx Fibre Channel (#11251)
-
-24/9/2001:     v3.23
-       - use aic7xxx_old one some controllers (#11202)
-       - use de4x5 instead of tulip for one card (#11093)
-       - updated X11 data
-
-20/9/2001:     v3.22
-       - make AIPTEK tablet a mouse again
-       - added old_unique_id field
-       - updated driver info
-
-19/9/2001:     v3.21
-       - new sound card
-       - new x11 data
-
-18/9/2001:     v3.20
-       - rewrote floppy detection to make it work on non-i386 archs
-       - new x11 data
-
-11/9/2001:     v3.19
-       - updated X11 data
-       - get current video mode
-
-10/9/2001:     v3.18
-       - updated X11 data
-       - make it work with diet-libc
-       - should correctly report vmware cards now
-
-4/9/2001:      v3.17
-       - changed unique_id calculation (#10139)
-       - introduced arch_ppc64, CHRP64 -> CHRP
-       - new X11 data
-
-3/9/2001:      v3.16
-       - usb printer device names have changed
-       - new x11 data
-       - fixed segfault bug in ide-scsi handling
-
-29/8/2001:     v3.15
-       - new x11 data
-       - ignore obviously broken ddc info
-
-27/8/2001:     v3.14
-       - new qlogic driver info (#9868)
-       - completely new x11 data
-
-23/8/2001:     v3.13
-       - fixed to work with the new cpqarray driver
-       - fixed evil database bug (#9798)
-
-20/8/2001:     v3.12
-       - removed usb network module info
-       - added iSeries disks
-
-17/8/2001:     v3.11
-       - added usb network data
-
-17/8/2001:     v3.10
-       - install in $DESTDIR
-       - handle ide-scsi drives
-       - fix segfault bug in apm detection
-
-9/8/2001:      v3.09
-       - fixed some drivers.audio entries
-
-6/8/2001:      v3.08
-       - added sungem
-       - fixed qlogicfc entry
-       - fixed tv card detection
-
-1/8/2001:      v3.07
-       - fixed typo in short model name calculation
-
-31/7/2001:     v3.06
-       - make now builds shared version per default
-
-30/7/2001:     v3.05
-       - integrated hwscan
-
-27/7/2001:     v3.04
-       - added chipcard reader support
-       - added camera (webcam) support
-       - added framebuffer support (currently: VESA)
-
-26/7/2001:     v3.03
-       - support (usb) joysticks
-
-25/7/2001:     v3.02
-       - added access functions for /var/lib/hardware/ to libhd
-       - hwinfo: no progress info if output is redirected
-       - hwinfo: multiple arguments allowed
-       - assign a hw_class
-
-24/7/2001:     v3.01
-       - report smp capability only if >1 processors are active
-
-23/7/2001:     v3.00
-       - SMP code can now handle empty MP tables
-       - support module lists in driver info
-       - new 'manual' flag indicating hardware that was not
-         detected but entered manually
-       - report usb capability only if the controller has an irq assigned
-
-27/6/2001:     v2.22
-       - added usb scanner detection
-       - set gpm protocol to imps2 for wheel mice
-       - bios based monitor detection enabled per default
-       - made usb module loading default
-
-25/6/2001:     v2.21
-       - sndirsch: corrected 3D info for geforce3 cards
-
-21/6/2001:     v2.20
-       - updated driver info for new gdth.o
-
-19/6/2001:     v2.19
-       - fixed for s390x
-
-13/6/2001:     v2.18
-       - schwab: don't dereference free'd pointer
-       - prefer e100.o over eepro100.o (#8797)
-       - fixed framebuffer mode detection bug (#8620)
-
-7/6/2001:      v2.17
-       - fixed keyboard detection on sparc
-
-22/5/2001:     v2.16
-       - dan: fix usb modem bug (#8490)
-       - remove 3d & xf_v3 driver info for ia64
-
-14/5/2001:     v2.15
-       - use isapnp_reset=0 for loading isa-pnp.o
-
-11/5/2001:     v2.14
-       - new driver data for 3c509
-       - X11 data updated
-       - have i2o cards listed as storage controllers (#6335)
-
-10/5/2001:     v2.13
-       - increase /dev/psaux timeout
-       - adapted missing keyboard detection for kernel 2.4
-
-10/5/2001:     v2.12
-       - less things in libhd_tiny.a
-       - read block 0 from disks _before_ going to look for the boot device
-       - vmware detection clobbers %ebx; fixed
-       - completely new monitor data base (#7536)
-
-7/5/2001:      v2.11
-       - preserve %ebx in i10_v86.c::vm86_rep
-
-7/5/2001:      v2.10
-       - rewrote isapnp detection for 2.4 kernel
-       - updated driver info data
-       - added "Baum" braille display detection
-
-3/5/2001:      v2.09
-       - support vbe bios calls to get monitor data (default: disabled)
-       - added more usb wheel mice
-
-3/5/2001:      v2.08
-       - added vmware check
-       - don't do scsi write cache detection in vmware
-       - added ia64 smp detection
-       - ia64 x11 data added
-       - use tulip instead of de4x5 (#7317)
-
-30/4/2001:     v2.07
-       - updated x11 data
-       - fixed multi-head display handling
-       - adapted compaq smart array detection for kernel 2.4
-
-25/4/2001:     v2.06
-       - parport detection updated for kernel 2.4
-       - add scsi hostadapter info to debug output
-       - usb-storage again
-       - boot_ia64 -> boot_elilo
-
-24/4/2001:     v2.05
-       - worked on usb-storage support
-       - no isa-pnp probing in linuxrc
-
-20/4/2001:     v2.04
-       - better usb-storage support
-
-19/4/2001:     v2.03
-       - reworked floppy detection
-       - identify devices with removable media
-       - zip drives are always reported as floppies
-
-18/4/2001:     v2.02
-       - reworked ps/2 mouse code
-       - provide number of buttons/wheels for mice
-       - X11 data updated (ia32)
-
-7/4/2001:      v2.01
-       - new output format for support tool
-       - more options for hwinfo
-       - include pcmcia/cardbus cards in device lists
-
-5/4/2001:      v2.00
-       - new major version due to incompatible interface changes
-       - integrated experimental changes (split was after v1.90)
-
-3/4/2001:      v1.99
-       - fixed segfault bug in alpha smp code
-
-26/3/2001:     v1.98
-       - unique id format changed
-
-21/3/2001:     v1.97
-       - fixed src/ids/Makefile for axp
-       - slightly changed display detection code on axp
-
-20/3/2001:     v1.96
-       - new axp x11 data
-
-28/2/2001:     v1.95
-       - stepan: removed ISDN on alpha
-       - avoid trigraphs while generating the data base
-
-22/2/2001:     v1.94
-       - fixed hd_copy() segfault bug (ppc)
-
-21/2/2001:     v1.93
-       - implemented SMP detection on ppc
-
-20/2/2001:     v1.92
-       - backport of new SMP detection code (ia32)
-       - get console speed from kernel command line (ppc)
-
-15/2/2001:     v1.91
-       - fixed evil scsi device detection bug
-         (missing scsi devices under some strange circumstances)
-       - don't probe physical scsi geometry
-
-12/2/2001:     v1.90
-       - changed display adapter detection code to prefer sbus cards
-
-9/2/2001:      v1.89
-       - kkaempf: "ld -shared" is forbidden, changed to "gcc"
-
-7/2/2001:      v1.88
-       - new x11 data (sparc)
-
-31/1/2001:     v1.87
-       - mls: new oem stuff
-
-30/1/2001:     v1.86
-       - new x11 data (sparc)
-
-29/1/2001:     v1.85
-       - kukuk: sparc keyboard patches
-
-23/1/2001:     v1.84
-       - mls: added '--packages' option to hwinfo
-
-21/1/2001:     v1.83
-       - new x11 data (sparc)
-
-19/1/2001:     v1.82
-       - ncr*.o instead of sym*.o for 53c895a
-       - new x11 data (ia32)
-
-18/1/2001:     v1.81
-       - fixed ISAPnP device name handling
-       - back to ncr*.o for 53c875 [devid 0xf] (#5816)
-       - added new tulip card
-
-17/1/2001:     v1.80
-       - updated dac960 driver info
-
-17/1/2001:     v1.79
-       - new x11 data
-       - added '--help' option to hwinfo
-       - implemented a basic getopt-style hwinfo interface
-       - activate pr_bios if pr_misc is set
-
-16/1/2001:     v1.78
-       - updated driver info (starfire/qla2x00)
-
-16/1/2001:     v1.77
-       - back to old version scheme to avoid update problems
-
-15/1/2001:     v1.0.76
-       - updated scsi driver info
-
-15/1/2001:     v1.0.75
-       - new x11 data
-       - make XF 4 default if no X11 info is found (ia32 only)
-       - fixed serial line detection bug
-
-14/1/2001:     v1.0.74
-       - updated pci name list
-       - updated scsi/network driver info
-
-12/1/2001:     v1.0.73
-       - new x11 data
-       - sym*.o instead of ncr*.o for 53C875
-       - quick fix for Wacom tablets
-
-12/1/2001:     v1.0.72
-       - fix minor bug in printer detection
-       - fix bios disk number detection
-
-11/1/2001:     v1.0.71
-       - arvin: made res_pppd_option work
-       - arvin: fixed detection of terminal adapters
-       - sped up new modem stuff if no modem is connected
-
-11/1/2001:     v1.0.70:
-       - new x11 data (sparc)
-
-10/1/2001:     v1.0.69
-       - introduced res_pppd_option
-       - new x11 data (ia32)
-
-9/1/2001:      v1.0.68
-       - smid@suse.cz: improved modem init string code
-
-8/1/2001:      v1.0.67
-       - fixed color depth handling
-       - fixed multi-soundcard bug
-       - new x11 data
-
-7/1/2001:      v1.0.66
-       - kendy@suse.cz: use BIOS port info for parport
-       - new x11 data for all archs
-       - 8139too instead of rtl8139 whenever possible
-
-20/12/2000:    v1.0.65
-       - added modem init string patch from smid@suse.cz
-
-19/12/2000:    v1.0.64
-       - added cciss stuff
-       - updated x11 data
-
-18/12/2000:    v1.0.63
-       - BIOS lba stuff now works
-
-18/12/2000:    v1.0.62
-       - updated x11 data
-
-14/12/2000:    v1.0.61
-       - updated x11 data
-       - build pnpdump only on i386 and alpha
-       - hwinfo can now update x11 info in install.inf
-
-13/12/2000:    v1.0.60
-       - hwinfo can now update braille info in install.inf
-       - activate alva braille detection
-
-13/12/2000:    v1.0.59
-       - updated x11 data
-
-12/12/2000:    v1.0.58
-       - new version number scheme (due to shared lib)
-       - create shared libhd
-       - report BIOS lba extension support
-       - rearranged building libhd_tiny a bit
-
-12/12/2000:    v1.57
-       - fixed isapnp segfault bug
-       - updated x11 data
-
-8/12/200:      v1.56
-       - new alva detection code
-       - added cd-r/dvd detection
-       - read "el torito" boot info
-       - updated x11 info
-
-7/12/2000:     v1.55
-       - fixed evil hddb bug
-       - added 3d script field
-
-9/11/2000:     v1.54
-       - started work on hddb fix
-       - renamed timeout -> hd_timeout
-
-27/10/2000:    v1.53
-       - remove memory leaks, part 2 (ppc)
-
-26/10/2000:    v1.52
-       - add CD-RW detection (and DVD)
-
-25/10/2000:    v1.51
-       - remove memory leaks, part 1
-
-10/10/2000:    v1.50
-       - distinguish between chrp & chrp64
-
-10/10/2000:    v1.49
-       - provide a unique key for every hardware item
-
-10/10/2000:    v1.48
-       - cpu/smp detection code improved
-
-28/9/2000:     v1.47
-       - sparc: new x11 info
-
-22/9/2000:     v1.46
-       - ppc: fixed serial line & modem detection
-
-21/9/2000:     v1.45
-       - provide CHPID on s390
-
-20/9/2000:     v1.44
-       - added missing closedir()
-
-18/9/2000:     v1.43
-       - improved /proc/interrupt parsing
-       - ppc: always return a ps/2 mouse for PreP & CHRP
-       - skip serial device detection for console & yast2ser /proc/cmdline
-         entries
-       - ids updated
-
-18/9/2000:     v1.42
-       - now *really* disabled braille except on ia32
-
-15/9/2000:     v1.41
-       - ppc: changed some ids
-
-13/9/2000:     v1.40
-       - serial console detection for ppc
-
-13/9/2000:     v1.39
-       - ppc x11 driver info
-       - ppc serial console
-       - braille only on ia32
-       - fixed scsi segfault bug
-
-8/9/2000:      v1.38
-       - updated device ids
-       - added basic i2o support
-       - disabled isapnp on ppc
-
-7/9/2000:      v1.37
-       - fixed modem segfault bug
-       - fixed Zip device detection
-
-6/9/2000:      v1.36
-       - s390 network devices
-
-5/9/2000:      v1.35
-       - s390: finds disks
-       - ppc: better sound detection
-
-25/8/2000:     v1.34
-       - new platform cpu entry on alpha
-
-24/8/2000:     v1.33
-       - better monitor & display detection on ppc
-
-23/8/2000:     v1.32
-       - made libhd at least to compile on s390
-
-23/8/2000:     v1.31
-       - slightly changed memory detection
-       - ADB mice: /dev/input/mice
-
-15/8/2000:     v1.30
-       - added monitor detection on ppc
-       - fixed iso9660 info reading 
-
-14/8/2000:     v1.29
-       - added PROM parser for ppc; currently handles
-          SCSI, network, sound & floppy devices
-
-9/8/2000:      v1.28
-       - added pr_misc to hw_isdn
-       - fixed memory size detection
-       - added 'generation' to system entry (for ppc)
-       - new scsi detection code
-       - kukuk: PS/2 keyboard detection on UltraSPARC
-
-28/7/2000:     v1.27
-       - fixed 'x11' parameter parsing
-
-27/7/2000:     v1.26
-       - added '--special' option to hwinfo (needed for live CD)
-       - updated x11 data
-
-24/7/2000:     v1.25
-       - SMP detection: look for 'apic' flag
-       - updated x11 data
-
-20/7/2000:     v1.24
-       - fixed Vaio detection
-       - updated special ide chipset list
-       - included more functions in LIBHD_TINY
-       - updated x11 data
-
-19/7/2000:     v1.23
-       - updated x11 data
-
-18/7/2000:     v1.22
-       - dropped alva probing
-       - updated x11 data
-
-15/7/2000:     v1.21
-       - fixed isapnp isdn probing bug
-       - updated x11 data
-
-14/7/2000:     v1.20
-       - fixed stupid printer probing bug
-       - updated x11 data
-
-13/7/2000:     v1.19
-       - fixed bootdevice detection bug
-       - detect PowerBooks
-
-12/7/2000:     v1.18
-       - updated alsa driver info
-       - updated minicdb id data
-       - fixed missing isapnp sound cards bug
-
-11/7/2000:     v1.17
-       - added Sony Vaio detection
-       - changed lance driver entry
-       - fixed isdn/network card bug
-       - updated id data
-
-10/7/2000:     v1.16
-       - pnpdump: start port scanning at port 0x20b, not 0x203
-         (skips potential game port)
-       - get ids directly from minicdb
-
-7/7/2000:      v1.15
-       - fixed hw_sys/hw_tv probing bug
-
-6/7/2000:      v1.14
-       - new 'system' hw entry
-       - sparc smp detection: active -> probed
-
-5/7/2000:      v1.13
-       - added parallel Zip drive detection
-
-3/7/2000:      v1.12
-       - don't list cardbus/pcmcia devs in hd_list()
-       - add multimedia/video boards to display adapters
-
-27/6/2000:     v1.11
-       - increased timeout in fhp detection
-
-27/6/2000:     v1.10
-       - fixed bug in braille detection
-
-26/6/2000:     v1.09
-       - updated README
-       - fixed bug in 'hwprobe' handling
-
-26/6/2000:     v1.08
-       - new usb mouse devices
-
-22/6/2000:     v1.07
-       - activated serial line scanning in linuxrc
-       - extendend 'hwprobe=' features
-
-21/6/2000:     v1.06
-       - fhp_old braille detection implemented
-       - alva & ht braille stuff added
-
-21/6/2000:     v1.05
-       - changed (driver_info_x11_t).x11.raw to str_list_t
-
-21/6/2000:     v1.04
-       - added 'x11' kernel cmdline param
-
-20/6/2000:     v1.03
-       - fixed mk_ids (used to drop all non-x11 ids)
-       - improved 'hwprobe=' functionality
-       - fhp braille detection implemented
-
-20/6/2000:     v1.02
-       - updated pciutils & sax/sax2 data
-       - added fire gl1
-       - added 'hwprobe' env resp. kernel cmdline param
-
-13/6/2000:     v1.01
-       - new module info
-       - fix old VGA entries
-       - hw_tv now functional
-
-9/6/2000:      v1.00
-       - added hw_monitor, hw_printer, hw_tv, hw_scanner
-         [hw_tv, hw_scanner still non-funcional]
-       - improved ddc parsing (new syslinux!)
-
-7/6/2000:      v0.99
-       - added hd_list() function
-
-6//6/2000:     v0.98
-       - hd_display_list() function
-       - new SaX[2] data
-       - changed mk_ids to provide 3d *and* non-3d x11 entries
-
-31/5/2000:     v0.97
-       - provides info about bios disk ids
-
-30/5/2000:     v0.96
-       - extended X11 driver info (for XF86 4.0)
-       - added Thorsten's small SPARC patch
-       - extended serial line info
-       - note: v0.95 was a ppc quick-hack only version needed for 6.4;
-          it will not be integrated into the main tree
-
-24/5/2000:     v0.94
-       - fixed tmp file security hole
-       - added hd_{mouse/keyboard/floppy}_list() functions
-
-15/5/2000:     v0.93
-       - integrated Thorsten Kukuk's patches (mostly SPARC stuff)
-       - some minor other fixes
-
-17/4/2000:     v0.92
-       - ADB mouse driver info extended
-       - color code stuff updated
-
-11/4/2000:     v0.91
-       - fixed XkbModel typo on intel/axp
-       - ia64 patches from Andreas
-       - new Mac color code
-
-31/3/2000:     v0.89
-       - changed XkbModel to "powerpcps2" on chrp machines
-       - more iMac colors
-
-24/3/2000:     v0.88
-       - read color code on macs
-
-21/3/2000:     v0.87
-       - added Netfinity graphics card fix
-       - 3com net card driver adjustments
-       - ISDN info fix
-       - SPARC keyboard code
-       - added keyboard driver info
-
-14/3/2000:     v0.86
-       - flush serial buffer before close()
-
-8/3/2000:      v0.85
-       - some minor bug fixes
-
-8/3/2000:      v0.84
-       - changed display adapter probing to include bc_multimedia
-
-8/3/2000:      v0.83
-       - pci cards are attached to their resp. bridges
-       - card bus cards not listed by probe_by_class
-
-6/3/2000:      v0.82
-       - X server list fixes
-
-5/3/2000:      v0.81
-       - some monitor data
-
-4/3/2000:      v0.80
-       - new probing flag pr_scsi_geo: defaults to off due to
-          problems on scsi-Zip's
-
-3/3/2000:      v0.79
-       - tuned probing flags
-       - renamed drivers file
-       - added "Belinea 10 20 20" data (ddc info lies about supported modes!)
-
-29/2/2000:     v0.78
-       - new graphics cards
-
-28/2/2000:     v0.77
-       - modem fix: give default name if none could be determined
-       - added 3Com Robotics recognition
-       - added physical SCSI geometry
-
-28/2/2000:     v0.76
-       - automatic usb module loading
-       - rewrite of the probing flags stuff; new probing flags
-       - new hd_display() function
-
-26/2/2000:     v0.75
-       - pcmcia detection now looks at class ids
-       - fixed pcmcia detection bug
-       - added usb detection function
-
-26/2/2000:     v0.74
-       - added alsa isapnp sound cards
-
-25/2/2000:     v0.73
-       - sparc & baud rate fix
-       - new libihw
-       - minor usb improvements
-       - better keyboard detection
-       - ressource management for irqs
-       - isdn fixes/improvements
-       - added some sound cards
-
-24/2/2000:     v0.72
-       - libihw used only on ix86 & axp
-       - pc keyboard detection
-
-23/2/2000:     v0.71
-       - isdn stuff
-
-22/2/2000:     v0.70
-       - changed x11/3d driver info
-
-18/2/2000:     v0.69
-       - mouse code now resets serial lines
-
-18/2/2000:     v0.68
-       - new try at AGP detection
-       - improved mylex code
-       - added compaq smart raid detection
-       - improved scsi code
-
-17/2/2000:     v0.67
-       - improved CPU code on axp & ppc
-       - changed serial line code: use non-blocking open
-
-16/2/2000:     v0.66
-       - new ids
-       - added Mylex detection (dac960)
-
-15/2/2000:     v0.65
-       - a lot of driver info
-       - timeout problem opening serial devs?
-
-12/2/2000:     v0.64
-       - added some ids
-       - added Zoom modem detection
-
-11/2/2000:     v0.63
-       - fixed isapnp for ppc
-
-11/2/2000:     v0.62
-       - Makefile now knows about sparc64
-       - driver info: 3c90x vs. 3c59x; see comment in drivers.SuSE
-       - worked on ISDN stuff
-
-10/2/2000:     v0.61
-       - added peliminary usb storage device handling
-       - added ISA-PnP memory range decoding
-       - added ISDN probing for ISA cards (*very* preliminary)
-
-8/2/2000:      v0.60
-       - added UMAX USB scanner ids
-       - small modem fix (open fds)
-       - determines boot device
-
-5/2/2000:      v0.59
-       - improved boot floppy: now with usb support
-       - changed hw behavior: no listing on console if a logfile is used
-       - fixed missing baud defines on SPARC
-       - added 3d graphics card info
-       - changed internal mouse ids from PnP ids --> special ids
-       - some 64 bit pci fixes
-       - pci devices with missing class info: get class info from data base
-       - added more usb ids
-
-4/2/2000:      v0.58
-       - added generic ne2000 info
-       - improved printing of modules.conf entries
-       - moved ID handling macros (MAKE_ID, etc) to hd.h
-
-3/2/2000:      v0.57
-       - added lp-devices to mk_floppy
-       - added usb vendor list
-       - NOTE: hd_class_list() interface slightly changed!!!
-       - USB support complete rewritten
-       - modem fix: avoid selecting a device twice!
-       - driver info: take compatible devices into account
-
-2/2/2000:      v0.56
-       - more driver info
-       - added hd_smp_support()
-
-1/2/2000:      v0.55
-       - made hd_module_is_active() global
-       - added pcnet32 info
-       - added 'static' target
-       - fixed ddc string parser
-       - fixed monitor driver info parser
-       - added tiny target: -> libhd_tiny.a is minimum version for linuxrc
-
-27/10/2000:    v0.54
-       - rescan == 3 --> return new entries since last call with rescan == 2
-
-27/10/2000:    v0.53
-       - fixed driver entries with modules.conf lines
-       - fixed internal handling of modules.conf entries
-       - added new feature to hd_*_list() functions:
-         rescan == 2 --> return only new entries
-
-25/10/2000:    v0.52
-       - started this log :-)
-       - modem code now handles non-pnp modems
-       - added a baud resource to modem entries: holds the modem's max.
-         port speed
-       - added some modem ids
-       - updated docu (interface.html)
diff --git a/src/hwinfo/Makefile b/src/hwinfo/Makefile
deleted file mode 100644 (file)
index 72c7ffb..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-TOPDIR         = $(CURDIR)
-SUBDIRS                = src
-TARGETS                = hwinfo hwscan hwscand hwscanqueue
-CLEANFILES     = hwinfo hwinfo.static hwscan hwscan.static hwscand hwscanqueue doc/libhd doc/*~
-LIBDIR         = /lib
-ULIBDIR                = /usr$(LIBDIR)
-LIBS           = -lhd
-SLIBS          = -lhd -lsysfs
-TLIBS          = -lhd_tiny -lsysfs
-SO_LIBS                = -lsysfs
-TSO_LIBS       = -lsysfs
-
-export SO_LIBS
-
-include Makefile.common
-
-SHARED_FLAGS   =
-OBJS_NO_TINY   = names.o parallel.o modem.o
-
-.PHONY:        fullstatic static shared tiny doc diet tinydiet uc tinyuc
-
-hwscan: hwscan.o $(LIBHD)
-       $(CC) hwscan.o $(LDFLAGS) $(LIBS) -o $@
-
-hwinfo: hwinfo.o $(LIBHD)
-       $(CC) hwinfo.o $(LDFLAGS) $(LIBS) -o $@
-
-hwscand: hwscand.o
-       $(CC) $< $(LDFLAGS) -o $@
-
-hwscanqueue: hwscanqueue.o
-       $(CC) $< $(LDFLAGS) -o $@
-
-# kept for compatibility
-shared:
-       @make
-
-tiny:
-       @make EXTRA_FLAGS=-DLIBHD_TINY LIBHD_BASE=libhd_tiny LIBS="$(TLIBS)" SO_LIBS="$(TSO_LIBS)"
-
-tinyinstall:
-       @make EXTRA_FLAGS=-DLIBHD_TINY LIBHD_BASE=libhd_tiny LIBS="$(TLIBS)" SO_LIBS="$(TSO_LIBS)" install
-
-tinystatic:
-       @make EXTRA_FLAGS=-DLIBHD_TINY LIBHD_BASE=libhd_tiny SHARED_FLAGS= LIBS="$(TLIBS)" SO_LIBS="$(TSO_LIBS)"
-
-tinystaticinstall:
-       @make EXTRA_FLAGS=-DLIBHD_TINY LIBHD_BASE=libhd_tiny SHARED_FLAGS= LIBS="$(TLIBS)" SO_LIBS="$(TSO_LIBS)" install
-
-diet:
-       @make CC="diet gcc" EXTRA_FLAGS="-fno-pic -DDIET" SHARED_FLAGS= LIBS="$(SLIBS)"
-
-tinydiet:
-       @make CC="diet gcc" EXTRA_FLAGS="-fno-pic -DLIBHD_TINY -DDIET" SHARED_FLAGS= LIBS="$(SLIBS)"
-
-uc:
-       @make CC="/opt/i386-linux-uclibc/bin/i386-uclibc-gcc" EXTRA_FLAGS="-fno-pic -DUCLIBC" SHARED_FLAGS= LIBS="$(SLIBS)"
-
-tinyuc:
-       @make CC="/opt/i386-linux-uclibc/usr/bin/gcc" EXTRA_FLAGS="-fno-pic -DLIBHD_TINY -DUCLIBC" SHARED_FLAGS= LIBS="$(SLIBS)"
-
-static:
-       make SHARED_FLAGS= LIBS="$(SLIBS)"
-
-fullstatic: static
-       $(CC) -static hwinfo.o $(LDFLAGS) $(SLIBS) -o hwinfo.static
-       $(CC) -static hwscan.o $(LDFLAGS) $(SLIBS) -o hwscan.static
-       strip -R .note -R .comment hwinfo.static
-       strip -R .note -R .comment hwscan.static
-
-doc:
-       @cd doc ; doxygen libhd.doxy
-
-install:
-       install -d -m 755 $(DESTDIR)/sbin $(DESTDIR)/usr/sbin $(DESTDIR)$(LIBDIR) $(DESTDIR)$(ULIBDIR)\
-               $(DESTDIR)/usr/include $(DESTDIR)/etc/init.d
-       install -m 755 hwinfo $(DESTDIR)/usr/sbin
-       install -m 755 hwscan hwscand hwscanqueue $(DESTDIR)/sbin
-       install -m 755 -s src/ids/check_hd $(DESTDIR)/usr/sbin
-       install -m 755 src/ids/convert_hd $(DESTDIR)/usr/sbin
-       if [ -f $(LIBHD_SO) ] ; then \
-               install $(LIBHD_SO) $(DESTDIR)$(LIBDIR) ; \
-               ln -snf $(LIBHD_NAME) $(DESTDIR)$(LIBDIR)/$(LIBHD_SONAME) ; \
-               ln -snf $(LIBDIR)/$(LIBHD_SONAME) $(DESTDIR)$(ULIBDIR)/$(LIBHD_BASE).so ; \
-       else \
-               install -m 644 $(LIBHD) $(DESTDIR)$(ULIBDIR) ; \
-       fi
-       install -m 644 src/hd/hd.h $(DESTDIR)/usr/include
-       install -m 755 hwbootscan getsysinfo gen-hwcfg-disk.sh $(DESTDIR)/usr/sbin
-       install -m 755 hwbootscan.rc $(DESTDIR)/etc/init.d/hwscan
-       install -m 755 src/isdn/cdb/mk_isdnhwdb $(DESTDIR)/usr/sbin
-       install -d -m 755 $(DESTDIR)/usr/share/hwinfo
-       install -m 644 src/isdn/cdb/ISDN.CDB.txt $(DESTDIR)/usr/share/hwinfo
-       install -m 644 src/isdn/cdb/ISDN.CDB.hwdb $(DESTDIR)/usr/share/hwinfo
-
diff --git a/src/hwinfo/Makefile.common b/src/hwinfo/Makefile.common
deleted file mode 100644 (file)
index a4706e5..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-# libhd/Makefile.common
-
-ARCH   := $(shell uname -m)
-ifeq "$(ARCH)" "i486"
-ARCH   := i386
-endif
-ifeq "$(ARCH)" "i586"
-ARCH   := i386
-endif
-ifeq "$(ARCH)" "i686"
-ARCH   := i386
-endif
-ifeq "$(ARCH)" "parisc"
-EXTRA_FLAGS := -fPIC $(EXTRA_FLAGS)
-endif
-
-LIBHD_VERSION          := $(shell cat $(TOPDIR)/VERSION)
-LIBHD_MINOR_VERSION    := $(shell cut -d . -f 2 $(TOPDIR)/VERSION)
-LIBHD_MAJOR_VERSION    := $(shell cut -d . -f 1 $(TOPDIR)/VERSION)
-
-CC     = gcc
-LD     = ld
-CFLAGS = -Wall -O2 -pipe -g $(SHARED_FLAGS) $(EXTRA_FLAGS) -I$(TOPDIR)/src/hd
-SHARED_FLAGS   = -fPIC
-
-LDFLAGS        = -Lsrc
-
-CFILES         = $(wildcard *.c)
-OBJS           = $(CFILES:.c=.o)
-LIBHD_BASE     = libhd
-LIBHD          = $(TOPDIR)/src/$(LIBHD_BASE).a
-LIBHD_SONAME   = $(LIBHD_BASE).so.$(LIBHD_MAJOR_VERSION)
-LIBHD_NAME     = $(LIBHD_BASE).so.$(LIBHD_VERSION)
-LIBHD_SO       = $(TOPDIR)/src/$(LIBHD_NAME)
-LIBHD_D                = $(TOPDIR)/src/.lib
-
-export CC TOPDIR CFLAGS LIBHD ARCH
-
-.PHONY: all distclean clean install subdirs
-
-%.o: %.c
-       $(CC) -c $(CFLAGS) $<
-
-all: subdirs $(TARGETS)
-
-install: all
-
-ifneq "$(SUBDIRS)" ""
-subdirs:
-       @for i in $(SUBDIRS) ; do make -C $$i $(MAKECMDGOALS) || exit ; done
-endif
-
-clean: subdirs
-       @rm -rf $(OBJS) .depend $(CLEANFILES) *~
-
-distclean: subdirs
-       @rm -rf $(OBJS) .depend $(CLEANFILES) $(DISTCLEANFILES) *~
-
-ifneq "$(CFILES)" ""
-ifeq ($(findstring $(MAKECMDGOALS), clean distclean),)
-.depend: $(CFILES)
-       @$(CC) -MG -MM $(CFLAGS) $(CFILES) >$@
-
--include .depend
-endif
-endif
diff --git a/src/hwinfo/README b/src/hwinfo/README
deleted file mode 100644 (file)
index 2740fb5..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-1. Usage
-========
-
-  hwinfo [debug=deb_flag] [log=log_file] [list[+]=hw_item] [[+|-]probe_option1] [[+|-]probe_option2] ...
-
-Examples:
-
-  hwinfo
-    - probes for nearly everything
-
-  hwinfo +all
-    - probes for everything
-
-  hwinfo log=hw_log
-    - default probing, output is written to hw_log
-      *** Please don't use "hwinfo >some_log 2>&1" to store the output into a
-      log file! ***
-
-  hwinfo -all +ide
-    - probe for ide drives only
-
-  hwinfo +all -isapnp -floppy
-    - probe for everything *except* isapnp and floppies
-
-Some probing flags do not stand for complete modules but enable additional
-features; e.g. "pci.range" or "cdrom.info".
-
-Example:
-  hwinfo -all +cdrom
-  gives a list of all cdrom's
-
-  hwinfo -all +cdrom.info
-  additionally reads the iso9660 info
-
-To get a list of all supported probing flags, call 'hwinfo -all'.
-
-
-2. Environment variables/kernel cmdline parameters
-==================================================
-
-You can control the hardware probing using the environment variable
-"hwprobe" and the kernel cmdline parameters "hwprobe" & "x11".
-
-If "hwprobe" is set on the kernel cmdline, the environment variable
-"hwprobe" is ignored. Otherwise, the meaning of both is exactly the same.
-
-  x11
-    - Controls the X server/X version to prefer. It is either "3" or "4" or the
-      name of the X server/X server module to use (XF3: server name without
-      the leading "XF86_", XF4: the server module name).
-
-      Examples:
-        x11=3
-          o prefer XFree86 3.x over 4.x (if possible)
-
-        x11=SVGA
-          o use the XF86_SVGA server (*** Even if the server does not
-            support the card! ***)
-
-        x11=nv
-          o use the XF4 nv_drv.o driver (*** Even if the module does not
-            support the card! ***)
-
-  hwprobe
-    - Controls which probing flags should *always* be set/cleared. (These
-      settings *cannot* be overridden by command line switches.)
-
-      Examples:
-        hwprobe=-isapnp
-          o *never* do any isapnp probing
-
-        hwprobe=-braille,-modem
-          o don't look for braille displays & modems
-
-    - Allows you to add and remove hardware from the probing results. In this case
-      the syntax is (-: remove, +: add at end of list, <nothing>: add at begin of
-      list):
-        hwprobe=[+-]<device_class>:<vendor_id>:<device_id>[:<unix_device_file>]
-
-      <device_class>, <vendor_id> and <device_id> are device ids as used by libhd.
-      See the output of hwinfo for examples. In connection with "-", you can use
-      "*" as a placeholder that matches every id.
-
-      Note: <unix_device_file> is optional.
-
-      Note2: you cannot usefully *add* hardware that needs more info than that
-      given by the hwprobe entry. Disks & floppies are notable examples.
-      (But you can *remove* them.)
-
-      Here is a typical hwinfo output for a mouse, with the relevant ids
-      underlined (<device_class> is the combined base_class & sub_class),
-      [see 1st example below]:
-
-        14: PS/2 00.0: 10500 PS/2 Mouse
-                       ^^^^^ -->       <device_class>
-          [Created at mouse.110]
-          Vendor: s0200 "Unknown"
-                  ^^^^^  -->           <vendor_id>
-          Model: 0002 "Generic PS/2 Mouse"
-                 ^^^^  -->             <device_id>
-          Device File: /dev/psaux
-                       ^^^^^^^^^^ -->  <unix_device_file>
-          Driver Info #0:
-            XFree86 Protocol: ps/2
-            GPM Protocol: ps2
-          Attached to: #8 (PS/2 Controller)
-
-
-      Examples:
-        hwprobe=+10500:s200:2:/dev/psaux
-          o add a ps/2 mouse [at the end of the hardware list]
-
-        hwprobe=10500:s200:2:/dev/psaux
-          o add a ps/2 mouse [at the start of the hardware list, so it
-            is our default mouse]
-
-        hwprobe=+10b00:s5001:0:/dev/ttyS0
-          o add a braille display connected to /dev/ttyS0
-
-        hwprobe=-10500:s200:2:/dev/psaux
-          o remove ps/2 mice attached to /dev/psaux
-
-        hwprobe=-10500:s200:2
-          o remove all ps/2 mice
-
-        hwprobe=-10500:*:*
-          o remove all ps/2 mice
-
-        hwprobe=-*:*:*:/dev/hdc
-          o remove /dev/hdc
-
-        hwprobe=+401:1274:5000
-          o add an ensoniq sound card
-
-      Grafics cards are are slightly trickier:
-
-        hwprobe=+300:1014:b7
-          o add a Fire GL1 card
-            Note: this way you'll get a multihead config. You'll probably
-            rather want the following example.
-
-        hwprobe=-300:*:*,+300:1014:b7
-          o remove all graphics cards; then add a Fire GL1 card
-
-        hwprobe=+400:121a:1
-          o add a 3fx voodoo card (Note the class "400", not "300"!)
-
-    - for more ids, see "src/ids/names.*" and "src/ids/drivers.*"
-
diff --git a/src/hwinfo/VERSION b/src/hwinfo/VERSION
deleted file mode 100644 (file)
index ea158a2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-10.16
diff --git a/src/hwinfo/doc/example1.c b/src/hwinfo/doc/example1.c
deleted file mode 100644 (file)
index 7de3e47..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <hd.h>
-
-int main(int argc, char **argv)
-{
-  hd_data_t *hd_data;
-  hd_t *hd;
-
-  hd_data = calloc(1, sizeof *hd_data);
-
-  hd = hd_list(hd_data, hw_scsi, 1, NULL);
-
-  for(; hd; hd = hd->next) {
-    hd_dump_entry(hd_data, hd, stdout)
-  }
-
-  hd_free_hd_list(hd);         /* free it */
-  hd_free_hd_data(hd_data);
-
-  free(hd_data);
-
-  return 0;
-}
-
diff --git a/src/hwinfo/doc/example2.c b/src/hwinfo/doc/example2.c
deleted file mode 100644 (file)
index cc2a9db..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <hd.h>
-
-int main(int argc, char **argv)
-{
-  hd_data_t *hd_data;
-  hd_t *hd;
-  unsigned display_idx;
-
-  hd_data = calloc(1, sizeof *hd_data);
-
-  hd = hd_list(hd_data, hw_display, 1, NULL);
-  display_idx = hd_display_adapter(hd_data);
-
-  hd_dump_entry(hd_data, hd_get_device_by_idx(hd_data, display_idx), stdout)
-
-  hd_free_hd_list(hd);
-  hd_free_hd_data(hd_data);
-
-  free(hd_data);
-
-  return 0;
-}
-
diff --git a/src/hwinfo/doc/footer.html b/src/hwinfo/doc/footer.html
deleted file mode 100644 (file)
index 62b274f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-</body></html>
diff --git a/src/hwinfo/doc/hwinfo.8 b/src/hwinfo/doc/hwinfo.8
deleted file mode 100644 (file)
index 03bca33..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-.\" Michal Svec <msvec@suse.cz>
-.\"
-.\" Process this file with
-.\" groff -man -Tascii foo.1
-.\"
-.\"
-.TH HWINFO 8 "January 2003" "hwinfo" "System configuration"
-.\"
-.\"
-.SH NAME
-hwinfo \- probe for hardware
-.\"
-.\"
-.SH SYNOPSIS
-.B hwinfo [
-.I options
-.B ]
-.\"
-.\"
-.SH DESCRIPTION
-.B hwinfo
-is used to probe for the hardware present in the system. It can be used
-to generate a system overview log which can be later used for support.
-.\"
-.\"
-.SH OPTIONS
-.\"
-.TP
-.BI --debug " " level
-Set debug
-.B level.
-The debug info is shown only in the log file. If you specify a log file,
-the debug level is implicitly set to a reasonable value.
-.\"
-.TP
-.BI --dump-db " " n
-Dump hardware data base,
-.B n
-is either
-.B 0
-for the external data base, or
-.B 1
-for the internal data base.
-.\"
-.TP
-.BI --help
-Print a usage and exit.
-.\"
-.TP
-.BI --log " " logfile
-Write info to
-.B logfile.
-.\"
-.TP
-.BI --short
-Just a short listing.
-.\"
-.TP
-.BI --version
-Show libhd version.
-.\"
-.TP
-.BI --<hwitem>
-Probe for the particular hardware item. Available hardware items are:
-.B all, bios, block, bluetooth, braille, bridge, camera, cdrom, chipcard, cpu,
-.B disk, dsl, dvb, floppy, framebuffer, gfxcard, hub, ide, isapnp, isdn,
-.B joystick, keyboard, memory, modem, monitor, mouse, netcard, network,
-.B partition, pci, pcmcia, pcmcia-ctrl, pppoe, printer, scanner, scsi, smp,
-.B sound, storage-ctrl, sys, tape, tv, usb, usb-ctrl, vbe, wlan,
-and
-.B zip.
-.\"
-.\"
-.SH FILES
-.B /var/lib/hardware/*
-.\"
-.\"
-.SH BUGS
-Not all hardware can be detected.
-.\"
-.\"
-.SH AUTHOR
-.nf
-Steffen Winterfeldt <snwint@suse.de> - hwinfo
-Michal Svec <msvec@suse.cz> - manual page
-.fi
-.\"
-.\"
-.SH "SEE ALSO"
-Documentation in /usr/share/doc/packages/hwinfo.
-.\"
-.\" EOF
diff --git a/src/hwinfo/doc/libhd.doc b/src/hwinfo/doc/libhd.doc
deleted file mode 100644 (file)
index 419a328..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/*! \mainpage libhd documentation
-
-<h2>Introduction</h2>
-
-libhd is a hardware detection lib.
-
-<h2>Changes</h2>
-
-\ref libhd_5_12
-
-<h2>Examples</h2>
-
-\ref example1
-
-\ref example2
-
-*/
-
-
-/*! \page examples Examples
-
-\ref example1
-
-\ref example2
-
-<hr>
-
-\subsection example1 Get list of SCSI controllers
-
-\include example1.c
-
-<hr>
-
-\subsection example2 Get primary display controller
-
-\include example2.c
-
-*/
-
-/*! \page changes Changes
-
-\ref libhd_5_12
-
-<hr>
-
-\subsection libhd_5_12 libhd-5.12
-
-<ul>
-
-  <li>changes in \ref hd_t
-
-    <ul>
-
-    <li>\ref hd_t::bus "bus" is now a struct, use \ref hd_t::bus "bus.id" instead.
-
-    <li>\ref hd_t::base_class "base_class" is now a struct, use \ref hd_t::base_class "base_class.id" instead.
-
-    <li>\ref hd_t::sub_class "sub_class" is now a struct, use \ref hd_t::sub_class "sub_class.id" instead.
-
-    <li>\ref hd_t::prog_if "prog_if" is now a struct, use \ref hd_t::prog_if "prog_if.id" instead.
-
-    <li>\ref hd_t::vendor "vendor" is a struct replacing vend and vend_name.
-      Use \ref hd_t::vendor "vendor.id" and \ref hd_t::vendor "vendor.name" now.
-
-    <li>\ref hd_t::device "device" is a struct replacing dev and dev_name.
-      Use \ref hd_t::device "device.id" and \ref hd_t::device "device.name" now.
-
-    <li>\ref hd_t::sub_vendor "sub_vendor" is a struct replacing sub_vend and sub_vend_name.
-      Use \ref hd_t::sub_vendor "sub_vendor.id" and \ref hd_t::sub_vendor "sub_vendor.name" now.
-
-    <li>\ref hd_t::sub_device "sub_device" is a struct replacing sub_dev and sub_dev_name.
-      Use \ref hd_t::sub_device "sub_device.id" and \ref hd_t::sub_device "sub_device.name" now.
-
-    <li>\ref hd_t::revision "revision" is a struct replacing rev and rev_name.
-      Use \ref hd_t::revision "revision.id" and \ref hd_t::revision "revision.name" now.
-
-    <li>\ref hd_t::compat_vendor "compat_vendor" is a struct replacing compat_vend.
-      Use \ref hd_t::compat_vendor "compat_vendor.id" now.
-
-    <li>\ref hd_t::compat_device "compat_device" is a struct replacing compat_dev.
-      Use \ref hd_t::compat_device "compat_device.id" now.
-
-    </ul>
-
-  <li>interface functions removed
-
-    <ul>
-
-    <li>hd_bus_name is gone. Use \ref hd_t::bus "bus.name" instead.
-
-    <li>hd_class_name is gone. Use \ref hd_t::base_class "base_class.name",
-      \ref hd_t::sub_class "sub_class.name" or \ref hd_t::prog_if "prog_if.name" instead.
-
-    <li>hd_vendor_name is gone. Use \ref hd_t::vendor "vendor.name" instead.
-
-    <li>hd_device_name is gone. Use \ref hd_t::device "device.name" instead.
-
-    <li>hd_sub_device_name is gone. Use \ref hd_t::sub_device "sub_device.name" instead.
-
-    <li>hd_find_device_by_name is gone.
-
-    </ul>
-
-</ul>
-
-<hr>
-
-*/
-
diff --git a/src/hwinfo/doc/libhd.doxy b/src/hwinfo/doc/libhd.doxy
deleted file mode 100644 (file)
index 30bc2fa..0000000
+++ /dev/null
@@ -1,898 +0,0 @@
-# Doxyfile 1.2.13.1
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
-# by quotes) that should identify the project.
-
-PROJECT_NAME           = libhd
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-# This could be handy for archiving the generated documentation or 
-# if some version control system is used.
-
-PROJECT_NUMBER         = 5.0
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-# base path where the generated documentation will be put. 
-# If a relative path is entered, it will be relative to the location 
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = libhd
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-# documentation generated by doxygen is written. Doxygen will use this 
-# information to generate all constant output in the proper language. 
-# The default language is English, other supported languages are: 
-# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, 
-# German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, 
-# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish.
-
-OUTPUT_LANGUAGE        = English
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-# documentation are documented, even if no documentation was available. 
-# Private class members and static file members will be hidden unless 
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file 
-# will be included in the documentation.
-
-EXTRACT_STATIC         = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
-# defined locally in source files will be included in the documentation. 
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-# undocumented members of documented classes, files or namespaces. 
-# If set to NO (the default) these members will be included in the 
-# various overviews, but no documentation section is generated. 
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-# undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these class will be included in the various 
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description. 
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
-# description.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited 
-# members of a class in the documentation of that class as if those members were 
-# ordinary class members. Constructors, destructors and assignment operators of 
-# the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. It is allowed to use relative paths in the argument list.
-
-STRIP_FROM_PATH        = 
-
-# The INTERNAL_DOCS tag determines if documentation 
-# that is typed after a \internal command is included. If the tag is set 
-# to NO (the default) then the documentation will be excluded. 
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-# doxygen to hide any special comment blocks from generated source code 
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower case letters. If set to YES upper case letters are also 
-# allowed. This is useful if you have classes or files whose names only differ 
-# in case and if your file system supports case sensitive file names. Windows 
-# users are adviced to set this option to NO.
-
-CASE_SENSE_NAMES       = YES
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
-# (but less readable) file names. This can be useful is your file systems 
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-# will show members with their full class and namespace scopes in the 
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put list of the files that are included by a file in the documentation 
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments  will behave just like the Qt-style comments (thus requiring an 
-# explict @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF      = YES
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
-# reimplements.
-
-INHERIT_DOCS           = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-# will sort the (detailed) documentation of file and class members 
-# alphabetically by member name. If set to NO the members will appear in 
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 8
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or 
-# disable (NO) the todo list. This list is created by putting \todo 
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or 
-# disable (NO) the test list. This list is created by putting \test 
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or 
-# disable (NO) the bug list. This list is created by putting \bug 
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# will result in a user defined paragraph with heading "Side Effects:". 
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                = 
-
-# The ENABLED_SECTIONS tag can be used to enable conditional 
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       = 
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consist of for it to appear in 
-# the documentation. If the initializer consists of more lines than specified 
-# here it will be hidden. Use a value of 0 to hide initializers completely. 
-# The appearance of the initializer of individual variables and defines in the 
-# documentation can be controlled using \showinitializer or \hideinitializer 
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
-# only. Doxygen will then generate output that is more tailored for C. 
-# For instance some of the names that are used will be different. The list 
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
-# at the bottom of the documentation of classes and structs. If set to YES the 
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated 
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are 
-# generated by doxygen. Possible values are YES and NO. If left blank 
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that 
-# doxygen can produce. The string should contain the $file, $line, and $text 
-# tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text.
-
-WARN_FORMAT            = 
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning 
-# and error messages should be written. If left blank the output is written 
-# to stderr.
-
-WARN_LOGFILE           = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain 
-# documented source files. You may enter file names like "myfile.cpp" or 
-# directories like "/usr/src/myproject". Separate the files or directories 
-# with spaces.
-
-INPUT                  = libhd.doc ../src
-
-# If the value of the INPUT tag contains directories, you can use the 
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank the following patterns are tested: 
-# *.c *.cc *.cxx *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
-# *.h++ *.idl
-
-FILE_PATTERNS          = *.c *.h
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-# should be searched for input files as well. Possible values are YES and NO. 
-# If left blank NO is used.
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should 
-# excluded from the INPUT source files. This way you can easily exclude a 
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE                = ../src/ids
-
-# If the value of the INPUT tag contains directories, you can use the 
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories.
-
-EXCLUDE_PATTERNS       = 
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or 
-# directories that contain example code fragments that are included (see 
-# the \include command).
-
-EXAMPLE_PATH           = .
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included.
-
-EXAMPLE_PATTERNS       = *.c
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
-# searched for input files to be used with the \include or \dontinclude 
-# commands irrespective of the value of the RECURSIVE tag. 
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or 
-# directories that contain image that are included in the documentation (see 
-# the \image command).
-
-IMAGE_PATH             = 
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should 
-# invoke to filter for each input file. Doxygen will invoke the filter program 
-# by executing (via popen()) the command <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
-# input file. Doxygen will then use the output that the filter program writes 
-# to standard output.
-
-INPUT_FILTER           = 
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-# INPUT_FILTER) will be used to filter the input files when producing source 
-# files to browse.
-
-FILTER_SOURCE_FILES    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources.
-
-SOURCE_BROWSER         = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body 
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
-# then for each documented function all documented 
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default) 
-# then for each documented function all documented entities 
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-# of all compounds will be generated. Enable this if the project 
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all 
-# classes will be put under the same header in the alphabetical index. 
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = 
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard header.
-
-HTML_HEADER            = 
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard footer.
-
-HTML_FOOTER            = footer.html
-
-# The HTML_STYLESHEET tag can be used to specify a user defined cascading 
-# style sheet that is used by each HTML page. It can be used to 
-# fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet
-
-HTML_STYLESHEET        = 
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
-# files or namespaces will be aligned in HTML using tables. If set to 
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-# will be generated that can be used as input for tools like the 
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
-# controls if a separate .chi index file is generated (YES) or that 
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
-# controls whether a binary table of contents is generated (YES) or a 
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members 
-# to the contents of the Html help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
-# top of each HTML page. The value NO (the default) enables the index and 
-# the value YES disables it.
-
-DISABLE_INDEX          = NO
-
-# This tag can be used to set the number of enum values (range [1..20]) 
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that 
-# is generated for HTML Help). For this to work a browser that supports 
-# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, 
-# or Internet explorer 4.0+). Note that for large projects the tree generation 
-# can take a very long time. In such cases it is better to disable this feature. 
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-# used to set the initial width (in pixels) of the frame in which the tree 
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-# generate Latex output.
-
-GENERATE_LATEX         = YES
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = 
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-# LaTeX documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used 
-# by the printer. Possible values are: a4, a4wide, letter, legal and 
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         = 
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-# the generated latex document. The header should contain everything until 
-# the first chapter. If it is left blank doxygen will generate a 
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           = 
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-# contain links (just like the HTML output) instead of page references 
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-# plain latex in the generated Makefile. Set this option to YES to get a 
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-# command to the generated LaTeX files. This will instruct LaTeX to keep 
-# running if errors occur, instead of asking the user for help. 
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimised for Word 97 and may not look very pretty with 
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = 
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-# RTF documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-# will contain hyperlink fields. The RTF file will 
-# contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using WORD or other 
-# programs which support those fields. 
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assigments. You only have to provide 
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    = 
-
-# Set optional variables used in the generation of an rtf document. 
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = 
-
-# The MAN_EXTENSION tag determines the extension that is added to 
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = 
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
-# then it will generate one additional man file for each entity 
-# documented in the real man page(s). These additional files 
-# only source the real man page, but without them the man command 
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will 
-# generate an XML file that captures the structure of 
-# the code including all documentation. Note that this 
-# feature is still experimental and incomplete at the 
-# moment.
-
-GENERATE_XML           = NO
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
-# generate an AutoGen Definitions (see autogen.sf.net) file 
-# that captures the structure of the code including all 
-# documentation. Note that this feature is still experimental 
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-# evaluate all C-preprocessor directives found in the sources and include 
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-# names in the source code. If set to NO (the default) only conditional 
-# compilation will be performed. Macro expansion can be done in a controlled 
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-# then the macro expansion is limited to the macros specified with the 
-# PREDEFINED and EXPAND_AS_PREDEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that 
-# contain include files that are not input files but should be processed by 
-# the preprocessor.
-
-INCLUDE_PATH           = 
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-# patterns (like *.h and *.hpp) to filter out the header-files in the 
-# directories. If left blank, the patterns specified with FILE_PATTERNS will 
-# be used.
-
-INCLUDE_FILE_PATTERNS  = 
-
-# The PREDEFINED tag can be used to specify one or more macro names that 
-# are defined before the preprocessor is started (similar to the -D option of 
-# gcc). The argument of the tag is a list of macros of the form: name 
-# or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed.
-
-PREDEFINED             = 
-
-# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED      = 
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
-# doxygen's preprocessor will remove all function-like macros that are alone 
-# on a line and do not end with a semicolon. Such function macros are typically 
-# used for boiler-plate code, and will confuse the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
-#---------------------------------------------------------------------------
-
-# The TAGFILES tag can be used to specify one or more tagfiles.
-
-TAGFILES               = 
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       = 
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-# in the class index. If set to NO only the inherited external classes 
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# The PERL_PATH should be the absolute path and name of the perl script 
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or 
-# super classes. Setting the tag to NO turns the diagrams off. Note that this 
-# option is superceded by the HAVE_DOT option below. This is only a fallback. It is 
-# recommended to install and use dot, since it yield more powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-# available from the path. This tool is part of Graphviz, a graph visualization 
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = NO
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect inheritance relations. Setting this tag to YES will force the 
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect implementation dependencies (inheritance, containment, and 
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If set to YES, the inheritance and collaboration graphs will show the 
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide 
-# inheritance and usage relations if the target is undocumented 
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
-# tags are set to YES then doxygen will generate a graph for each documented 
-# file showing the direct and indirect include dependencies of the file with 
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
-# documented header file showing the documented files that directly or 
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be 
-# found. If left blank, it is assumed the dot tool can be found on the path.
-
-DOT_PATH               = 
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that 
-# contain dot files that are included in the documentation (see the 
-# \dotfile command).
-
-DOTFILE_DIRS           = 
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-
-MAX_DOT_GRAPH_WIDTH    = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT   = 1024
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-# generate a legend page explaining the meaning of the various boxes and 
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-# remove the intermedate dot files that are used to generate 
-# the various graphs.
-
-DOT_CLEANUP            = YES
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine   
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be 
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE           = NO
-
-# The CGI_NAME tag should be the name of the CGI script that 
-# starts the search engine (doxysearch) with the correct parameters. 
-# A script with this name will be generated by doxygen.
-
-CGI_NAME               = 
-
-# The CGI_URL tag should be the absolute URL to the directory where the 
-# cgi binaries are located. See the documentation of your http daemon for 
-# details.
-
-CGI_URL                = 
-
-# The DOC_URL tag should be the absolute URL to the directory where the 
-# documentation is located. If left blank the absolute path to the 
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL                = 
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the 
-# documentation is located. If left blank the directory on the local machine 
-# will be used.
-
-DOC_ABSPATH            = 
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary 
-# is installed.
-
-BIN_ABSPATH            = 
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to 
-# documentation generated for other projects. This allows doxysearch to search 
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS          = 
diff --git a/src/hwinfo/gen-hwcfg-disk.sh b/src/hwinfo/gen-hwcfg-disk.sh
deleted file mode 100755 (executable)
index c13cda6..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/bash
-#
-# gen-hwcfg-disk.sh
-#
-# Generates hwcfg file for all configured disks
-#
-
-if [ -x /sbin/ata_identify ]; then
-    ATA_ID=/sbin/ata_identify
-elif [ -x /lib/klibc/bin/ata_identify ]; then
-    ATA_ID=/lib/klibc/bin/ata_identify
-else
-    echo "ata_identify not found, please install udev"
-    exit 1
-fi
-
-hwcfg=/etc/sysconfig/hardware
-
-if [ ! -d "$hwcfg" ]; then
-    echo "No hardware configuration directory found"
-    exit 1
-fi
-
-# IDE disks first
-for ifname in /sys/block/hd*; do
-    id=$($ATA_ID /dev/${ifname##*/} 2> /dev/null)
-    if [ $?  -eq 0 ]; then
-       filename="SATA_$id"
-       echo "Generate hwcfg file for $filename"
-       echo "DEVICE=${ifname##*/}" > ${hwcfg}/hwcfg-disk-id-${filename}
-    fi
-done
-
-# SCSI disks next
-for ifname in /sys/block/sd*; do
-    if [ -d $ifname/device ]; then
-       read vendor < $ifname/device/vendor
-       if [ "$vendor" = "ATA" ]; then
-           # We need page 0x80 to get the serial number
-           page="-p 0x80"
-       else
-           page=
-       fi
-       scsi_id -g $page -s ${ifname#/sys} 2> /dev/null | while read vendor model serial; do
-           filename="${vendor}_${model}_${serial}"
-           echo "Generate hwcfg file for $filename"
-           echo "DEVICE=${ifname##*/}" > ${hwcfg}/hwcfg-disk-id-${filename}
-       done
-    fi
-done
diff --git a/src/hwinfo/getsysinfo b/src/hwinfo/getsysinfo
deleted file mode 100755 (executable)
index 1081a6b..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#! /bin/sh
-
-if [ "$1" ] ; then
-  cat <<EOF
-Usage: getsysinfo
-Collect some system data that are useful for debugging
-hardware detection bugs.
-EOF
-  exit 0
-fi
-
-# collect some system data
-
-dir=`mktemp -d /tmp/getsysinfo.XXXXXXXXXX`
-
-[ -d "$dir" ] || exit 1
-
-host=`hostname`
-[ "$host" ] || host=xxx
-
-mkdir -p "$dir/$host"
-
-for i in \
-  /proc/bus/input \
-  /proc/cpuinfo \
-  /proc/device-tree \
-  /proc/devices \
-  /proc/dma \
-  /proc/driver/nvram \
-  /proc/fb \
-  /proc/iSeries \
-  /proc/ide \
-  /proc/interrupts \
-  /proc/iomem \
-  /proc/ioports \
-  /proc/meminfo \
-  /proc/modules \
-  /proc/net/dev \
-  /proc/partitions \
-  /proc/scsi \
-  /proc/sys/dev/cdrom/info \
-  /proc/sys/dev/parport \
-  /proc/tty \
-  /proc/version \
-  /sys \
-  /var/log/boot.msg
-do
-  if [ -e "$i" ] ; then
-    echo "$i"
-    cp -a --parents "$i" "$dir/$host" 2>/dev/null
-    chmod -R u+w,a+r,a+X "$dir/$host"
-  fi
-done
-
-echo /proc/mounts
-cp --parents /proc/mounts "$dir/$host"
-
-echo -e "\n------  dmesg start  ------\n" >>"$dir/$host/var/log/boot.msg"
-dmesg >>"$dir/$host/var/log/boot.msg"
-
-file="$host.tar.gz"
-tar -C "$dir" -zcf "$dir/$file" "$host"
-
-rm -f "/tmp/$file"
-
-if [ -e "/tmp/$file" ] ; then
-  echo "Warning: /tmp/$file exists, no info written"\!
-  rm -rf "$dir"
-  exit 1
-fi
-
-ln -nf "$dir/$file" "/tmp/$file"
-
-rm -rf "$dir"
-
-echo -e "\nSystem data written to: /tmp/$file"
-
diff --git a/src/hwinfo/hwbootscan b/src/hwinfo/hwbootscan
deleted file mode 100644 (file)
index 6bcfb25..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-rm -f /var/lib/hardware/LOCK
-
-/sbin/hwscan --silent --boot --fast --isapnp --pci --block --floppy --mouse
-
-#
-# create icons for static drives
-#
-if [ -e /etc/hotplug/hotplug.subfs.functions ]; then
-  . /etc/hotplug/hotplug.subfs.functions
-  coldplug_create_subfs
-fi
-
-exit 0
diff --git a/src/hwinfo/hwbootscan.rc b/src/hwinfo/hwbootscan.rc
deleted file mode 100644 (file)
index 26484ea..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-#! /bin/sh
-# Copyright (c) 2002 SuSE GmbH Nuernberg, Germany.  All rights reserved.
-#
-# Author: Marcus Meissner <meissner@suse.de>
-#
-# /etc/init.d/hwscan
-#
-# System startup script for boot hw probing and reconfiguration
-#
-### BEGIN INIT INFO
-# Provides: hwscan
-# Required-Start:
-# X-UnitedLinux-Should-Start: hotplug kbd
-# Required-Stop:
-# Default-Start: 2 3 5
-# Default-Stop:
-# Description: Hardware scan and reconfiguration on boot.
-### END INIT INFO
-
-HWBOOTSCAN_BIN=/usr/sbin/hwbootscan
-test -x $HWBOOTSCAN_BIN || exit 5
-
-# Shell functions sourced from /etc/rc.status:
-#      rc_check         check and set local and overall rc status
-#      rc_status        check and set local and overall rc status
-#      rc_status -v     ditto but be verbose in local rc status
-#      rc_status -v -r  ditto and clear the local rc status
-#      rc_failed        set local and overall rc status to failed
-#      rc_reset         clear local rc status (overall remains)
-#      rc_exit          exit appropriate to overall rc status
-. /etc/rc.status
-
-# First reset status of this service
-rc_reset
-
-# Return values acc. to LSB for all commands but status:
-# 0 - success
-# 1 - misc error
-# 2 - invalid or excess args
-# 3 - unimplemented feature (e.g. reload)
-# 4 - insufficient privilege
-# 5 - program not installed
-# 6 - program not configured
-# 7 - program is not running
-#
-# Note that starting an already running service, stopping
-# or restarting a not-running service as well as the restart
-# with force-reload (in case signalling is not supported) are
-# considered a success.
-
-case "$1" in
-    start)
-       echo -n "Starting hardware scan on boot"
-       rc_splash "YaST"
-       [ -n "$REDIRECT" ] && exec 0<> $REDIRECT 1>&0 2>&0
-       $HWBOOTSCAN_BIN
-       rc_check
-        rc_status -v
-       ;;
-    stop)
-       rc_check
-       ;;
-    restart)
-        ## Stop the service and regardless of whether it was
-        ## running or not, start it again.
-        # Remember status and be quiet
-       rc_check
-        ;;
-    force-reload)
-        ## Signal the daemon to reload its config. Most daemons
-        ## do this on signal 1 (SIGHUP).
-        ## If it does not support it, restart.
-        # Remember status and be quiet
-       rc_check
-        ;;
-    reload)
-        ## Like force-reload, but if daemon does not support
-        ## signalling, do nothing (!)
-
-        # If it supports signalling:
-       rc_reset
-        ;;
-    status)
-        ## Check status with checkproc(8), if process is running
-        ## checkproc will return with exit status 0.
-
-        # Status has a slightly different for the status command:
-        # 0 - service running
-        # 1 - service dead, but /var/run/  pid  file exists
-        # 2 - service dead, but /var/lock/ lock file exists
-        # 3 - service not running
-
-       rc_reset
-        ;;
-    *)
-       echo "Usage: $0 {start|stop|restart|force-reload|reload|status}"
-       exit 1
-       ;;
-esac
-rc_exit
-
diff --git a/src/hwinfo/hwinfo.c b/src/hwinfo/hwinfo.c
deleted file mode 100644 (file)
index 8b32957..0000000
+++ /dev/null
@@ -1,2103 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <getopt.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include "hd.h"
-#include "hd_int.h"
-
-static int get_probe_flags(int, char **, hd_data_t *);
-static void progress2(char *, char *);
-
-// ##### temporary solution, fix it later!
-str_list_t *read_file(char *file_name, unsigned start_line, unsigned lines);
-str_list_t *search_str_list(str_list_t *sl, char *str);
-str_list_t *add_str_list(str_list_t **sl, char *str);
-char *new_str(const char *);
-
-static unsigned deb = 0;
-static char *log_file = "";
-static char *list = NULL;
-static int listplus = 0;
-
-static int test = 0;
-static int is_short = 0;
-
-static char *showconfig = NULL;
-static char *saveconfig = NULL;
-static hd_hw_item_t hw_item[100] = { };
-static int hw_items = 0;
-
-int braille_install_info(hd_data_t *hd_data);
-int x11_install_info(hd_data_t *hd_data);
-int oem_install_info(hd_data_t *hd_data);
-void dump_packages(hd_data_t *hd_data);
-
-void do_hw(hd_data_t *hd_data, FILE *f, hd_hw_item_t hw_item);
-void do_hw_multi(hd_data_t *hd_data, FILE *f, hd_hw_item_t *hw_items);
-void do_short(hd_data_t *hd_data, hd_t *hd, FILE *f);
-void do_test(hd_data_t *hd_data);
-void help(void);
-void dump_db_raw(hd_data_t *hd_data);
-void dump_db(hd_data_t *hd_data);
-void do_chroot(hd_data_t *hd_data, char *dir);
-void ask_db(hd_data_t *hd_data, char *query);
-void get_mapping(hd_data_t *hd_data);
-
-
-struct {
-  unsigned db_idx;
-  unsigned separate:1;
-  char *root;
-} opt;
-
-struct option options[] = {
-  { "special", 1, NULL, 1 },
-  { "help", 0, NULL, 'h' },
-  { "debug", 1, NULL, 'd' },
-  { "version", 0, NULL, 400 },
-  { "log", 1, NULL, 'l' },
-  { "packages", 0, NULL, 'p' },
-  { "test", 0, NULL, 300 },
-  { "format", 1, NULL, 301 },
-  { "show-config", 1, NULL, 302 },
-  { "save-config", 1, NULL, 303 },
-  { "short", 0, NULL, 304 },
-  { "fast", 0, NULL, 305 },
-  { "dump-db", 1, NULL, 306 },
-  { "dump-db-raw", 1, NULL, 307 },
-  { "separate", 0, NULL, 308 },
-  { "root", 1, NULL, 309 },
-  { "db", 1, NULL, 310 },
-  { "only", 1, NULL, 311 },
-  { "listmd", 0, NULL, 312 },
-  { "map", 0, NULL, 313 },
-  { "kernel-version", 1, NULL, 314 },
-  { "cdrom", 0, NULL, 1000 + hw_cdrom },
-  { "floppy", 0, NULL, 1000 + hw_floppy },
-  { "disk", 0, NULL, 1000 + hw_disk },
-  { "network", 0, NULL, 1000 + hw_network },
-  { "display", 0, NULL, 1000 + hw_display },
-  { "gfxcard", 0, NULL, 1000 + hw_display },
-  { "framebuffer", 0, NULL, 1000 + hw_framebuffer },
-  { "monitor", 0, NULL, 1000 + hw_monitor },
-  { "camera", 0, NULL, 1000 + hw_camera },
-  { "mouse", 0, NULL, 1000 + hw_mouse },
-  { "joystick", 0, NULL, 1000 + hw_joystick },
-  { "keyboard", 0, NULL, 1000 + hw_keyboard },
-  { "chipcard", 0, NULL, 1000 + hw_chipcard },
-  { "sound", 0, NULL, 1000 + hw_sound },
-  { "isdn", 0, NULL, 1000 + hw_isdn },
-  { "modem", 0, NULL, 1000 + hw_modem },
-  { "storage-ctrl", 0, NULL, 1000 + hw_storage_ctrl },
-  { "storage_ctrl", 0, NULL, 1000 + hw_storage_ctrl },
-  { "netcard", 0, NULL, 1000 + hw_network_ctrl },
-  { "netcards", 0, NULL, 1000 + hw_network_ctrl },     // outdated, just kept for comaptibility
-  { "network-ctrl", 0, NULL, 1000 + hw_network_ctrl },
-  { "network_ctrl", 0, NULL, 1000 + hw_network_ctrl },
-  { "printer", 0, NULL, 1000 + hw_printer },
-  { "tv", 0, NULL, 1000 + hw_tv },
-  { "dvb", 0, NULL, 1000 + hw_dvb },
-  { "scanner", 0, NULL, 1000 + hw_scanner },
-  { "braille", 0, NULL, 1000 + hw_braille },
-  { "sys", 0, NULL, 1000 + hw_sys },
-  { "bios", 0, NULL, 1000 + hw_bios },
-  { "cpu", 0, NULL, 1000 + hw_cpu },
-  { "partition", 0, NULL, 1000 + hw_partition },
-  { "usb-ctrl", 0, NULL, 1000 + hw_usb_ctrl },
-  { "usb_ctrl", 0, NULL, 1000 + hw_usb_ctrl },
-  { "usb", 0, NULL, 1000 + hw_usb },
-  { "pci", 0, NULL, 1000 + hw_pci },
-  { "isapnp", 0, NULL, 1000 + hw_isapnp },
-  { "scsi", 0, NULL, 1000 + hw_scsi },
-  { "ide", 0, NULL, 1000 + hw_ide },
-  { "bridge", 0, NULL, 1000 + hw_bridge },
-  { "hub", 0, NULL, 1000 + hw_hub },
-  { "memory", 0, NULL, 1000 + hw_memory },
-  { "manual", 0, NULL, 1000 + hw_manual },
-  { "pcmcia", 0, NULL, 1000 + hw_pcmcia },
-  { "pcmcia_ctrl", 0, NULL, 1000 + hw_pcmcia_ctrl },
-  { "ieee1394", 0, NULL, 1000 + hw_ieee1394 },
-  { "ieee1394_ctrl", 0, NULL, 1000 + hw_ieee1394_ctrl },
-  { "firewire", 0, NULL, 1000 + hw_ieee1394 },
-  { "firewire_ctrl", 0, NULL, 1000 + hw_ieee1394_ctrl },
-  { "hotplug", 0, NULL, 1000 + hw_hotplug },
-  { "hotplug_ctrl", 0, NULL, 1000 + hw_hotplug_ctrl },
-  { "zip", 0, NULL, 1000 + hw_zip },
-  { "pppoe", 0, NULL, 1000 + hw_pppoe },
-  { "dsl", 0, NULL, 1000 + hw_dsl },
-  { "wlan", 0, NULL, 1000 + hw_wlan },
-  { "redasd", 0, NULL, 1000 + hw_redasd },
-  { "block", 0, NULL, 1000 + hw_block },
-  { "tape", 0, NULL, 1000 + hw_tape },
-  { "vbe", 0, NULL, 1000 + hw_vbe },
-  { "bluetooth", 0, NULL, 1000 + hw_bluetooth },
-  { "all", 0, NULL, 2000 },
-  { "reallyall", 0, NULL, 2001 },
-  { "smp", 0, NULL, 2002 },
-  { "arch", 0, NULL, 2003 },
-  { "uml", 0, NULL, 2004 },
-  { }
-};
-
-
-/*
- * Just scan the hardware and dump all info.
- */
-int main(int argc, char **argv)
-{
-  hd_data_t *hd_data;
-  hd_t *hd;
-  FILE *f = NULL;
-  int i;
-  unsigned first_probe = 1;
-
-  hd_data = calloc(1, sizeof *hd_data);
-  hd_data->progress = isatty(1) ? progress2 : NULL;
-  hd_data->debug=~(HD_DEB_DRIVER_INFO | HD_DEB_HDDB);
-
-  for(i = 0; i < argc; i++) {
-    if(strstr(argv[i], "--") == argv[i]) break;
-  }
-
-  if(i != argc) {
-    /* new style interface */
-
-    opterr = 0;
-
-    while((i = getopt_long(argc, argv, "hd:l:p", options, NULL)) != -1) {
-      switch(i) {
-        case 1:
-          if(!strcmp(optarg, "braille")) {
-            braille_install_info(hd_data);
-          }
-          else if(!strcmp(optarg, "x11")) {
-            x11_install_info(hd_data);
-          }
-          else if(!strcmp(optarg, "oem")) {
-            oem_install_info(hd_data);
-          }
-          else {
-            help();
-            return 1;
-          }
-          break;
-
-        case 'd':
-          hd_data->debug = strtol(optarg, NULL, 0);
-          break;
-
-        case 'l':
-          log_file = optarg;
-          break;
-
-        case 'p':
-          dump_packages(hd_data);
-         break;
-
-        case 300:
-          do_test(hd_data);
-          break;
-
-        case 301:
-          hd_data->flags.dformat = strtol(optarg, NULL, 0);
-          break;
-
-        case 302:
-          showconfig = optarg;
-          break;
-
-        case 303:
-          saveconfig = optarg;
-          break;
-
-        case 304:
-          is_short = 1;
-          break;
-
-        case 305:
-          hd_data->flags.fast = 1;
-          break;
-
-        case 306:
-          opt.db_idx = strtoul(optarg, NULL, 0);
-          dump_db(hd_data);
-          break;
-
-        case 307:
-          opt.db_idx = strtoul(optarg, NULL, 0);
-          dump_db_raw(hd_data);
-          break;
-
-        case 308:
-          /* basically for debugging */
-          opt.separate = 1;
-          break;
-
-        case 309:
-          opt.root = optarg;
-          break;
-
-        case 310:
-          ask_db(hd_data, optarg);
-          break;
-
-        case 311:
-          if(*optarg) add_str_list(&hd_data->only, optarg);
-          break;
-
-        case 312:
-          hd_data->flags.list_md = 1;
-          break;
-
-        case 313:
-          get_mapping(hd_data);
-          break;
-
-        case 314:
-          if(*optarg) setenv("LIBHD_KERNELVERSION", optarg, 1);
-          break;
-
-        case 400:
-          printf("%s\n", hd_version());
-         break;
-
-        case 1000 ... 1100:
-          if(hw_items < (int) (sizeof hw_item / sizeof *hw_item) - 1)
-            hw_item[hw_items++] = i - 1000;
-          break;
-
-        case 2000:
-        case 2001:
-        case 2002:
-        case 2003:
-        case 2004:
-          if(hw_items < (int) (sizeof hw_item / sizeof *hw_item) - 1)
-            hw_item[hw_items++] = i;
-          break;
-
-        default:
-          help();
-          return 0;
-      }
-    }
-
-    if(!hw_items && is_short) hw_item[hw_items++] = 2000;      /* all */
-
-    if(hw_items >= 0 || showconfig || saveconfig) {
-      if(*log_file) {
-        if(!strcmp(log_file, "-")) {
-          f = fdopen(1, "w");
-        }
-        else {
-          f = fopen(log_file, "w+");
-        }
-      }
-
-      if(opt.root) do_chroot(hd_data, opt.root);
-
-      if(opt.separate || hw_items <= 1) {
-        for(i = 0; i < hw_items; i++) {
-          if(i) fputc('\n', f ? f : stdout);
-          do_hw(hd_data, f, hw_item[i]);
-        }
-      }
-      else {
-        hw_item[hw_items] = 0;
-        do_hw_multi(hd_data, f, hw_item);
-      }
-
-#ifndef LIBHD_TINY
-      if(showconfig) {
-        hd = hd_read_config(hd_data, showconfig);
-        if(hd) {
-          hd_dump_entry(hd_data, hd, f ? f : stdout);
-          hd = hd_free_hd_list(hd);
-        }
-        else {
-          fprintf(f ? f : stdout, "No config data: %s\n", showconfig);
-        }
-      }
-
-      if(saveconfig) {
-        for(hd = hd_data->hd; hd; hd = hd->next) {
-          if(!strcmp(hd->unique_id, saveconfig)) {
-            i = hd_write_config(hd_data, hd);
-            fprintf(f ? f : stdout, "%s: %s\n",
-              saveconfig,
-              i ? "Error writing config data" : "config saved"
-            );
-            break;
-          }
-        }
-        if(!hd) {
-          fprintf(f ? f : stdout, "No such hardware: %s\n", saveconfig);
-        }
-      }
-#endif
-
-      if(f) fclose(f);
-    }
-
-    hd_free_hd_data(hd_data);
-    free(hd_data);
-
-    return 0;
-  }
-
-  /* old style interface */
-
-  argc--; argv++;
-
-  if(argc == 1 && !strcmp(*argv, "-h")) {
-    help();
-    return 0;
-  }
-
-  do {
-    if(first_probe)                            /* only for the 1st probing */
-      hd_set_probe_feature(hd_data, pr_default);
-    else {
-      hd_clear_probe_feature(hd_data, pr_all);
-    }
-
-    if((i = get_probe_flags(argc, argv, hd_data)) < 0) return 1;
-    deb = hd_data->debug;
-    argc -= i; argv += i;
-
-    if(opt.root && first_probe) do_chroot(hd_data, opt.root);
-
-    hd_scan(hd_data);
-    if(hd_data->progress) printf("\r%64s\r", "");
-
-    first_probe = 0;
-  } while(argc);
-
-  if(*log_file) {
-    if(!strcmp(log_file, "-")) {
-      f = fdopen(1, "w");
-    }
-    else {
-      f = fopen(log_file, "w+");
-    }
-  }
-
-  if((hd_data->debug & HD_DEB_SHOW_LOG) && hd_data->log) {
-    if(*log_file) {
-      fprintf(f ? f : stdout,
-        "============ start hardware log ============\n"
-      );
-    }
-    fprintf(f ? f : stdout,
-      "============ start debug info ============\n%s=========== end debug info ============\n",
-      hd_data->log
-    );
-  }
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    hd_dump_entry(hd_data, hd, f ? f : stdout);
-  }
-
-  if(*log_file) {
-    fprintf(f ? f : stdout,
-      "============ end hardware log ============\n"
-    );
-  }
-
-  i = -1;
-  if(list) {
-    if(!strcmp(list, "cdrom")) i = hw_cdrom;
-    if(!strcmp(list, "disk")) i = hw_disk;
-    if(!strcmp(list, "floppy")) i = hw_floppy;
-    if(!strcmp(list, "network")) i = hw_network;
-    if(!strcmp(list, "display")) i = hw_display;
-    if(!strcmp(list, "monitor")) i = hw_monitor;
-    if(!strcmp(list, "mouse")) i = hw_mouse;
-    if(!strcmp(list, "keyboard")) i = hw_keyboard;
-    if(!strcmp(list, "sound")) i = hw_sound;
-    if(!strcmp(list, "isdn")) i = hw_isdn;
-    if(!strcmp(list, "dsl")) i = hw_dsl;
-    if(!strcmp(list, "modem")) i = hw_modem;
-    if(!strcmp(list, "storage_ctrl")) i = hw_storage_ctrl;
-    if(!strcmp(list, "network_ctrl")) i = hw_network_ctrl;
-    if(!strcmp(list, "netcards")) i = hw_network_ctrl;
-    if(!strcmp(list, "printer")) i = hw_printer;
-    if(!strcmp(list, "tv")) i = hw_tv;
-    if(!strcmp(list, "scanner")) i = hw_scanner;
-    if(!strcmp(list, "braille")) i = hw_braille;
-    if(!strcmp(list, "sys")) i = hw_sys;
-    if(!strcmp(list, "cpu")) i = hw_cpu;
-
-    if(i >= 0) {
-      hd = hd_list(hd_data, i, listplus, NULL);
-      printf("\n");
-      printf("-- %s list --\n", list);
-      for(; hd; hd = hd->next) hd_dump_entry(hd_data, hd, stdout);
-      printf("-- %s list end --\n", list);
-      hd = hd_free_hd_list(hd);
-    }
-  }
-
-  if(f) fclose(f);
-
-  hd_free_hd_data(hd_data);
-  free(hd_data);
-
-  return 0;
-}
-
-
-void do_hw(hd_data_t *hd_data, FILE *f, hd_hw_item_t hw_item)
-{
-  hd_t *hd, *hd0;
-  int smp = -1, uml = 0, i;
-  char *s, *t;
-  enum boot_arch b_arch;
-  enum cpu_arch c_arch;
-
-  hd0 = NULL;
-
-  switch(hw_item) {
-    case 2002:
-      smp = hd_smp_support(hd_data);
-      break;
-
-    case 2000:
-    case 2001:
-    case 2003:
-      i = -1;
-      switch((int) hw_item) {
-        case 2000: i = pr_default; break;
-        case 2001: i = pr_all; break;
-        case 2003: i = pr_cpu; break;
-      }
-      if(i != -1) {
-        hd_clear_probe_feature(hd_data, pr_all);
-        hd_set_probe_feature(hd_data, i);
-        hd_scan(hd_data);
-        hd0 = hd_data->hd;
-      }
-      break;
-
-    case 2004:
-      uml = hd_is_uml(hd_data);
-      break;
-
-    default:
-      hd0 = hd_list(hd_data, hw_item, 1, NULL);
-  }
-
-  if(hd_data->progress) {
-    printf("\r%64s\r", "");
-    fflush(stdout);
-  }
-
-  if(f) {
-    if((hd_data->debug & HD_DEB_SHOW_LOG) && hd_data->log) {
-      fprintf(f,
-        "============ start hardware log ============\n"
-      );
-      fprintf(f,
-        "============ start debug info ============\n%s=========== end debug info ============\n",
-        hd_data->log
-      );
-    }
-
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      hd_dump_entry(hd_data, hd, f);
-    }
-
-    fprintf(f,
-      "============ end hardware log ============\n"
-    );
-  }
-
-  if(hw_item == 2002) {
-    fprintf(f ? f : stdout,
-      "SMP support: %s",
-      smp < 0 ? "unknown" : smp > 0 ? "yes" : "no"
-    );
-    if(smp > 0) fprintf(f ? f : stdout, " (%u cpus)", smp);
-    fprintf(f ? f : stdout, "\n");
-  }
-  else if(hw_item == 2003) {
-    c_arch = hd_cpu_arch(hd_data);
-    b_arch = hd_boot_arch(hd_data);
-
-    s = t = "Unknown";
-    switch(c_arch) {
-      case arch_unknown:
-        break;
-      case arch_intel:
-        s = "X86 (32)";
-        break;
-      case arch_alpha:
-        s = "Alpha";
-        break;
-      case arch_sparc:
-        s = "Sparc (32)";
-        break;
-      case arch_sparc64:
-        s = "UltraSparc (64)";
-        break;
-      case arch_ppc:
-        s = "PowerPC";
-        break;
-      case arch_ppc64:
-        s = "PowerPC (64)";
-        break;
-      case arch_68k:
-        s = "68k";
-        break;
-      case arch_ia64:
-        s = "IA-64";
-        break;
-      case arch_s390:
-        s = "S390";
-        break;
-      case arch_s390x:
-        s = "S390x";
-        break;
-      case arch_arm:
-        s = "ARM";
-        break;
-      case arch_mips:
-        s = "MIPS";
-        break;
-      case arch_x86_64:
-        s = "X86_64";
-        break;
-    }
-
-    switch(b_arch) {
-      case boot_unknown:
-        break;
-      case boot_lilo:
-        t = "lilo";
-        break;
-      case boot_milo:
-        t = "milo";
-        break;
-      case boot_aboot:
-        t = "aboot";
-        break;
-      case boot_silo:
-        t = "silo";
-        break;
-      case boot_ppc:
-        t = "ppc";
-        break;
-      case boot_elilo:
-        t = "elilo";
-        break;
-      case boot_s390:
-        t = "s390";
-        break;
-      case boot_mips:
-        t = "mips";
-        break;
-      case boot_grub:
-        t = "grub";
-        break;
-    }
-
-    fprintf(f ? f : stdout, "Arch: %s/%s\n", s, t);
-  }
-  else if(hw_item == 2004) {
-    fprintf(f ? f : stdout, "UML: %s\n", uml ? "yes" : "no");
-  }
-  else {
-    if(is_short) {
-      /* always to stdout */
-      do_short(hd_data, hd0, stdout);
-      if(f) do_short(hd_data, hd0, f);
-    }
-    else {
-      for(hd = hd0; hd; hd = hd->next) {
-        hd_dump_entry(hd_data, hd, f ? f : stdout);
-      }
-    }
-  }
-
-  if(hw_item == hw_display && hd0) {
-    fprintf(f ? f : stdout, "\nPrimary display adapter: #%u\n", hd_display_adapter(hd_data));
-  }
-
-  if(hd0 != hd_data->hd) hd_free_hd_list(hd0);
-}
-
-
-void do_hw_multi(hd_data_t *hd_data, FILE *f, hd_hw_item_t *hw_items)
-{
-  hd_t *hd, *hd0;
-
-  hd0 = hd_list2(hd_data, hw_items, 1);
-
-  if(hd_data->progress) {
-    printf("\r%64s\r", "");
-    fflush(stdout);
-  }
-
-  if(f) {
-    if((hd_data->debug & HD_DEB_SHOW_LOG) && hd_data->log) {
-      fprintf(f,
-        "============ start hardware log ============\n"
-      );
-      fprintf(f,
-        "============ start debug info ============\n%s=========== end debug info ============\n",
-        hd_data->log
-      );
-    }
-
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      hd_dump_entry(hd_data, hd, f);
-    }
-
-    fprintf(f,
-      "============ end hardware log ============\n"
-    );
-  }
-
-  if(is_short) {
-    /* always to stdout */
-    do_short(hd_data, hd0, stdout);
-    if(f) do_short(hd_data, hd0, f);
-  }
-  else {
-    for(hd = hd0; hd; hd = hd->next) {
-      hd_dump_entry(hd_data, hd, f ? f : stdout);
-    }
-  }
-
-  hd_free_hd_list(hd0);
-}
-
-
-void do_short(hd_data_t *hd_data, hd_t *hd, FILE *f)
-{
-#ifndef LIBHD_TINY
-  hd_hw_item_t item;
-  hd_t *hd1;
-  int i;
-  char *s;
-
-  for(item = 1; item < hw_all; item++) {
-    i = 0;
-    s = hd_hw_item_name(item);
-    if(!s) continue;
-
-    if(item == hw_sys) continue;
-
-    for(hd1 = hd; hd1; hd1 = hd1->next) {
-      if(hd1->hw_class == item) {
-        if(!i++) fprintf(f, "%s:\n", s);
-        fprintf(f, "  %-20s %s\n",
-          hd1->unix_dev_name ? hd1->unix_dev_name : "",
-          hd1->model ? hd1->model : "???"
-        );
-      }
-    }
-  }
-#endif
-}
-
-
-#if 0
-typedef struct {
-  char *vendor, *model, *driver;
-} scanner_t;
-
-static scanner_t scanner_data[] = {
-  { "Abaton", "SCAN 300/GS", "abaton" },
-  { "Abaton", "SCAN 300/S", "abaton" },
-  { "Acer", "300f", "SnapScan" },
-  { "Acer", "310s", "SnapScan" },
-  { "Acer", "610plus", "SnapScan" },
-  { "Acer", "610s", "SnapScan" },
-  { "Acer", "Prisa 1240", "SnapScan" },
-  { "Acer", "Prisa 3300", "SnapScan" },
-  { "Acer", "Prisa 4300", "SnapScan" },
-  { "Acer", "Prisa 5300", "SnapScan" },
-  { "Acer", "Prisa 620s", "SnapScan" },
-  { "Acer", "Prisa 620u", "SnapScan" },
-  { "Acer", "Prisa 620ut", "SnapScan" },
-  { "Acer", "Prisa 640bu", "SnapScan" },
-  { "Acer", "Prisa 640u", "SnapScan" },
-  { "Agfa", "Arcus II", "microtek" },
-  { "Agfa", "DuoScan", "microtek" },
-  { "Agfa", "FOCUS COLOR", "agfafocus" },
-  { "Agfa", "FOCUS GS SCANNER", "agfafocus" },
-  { "Agfa", "FOCUS II", "agfafocus" },
-  { "Agfa", "FOCUS LINEART SCANNER", "agfafocus" },
-  { "Agfa", "SnapScan 1212u", "SnapScan" },
-  { "Agfa", "SnapScan 1236s", "SnapScan" },
-  { "Agfa", "SnapScan 1236u", "SnapScan" },
-  { "Agfa", "SnapScan 300", "SnapScan" },
-  { "Agfa", "SnapScan 310", "SnapScan" },
-  { "Agfa", "SnapScan 600", "SnapScan" },
-  { "Agfa", "SnapScan e20", "SnapScan" },
-  { "Agfa", "SnapScan e25", "SnapScan" },
-  { "Agfa", "SnapScan e40", "SnapScan" },
-  { "Agfa", "SnapScan e50", "SnapScan" },
-  { "Agfa", "SnapScan e60", "SnapScan" },
-  { "Agfa", "StudioScan", "microtek" },
-  { "Agfa", "StudioScan II", "microtek" },
-  { "Agfa", "StudioScan IIsi", "microtek" },
-  { "Apple", "APPLE SCANNER", "apple" },
-  { "Apple", "COLORONESCANNER", "apple" },
-  { "Apple", "ONESCANNER", "apple" },
-  { "Artec", "A6000C", "artec" },
-  { "Artec", "A6000C PLUS", "artec" },
-  { "Artec", "AM12S", "artec" },
-  { "Artec", "AT12", "artec" },
-  { "Artec", "AT3", "artec" },
-  { "Artec", "AT6", "artec" },
-  { "Artec", "ColorOneScanner", "artec" },
-  { "Avision", "AV 620 CS", "avision" },
-  { "Avision", "AV 6240", "avision" },
-  { "Avision", "AV 630 CS", "avision" },
-  { "B&H SCSI", "COPISCAN II 2135", "bh" },
-  { "B&H SCSI", "COPISCAN II 2137", "bh" },
-  { "B&H SCSI", "COPISCAN II 2137A", "bh" },
-  { "B&H SCSI", "COPISCAN II 2138A", "bh" },
-  { "B&H SCSI", "COPISCAN II 3238", "bh" },
-  { "B&H SCSI", "COPISCAN II 3338", "bh" },
-  { "B&H SCSI", "COPISCAN II 6338", "bh" },
-  { "BlackWidow", "BW4800SP", "artec" },
-  { "Canon", "CANOSCAN 2700F", "canon" },
-  { "Canon", "CANOSCAN 300", "canon" },
-  { "Canon", "CANOSCAN 600", "canon" },
-  { "Devcom", "9636PRO", "pie" },
-  { "Devcom", "9636S", "pie" },
-  { "EDGE", "KTX-9600US", "umax" },
-  { "Epson", "ES-8500", "epson" },
-  { "Epson", "EXPRESSION 1600", "epson" },
-  { "Epson", "EXPRESSION 1680", "epson" },
-  { "Epson", "EXPRESSION 636", "epson" },
-  { "Epson", "EXPRESSION 800", "epson" },
-  { "Epson", "FILMSCAN 200", "epson" },
-  { "Epson", "GT-5500", "epson" },
-  { "Epson", "GT-7000", "epson" },
-  { "Epson", "GT-8000", "epson" },
-  { "Epson", "PERFECTION 1200PHOTO", "epson" },
-  { "Epson", "PERFECTION 1200S", "epson" },
-  { "Epson", "PERFECTION 1200U", "epson" },
-  { "Epson", "PERFECTION 1240", "epson" },
-  { "Epson", "PERFECTION 1640", "epson" },
-  { "Epson", "PERFECTION 1650", "epson" },
-  { "Epson", "PERFECTION 610", "epson" },
-  { "Epson", "PERFECTION 636S", "epson" },
-  { "Epson", "PERFECTION 636U", "epson" },
-  { "Epson", "PERFECTION 640", "epson" },
-  { "Epson", "PERFECTION1200", "epson" },
-  { "Epson", "Perfection 600", "umax" },
-  { "Escom", "Image Scanner 256", "umax" },
-  { "Escort", "Galleria 600", "umax" },
-  { "Fujitsu", "M3091DCD", "m3091" },
-  { "Fujitsu", "M3096G", "m3096g" },
-  { "Fujitsu", "SP15C", "sp15c" },
-  { "Genius", "ColorPage-HR5 Pro", "umax" },
-  { "Guillemot", "Maxi Scan A4 Deluxe", "SnapScan" },
-  { "HP", "HP OFFICEJET K SERIES", "hp" },
-  { "HP", "HP OFFICEJET V SERIES", "hp" },
-  { "HP", "HP PHOTOSMART PHOTOSCANNER", "hp" },
-  { "HP", "HP PSC 700 SERIES", "hp" },
-  { "HP", "HP PSC 900 SERIES", "hp" },
-  { "HP", "HP SCANJET 3C", "hp" },
-  { "HP", "HP SCANJET 3P", "hp" },
-  { "HP", "HP SCANJET 4100C", "hp" },
-  { "HP", "HP SCANJET 4C", "hp" },
-  { "HP", "HP SCANJET 4P", "hp" },
-  { "HP", "HP SCANJET 5200C", "hp" },
-  { "HP", "HP SCANJET 6100C", "hp" },
-  { "HP", "HP SCANJET 6200C", "hp" },
-  { "HP", "HP SCANJET 6250C", "hp" },
-  { "HP", "HP SCANJET 6300C", "hp" },
-  { "HP", "HP SCANJET 6350C", "hp" },
-  { "HP", "HP SCANJET 6390C", "hp" },
-  { "HP", "HP SCANJET IIC", "hp" },
-  { "HP", "HP SCANJET IICX", "hp" },
-  { "HP", "HP SCANJET IIP", "hp" },
-  { "HP", "HP ScanJet 5p", "hp" },
-  { "HP", "HP4200", "hp4200" },
-  { "Highscreen", "Scanboostar Premium", "umax" },
-  { "Linotype Hell", "Jade", "umax" },
-  { "Linotype Hell", "Jade2", "umax" },
-  { "Linotype Hell", "Linoscan 1400", "umax" },
-  { "Linotype Hell", "Opal", "umax" },
-  { "Linotype Hell", "Opal Ultra", "umax" },
-  { "Linotype Hell", "Saphir", "umax" },
-  { "Linotype Hell", "Saphir HiRes", "umax" },
-  { "Linotype Hell", "Saphir Ultra", "umax" },
-  { "Linotype Hell", "Saphir Ultra II", "umax" },
-  { "Linotype Hell", "Saphir2", "umax" },
-  { "Microtek", "Phantom 636", "microtek2" },
-  { "Microtek", "ScanMaker 330", "microtek2" },
-  { "Microtek", "ScanMaker 3600", "sm3600" },
-  { "Microtek", "ScanMaker 630", "microtek2" },
-  { "Microtek", "ScanMaker 636", "microtek2" },
-  { "Microtek", "ScanMaker 9600XL", "microtek2" },
-  { "Microtek", "ScanMaker E3plus", "microtek2" },
-  { "Microtek", "ScanMaker V300", "microtek2" },
-  { "Microtek", "ScanMaker V310", "microtek2" },
-  { "Microtek", "ScanMaker V600", "microtek2" },
-  { "Microtek", "ScanMaker V6USL", "microtek2" },
-  { "Microtek", "ScanMaker X6", "microtek2" },
-  { "Microtek", "ScanMaker X6EL", "microtek2" },
-  { "Microtek", "ScanMaker X6USB", "microtek2" },
-  { "Microtek", "Scanmaker 35", "microtek" },
-  { "Microtek", "Scanmaker 35t+", "microtek" },
-  { "Microtek", "Scanmaker 45t", "microtek" },
-  { "Microtek", "Scanmaker 600G", "microtek" },
-  { "Microtek", "Scanmaker 600G S", "microtek" },
-  { "Microtek", "Scanmaker 600GS", "microtek" },
-  { "Microtek", "Scanmaker 600S", "microtek" },
-  { "Microtek", "Scanmaker 600Z", "microtek" },
-  { "Microtek", "Scanmaker 600Z S", "microtek" },
-  { "Microtek", "Scanmaker 600ZS", "microtek" },
-  { "Microtek", "Scanmaker E2", "microtek" },
-  { "Microtek", "Scanmaker E3", "microtek" },
-  { "Microtek", "Scanmaker E6", "microtek" },
-  { "Microtek", "Scanmaker II", "microtek" },
-  { "Microtek", "Scanmaker IIG", "microtek" },
-  { "Microtek", "Scanmaker IIHR", "microtek" },
-  { "Microtek", "Scanmaker III", "microtek" },
-  { "Microtek", "Scanmaker IISP", "microtek" },
-  { "Microtek", "SlimScan C6", "microtek2" },
-  { "Mustek", "1200 CU", "mustek_usb" },
-  { "Mustek", "1200 CU Plus", "mustek_usb" },
-  { "Mustek", "1200 UB", "mustek_usb" },
-  { "Mustek", "600 CU", "mustek_usb" },
-  { "Mustek", "Paragon 1200 A3 Pro", "mustek" },
-  { "Mustek", "Paragon 1200 III SP", "mustek" },
-  { "Mustek", "Paragon 1200 LS", "mustek" },
-  { "Mustek", "Paragon 1200 SP Pro", "mustek" },
-  { "Mustek", "Paragon 600 II CD", "mustek" },
-  { "Mustek", "Paragon 800 II SP", "mustek" },
-  { "Mustek", "Paragon MFC-600S", "mustek" },
-  { "Mustek", "Paragon MFC-800S", "mustek" },
-  { "Mustek", "Paragon MFS-12000CX", "mustek" },
-  { "Mustek", "Paragon MFS-12000SP", "mustek" },
-  { "Mustek", "Paragon MFS-1200SP", "mustek" },
-  { "Mustek", "Paragon MFS-6000CX", "mustek" },
-  { "Mustek", "Paragon MFS-6000SP", "mustek" },
-  { "Mustek", "Paragon MFS-8000SP", "mustek" },
-  { "Mustek", "ScanExpress 12000SP", "mustek" },
-  { "Mustek", "ScanExpress 12000SP Plus", "mustek" },
-  { "Mustek", "ScanExpress 6000SP", "mustek" },
-  { "Mustek", "ScanExpress A3 SP", "mustek" },
-  { "Mustek", "ScanMagic 600 II SP", "mustek" },
-  { "Mustek", "ScanMagic 9636S", "mustek" },
-  { "Mustek", "ScanMagic 9636S Plus", "mustek" },
-  { "NEC", "PC-IN500/4C", "nec" },
-  { "Nikon", "AX-210", "umax" },
-  { "Nikon", "LS-1000", "coolscan" },
-  { "Nikon", "LS-20", "coolscan" },
-  { "Nikon", "LS-2000", "coolscan" },
-  { "Nikon", "LS-30", "coolscan" },
-  { "Pie", "9630S", "pie" },
-  { "Pie", "ScanAce 1230S", "pie" },
-  { "Pie", "ScanAce 1236S", "pie" },
-  { "Pie", "ScanAce 630S", "pie" },
-  { "Pie", "ScanAce 636S", "plustek" },
-  { "Pie", "ScanAce II", "pie" },
-  { "Pie", "ScanAce II Plus", "pie" },
-  { "Pie", "ScanAce III", "pie" },
-  { "Pie", "ScanAce III Plus", "pie" },
-  { "Pie", "ScanAce Plus", "pie" },
-  { "Pie", "ScanAce ScanMedia", "pie" },
-  { "Pie", "ScanAce ScanMedia II", "pie" },
-  { "Pie", "ScanAce V", "pie" },
-  { "Plustek", "OpticPro 19200S", "artec" },
-  { "Polaroid", "DMC", "dmc" },
-  { "Ricoh", "Ricoh IS50", "ricoh" },
-  { "Ricoh", "Ricoh IS60", "ricoh" },
-  { "Scanport", "SQ4836", "microtek2" },
-  { "Sharp", "9036 Flatbed scanner", "sharp" },
-  { "Sharp", "JX-250", "sharp" },
-  { "Sharp", "JX-320", "sharp" },
-  { "Sharp", "JX-330", "sharp" },
-  { "Sharp", "JX-350", "sharp" },
-  { "Sharp", "JX-610", "sharp" },
-  { "Siemens", "9036 Flatbed scanner", "s9036" },
-  { "Siemens", "FOCUS COLOR PLUS", "agfafocus" },
-  { "Siemens", "ST400", "st400" },
-  { "Siemens", "ST800", "st400" },
-  { "Tamarack", "Artiscan 12000C", "tamarack" },
-  { "Tamarack", "Artiscan 6000C", "tamarack" },
-  { "Tamarack", "Artiscan 8000C", "tamarack" },
-  { "Trust", "Compact Scan USB 19200", "mustek_usb" },
-  { "Trust", "Imagery 1200 SP", "mustek" },
-  { "Trust", "Imagery 4800 SP", "mustek" },
-  { "Trust", "SCSI Connect 19200", "mustek" },
-  { "Trust", "SCSI excellence series 19200", "mustek" },
-  { "UMAX", "Astra 1200S", "umax" },
-  { "UMAX", "Astra 1220S", "umax" },
-  { "UMAX", "Astra 2100S", "umax" },
-  { "UMAX", "Astra 2200", "umax" },
-  { "UMAX", "Astra 2200 S", "umax" },
-  { "UMAX", "Astra 2200 U", "umax" },
-  { "UMAX", "Astra 2400S", "umax" },
-  { "UMAX", "Astra 600S", "umax" },
-  { "UMAX", "Astra 610S", "umax" },
-  { "UMAX", "Gemini D-16", "umax" },
-  { "UMAX", "Mirage D-16L", "umax" },
-  { "UMAX", "Mirage II", "umax" },
-  { "UMAX", "Mirage IIse", "umax" },
-  { "UMAX", "PL-II", "umax" },
-  { "UMAX", "PSD", "umax" },
-  { "UMAX", "PowerLook", "umax" },
-  { "UMAX", "PowerLook 2000", "umax" },
-  { "UMAX", "PowerLook 3000", "umax" },
-  { "UMAX", "PowerLook III", "umax" },
-  { "UMAX", "Supervista S-12", "umax" },
-  { "UMAX", "UC 1200S", "umax" },
-  { "UMAX", "UC 1200SE", "umax" },
-  { "UMAX", "UC 1260", "umax" },
-  { "UMAX", "UC 630", "umax" },
-  { "UMAX", "UC 840", "umax" },
-  { "UMAX", "UG 630", "umax" },
-  { "UMAX", "UG 80", "umax" },
-  { "UMAX", "UMAX S-12", "umax" },
-  { "UMAX", "UMAX S-12G", "umax" },
-  { "UMAX", "UMAX S-6E", "umax" },
-  { "UMAX", "UMAX S-6EG", "umax" },
-  { "UMAX", "UMAX VT600", "umax" },
-  { "UMAX", "Vista S6", "umax" },
-  { "UMAX", "Vista S6E", "umax" },
-  { "UMAX", "Vista-S8", "umax" },
-  { "UMAX", "Vista-T630", "umax" },
-  { "Ultima", "A6000C", "artec" },
-  { "Ultima", "A6000C PLUS", "artec" },
-  { "Ultima", "AM12S", "artec" },
-  { "Ultima", "AT12", "artec" },
-  { "Ultima", "AT3", "artec" },
-  { "Ultima", "AT6", "artec" },
-  { "Ultima", "ColorOneScanner", "artec" },
-  { "Vobis", "HighScan", "microtek2" },
-  { "Vobis", "Scanboostar Premium", "umax" },
-  { "Vuego", "Close SnapScan 310 compatible.", "SnapScan" }
-};
-
-static char *scanner_info(hd_t *hd)
-{
-  int i;
-
-  if(!hd->vendor.name || !hd->device.name) return NULL;
-
-  for(i = 0; (unsigned) i < sizeof scanner_data / sizeof *scanner_data; i++) {
-    if(
-      !strcasecmp(scanner_data[i].vendor, hd->vendor.name) &&
-      !strcasecmp(scanner_data[i].model, hd->device.name)
-    ) {
-      return scanner_data[i].driver;
-    }
-  }
-
-  return NULL;
-}
-
-#endif
-
-void do_test(hd_data_t *hd_data)
-{
-#if 0
-  hd_t *hd, *hd0;
-  hd_res_t *res;
-  driver_info_t *di;
-  FILE *f;
-  int i, wheels, buttons;
-  unsigned u;
-  uint64_t ul;
-  char *s, *s1;
-  hd_hw_item_t item, items[] = {
-    hw_display, hw_monitor, hw_tv, hw_sound, hw_mouse, hw_disk, hw_cdrom,
-    hw_floppy, hw_modem, hw_isdn, hw_scanner, hw_camera
-  };
-
-  hd_set_probe_feature(hd_data, pr_default);
-  hd_scan(hd_data);
-
-  f = fopen("/tmp/hw_overview.log", "w");
-
-  for(i = 0; (unsigned) i < sizeof items / sizeof *items; i++) {
-    item = items[i];
-    hd0 = hd_list(hd_data, item, 0, NULL);
-
-    if(!hd0) continue;
-  
-    switch(item) {
-      case hw_disk:
-        fprintf(f, "Disk\n");
-        for(hd = hd0; hd; hd = hd->next) {
-          u = 0;
-          for(res = hd->res; res; res = res->next) {
-            if(res->any.type == res_size && res->size.unit == size_unit_sectors) {
-              ul = (uint64_t) res->size.val1 * (res->size.val2 ?: 0x200);
-              u = ((ul >> 29) + 1) >> 1;
-            }
-          }
-          s = hd->bus.name;
-          fprintf(f, "  %s", hd->model);
-          if(u) {
-            fprintf(f, " (");
-            if(s) fprintf(f, "%s, ", s);
-            fprintf(f, "%u GB)", u);
-          }
-          fprintf(f, "\n");
-        }
-        fprintf(f, "\n");
-        break;
-
-      case hw_cdrom:
-        fprintf(f, "CD-ROM\n");
-        for(hd = hd0; hd; hd = hd->next) {
-          s = hd->bus.name;
-          fprintf(f, "  %s (", hd->model);
-          if(s) fprintf(f, "%s, ", s);
-          fprintf(f, "%s)", hd->prog_if.name ?: "CD-ROM");
-          fprintf(f, "\n");
-        }
-        fprintf(f, "\n");
-        break;
-
-      case hw_monitor:
-        fprintf(f, "Monitor\n");
-        for(hd = hd0; hd; hd = hd->next) {
-          s = hd->model;
-          if(!strcmp(hd->unique_id, "rdCR.EY_qmtb9YY0")) s = "not detected";
-          fprintf(f, "  %s\n", s);
-        }
-        fprintf(f, "\n");
-        break;
-
-      case hw_display:
-        fprintf(f, "GFX Card\n");
-        for(hd = hd0; hd; hd = hd->next) {
-          u = 0;
-          s1 = NULL;
-          for(di = hd->driver_info; di; di = di->next) {
-            if(di->any.type == di_x11) {
-              if(!s1) s1 = di->x11.server;
-              if(di->x11.x3d && !u) {
-                s1 = di->x11.server;
-                u = 1;
-              }
-            }
-          }
-          if(!s1) {
-            s1 = "not supported";
-            u = 0;
-          }
-          fprintf(f, "  %s (%s", hd->model, s1);
-          if(u) fprintf(f, ", 3D support");
-          fprintf(f, ")");
-          fprintf(f, "\n");
-        }
-        fprintf(f, "\n");
-        break;
-
-      case hw_mouse:
-        fprintf(f, "Mouse\n");
-        for(hd = hd0; hd; hd = hd->next) {
-          buttons = wheels = -1;       // make gcc happy
-          s = NULL;
-          for(di = hd->driver_info; di; di = di->next) {
-            if(di->any.type == di_mouse) {
-              buttons = di->mouse.buttons;
-              wheels = di->mouse.wheels;
-              s = di->mouse.xf86;
-              break;
-            }
-          }
-          if(!s) {
-            s = "not supported";
-            buttons = wheels = -1;
-          }
-          fprintf(f, "  %s (%s", hd->model, s);
-          if(buttons >= 0) fprintf(f, ", %d buttons", buttons);
-          if(wheels >= 0) fprintf(f, ", %d wheels", wheels);
-          fprintf(f, ")");
-          fprintf(f, "\n");
-        }
-        fprintf(f, "\n");
-        break;
-
-      case hw_tv:
-        fprintf(f, "TV Card\n");
-        for(hd = hd0; hd; hd = hd->next) {
-          s = NULL;
-          for(di = hd->driver_info; di; di = di->next) {
-            if(
-              (di->any.type == di_any || di->any.type == di_module) &&
-              di->any.hddb0 &&
-              di->any.hddb0->str
-            ) {
-              s = di->any.hddb0->str;
-              break;
-            }
-          }
-          if(!s) {
-            s = "not supported";
-          }
-          fprintf(f, "  %s (%s)\n", hd->model, s);
-        }
-        fprintf(f, "\n");
-        break;
-
-      case hw_sound:
-        fprintf(f, "Sound Card\n");
-        for(hd = hd0; hd; hd = hd->next) {
-          s = NULL;
-          for(di = hd->driver_info; di; di = di->next) {
-            if(
-              (di->any.type == di_any || di->any.type == di_module) &&
-              di->any.hddb0 &&
-              di->any.hddb0->str
-            ) {
-              s = di->any.hddb0->str;
-              break;
-            }
-          }
-          if(!s) {
-            s = "not supported";
-          }
-          fprintf(f, "  %s (%s)\n", hd->model, s);
-        }
-        fprintf(f, "\n");
-        break;
-
-      case hw_camera:
-        fprintf(f, "Digital Camera/WebCam\n");
-        for(hd = hd0; hd; hd = hd->next) {
-          fprintf(f, "  %s\n", hd->model);
-        }
-        fprintf(f, "\n");
-        break;
-
-      case hw_floppy:
-        fprintf(f, "Floppy/Zip Drive\n");
-        for(hd = hd0; hd; hd = hd->next) {
-          fprintf(f, "  %s\n", hd->model);
-        }
-        fprintf(f, "\n");
-        break;
-
-      case hw_modem:
-        fprintf(f, "Modem\n");
-        for(hd = hd0; hd; hd = hd->next) {
-          fprintf(f, "  %s\n", hd->model);
-        }
-        fprintf(f, "\n");
-        break;
-
-      case hw_isdn:
-        fprintf(f, "ISDN\n");
-        for(hd = hd0; hd; hd = hd->next) {
-          fprintf(f, "  %s (%ssupported)\n", hd->model, hd->driver_info ? "" : "not ");
-        }
-        fprintf(f, "\n");
-        break;
-
-      case hw_scanner:
-        fprintf(f, "Scanner\n");
-        for(hd = hd0; hd; hd = hd->next) {
-          s = scanner_info(hd);
-          if(!s) s = "not supported";
-          fprintf(f, "  %s (%s)\n", hd->model, s);
-        }
-        fprintf(f, "\n");
-        break;
-
-      default:
-        break;
-    }
-
-    hd_free_hd_list(hd0);
-
-  }
-
-  fclose(f);
-
-  f = fopen("/tmp/hw_detail.log", "w");
-
-  if(hd_data->log) {
-    fprintf(f,
-      "============ start detailed hardware log ============\n"
-    );
-    fprintf(f,
-      "============ start debug info ============\n%s=========== end debug info ============\n",
-      hd_data->log
-    );
-  }
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    hd_dump_entry(hd_data, hd, f);
-  }
-
-  fprintf(f,
-    "============ end detailed hardware log ============\n"
-  );
-
-  fclose(f);
-
-  fprintf(stderr, "\n");
-
-#endif
-
-#if 0
-  hd_t *hd;
-  hd_t *hd0 = NULL;
-
-  for(hd = hd_list(hd_data, hw_cdrom, 1, hd0); hd; hd = hd->next) {
-    fprintf(stderr, "cdrom: %s, %s\n", hd->unix_dev_name, hd->model);
-  }
-
-  for(hd = hd_list(hd_data, hw_cdrom, 1, hd0); hd; hd = hd->next) {
-    fprintf(stderr, "cdrom: %s, %s\n", hd->unix_dev_name, hd->model);
-  }
-#endif
-
-#if 0
-  hd_t *hd;
-
-  hd = hd_list(hd_data, hw_disk, 1, NULL);
-  hd_free_hd_list(hd);
-  hd_free_hd_data(hd_data);
-
-  hd = hd_list(hd_data, hw_cdrom, 1, NULL);
-  hd_free_hd_list(hd);
-  hd_free_hd_data(hd_data);
-
-  hd = hd_list(hd_data, hw_storage_ctrl, 1, NULL);
-  hd_free_hd_list(hd);
-  hd_free_hd_data(hd_data);
-
-  hd = hd_list(hd_data, hw_display, 1, NULL);
-  hd_free_hd_list(hd);
-  hd_free_hd_data(hd_data);
-
-#if 0
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    hd_dump_entry(hd_data, hd, stdout);
-  }
-
-  printf("%s\n", hd_data->log);
-#endif
-
-#endif
-
-#if 0
-  hd_t *hd, *hd0;
-
-  hd0 = hd_list(hd_data, hw_sound, 1, NULL);
-  hd0 = hd_list(hd_data, hw_sound, 1, NULL);
-
-  for(hd = hd0; hd; hd = hd->next) {
-    hd_dump_entry(hd_data, hd, stdout);
-  }
-
-#if 0
-  hd_data->log = free_mem(hd_data->log);
-  dump_hddb_data(hd_data, hd_data->hddb_dev, "hddb_dev, final");  
-  if(hd_data->log) printf("%s", hd_data->log);
-#endif
-
-#endif
-
-#if 0
-  hd_t *hd;
-  driver_info_t *di;
-  str_list_t *sl;
-
-  hd = hd_list(hd_data, hw_sys, 1, NULL);
-
-  for(di = hd->driver_info; di; di = di->next) {
-    if(di->any.type == di_module) {
-      for(sl = di->module.names; sl; sl = sl->next) printf("%s\n", sl->str);
-    }
-  }
-
-#endif
-}
-
-
-void help()
-{
-  fprintf(stderr,
-    "Usage: hwinfo [options]\n"
-    "Probe for hardware.\n"
-    "  --short        just a short listing\n"
-    "  --log logfile  write info to logfile\n"
-    "  --debug level  set debuglevel\n"
-    "  --version      show libhd version\n"
-    "  --dump-db n    dump hardware data base, 0: external, 1: internal\n"
-    "  --hw_item      probe for hw_item\n"
-    "  hw_item is one of:\n"
-    "    all, bios, block, bluetooth, braille, bridge, camera, cdrom, chipcard, cpu,\n"
-    "    disk, dsl, dvb, floppy, framebuffer, gfxcard, hub, ide, isapnp, isdn,\n"
-    "    joystick, keyboard, memory, modem, monitor, mouse, netcard, network,\n"
-    "    partition, pci, pcmcia, pcmcia-ctrl, pppoe, printer, scanner, scsi, smp,\n"
-    "    sound, storage-ctrl, sys, tape, tv, usb, usb-ctrl, vbe, wlan, zip\n\n"
-    "  Note: debug info is shown only in the log file. (If you specify a\n"
-    "  log file the debug level is implicitly set to a reasonable value.)\n"
-  );
-}
-
-
-/*
- * Parse command line options.
- */
-int get_probe_flags(int argc, char **argv, hd_data_t *hd_data)
-{
-  int i, j, k;
-  char *s, *t;
-  for(i = 0; i < argc; i++) {
-    s = argv[i];
-
-    if(!strcmp(s, ".")) {
-      return i + 1;
-    }
-
-    t = "debug=";
-    if(!strncmp(s, t, strlen(t))) {
-      hd_data->debug = strtol(s + strlen(t), NULL, 0);
-      continue;
-    }
-
-    t = "list=";
-    if(!strncmp(s, t, strlen(t))) {
-      list = s + strlen(t);
-      continue;
-    }
-
-    t = "list+=";
-    if(!strncmp(s, t, strlen(t))) {
-      list = s + strlen(t);
-      listplus = 1;
-      continue;
-    }
-
-    t = "log=";
-    if(!strncmp(s, t, strlen(t))) {
-      log_file = s + strlen(t);
-      continue;
-    }
-
-    t = "only=";
-    if(!strncmp(s, t, strlen(t))) {
-      add_str_list(&hd_data->only, s + strlen(t));
-      continue;
-    }
-
-    t = "root=";
-    if(!strncmp(s, t, strlen(t))) {
-      opt.root = s + strlen(t);
-      continue;
-    }
-
-    k = 1;
-    if(*s == '+')
-      s++;
-    else if(*s == '-')
-      k = 0, s++;
-
-    if((j = hd_probe_feature_by_name(s))) {
-      if(k)
-        hd_set_probe_feature(hd_data, j);
-      else
-        hd_clear_probe_feature(hd_data, j);
-      continue;
-    }
-
-    fprintf(stderr, "oops: don't know what to do with \"%s\"\n", s);
-    return -1;
-  }
-
-  return argc;
-}
-
-/*
- * A simple progress function.
- */
-void progress2(char *pos, char *msg)
-{
-  if(!test) printf("\r%64s\r", "");
-  printf("> %s: %s", pos, msg);
-  if(test) printf("\n");
-  fflush(stdout);
-}
-
-
-#define INSTALL_INF    "/etc/install.inf"
-
-int braille_install_info(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  int ok = 0;
-  char *braille = NULL;
-  char *braille_dev = NULL;
-  str_list_t *sl0, *sl;
-  FILE *f;
-
-  hd = hd_list(hd_data, hw_braille, 1, NULL);
-
-  if(hd_data->progress) {
-    printf("\r%64s\r", "");
-    fflush(stdout);
-  }
-
-  for(; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_braille &&       /* is a braille display */
-      hd->unix_dev_name &&                     /* and has a device name */
-      (braille = hd->device.name)
-    ) {
-      braille_dev = hd->unix_dev_name;
-      ok = 1;
-      break;
-    }
-  }
-
-  if(!ok) return 1;
-
-  printf("found a %s at %s\n", braille, braille_dev);
-
-  sl0 = read_file(INSTALL_INF, 0, 0);
-  f = fopen(INSTALL_INF, "w");
-  if(!f) {
-    perror(INSTALL_INF);
-    return 1;
-  }
-  
-  for(sl = sl0; sl; sl = sl->next) {
-    if(
-      strstr(sl->str, "Braille:") != sl->str &&
-      strstr(sl->str, "Brailledevice:") != sl->str
-    ) {
-      fprintf(f, "%s", sl->str);
-    }
-  }
-
-  fprintf(f, "Braille: %s\n", braille);
-  fprintf(f, "Brailledevice: %s\n", braille_dev);
-  
-  fclose(f);
-
-  return 0;
-}
-
-
-/*
- * get VGA parameter from /proc/cmdline
- */
-int get_fb_mode()
-{
-#ifndef __PPC__
-  FILE *f;
-  char buf[256], *s, *t;
-  int i, fb_mode = 0;
-
-  if((f = fopen("/proc/cmdline", "r"))) {
-    if(fgets(buf, sizeof buf, f)) {
-      t = buf;
-      while((s = strsep(&t, " "))) {
-        if(sscanf(s, "vga=%i", &i) == 1) fb_mode = i;
-        if(strstr(s, "vga=normal") == s) fb_mode = 0;
-      }
-    }
-    fclose(f);
-  }
-
-  return fb_mode > 0x10 ? fb_mode : 0;
-#else /* __PPC__ */
-  /* this is the only valid test for active framebuffer ... */
-  FILE *f = NULL;
-  int fb_mode = 0;
-  if((f = fopen("/dev/fb", "r"))) {
-    fb_mode++;
-    fclose(f);
-  }
-
-  return fb_mode;
-#endif
-}
-
-
-/*
- * read "x11i=" entry from /proc/cmdline
- */
-char *get_x11i()
-{
-  FILE *f;
-  char buf[256], *s, *t;
-  static char x11i[64] = { };
-
-  if(*x11i) return x11i;
-
-  if((f = fopen("/proc/cmdline", "r"))) {
-    if(fgets(buf, sizeof buf, f)) {
-      t = buf;
-      while((s = strsep(&t, " "))) {
-        if(sscanf(s, "x11i=%60s", x11i) == 1) break;
-      }
-    }
-    fclose(f);
-  }
-
-  return x11i;
-}
-
-
-/*
- * Assumes xf86_ver to be either "3" or "4" (or empty).
- */
-char *get_xserver(hd_data_t *hd_data, char **version, char **busid, driver_info_t **x11_driver)
-{
-  static char display[16];
-  static char xf86_ver[2];
-  static char id[32];
-  char c, *x11i = get_x11i();
-  driver_info_t *di;
-  hd_t *hd;
-
-  *x11_driver = NULL;
-
-  *display = *xf86_ver = *id = c = 0;
-  *version = xf86_ver;
-  *busid = id;
-
-  if(x11i) {
-    if(*x11i == '3' || *x11i == '4') {
-      c = *x11i;
-    }
-    else {
-      if(*x11i >= 'A' && *x11i <= 'Z') {
-        c = '3';
-      }
-      if(*x11i >= 'a' && *x11i <= 'z') {
-        c = '4';
-      }
-      if(c) {
-        strncpy(display, x11i, sizeof display - 1);
-        display[sizeof display - 1] = 0;
-      }
-    }
-  }
-
-  if(c) { xf86_ver[0] = c; xf86_ver[1] = 0; }
-
-  hd = hd_get_device_by_idx(hd_data, hd_display_adapter(hd_data));
-
-  if(hd && hd->bus.id == bus_pci)
-    sprintf(id, "%d:%d:%d", hd->slot >> 8, hd->slot & 0xff, hd->func);
-
-  if(!hd || *display) return display;
-
-  for(di = hd->driver_info; di; di = di->next) {
-    if(di->any.type == di_x11 && di->x11.server && di->x11.xf86_ver && !di->x11.x3d) {
-      if(c == 0 || c == di->x11.xf86_ver[0]) {
-        xf86_ver[0] = di->x11.xf86_ver[0];
-        xf86_ver[1] = 0;
-        strncpy(display, di->x11.server, sizeof display - 1);
-        display[sizeof display - 1] = 0;
-        *x11_driver = di;
-        break;
-      }
-    }
-  }
-
-  if(*display) return display;
-
-  if(c == 0) c = '4';  /* default to XF 4, if nothing else is known  */
-
-  xf86_ver[0] = c;
-  xf86_ver[1] = 0;
-  strcpy(display, c == '3' ? "FBDev" : "fbdev");
-
-  return display;
-}
-
-int x11_install_info(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  driver_info_t *di;
-  char *x11i;
-  int fb_mode, kbd_ok = 0;
-  unsigned yast2_color = 0;
-  char *xkbrules = NULL, *xkbmodel = NULL, *xkblayout = NULL;
-  char *xserver, *version, *busid;
-  driver_info_t *x11_driver;
-  str_list_t *sl0, *sl;
-  FILE *f;
-
-  /* get color info */
-  hd_set_probe_feature(hd_data, pr_cpu);
-  hd_set_probe_feature(hd_data, pr_prom);
-  hd_scan(hd_data);
-
-  x11i = get_x11i();
-  fb_mode = get_fb_mode();
-
-  hd_list(hd_data, hw_display, 1, NULL);
-
-  for(hd = hd_list(hd_data, hw_keyboard, 1, NULL); hd; hd = hd->next) {
-    kbd_ok = 1;
-    di = hd->driver_info;
-    if(di && di->any.type == di_kbd) {
-      xkbrules = di->kbd.XkbRules;
-      xkbmodel = di->kbd.XkbModel;
-      xkblayout = di->kbd.XkbLayout;
-      break;
-    }
-    /* don't free di */
-  }
-
-  xserver = get_xserver(hd_data, &version, &busid, &x11_driver);
-
-  switch(hd_mac_color(hd_data)) {
-    case 0x01:
-      yast2_color = 0x5a4add;
-      break;
-    case 0x04:
-      yast2_color = 0x32cd32;
-      break;
-    case 0x05:
-      yast2_color = 0xff7f50;
-      break;
-    case 0x07:
-      yast2_color = 0x000000;
-      break;
-    case 0xff:
-      yast2_color = 0x7f7f7f;
-      break;
-  }
-
-  if(hd_data->progress) {
-    printf("\r%64s\r", "");
-    fflush(stdout);
-  }
-
-  sl0 = read_file(INSTALL_INF, 0, 0);
-  f = fopen(INSTALL_INF, "w");
-  if(!f) {
-    perror(INSTALL_INF);
-    return 1;
-  }
-  
-  for(sl = sl0; sl; sl = sl->next) {
-    if(
-      strstr(sl->str, "Framebuffer:") != sl->str &&
-      strstr(sl->str, "XServer:") != sl->str &&
-      strstr(sl->str, "XVersion:") != sl->str &&
-      strstr(sl->str, "XBusID:") != sl->str &&
-      strstr(sl->str, "X11i:") != sl->str &&
-      strstr(sl->str, "Keyboard:") != sl->str &&
-      strstr(sl->str, "XkbRules:") != sl->str &&
-      strstr(sl->str, "XkbModel:") != sl->str &&
-      strstr(sl->str, "XkbLayout:") != sl->str &&
-      strstr(sl->str, "XF86Ext:") != sl->str &&
-      strstr(sl->str, "XF86Raw:") != sl->str
-    ) {
-      fprintf(f, "%s", sl->str);
-    }
-  }
-
-  fprintf(f, "Keyboard: %d\n", kbd_ok);
-  if(fb_mode) fprintf(f, "Framebuffer: 0x%04x\n", fb_mode);
-  if(x11i) fprintf(f, "X11i: %s\n", x11i);
-  if(xserver && *xserver) {
-    fprintf(f, "XServer: %s\n", xserver);
-    if(*version) fprintf(f, "XVersion: %s\n", version);
-    if(*busid) fprintf(f, "XBusID: %s\n", busid);
-  }
-  if(xkbrules && *xkbrules) fprintf(f, "XkbRules: %s\n", xkbrules);
-  if(xkbmodel && *xkbmodel) fprintf(f, "XkbModel: %s\n", xkbmodel);
-  if(xkblayout && *xkblayout) fprintf(f, "XkbLayout: %s\n", xkblayout);
-
-  if(x11_driver) {
-    for(sl = x11_driver->x11.extensions; sl; sl = sl->next) {
-      if(*sl->str) fprintf(f, "XF86Ext:   Load\t\t\"%s\"\n", sl->str);
-    }
-    for(sl = x11_driver->x11.options; sl; sl = sl->next) {
-      if(*sl->str) fprintf(f, "XF86Raw:   Option\t\"%s\"\n", sl->str);
-    }
-    for(sl = x11_driver->x11.raw; sl; sl = sl->next) {
-      if(*sl->str) fprintf(f, "XF86Raw:   %s\n", sl->str);
-    }
-  }
-
-  fclose(f);
-
-  return 0;
-}
-
-
-char *xserver3map[] =
-{
-#ifdef __i386__
-  "VGA16", "xvga16",
-  "RUSH", "xrush",
-#endif
-#if defined(__i386__) || defined(__alpha__) || defined(__ia64__)
-  "SVGA", "xsvga",
-  "3DLABS", "xglint",
-#endif
-#if defined(__i386__) || defined(__alpha__)
-  "MACH64", "xmach64",
-  "P9000", "xp9k",
-  "S3", "xs3",
-#endif
-#ifdef __alpha__
-  "TGA", "xtga",
-#endif
-#ifdef __sparc__
-  "SUNMONO", "xsunmono",
-  "SUN", "xsun",
-  "SUN24", "xsun24",
-#endif
-#if 0
-  "VMWARE", "xvmware",
-#endif
-  0, 0
-};
-
-
-void dump_packages(hd_data_t *hd_data)
-{
-  str_list_t *sl;
-  int i;
-
-  hd_data->progress = NULL;
-  hd_scan(hd_data);
-
-  sl = get_hddb_packages(hd_data);
-
-  for(i = 0; xserver3map[i]; i += 2) {
-    if (!search_str_list(sl, xserver3map[i + 1]))
-      add_str_list(&sl, new_str(xserver3map[i + 1]));
-  }
-
-  for(; sl; sl = sl->next) {
-    printf("%s\n", sl->str);
-  }
-}
-
-
-struct x11pack {
-  struct x11pack *next;
-  char *pack;
-};
-
-int oem_install_info(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  str_list_t *str;
-  str_list_t *x11packs = 0;
-  str_list_t *sl0, *sl;
-  FILE *f;
-  int pcmcia, i;
-
-  driver_info_x11_t *di, *drvinfo;
-
-  hd_set_probe_feature(hd_data, pr_pci);
-  hd_scan(hd_data);
-  pcmcia = hd_has_pcmcia(hd_data);
-
-  for(hd = hd_list(hd_data, hw_display, 1, NULL); hd; hd = hd->next) {
-    for(str = hd->requires; str; str = str->next) {
-      if(!search_str_list(x11packs, str->str)) {
-        add_str_list(&x11packs, str->str);
-      }
-    }
-    drvinfo = (driver_info_x11_t *) hd->driver_info;
-    for (di = drvinfo; di; di = (driver_info_x11_t *)di->next) {
-      if (di->type != di_x11)
-       continue;
-      if (di->xf86_ver[0] == '3') {
-        char *server = di->server;
-        if (server) {
-         for (i = 0; xserver3map[i]; i += 2)
-           if (!strcmp(xserver3map[i], server))
-             break;
-         if (xserver3map[i])
-           if (!search_str_list(x11packs, xserver3map[i + 1]))
-             add_str_list(&x11packs, xserver3map[i + 1]);
-       }
-      }
-    }
-  }
-
-  if(hd_data->progress) {
-    printf("\r%64s\r", "");
-    fflush(stdout);
-  }
-
-  sl0 = read_file(INSTALL_INF, 0, 0);
-  f = fopen(INSTALL_INF, "w");
-  if(!f) {
-    perror(INSTALL_INF);
-    return 1;
-  }
-  for(sl = sl0; sl; sl = sl->next) {
-    if(
-      strstr(sl->str, "X11Packages:") != sl->str &&
-      strstr(sl->str, "Pcmcia:") != sl->str
-    ) {
-      fprintf(f, "%s", sl->str);
-    }
-  }
-  if (x11packs) {
-    fprintf(f, "X11Packages: ");
-    for (sl = x11packs; sl; sl = sl->next) {
-      if (sl != x11packs)
-        fputc(',', f);
-      fprintf(f, "%s", sl->str);
-    }
-    fputc('\n', f);
-  }
-  if (pcmcia)
-    fprintf(f, "Pcmcia: %d\n", pcmcia);
-  fclose(f);
-  return 0;
-}
-
-
-void dump_db_raw(hd_data_t *hd_data)
-{
-  hd_data->progress = NULL;
-  hd_clear_probe_feature(hd_data, pr_all);
-  hd_scan(hd_data);
-
-  if(opt.db_idx >= sizeof hd_data->hddb2 / sizeof *hd_data->hddb2) return;
-
-  hddb_dump_raw(hd_data->hddb2[opt.db_idx], stdout);
-}
-
-
-void dump_db(hd_data_t *hd_data)
-{
-  hd_data->progress = NULL;
-  hd_clear_probe_feature(hd_data, pr_all);
-  hd_scan(hd_data);
-
-  if(opt.db_idx >= sizeof hd_data->hddb2 / sizeof *hd_data->hddb2) return;
-
-  hddb_dump(hd_data->hddb2[opt.db_idx], stdout);
-}
-
-
-void do_chroot(hd_data_t *hd_data, char *dir)
-{
-  int i;
-
-  i = chroot(dir);
-  ADD2LOG("chroot %s: %s\n", dir, i ? strerror(errno) : "ok");
-
-  if(!i) chdir("/");
-}
-
-
-void ask_db(hd_data_t *hd_data, char *query)
-{
-  hd_t *hd;
-  driver_info_t *di;
-  str_list_t *sl, *query_sl;
-  unsigned tag = 0, u, cnt;
-  char buf[256];
-
-  setenv("hwprobe", "-all", 1);
-  hd_scan(hd_data);
-
-  hd = add_hd_entry(hd_data, __LINE__, 0);
-
-  query_sl = hd_split(' ', query);
-
-  for(sl = query_sl; sl; sl = sl->next) {
-    if(!strcmp(sl->str, "pci")) { tag = TAG_PCI; continue; }
-    if(!strcmp(sl->str, "usb")) { tag = TAG_USB; continue; }
-    if(!strcmp(sl->str, "pnp")) { tag = TAG_EISA; continue; }
-    if(!strcmp(sl->str, "isapnp")) { tag = TAG_EISA; continue; }
-    if(!strcmp(sl->str, "special")) { tag = TAG_SPECIAL; continue; }
-    if(!strcmp(sl->str, "pcmcia")) { tag = TAG_PCMCIA; continue; }
-
-    if(sscanf(sl->str, "class=%i%n", &u, &cnt) >= 1 && !sl->str[cnt]) {
-      hd->base_class.id = u >> 16;
-      hd->sub_class.id = (u >> 8) & 0xff;
-      hd->prog_if.id = u & 0xff;
-      continue;
-    }
-
-    if(sscanf(sl->str, "vendor=%i%n", &u, &cnt) >= 1 && !sl->str[cnt]) {
-      hd->vendor.id = MAKE_ID(tag, u);
-      continue;
-    }
-
-    if(sscanf(sl->str, "vendor=%3s%n", buf, &cnt) >= 1 && !sl->str[cnt]) {
-      u = name2eisa_id(buf);
-      if(u) hd->vendor.id = u;
-      tag = TAG_EISA;
-      continue;
-    }
-
-    if(sscanf(sl->str, "device=%i%n", &u, &cnt) >= 1 && !sl->str[cnt]) {
-      hd->device.id = MAKE_ID(tag, u);
-      continue;
-    }
-
-    if(sscanf(sl->str, "subvendor=%i%n", &u, &cnt) >= 1 && !sl->str[cnt]) {
-      hd->sub_vendor.id = MAKE_ID(tag, u);
-      continue;
-    }
-
-    if(sscanf(sl->str, "subvendor=%3s%n", buf, &cnt) >= 1 && !sl->str[cnt]) {
-      u = name2eisa_id(buf);
-      if(u) hd->sub_vendor.id = u;
-      tag = TAG_EISA;
-      continue;
-    }
-
-    if(sscanf(sl->str, "subdevice=%i%n", &u, &cnt) >= 1 && !sl->str[cnt]) {
-      hd->sub_device.id = MAKE_ID(tag, u);
-      continue;
-    }
-
-    if(sscanf(sl->str, "revision=%i%n", &u, &cnt) >= 1 && !sl->str[cnt]) {
-      hd->revision.id = u;
-      continue;
-    }
-
-    if(sscanf(sl->str, "serial=%255s%n", buf, &cnt) >= 1 && !sl->str[cnt]) {
-      hd->serial = new_str(buf);
-      continue;
-    }
-
-  }
-
-  free_str_list(query_sl);
-
-  hddb_add_info(hd_data, hd);
-
-  for(di = hd->driver_info; di; di = di->next) {
-    if(di->any.type == di_module && di->module.modprobe) {
-      for(sl = di->module.names; sl; sl = sl->next) {
-        printf("%s%c", sl->str, sl->next ? ' ' : '\n');
-      }
-    }
-  }
-}
-
-
-int is_same_block_dev(hd_t *hd1, hd_t *hd2)
-{
-  if(!hd1 || !hd2 || hd1 == hd2) return 0;
-
-  if(
-    hd1->base_class.id != hd2->base_class.id ||
-    hd1->sub_class.id != hd2->sub_class.id
-  ) return 0;
-
-  if(
-    !hd1->model ||
-    !hd2->model ||
-    strcmp(hd1->model, hd2->model)
-  ) return 0;
-
-  if(hd1->revision.name || hd2->revision.name) {
-    if(
-      !hd1->revision.name ||
-      !hd2->revision.name ||
-      strcmp(hd1->revision.name, hd2->revision.name)
-    ) return 0;
-  }
-
-  if(hd1->serial || hd2->serial) {
-    if(
-      !hd1->serial ||
-      !hd2->serial ||
-      strcmp(hd1->serial, hd2->serial)
-    ) return 0;
-  }
-
-  return 1;
-}
-
-
-hd_t *get_same_block_dev(hd_t *hd_list, hd_t *hd, hd_status_value_t status)
-{
-  for(; hd_list; hd_list = hd_list->next) {
-    if(hd_list->status.available != status) continue;
-    if(is_same_block_dev(hd_list, hd)) return hd_list;
-  }
-
-  return NULL;
-}
-
-
-void get_mapping(hd_data_t *hd_data)
-{
-  hd_t *hd_manual, *hd, *hd2;
-  struct {
-    hd_t *hd;
-    unsigned unknown:1;
-  } map[256] = { };
-  unsigned maps = 0, u;
-  int broken, first;
-  hd_hw_item_t hw_items[] = { hw_disk, hw_cdrom, 0 };
-
-  hd_data->progress = NULL;
-
-  hd_data->flags.list_all = 1;
-
-  hd_manual = hd_list2(hd_data, hw_items, 1);
-  for(hd = hd_manual; hd && maps < sizeof map / sizeof *map; hd = hd->next) {
-    if(!hd->unix_dev_name) continue;
-
-    if(hd->status.available == status_yes) {
-      /* check if we already have an active device with the same name */
-      for(broken = u = 0; u < maps; u++) {
-        if(!strcmp(map[u].hd->unix_dev_name, hd->unix_dev_name)) {
-          map[u].unknown = 1;
-          broken = 1;
-        }
-      }
-      if(broken) continue;
-
-      /* ensure we really can tell different devices apart */
-      if(get_same_block_dev(hd_manual, hd, status_yes)) {
-        map[maps].hd = hd;
-        map[maps].unknown = 1;
-      }
-      else {
-        map[maps].hd = hd;
-      }
-      maps++;
-    }
-  }
-
-  /* ok, we have a list of all new devs */
-
-  for(u = 0; u < maps; u++) {
-    if(map[u].unknown) {
-      printf("%s\n", map[u].hd->unix_dev_name);
-    }
-    else {
-      first = 1;
-      for(hd2 = hd_manual; (hd2 = get_same_block_dev(hd2, map[u].hd, status_no)); hd2 = hd2->next) {
-        if(hd2->unix_dev_name && strcmp(map[u].hd->unix_dev_name, hd2->unix_dev_name)) {
-          printf("%s\t%s", first ? map[u].hd->unix_dev_name : "", hd2->unix_dev_name);
-          first = 0;
-        }
-      }
-      if(!first) printf("\n");
-    }
-
-  }
-
-}
-
diff --git a/src/hwinfo/hwscan.c b/src/hwinfo/hwscan.c
deleted file mode 100644 (file)
index 75e9a79..0000000
+++ /dev/null
@@ -1,625 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <getopt.h>
-
-#include "hd.h"
-#include "hd_int.h"
-
-struct option options[] = {
-  { "help", 0, NULL, 'h' },
-  { "verbose", 0, NULL, 'v' },
-  { "version", 0, NULL, 400 },
-  { "show", 1, NULL, 500 },
-  { "list", 0, NULL, 501 },
-  { "cfg", 1, NULL, 502 },
-  { "avail", 1, NULL, 503 },
-  { "need", 1, NULL, 504 },
-  { "new", 0, NULL, 505 },
-  { "fast", 0, NULL, 506 },
-  { "silent", 0, NULL, 507 },
-  { "boot", 0, NULL, 508 },
-  { "active", 1, NULL, 509 },
-  { "only", 1, NULL, 510 },
-  { "sys", 0, NULL, 1000 + hw_sys },
-  { "cpu", 0, NULL, 1000 + hw_cpu },
-  { "keyboard", 0, NULL, 1000 + hw_keyboard },
-  { "braille", 0, NULL, 1000 + hw_braille },
-  { "mouse", 0, NULL, 1000 + hw_mouse },
-  { "joystick", 0, NULL, 1000 + hw_joystick },
-  { "printer", 0, NULL, 1000 + hw_printer },
-  { "scanner", 0, NULL, 1000 + hw_scanner },
-  { "chipcard", 0, NULL, 1000 + hw_chipcard },
-  { "monitor", 0, NULL, 1000 + hw_monitor },
-  { "tv", 0, NULL, 1000 + hw_tv },
-  { "gfxcard", 0, NULL, 1000 + hw_display },
-  { "framebuffer", 0, NULL, 1000 + hw_framebuffer },
-  { "camera", 0, NULL, 1000 + hw_camera },
-  { "sound", 0, NULL, 1000 + hw_sound },
-  { "storage-ctrl", 0, NULL, 1000 + hw_storage_ctrl },
-  { "storage_ctrl", 0, NULL, 1000 + hw_storage_ctrl },
-  { "netcard", 0, NULL, 1000 + hw_network_ctrl },
-  { "network-ctrl", 0, NULL, 1000 + hw_network_ctrl },
-  { "network_ctrl", 0, NULL, 1000 + hw_network_ctrl },
-  { "isdn", 0, NULL, 1000 + hw_isdn },
-  { "modem", 0, NULL, 1000 + hw_modem },
-  { "network", 0, NULL, 1000 + hw_network },
-  { "disk", 0, NULL, 1000 + hw_disk },
-  { "partition", 0, NULL, 1000 + hw_partition },
-  { "cdrom", 0, NULL, 1000 + hw_cdrom },
-  { "floppy", 0, NULL, 1000 + hw_floppy },
-  { "update", 0, NULL, 1000 + hw_manual },
-  { "usb-ctrl", 0, NULL, 1000 + hw_usb_ctrl },
-  { "usb_ctrl", 0, NULL, 1000 + hw_usb_ctrl },
-  { "usb", 0, NULL, 1000 + hw_usb },
-  { "bios", 0, NULL, 1000 + hw_bios },
-  { "pci", 0, NULL, 1000 + hw_pci },
-  { "isapnp", 0, NULL, 1000 + hw_isapnp },
-  { "bridge", 0, NULL, 1000 + hw_bridge },
-  { "hub", 0, NULL, 1000 + hw_hub },
-  { "scsi", 0, NULL, 1000 + hw_scsi },
-  { "ide", 0, NULL, 1000 + hw_ide },
-  { "memory", 0, NULL, 1000 + hw_memory },
-  { "dvb", 0, NULL, 1000 + hw_dvb },
-  { "pcmcia", 0, NULL, 1000 + hw_pcmcia },
-  { "pcmcia_ctrl", 0, NULL, 1000 + hw_pcmcia_ctrl },
-  { "ieee1394", 0, NULL, 1000 + hw_ieee1394 },
-  { "firewire", 0, NULL, 1000 + hw_ieee1394 },
-  { "ieee1394_ctrl", 0, NULL, 1000 + hw_ieee1394_ctrl },
-  { "firewire_ctrl", 0, NULL, 1000 + hw_ieee1394_ctrl },
-  { "hotplug", 0, NULL, 1000 + hw_hotplug },
-  { "hotplug_ctrl", 0, NULL, 1000 + hw_hotplug_ctrl },
-  { "zip", 0, NULL, 1000 + hw_zip },
-  { "pppoe", 0, NULL, 1000 + hw_pppoe },
-  { "dsl", 0, NULL, 1000 + hw_dsl },
-  { "wlan", 0, NULL, 1000 + hw_wlan },
-  { "block", 0, NULL, 1000 + hw_block },
-  { "tape", 0, NULL, 1000 + hw_tape },
-  { "vbe", 0, NULL, 1000 + hw_vbe },
-  { "bluetooth", 0, NULL, 1000 + hw_bluetooth },
-  { "all", 0, NULL, 1000 + hw_all },
-  { }
-};
-
-int verbose = 0;
-hd_hw_item_t scan_item[100] = { };
-unsigned scan_items = 0;
-int found_items = 0;
-
-struct {
-  unsigned show:1;
-  unsigned scan:1;
-  unsigned list:1;
-  unsigned config_cfg:1;
-  unsigned config_avail:1;
-  unsigned config_need:1;
-  unsigned config_active:1;
-  unsigned new:1;
-  unsigned fast:1;
-  unsigned silent:1;
-  unsigned boot:1;
-  str_list_t *only;
-} opt;
-
-void help(void);
-int do_scan(hd_hw_item_t *items);
-int do_show(char *id);
-int do_list(hd_hw_item_t *items);
-int do_config(int type, char *val, char *id);
-int fast_ok(hd_hw_item_t *items);
-int has_item(hd_hw_item_t *items, hd_hw_item_t item);
-int has_hw_class(hd_t *hd, hd_hw_item_t *items);
-
-
-int main(int argc, char **argv)
-{
-  int rc = 0;
-
-#ifndef LIBHD_TINY
-
-  char *id = NULL;
-  char *config_cfg = NULL;
-  char *config_avail = NULL;
-  char *config_need = NULL;
-  char *config_active = NULL;
-  int i;
-  int ok = 0;
-  FILE *f;
-
-  opterr = 0;
-
-  while((i = getopt_long(argc, argv, "hv", options, NULL)) != -1) {
-    switch(i) {
-      case 'v':
-        verbose++;
-        break;
-
-      case 400:
-        printf("%s\n", hd_version());
-        ok = 1;
-        break;
-
-      case 500:
-        opt.show = 1;
-        id = optarg;
-        break;
-
-      case 501:
-        opt.list = 1;
-        break;
-
-      case 502:
-        opt.config_cfg = 1;
-        config_cfg = optarg;
-        break;
-
-      case 503:
-        opt.config_avail = 1;
-        config_avail = optarg;
-        break;
-
-      case 504:
-        opt.config_need = 1;
-        config_need = optarg;
-        break;
-
-      case 505:
-        opt.new = 1;
-        break;
-
-      case 506:
-        opt.fast = 1;
-        break;
-
-      case 507:
-        opt.silent = 1;
-        break;
-
-      case 508:
-        opt.boot = 1;
-        break;
-
-      case 509:
-        opt.config_active = 1;
-        config_active = optarg;
-        break;
-
-      case 510:
-        if(*optarg) add_str_list(&opt.only, optarg);
-        break;
-
-      case 1000 ... 1100:
-        opt.scan = 1;
-        if(scan_items + 1 < sizeof scan_item / sizeof *scan_item) {
-          scan_item[scan_items++] = i - 1000;
-        }
-        break;
-
-      default:
-        help();
-        return 1;
-    }
-  }
-
-  scan_item[scan_items] = 0;
-
-  if(opt.scan && !opt.list) {
-    if(argv[optind] || !scan_items) return help(), 1;
-    rc = do_scan(scan_item);
-    if(found_items) {
-      unlink(HARDWARE_DIR "/.update");         /* the old file */
-      unlink(HARDWARE_UNIQUE_KEYS "/.update"); /* so we trigger a rescan */
-      if((f = fopen(HARDWARE_UNIQUE_KEYS "/.update", "a"))) fclose(f);
-    }
-    ok = 1;
-  }
-
-  if(opt.show) {
-    do_show(id);
-    ok = 1;
-  }
-
-  if(opt.list) {
-    do_list(scan_item);
-    ok = 1;
-  }
-
-  if(opt.config_cfg) {
-    if(!argv[optind]) return help(), 1;
-    do_config(1, config_cfg, argv[optind]);
-    ok = 1;
-  }
-
-  if(opt.config_avail) {
-    if(!argv[optind]) return help(), 1;
-    do_config(2, config_avail, argv[optind]);
-    ok = 1;
-  }
-
-  if(opt.config_need) {
-    if(!argv[optind]) return help(), 1;
-    do_config(3, config_need, argv[optind]);
-    ok = 1;
-  }
-
-  if(opt.config_active) {
-    if(!argv[optind]) return help(), 1;
-    do_config(4, config_active, argv[optind]);
-    ok = 1;
-  }
-
-  if(!ok) help();
-
-#endif         /* !defined(LIBHD_TINY) */
-
-  return rc;
-}
-
-void help()
-{
-  fprintf(stderr,
-    "Usage: hwscan [options]\n"
-    "Show information about currently known hardware.\n"
-    "  --list            show list of known hardware\n"
-    "  --version         show libhd version\n"
-    "  --silent          don't show hardware config changes\n"
-    "  --boot            run only if we haven't been disabled via 'hwprobe=-scan'\n"
-    "  --cfg=state id    change 'configured' status; id is one of the\n"
-    "                    ids from 'hwscan --list'\n"
-    "                    state is one of new, no, yes\n"
-    "  --avail=state id  change 'available' status\n"
-    "  --need=state id   change 'needed' status\n"
-    "  --active=state id change 'active' status\n"
-    "  --hw_item         probe for hw_item and update status info\n"
-    "  hw_item is one of:\n"
-    "    all, bios, block, bluetooth, braille, bridge, camera, cdrom, chipcard, cpu,\n"
-    "    disk, dsl, dvb, floppy, framebuffer, gfxcard, hub, ide, isapnp, isdn,\n"
-    "    joystick, keyboard, memory, modem, monitor, mouse, netcard, network,\n"
-    "    partition, pci, pcmcia, pcmcia-ctrl, pppoe, printer, scanner, scsi, smp,\n"
-    "    sound, storage-ctrl, sys, tape, tv, usb, usb-ctrl, vbe, wlan, zip\n"
-  );
-}
-
-#ifndef LIBHD_TINY
-
-int do_scan(hd_hw_item_t *items)
-{
-  int run_config = 0;
-  hd_status_t status = { };
-  hd_data_t *hd_data;
-  hd_t *hd, *hd1;
-  int err = 0;
-
-  if(opt.fast) opt.fast = fast_ok(items);
-
-  hd_data = calloc(1, sizeof *hd_data);
-
-  if(opt.boot) {
-    /* look if we have been disabled */
-    hd_clear_probe_feature(hd_data, pr_all);
-    hd_scan(hd_data);
-    hd_set_probe_feature(hd_data, pr_scan);
-    if(!hd_probe_feature(hd_data, pr_scan)) {
-      hd_free_hd_data(hd_data);
-      free(hd_data);
-      return 0;
-    }
-  }
-
-  hd_data->only = opt.only;
-  opt.only = NULL;
-
-  hd_data->flags.list_all = 1;
-  hd_data->flags.fast = opt.fast;
-
-  hd = hd_list2(hd_data, items, 1);
-
-  if(hd) found_items = 1;
-
-  for(hd1 = hd; hd1; hd1 = hd1->next) {
-    err = hd_write_config(hd_data, hd1);
-    if(verbose >= 2) {
-      printf(
-        "write=%d %s: (cfg=%s, avail=%s, need=%s, active=%s",
-        err,
-        hd1->unique_id,
-        hd_status_value_name(hd1->status.configured),
-        hd_status_value_name(hd1->status.available),
-        hd_status_value_name(hd1->status.needed),
-        hd_status_value_name(hd1->status.active)
-      );
-      if(hd1->unix_dev_name) {
-        printf(", dev=%s", hd1->unix_dev_name);
-      }
-      printf(
-        ") %s\n",
-        hd1->model
-      );
-      
-    }
-    if(err) break;
-  }
-
-  if(err) {
-    fprintf(stderr,
-      "Error writing configuration for %s (%s)\n",
-      hd1->unique_id,
-      hd1->model
-    );
-    exit(1);
-  }
-
-  hd = hd_free_hd_list(hd);
-
-  if(opt.new) {
-    status.configured = status_new;
-  }
-  else {
-    status.reconfig = status_yes;
-  }
-
-  hd = hd_list_with_status2(hd_data, items, status);
-  if(hd) run_config = 1;
-
-  if(verbose) {
-    for(hd1 = hd; hd1; hd1 = hd1->next) {
-      printf(
-        "%s: (cfg=%s, avail=%s, need=%s, active=%s",
-        hd1->unique_id,
-        hd_status_value_name(hd1->status.configured),
-        hd_status_value_name(hd1->status.available),
-        hd_status_value_name(hd1->status.needed),
-        hd_status_value_name(hd1->status.active)
-      );
-      if(hd1->unix_dev_name) {
-        printf(", dev=%s", hd1->unix_dev_name);
-      }
-      printf(
-        ") %s\n",
-        hd1->model
-      );
-    }
-  }
-  else if(!opt.silent) {
-    for(hd1 = hd; hd1; hd1 = hd1->next) printf("%s\n", hd1->unique_id);
-  }
-
-  hd = hd_free_hd_list(hd);
-
-  hd_free_hd_data(hd_data);
-  free(hd_data);
-
-  return run_config ^ 1;
-}
-
-
-int do_show(char *id)
-{
-  hd_data_t *hd_data;
-  hd_t *hd;
-
-  hd_data = calloc(1, sizeof *hd_data);
-
-  if ( id[0] == '/' ){
-     int nr=0;
-     char *_id = 0;
-     hd_t *hd_manual;
-
-     hd_manual = hd_list(hd_data, hw_manual, 1, NULL);
-     for(hd = hd_manual; hd; hd = hd->next) {
-        if(hd->status.available != status_yes) continue;
-        if(!search_str_list(hd->unix_dev_names, id)) continue;
-       _id = hd->unique_id;
-        nr++;
-     }
-
-     if ( nr == 1 ) /* > 1 means our database is not okay */
-        hd = hd_read_config(hd_data, _id);
-  }else
-    hd = hd_read_config(hd_data, id);
-
-  if(hd) {
-    hd_data->debug = -1;
-    hd_dump_entry(hd_data, hd, stdout);
-    hd = hd_free_hd_list(hd);
-  }
-  else {
-    printf("no such hardware item: %s\n", id);
-  }
-
-  hd_free_hd_data(hd_data);
-  free(hd_data);
-
-  return 0;
-}
-
-
-int do_list(hd_hw_item_t *items)
-{
-  hd_data_t *hd_data;
-  hd_t *hd, *hd_manual;
-  char *s;
-  char status[64];
-  int i;
-
-  hd_data = calloc(1, sizeof *hd_data);
-
-  hd_manual = hd_list(hd_data, hw_manual, 1, NULL);
-
-  for(hd = hd_manual; hd; hd = hd->next) {
-    if(opt.scan && ! has_hw_class(hd, items)) continue;
-
-    strcpy(status, "(");
-
-    i = 0;
-    if(hd->status.configured && (s = hd_status_value_name(hd->status.configured))) {
-      sprintf(status + strlen(status), "%scfg=%s", i ? ", " : "", s);
-      i++;
-    }
-
-    if(hd->status.available && (s = hd_status_value_name(hd->status.available))) {
-      sprintf(status + strlen(status), "%savail=%s", i ? ", " : "", s);
-      i++;
-    }
-
-    if(hd->status.needed && (s = hd_status_value_name(hd->status.needed))) {
-      sprintf(status + strlen(status), "%sneed=%s", i ? ", " : "", s);
-      i++;
-    }
-
-    if(hd->status.active && (s = hd_status_value_name(hd->status.active))) {
-      sprintf(status + strlen(status), "%sactive=%s", i ? ", " : "", s);
-      i++;
-    }
-
-    strcat(status, ")");
-
-    s = hd_hw_item_name(hd->hw_class);
-    if(!s) s = "???";
-
-    printf("%s: %-32s %-16s %s\n", hd->unique_id, status, s, hd->model);
-    if(hd->config_string) {
-      printf("   configured as: \"%s\"\n", hd->config_string);
-    }
-  }
-
-  hd_free_hd_list(hd_manual);
-
-  hd_free_hd_data(hd_data);
-  free(hd_data);
-
-  return 0;
-}
-
-
-int do_config(int type, char *val, char *id)
-{
-  hd_data_t *hd_data;
-  hd_t *hd;
-  hd_status_value_t status = 0;
-  int i;
-  char *s;
-
-  hd_data = calloc(1, sizeof *hd_data);
-
-  if ( id[0] == '/' ){
-     int nr=0;
-     char *_id = 0;
-     hd_t *hd_manual;
-
-     hd_manual = hd_list(hd_data, hw_manual, 1, NULL);
-     for(hd = hd_manual; hd; hd = hd->next) {
-        if(hd->status.available != status_yes) continue;
-        if(!search_str_list(hd->unix_dev_names, id)) continue;
-       _id = hd->unique_id;
-        nr++;
-     }
-     if ( nr == 1 )
-        hd = hd_read_config(hd_data, _id);
-  }else
-    hd = hd_read_config(hd_data, id);
-
-  if(hd) {
-    for(i = 1; i < 8; i++) {
-      s = hd_status_value_name(i);
-      if(s && !strcmp(val, s)) {
-        status = i;
-        break;
-      }
-    }
-    if(!status) {
-      printf("invalid status: %s\n", val);
-    }
-    else {
-      switch(type) {
-        case 1:
-          hd->status.configured = status;
-          break;
-
-        case 2:
-          hd->status.available = status;
-          break;
-
-        case 3:
-          hd->status.needed = status;
-          break;
-
-        case 4:
-          hd->status.active = status;
-          break;
-      }
-      hd_write_config(hd_data, hd);
-    }
-    hd = hd_free_hd_list(hd);
-  }
-  else {
-    printf("no such hardware item: %s\n", id);
-  }
-
-  hd_free_hd_data(hd_data);
-  free(hd_data);
-
-  return 0;
-}
-
-
-/*
- * Check whether a 'fast' scan would suffice to re-check the presence
- * of all known hardware.
- */
-int fast_ok(hd_hw_item_t *items)
-{
-  hd_data_t *hd_data;
-  hd_t *hd, *hd1;
-  int ok = 1;
-
-  if(!has_item(items, hw_mouse) && !has_item(items, hw_storage_ctrl)) {
-    return 1;
-  }
-
-  hd_data = calloc(1, sizeof *hd_data);
-
-  hd_data->flags.list_all = 1;
-
-  hd = hd_list(hd_data, hw_manual, 1, NULL);
-
-  for(hd1 = hd; hd1; hd1 = hd1->next) {
-    /* serial mice */
-    if(hd1->hw_class == hw_mouse && hd1->bus.id == bus_serial) {
-      ok = 0;
-      break;
-    }
-    /* parallel zip */
-    if(hd1->hw_class == hw_storage_ctrl && hd1->bus.id == bus_parallel) {
-      ok = 0;
-      break;
-    }
-  }
-
-  hd_free_hd_data(hd_data);
-  free(hd_data);
-
-  return ok;
-}
-
-
-/* check if item is in items */
-int has_item(hd_hw_item_t *items, hd_hw_item_t item)
-{
-  while(*items) if(*items++ == item) return 1;
-
-  return 0;
-}
-
-
-/* check if one of items is in hw_class */
-int has_hw_class(hd_t *hd, hd_hw_item_t *items)
-{
-  while(*items) if(hd_is_hw_class(hd, *items++)) return 1;
-
-  return 0;
-}
-
-
-#endif         /* !defined(LIBHD_TINY) */
diff --git a/src/hwinfo/hwscand.c b/src/hwinfo/hwscand.c
deleted file mode 100644 (file)
index becc07d..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-
-/* hwscan front end
-   Copyright 2004 by SUSE (<adrian@suse.de>) */
-
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/msg.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <time.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "init_message.h"
-
-#define TIMEOUT 2
-#define LONG_TIMEOUT 0
-#define BUFFERS 1024
-
-int main( int argc, char **argv )
-{
-        int ret, i;
-       key_t key = KEY;
-       int msgid;
-       int mode = 0;
-       int dev_nr = 0;
-       int lines = 0;
-       int block, usb, firewire, pci;
-       int dev_last_state[BUFFERS];
-       int dev_counter[BUFFERS];
-       char * command_device[NR_COMMANDS][BUFFERS];
-       time_t command_device_last[NR_COMMANDS][BUFFERS];
-       time_t last;
-       char **commands;
-       char **devices;
-       char buffer[32];
-       message m;
-
-       // are we running already, maybe ?
-       {
-               do {
-                       ssize_t r;
-                       char b[1024];
-                       char link[1024];
-                       int fd = open( PID_FILE, O_RDONLY );
-                       if ( fd >= 0 && (r=read(fd,b,1023)) > 0 ){
-                               close(fd);
-                               b[r]='\0';
-                               snprintf(link, 1023, "/proc/%s/exe", b);
-                               if ( (r=readlink( link, b, 1023 )) > 0 ){
-                                       b[r]='\0';
-                                       if ( r<8 )
-                                               unlink(PID_FILE);
-                                       else if ( strcmp("/hwscand", b+strlen(b)-8) )
-                                               unlink(PID_FILE);
-                                       else
-                                               exit(1);
-                               }else
-                                       unlink(PID_FILE);
-                       }else if ( fd >= 0 )
-                               unlink(PID_FILE);
-               } while ( 0 > (ret = open( PID_FILE, O_WRONLY|O_CREAT|O_EXCL, S_IRUSR|S_IWUSR ) ) );
-               sprintf(buffer, "%d", getpid());
-               if ( ret < 0 || write(ret,buffer,strlen(buffer)) <= 0 ){
-                       perror("hwscand: unable to write pid file "PID_FILE);
-                       exit(1);
-               }
-               close(ret);
-       }
-
-       // initialize ...
-       for ( i=0; i<NR_COMMANDS; i++ ){
-               command_device[i][0] = 0;
-               command_device_last[i][0] = 1;
-       }
-
-       last=block=usb=firewire=pci=0;
-       commands = (char**) malloc( BUFFERS * sizeof(char*) );
-       devices  = (char**) malloc( BUFFERS * sizeof(char*) );
-
-       msgid = msgget(key, IPC_CREAT | 0600);
-        if (msgid < 0) {
-               perror("msgget");
-               exit(1);
-        }
-
-       while (1) {
-               if ( last || dev_nr )
-                       mode = IPC_NOWAIT;
-               else
-                       mode = 0;
-
-               if( msgrcv(msgid, &m, MESSAGE_BUFFER, 1, mode) >= 0 ){
-                       char *p = m.mtext;
-
-                       if ( p == 0 ){
-                               fprintf( stderr, "hwscand: error, zero sized message\n" );
-                       }else{
-                               if ( p[0] == 'S' && strlen(p) > 1 ){
-                                       // scan calls
-                                       char z[2];
-                                       int c;
-                                       z[0] = *(p+1);
-                                       z[1] = '\0';
-                                       c = atoi(z);
-                                       if ( c < NR_COMMANDS ){
-                                               if ( ! command_with_device[c] ){
-                                                       last = time(0L);
-                                                       if ( LONG_TIMEOUT+command_device_last[c][0] < time(0L) )
-                                                               command_device_last[c][0] = 0;
-                                               }else
-                                               for ( i=0; i<BUFFERS; i++ ){
-                                                       if ( !command_device[c][i] ){
-                                                               last = time(0L);
-                                                               command_device[c][i] = strdup(p+2);
-                                                               command_device[c][i+1] = 0;
-                                                               command_device_last[c][i] = 0;
-                                                               break;
-                                                       }else if ( !strcmp(command_device[c][i], p+2) ){
-                                                               last = time(0L);
-                                                               if ( LONG_TIMEOUT+command_device_last[c][i] < time(0L) )
-                                                                       command_device_last[c][i] = 0;
-                                                               break;
-                                                       }
-                                               }
-                                       }
-                               }
-                               if ( p[0] == 'C' && lines < BUFFERS ){
-                                       last = time(0L);
-                                       // config calls
-                                       commands[lines] = strdup(p+1);
-                                       lines++;        
-                               }
-                               if ( p[0] == 'A' && dev_nr < BUFFERS ){ 
-                                       // add scan devices
-                                       devices[dev_nr]        = strdup(p+1);
-                                       dev_last_state[dev_nr] = 0;
-                                       dev_counter[dev_nr]    = 0;
-                                       dev_nr++;
-                               }
-                               if ( p[0] == 'R' && dev_nr < BUFFERS ){ 
-                                       for ( i=0; i<dev_nr; i++ ){
-                                               if ( !strcmp(p+1, devices[i]) ){
-                                                       int j;
-                                                       free(devices[i]);
-                                                       for ( j=i; j+1<dev_nr; j++ ){
-                                                               devices[j]        = devices[j+1];
-                                                               dev_last_state[j] = dev_last_state[j+1];
-                                                               dev_counter[j]    = dev_counter[j+1];
-                                                       }
-                                                       dev_nr--;
-                                               }
-                                       }
-                               }
-                       }
-#if DEBUG
-                               printf("CALL RECEIVED %s\n", p);
-#endif
-               }else{
-                       // we do this only in scanning mode ...
-
-                       sleep(1);
-                       for ( i=0; i<dev_nr; i++ ){
-                               if (dev_counter[i]<0) continue;
-                               dev_counter[i]++;
-                               if ( dev_counter[i] > 5 ){
-                                       int fd;
-                                       char buf[MESSAGE_BUFFER];
-                                       dev_counter[i] = 0;
-                                       fd = open( devices[i], O_RDONLY );
-                                       strcpy( buf, "/sbin/hwscan --fast --partition --only=");
-                                       strcat( buf, devices[i] );
-                                       if ( fd < 0 ){
-                                               if ( dev_last_state[i] )
-                                                       system(buf);
-                                               dev_last_state[i] = 0;
-                                       }else{
-                                               if ( dev_last_state[i] == 0)
-                                                       system(buf);
-                                               dev_last_state[i] = 1;
-                                               close(fd);
-                                       }
-                               }
-                       }
-               }
-               
-               if ( last && (last+TIMEOUT <= time(0L)) ){
-                       char buf[MESSAGE_BUFFER * NR_COMMANDS];
-                       int run_really = 0;
-
-                       last=0;
-                       strcpy( buf, "/sbin/hwscan --fast --boot --silent" );
-                       for ( i=0; i<NR_COMMANDS; i++ ){
-                               if ( command_with_device[i] == 0 &&
-                                    command_device_last[i][0] == 0 ){
-                                       command_device_last[i][0] = time(0L);
-                                       strcat( buf, " --");
-                                       strcat( buf, command_args[i] );
-                                       run_really = 1;
-                               } else {
-                                       int j;
-                                       int commappended = 0;
-
-                                       for ( j=0; j<BUFFERS; j++ ){
-                                               if ( !command_device[i][j] )
-                                                       break;
-                                               if ( command_device_last[i][j] == 0 ){
-                                                       if (!commappended) {
-                                                               strcat( buf, " --");
-                                                               strcat( buf, command_args[i] );
-                                                               commappended = 1;
-                                                       }
-                                                       strcat( buf, " --only=" );
-                                                       strcat( buf, command_device[i][j] );
-                                                       command_device_last[i][j] = time(0L);
-                                                       run_really = 1;
-                                                       if (strlen(buf) > sizeof(buf) - MESSAGE_BUFFER)
-                                                               break;
-                                               }
-                                       }
-                               }
-                               if (strlen(buf) > sizeof(buf) - MESSAGE_BUFFER) {
-                                       last = time(0L);        /* call me again */
-                                       break;
-                               }
-                       }
-
-                       if ( run_really ){
-#if DEBUG
-                               printf("RUN %s\n", buf);
-#endif
-                               system(buf);
-#if DEBUG                              
-                               printf("RUN quit %s\n", buf);
-#endif
-                       }
-                       if ( lines ){
-                               for (i=0; i<lines; i++){
-#if DEBUG
-                               printf("CALL DIRECT %s\n", commands[i]);
-#endif
-                                       system(commands[i]);
-#if DEBUG
-                               printf("CALL quit %s\n", commands[i]);
-#endif
-                                       free(commands[i]);
-                               }
-                               lines=0;
-                       }
-               }
-       }
-
-       return 0;
-}
diff --git a/src/hwinfo/hwscanqueue.c b/src/hwinfo/hwscanqueue.c
deleted file mode 100644 (file)
index 6af2fc5..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-
-/* hwscan front end
-   Copyright 2004 by SUSE (<adrian@suse.de>) */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/ipc.h>
-#include <sys/msg.h>
-#include <signal.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "init_message.h"
-
-int main( int argc, char **argv )
-{
-       int ret;
-       unsigned short i;
-        key_t key = KEY;
-        int msgid;
-       message m;
-       char *device = argv[2];
-
-       if ( argc < 2 ){
-               fprintf( stderr, "help: hwscanqueue hwscan-commands\n" );
-               fprintf( stderr, "help: commands:\n" );
-               for ( i=0; i<NR_COMMANDS; i++ ){
-                       fprintf( stderr, "      --%s", command_args[i]  );
-                       if ( command_with_device[i] )
-                               fprintf( stderr, " device" );
-                       fprintf( stderr, "\n");
-               }
-               fprintf( stderr, "      --avail=yes/no id\n" );
-               fprintf( stderr, "      --scan=device\n" );
-               fprintf( stderr, "      --stop=device\n" );
-               exit(1);
-       }
-
-       if ( !strncmp("--cfg=", argv[1], 6) && argc>2 )
-               snprintf( m.mtext, MESSAGE_BUFFER, "C/sbin/hwscan %s %s", argv[1], argv[2]  );
-       else if ( !strncmp("--avail=", argv[1], 8) && argc>2 )
-               snprintf( m.mtext, MESSAGE_BUFFER, "C/sbin/hwscan %s %s", argv[1], argv[2]  );
-       else if ( !strncmp("--scan=", argv[1], 7) )
-               snprintf( m.mtext, MESSAGE_BUFFER, "A%s", argv[1]+7 );
-       else if ( !strncmp("--stop=", argv[1], 7) )
-               snprintf( m.mtext, MESSAGE_BUFFER, "R%s", argv[1]+7 );
-       else if ( !strncmp("--", argv[1], 2) ){
-               for ( i=0; i<NR_COMMANDS; i++ ){
-                       if ( !strcmp(argv[1]+2,command_args[i]) ){
-#if DEBUG
-                               printf("COMMAND %s\n", command_args[i] );
-#endif
-                               snprintf( m.mtext, MESSAGE_BUFFER, "S%d", i );
-                               if (command_with_device[i]){
-                                       if ( !device ){
-                                               fprintf(stderr, "need a device for this command\n");
-                                               exit(1);
-                                       }
-                                       strncat( m.mtext, device, MESSAGE_BUFFER-3 );
-                               }
-                               break;
-                       }
-               }
-               if ( i>=NR_COMMANDS ){
-                       fprintf(stderr, "unknown command\n");
-                       exit(1);
-               }
-       }else
-               exit(1);
-
-        if ( (msgid = msgget(key, IPC_CREAT | 0600)) < 0 ){
-               perror("unable to init.");
-                exit(1);
-        }
-       m.mtype = 1;
-       ret = msgsnd( msgid, &m, MESSAGE_BUFFER, IPC_NOWAIT);
-#if DEBUG
-       printf("SEND %s, return %d\n", m.mtext, ret );
-#endif
-
-       if ( ret < 0 )
-               perror("message send failed");
-       else{
-               // success ... start hwscand, if it is not yet running
-               ssize_t r;
-               char buffer[1024];
-               char link[1024];
-               int fd = open( PID_FILE, O_RDONLY );
-               if ( fd >= 0 && (r=read(fd,buffer,1023)) > 0 ){
-                       close(fd);
-                       buffer[r]='\0';
-                       snprintf(link, 1023, "/proc/%s/exe", buffer);
-                       if ( (r=readlink( link, buffer, 1023 )) > 0 ){
-                               buffer[r]='\0';
-                               if ( r<8 )
-                                       fd=-1;
-                               else if ( strcmp("/hwscand", buffer+strlen(buffer)-8) )
-                                       fd=-1;
-                       }else
-                               fd=-1;
-               }else
-                       fd=-1;
-
-               if ( fd < 0 ){
-                       pid_t pid;
-                       signal(SIGCHLD,SIG_IGN);
-                       pid=fork();
-                       if (pid==0){
-                               /* Change directory to allow clean shut-down */
-                               chdir("/");
-                               /* Close std fds */
-                               close(0);
-                               close(1);
-                               close(2);
-                               /* Start hwscand */
-                               execve("/sbin/hwscand", 0, 0);
-                       }
-               }
-       }
-
-       exit(ret);
-}
-
diff --git a/src/hwinfo/init_message.h b/src/hwinfo/init_message.h
deleted file mode 100644 (file)
index 1e3243c..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#define MESSAGE_BUFFER 1024
-#define KEY 8024;
-#define PID_FILE "/var/run/hwscand.pid"
-
-// WARNING NEEDS TO BE <= 9
-#define NR_COMMANDS 7
-// WARNING NEEDS TO BE <= 9
-static const char *command_args[] = { "block", "partition", "usb", "firewire", "pci", "pcmcia", "bluetooth" };
-static const int command_with_device[] = { 1, 1, 0, 0, 0, 0, 0 };
-
-typedef struct msgbuf {
-        long mtype;
-        char mtext[MESSAGE_BUFFER+1];
-} message;
-
-#define DEBUG 0
-
diff --git a/src/hwinfo/scripts/mci b/src/hwinfo/scripts/mci
deleted file mode 100755 (executable)
index b6443ed..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-#! /usr/bin/perl
-
-sub addr2line;
-
-$list = shift;
-$bin = shift;
-$ofs = shift;
-
-die "usage: mci data_file binary\n" unless -f($list);
-
-open F, $list; 
-
-while(<F>) {
-  if(/^;\s*(.+?)\s*$/) {
-    @i = split ' ', $1;
-    $i[0] = sprintf "%-24s", $i[0];
-    $i[1] = addr2line $i[1];
-    print "; ", join("\t", @i), "\n";
-    next
-  }
-  @i = split;
-
-  die "oops, format error" if @i > 3;
-
-  if(@i == 1) {
-    if($i[0] =~ /^>(\S+)/) {
-      unshift @funcs, $1;
-    }
-    elsif($i[0] =~ /<(\S+)/) {
-     if($funcs[0] eq $1) {
-       shift @funcs
-     }
-     else {
-       die "oops, strange data (line $.)\n"
-     }
-    }
-    else {
-       die "oops, format error"
-    }
-  }
-  else {
-    $func = $i[0];
-    $addr = $i[1];
-    $size = undef;
-    $size = @i == 2 ? undef : $i[2];
-
-    if(defined $size) {
-      if(exists $mem{$addr}) {
-        $x = addr2line $func;
-        $y = addr2line ${$mem{$addr}}[1];
-        print "malloc oops (line $.): mem $addr; old: $y, size ${$mem{$addr}}[0]; new: $x, size $size\n";
-      }
-      $mem{$addr} = [ $size, $func, @funcs ];
-      delete $lfree{$addr};
-    }
-    else {
-      if(!exists $mem{$addr}) {
-        $xx = "";
-        $first = 1;
-        for $f ($func, @funcs) {
-          $xx .= "<-" unless $first;
-          $first = 0; 
-          $xx .=  addr2line $f;
-        }
-        print "free oops (line $.): $addr ($xx) [last free: line $lfree{$addr}]\n";
-      }
-      delete $mem{$addr};
-      $lfree{$addr} .= " $.";
-    }
-  }
-}
-
-for (sort keys %mem) {
-  $total += oct(${$mem{$_}}[0]);
-  $cnt++;
-
-#  $x = `addr2line -s -e $bin ${$mem{$_}}[1]`;
-#  chomp $x;
-#  $x = $x =~ /\?{2}/ ? undef : "$x ";
-  $x = addr2line ${$mem{$_}}[1];
-
-  print "$_\t${$mem{$_}}[0]\t";
-  $first = 1;
-  for $f (@{$mem{$_}}[1..$#{$mem{$_}}]) {
-    print "<-" unless $first;
-    $first = 0; 
-    print addr2line $f;
-  }
-  print "\n"
-}
-
-printf "total: %u bytes in %u blocks\n", $total, $cnt;
-
-
-sub addr2line
-{
-  my ($x, $y);
-
-  return $_[0] unless $bin;
-
-  $y = sprintf "0x%x", oct($_[0]) + $ofs;
-
-  return $addr_cache{$y} if exists $addr_cache{$y};
-
-  $x = `addr2line -s -e $bin $y`;
-  chomp $x;
-  $x = $x =~ /\?{2}/ ? $_[0] : $x;
-
-  $addr_cache{$y} = $x;
-
-  return $x;
-}
-
diff --git a/src/hwinfo/src/Makefile b/src/hwinfo/src/Makefile
deleted file mode 100644 (file)
index b8e55a1..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-TOPDIR         = ..
-SUBDIRS                = hd isdn ids
-TARGETS                = touch $(LIBHD) $(LIBHD_SO)
-CLEANFILES     = $(LIBHD) $(LIBHD_D) $(LIBHD_SO) *.so *.so.* *.a
-
-.PHONY: touch
-
-include $(TOPDIR)/Makefile.common
-
-ifneq "$(findstring $(ARCH), i386 x86_64 ia64)" ""
-ifneq ($(LIBHD_BASE), libhd_tiny)
-SUBDIRS        += x86emu int10
-endif
-endif
-
-#ifeq "$(findstring $(ARCH), i386 alpha)" ""
-#SUBDIRS       := $(filter-out pnpdump, $(SUBDIRS))
-#endif
-
-$(LIBHD): $(OBJS)
-       ar r $@ $?
-       @rm -f $(LIBHD_D)
-
-ifdef SHARED_FLAGS
-$(LIBHD_SO): $(LIBHD)
-       $(CC) -shared $(SO_LIBS) -Wl,--whole-archive $(LIBHD) -Wl,--no-whole-archive \
-               -Wl,-soname=$(LIBHD_SONAME) \
-               -o $(LIBHD_SO) 
-       ln -snf $(LIBHD_NAME) $(LIBHD_SONAME)
-       ln -snf $(LIBHD_SONAME) $(LIBHD_BASE).so
-else
-$(LIBHD_SO):
-endif
-
-subdirs: touch
-
-touch:
-       @touch -r $(LIBHD) $(LIBHD_D) 2>/dev/null || true
diff --git a/src/hwinfo/src/hd/Makefile b/src/hwinfo/src/hd/Makefile
deleted file mode 100644 (file)
index b4c62b0..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-TOPDIR         = ../..
-TARGETS                = $(LIBHD_D)
-CLEANFILES     = version.h
-
-include $(TOPDIR)/Makefile.common
-
-version.h: $(TOPDIR)/VERSION
-       @echo "#define HD_VERSION_STRING \"`cat $(TOPDIR)/VERSION`\"" >$@
-
-hd.h: $(TOPDIR)/VERSION
-       @perl -pi -e "s/define\s+HD_VERSION\s+\d+/define HD_VERSION\t$(LIBHD_MAJOR_VERSION)/" $@
-
-$(LIBHD_D): $(OBJS)
-       ar r $(LIBHD) $?
diff --git a/src/hwinfo/src/hd/adb.c b/src/hwinfo/src/hd/adb.c
deleted file mode 100644 (file)
index d71e45e..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <termios.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/ioctl.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "adb.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * adb info
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#ifdef __PPC__
-
-void hd_scan_adb(hd_data_t *hd_data)
-{
-  int i;
-  unsigned u, adr = 0;
-  hd_t *hd;
-  str_list_t *sl;
-
-  if(!hd_probe_feature(hd_data, pr_adb)) return;
-
-  hd_data->module = mod_adb;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "get info");
-
-  for(sl = hd_data->klog; sl; sl = sl->next) {
-    if(sscanf(sl->str, "<4>ADB mouse at %u, %*[a-z ] %i", &u, &i) == 2 && u < 32) {
-      /* u: max 15 actually, but who cares... */
-      if(!(adr & (1 << u))) {
-        adr |= 1 << u;
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->base_class.id = bc_mouse;
-        hd->sub_class.id = sc_mou_bus;
-        hd->bus.id = bus_adb;
-        hd->slot = u;
-//        hd->func = i;
-        hd->unix_dev_name = new_str(DEV_MICE);
-
-        hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0100);
-        hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0300 + i);
-      }
-    }
-
-    if(sscanf(sl->str, "<4>ADB keyboard at %u, %*[a-z ] %i", &u, &i) == 2 && u < 32) {
-      /* u: max 15 actually, but who cares... */
-      if(!(adr & (1 << u))) {
-        adr |= 1 << u;
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->base_class.id = bc_keyboard;
-        hd->sub_class.id = 0;
-        hd->bus.id = bus_adb;
-        hd->slot = u;
-//        hd->func = i;
-//        hd->unix_dev_name = new_str(DEV_ADBMOUSE);
-
-        hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0100);
-        hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0200+i);
-      }
-    }
-  }
-}
-
-#endif /* __PPC__ */
diff --git a/src/hwinfo/src/hd/adb.h b/src/hwinfo/src/hd/adb.h
deleted file mode 100644 (file)
index de68612..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_adb(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/bios.c b/src/hwinfo/src/hd/bios.c
deleted file mode 100644 (file)
index fcdfabd..0000000
+++ /dev/null
@@ -1,1014 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <byteswap.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#if defined(__i386__) || defined (__x86_64__) || defined(__ia64__)
-#include <sys/io.h>
-#endif
-typedef unsigned long kernel_ulong_t;
-#include <linux/types.h>
-#ifdef __UCLIBC__
-#include <linux/pci.h>
-#else
-#include <sys/pci.h>
-#endif
-
-#include "hd.h"
-#include "hd_int.h"
-#include "bios.h"
-#include "smbios.h"
-#include "klog.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * bios info
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#if defined(__i386__) || defined (__x86_64__) || defined (__ia64__)
-
-static struct {
-  int width;
-  int height;
-  char *vendor;
-  char *name;
-  char *version;
-} panel_data[] = {
-  {  800,  600, "Fujitsu Siemens", "LiteLine", "LF6" },
-  { 1024,  768, "ASUSTEK", "L2000D", NULL },
-  { 1024,  768, "ASUSTeK Computer Inc.", "L8400C series Notebook PC", NULL },
-  { 1024,  768, "ASUSTeK Computer Inc.", "S5N", NULL },
-  { 1024,  768, "Acer", "TravelMate 720", NULL },
-  { 1024,  768, "COMPAL", "N30T5", NULL },
-  { 1024,  768, "Dell Computer Corporation", "Inspiron 5000", NULL },
-  { 1024,  768, "Dell Computer Corporation", "Latitude C400", NULL },
-  { 1024,  768, "Dell Computer Corporation", "Latitude C600", NULL },
-  { 1024,  768, "Dell Computer Corporation", "Latitude CPt C400GT", NULL },
-  { 1024,  768, "Hewlett-Packard", "HP OmniBook PC", "HP OmniBook 4150 B" },
-  { 1280,  800, "Hewlett-Packard", "hp compaq nx9105 (DU367T#ABD)", "03" },
-  { 1280,  800, "Hewlett-Packard", "Pavilion zv5000 (PA456EA#ABD)", "F.11" },
-#include "ibm-notebooks.h"
-  { 1400, 1050, "IBM", "73geu99", NULL },
-  { 1024,  768, "KDST", "KDS6KSUMO", NULL  },
-  { 1024,  768, "Sony Corporation", "PCG-F370(UC)", NULL },
-  { 1024,  768, "Sony Corporation", "PCG-N505SN", NULL },
-  { 1024,  768, "TOSHIBA", "S2400-103", NULL },
-  { 1280,  800, "Acer", "Aspire 1520", NULL },
-  { 1400, 1050, "Acer", "TravelMate 660", NULL },
-  { 1400, 1050, "Dell Computer Corporation", "Inspiron 8000", NULL },
-  { 1600, 1200, "Dell Computer Corporation", "Inspiron 8200", NULL },
-  { 1600, 1200, "Dell Computer Corporation", "Latitude C840", NULL }
-};
-
-#define BIOS_TEST
-
-typedef struct {
-  unsigned eax, ebx, ecx, edx, esi, edi, eip, es, iret, cli;
-} bios32_regs_t;
-
-static void read_memory(hd_data_t *hd_data, memory_range_t *mem);
-static void dump_memory(hd_data_t *hd_data, memory_range_t *mem, int sparse, char *label);
-static void get_pnp_support_status(memory_range_t *mem, bios_info_t *bt);
-static void smbios_get_info(hd_data_t *hd_data, memory_range_t *mem, bios_info_t *bt);
-static void get_fsc_info(hd_data_t *hd_data, memory_range_t *mem, bios_info_t *bt);
-static void add_panel_info(hd_data_t *hd_data, bios_info_t *bt);
-static void add_mouse_info(hd_data_t *hd_data, bios_info_t *bt);
-static unsigned char crc(unsigned char *mem, unsigned len);
-static int get_smp_info(hd_data_t *hd_data, memory_range_t *mem, smp_info_t *smp);
-static void parse_mpconfig(hd_data_t *hd_data, memory_range_t *mem, smp_info_t *smp);
-static int get_bios32_info(hd_data_t *hd_data, memory_range_t *mem, bios32_info_t *bios32);
-
-int detect_smp_bios(hd_data_t *hd_data)
-{
-  bios_info_t *bt;
-  hd_smbios_t *sm;
-  hd_t *hd;
-  int cpus;
-
-  if(!hd_data->bios_ram.data) return -1;       /* hd_scan_bios() not called */
-
-  for(bt = NULL, hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_internal &&
-      hd->sub_class.id == sc_int_bios &&
-      hd->detail &&
-      hd->detail->type == hd_detail_bios &&
-      (bt = hd->detail->bios.data)
-    ) {
-      break;
-    }
-  }
-
-  if(!bt) return -1;
-
-  cpus = 0;
-
-  /* look at smbios data in case there's no mp table */
-  if(hd_data->smbios) {
-    for(sm = hd_data->smbios; sm; sm = sm->next) {
-      if(
-        sm->any.type == sm_processor &&
-        sm->processor.pr_type.id == 3 &&       /* cpu */
-        sm->processor.cpu_status.id == 1       /* enabled */
-      ) {
-        cpus++;
-      }
-    }
-    ADD2LOG("  smp detect: mp %d cpus, smbios %d cpus\n", bt->smp.ok ? bt->smp.cpus_en : 0, cpus);
-  }
-
-  if(bt->smp.ok && bt->smp.cpus_en) cpus = bt->smp.cpus_en;
-
-  return cpus;
-}
-
-
-void hd_scan_bios(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  bios_info_t *bt;
-  char *s;
-  unsigned char *bios_ram;
-  unsigned u, u1;
-  memory_range_t mem;
-  unsigned smp_ok;
-#ifndef LIBHD_TINY
-  vbe_info_t *vbe;
-  vbe_mode_info_t *mi;
-  hd_res_t *res;
-  str_list_t *sl;
-#endif
-
-  if(!hd_probe_feature(hd_data, pr_bios)) return;
-
-  /* we better do nothing on a SGI Altix machine */
-  if(hd_is_sgi_altix(hd_data)) return;
-
-  hd_data->module = mod_bios;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "cmdline");
-
-  hd = add_hd_entry(hd_data, __LINE__, 0);
-  hd->base_class.id = bc_internal;
-  hd->sub_class.id = sc_int_bios;
-  hd->detail = new_mem(sizeof *hd->detail);
-  hd->detail->type = hd_detail_bios;
-  hd->detail->bios.data = bt = new_mem(sizeof *bt);
-
-  /*
-   * first, look for APM support
-   */
-  if((s = get_cmd_param(hd_data, 1))) {
-    if(strlen(s) >= 10) {
-      bt->apm_supported = 1;
-      bt->apm_ver = hex(s, 1);
-      bt->apm_subver = hex(s + 1, 1);
-      bt->apm_bios_flags = hex(s + 2, 2);
-      /*
-       * Bitfields for APM flags (from Ralf Brown's list):
-       * Bit(s)  Description
-       *  0      16-bit protected mode interface supported
-       *  1      32-bit protected mode interface supported
-       *  2      CPU idle call reduces processor speed
-       *  3      BIOS power management disabled
-       *  4      BIOS power management disengaged (APM v1.1)
-       *  5-7    reserved
-       */
-      bt->apm_enabled = (bt->apm_bios_flags & 8) ? 0 : 1;
-
-      bt->vbe_ver = hex(s + 4, 2);
-      bt->vbe_ver = (((bt->vbe_ver >> 4) & 0xf) << 8) + (bt->vbe_ver & 0xf);
-      bt->vbe_video_mem = hex(s + 6, 4) << 16;
-    }
-
-    s = free_mem(s);
-  }
-
-  if((s = get_cmd_param(hd_data, 2))) {
-    if(strlen(s) > 8) {
-      if(s[8] == '.') bt->lba_support = 1;
-    }
-
-    s = free_mem(s);
-  }
-
-  PROGRESS(1, 1, "apm");
-
-  if(!bt->apm_ver) {
-    str_list_t *sl0, *sl;
-
-    sl0 = read_file(PROC_APM, 0, 0);
-    if(sl0) {
-      bt->apm_supported = 1;
-      bt->apm_enabled = 1;
-      ADD2LOG("----- %s -----\n", PROC_APM);
-      for(sl = sl0; sl; sl = sl->next) {
-        ADD2LOG("  %s", sl->str);
-      }
-      ADD2LOG("----- %s end -----\n", PROC_APM);
-    }
-    free_str_list(sl0);
-  }
-
-  /*
-   * get the i/o ports for the parallel & serial interfaces from the BIOS
-   * memory area starting at 0x40:0
-   */
-  PROGRESS(2, 0, "ram");
-
-  hd_data->bios_ram.start = BIOS_RAM_START;
-  hd_data->bios_ram.size = BIOS_RAM_SIZE;
-  read_memory(hd_data, &hd_data->bios_ram);
-
-  hd_data->bios_rom.start = BIOS_ROM_START;
-  hd_data->bios_rom.size = BIOS_ROM_SIZE;
-  read_memory(hd_data, &hd_data->bios_rom);
-
-  if(hd_data->bios_ram.data) {
-    bios_ram = hd_data->bios_ram.data;
-
-    bt->ser_port0 = (bios_ram[1] << 8) + bios_ram[0];
-    bt->ser_port1 = (bios_ram[3] << 8) + bios_ram[2];
-    bt->ser_port2 = (bios_ram[5] << 8) + bios_ram[4];
-    bt->ser_port3 = (bios_ram[7] << 8) + bios_ram[6];
-
-    bt->par_port0 = (bios_ram[  9] << 8) + bios_ram[  8];
-    bt->par_port1 = (bios_ram[0xb] << 8) + bios_ram[0xa];
-    bt->par_port2 = (bios_ram[0xd] << 8) + bios_ram[0xc];
-
-    bt->led.scroll_lock = bios_ram[0x97] & 1;
-    bt->led.num_lock = (bios_ram[0x97] >> 1) & 1;
-    bt->led.caps_lock = (bios_ram[0x97] >> 2) & 1;
-    bt->led.ok = 1;
-
-    /*
-     * do some consistency checks:
-     *
-     * ports must be < 0x1000 and not appear twice
-     */
-    if(bt->ser_port0 >= 0x1000) bt->ser_port0 = 0;
-
-    if(
-      bt->ser_port1 >= 0x1000 ||
-      bt->ser_port1 == bt->ser_port0
-    ) bt->ser_port1 = 0;
-
-    if(
-      bt->ser_port2 >= 0x1000 ||
-      bt->ser_port2 == bt->ser_port0 ||
-      bt->ser_port2 == bt->ser_port1
-    ) bt->ser_port2 = 0;
-
-    if(
-      bt->ser_port3 >= 0x1000 ||
-      bt->ser_port3 == bt->ser_port0 ||
-      bt->ser_port3 == bt->ser_port1 ||
-      bt->ser_port3 == bt->ser_port2
-    ) bt->ser_port3 = 0;
-
-    if(bt->par_port0 >= 0x1000) bt->par_port0 = 0;
-
-    if(
-      bt->par_port1 >= 0x1000 ||
-      bt->par_port1 == bt->par_port0
-    ) bt->par_port1 = 0;
-
-    if(
-      bt->par_port2 >= 0x1000 ||
-      bt->par_port2 == bt->par_port0 ||
-      bt->par_port2 == bt->par_port1
-    ) bt->par_port2 = 0;
-
-    ADD2LOG("  bios: %u disks\n", bios_ram[0x75]);
-
-    bt->low_mem_size = ((bios_ram[0x14] << 8) + bios_ram[0x13]) << 10;
-
-    if(bt->low_mem_size) {
-      ADD2LOG("  bios: %uk low mem\n", bt->low_mem_size >> 10);
-    }
-
-    /* too unusual */
-    if(bt->low_mem_size >= (768 << 10) || bt->low_mem_size < (384 << 10)) {
-      bt->low_mem_size = 0;
-    }
-
-    hd_data->bios_ebda.start = hd_data->bios_ebda.size = 0;
-    hd_data->bios_ebda.data = free_mem(hd_data->bios_ebda.data);
-    u = ((bios_ram[0x0f] << 8) + bios_ram[0x0e]) << 4;
-    if(u) {
-      hd_data->bios_ebda.start = u;
-      hd_data->bios_ebda.size = 1;     /* just one byte */
-      read_memory(hd_data, &hd_data->bios_ebda);
-      if(hd_data->bios_ebda.data) {
-        u1 = hd_data->bios_ebda.data[0];
-        if(u1 > 0 && u1 <= 64) {       /* be sensible, typically only 1k */
-          u1 <<= 10;
-          if(u + u1 <= (1 << 20)) {
-            hd_data->bios_ebda.size = u1;
-            read_memory(hd_data, &hd_data->bios_ebda);
-          }
-        }
-      }
-    }
-
-    if(hd_data->bios_ebda.data) {
-      ADD2LOG(
-        "  bios: EBDA 0x%05x bytes at 0x%05x\n",
-        hd_data->bios_ebda.size, hd_data->bios_ebda.start
-      );
-    }
-  }
-
-  /*
-   * read the bios rom and look for useful things there...
-   */
-  PROGRESS(2, 0, "rom");
-
-  if(hd_data->bios_rom.data) {
-    get_pnp_support_status(&hd_data->bios_rom, bt);
-    smbios_get_info(hd_data, &hd_data->bios_rom, bt);
-    get_fsc_info(hd_data, &hd_data->bios_rom, bt);
-    add_panel_info(hd_data, bt);
-    add_mouse_info(hd_data, bt);
-  }
-
-  PROGRESS(3, 0, "smp");
-
-  smp_ok = 0;
-
-  mem = hd_data->bios_ebda;
-  smp_ok = get_smp_info(hd_data, &mem, &bt->smp);
-
-  if(!smp_ok) {
-    mem = hd_data->bios_rom;
-    if(mem.data) {
-      mem.size -= 0xf0000 - mem.start;
-      mem.data += 0xf0000 - mem.start;
-      mem.start = 0xf0000;
-      if(mem.size < (1 << 20)) smp_ok = get_smp_info(hd_data, &mem, &bt->smp);
-    }
-  }
-
-  if(!smp_ok) {
-    mem.size = 1 << 10;
-    mem.start = 639 << 10;
-    mem.data = NULL;
-    read_memory(hd_data, &mem);
-    if(mem.data) smp_ok = get_smp_info(hd_data, &mem, &bt->smp);
-    mem.data = free_mem(mem.data);
-  }
-
-  if(bt->smp.ok && bt->smp.mpconfig) {
-    mem.start = bt->smp.mpconfig;
-    mem.size = 1 << 16;
-    mem.data = NULL;
-    read_memory(hd_data, &mem);
-    parse_mpconfig(hd_data, &mem, &bt->smp);
-    mem.data = free_mem(mem.data);
-  }
-  
-  if((hd_data->debug & HD_DEB_BIOS)) {
-    dump_memory(hd_data, &hd_data->bios_ram, 0, "BIOS data");
-    dump_memory(hd_data, &hd_data->bios_ebda, hd_data->bios_ebda.size <= (8 << 10) ? 0 : 1, "EBDA");
-    // dump_memory(hd_data, &hd_data->bios_rom, 1, "BIOS ROM");
-
-    if(bt->smp.ok && bt->smp.mpfp) {
-      mem.start = bt->smp.mpfp;
-      mem.size = 0x10;
-      mem.data = NULL;
-      read_memory(hd_data, &mem);
-      dump_memory(hd_data, &mem, 0, "MP FP");
-      mem.data = free_mem(mem.data);
-    }
-
-    if(bt->smp.ok && bt->smp.mpconfig && bt->smp.mpconfig_size) {
-      mem.start = bt->smp.mpconfig;
-      mem.size = bt->smp.mpconfig_size;
-      mem.data = NULL;
-      read_memory(hd_data, &mem);
-      dump_memory(hd_data, &mem, 0, "MP config table");
-      mem.data = free_mem(mem.data);
-    }
-  }
-
-#ifndef LIBHD_TINY
-  if(hd_probe_feature(hd_data, pr_bios_vesa)) {
-    PROGRESS(4, 0, "vbe");
-
-    vbe = &bt->vbe;
-    vbe->ok = 0;
-
-    if(!hd_data->klog) read_klog(hd_data);
-    for(sl = hd_data->klog; sl; sl = sl->next) {
-      if(sscanf(sl->str, "<6>PCI: Using configuration type %u", &u) == 1) {
-        hd_data->pci_config_type = u;
-        ADD2LOG("  klog: pci config type %u\n", hd_data->pci_config_type);
-      }
-    }
-
-    get_vbe_info(hd_data, vbe);
-
-    if(vbe->ok) {
-      bt->vbe_ver = vbe->version;
-    }
-
-    if(vbe->ok && vbe->fb_start) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_framebuffer;
-      hd->sub_class.id = sc_fb_vesa;
-
-      hd_set_hw_class(hd, hw_vbe);
-
-#if 0
-      hd->detail = new_mem(sizeof *hd->detail);
-      hd->detail->type = hd_detail_bios;
-      hd->detail->bios.data = bt = new_mem(sizeof *bt);
-#endif
-
-      hd->vendor.name = new_str(vbe->vendor_name);
-      hd->device.name = new_str(vbe->product_name);
-      hd->sub_vendor.name = new_str(vbe->oem_name);
-      hd->revision.name = new_str(vbe->product_revision);
-
-      res = add_res_entry(&hd->res, new_mem(sizeof *res));
-      res->phys_mem.type = res_phys_mem;
-      res->phys_mem.range = vbe->memory;
-
-      res = add_res_entry(&hd->res, new_mem(sizeof *res));
-      res->mem.type = res_mem;
-      res->mem.base = vbe->fb_start;
-      res->mem.range = vbe->memory;
-      res->mem.access = acc_rw;
-      res->mem.enabled = 1;
-
-      if(vbe->mode) {
-        for(u = 0; u < vbe->modes; u++) {
-          mi = vbe->mode + u;
-          if(
-            (mi->attributes & 1) &&    /* mode supported */
-            mi->fb_start &&
-            mi->pixel_size != -1u      /* text mode */
-          ) {
-            res = add_res_entry(&hd->res, new_mem(sizeof *res));
-            res->framebuffer.type = res_framebuffer;
-            res->framebuffer.width = mi->width;
-            res->framebuffer.bytes_p_line = mi->bytes_p_line;
-            res->framebuffer.height = mi->height;
-            res->framebuffer.colorbits = mi->pixel_size;
-            res->framebuffer.mode = mi->number + 0x200;
-          }
-        }
-      }
-
-#if 0
-      if(
-        hd->vend_name &&
-        !strcmp(hd->vend_name, "Matrox") &&
-        hd->device.name &&
-        (
-          strstr(hd->dev_name, "G200") ||
-          strstr(hd->dev_name, "G400") ||
-          strstr(hd->dev_name, "G450")
-        )
-      ) {
-        hd->broken = 1;
-      }
-#endif
-
-    }
-  }
-#endif /* LIBHD_TINY */
-
-  PROGRESS(5, 0, "32");
-
-  mem = hd_data->bios_rom;
-  if(mem.data) {
-    mem.size -= 0xe0000 - mem.start;
-    mem.data += 0xe0000 - mem.start;
-    mem.start = 0xe0000;
-    if(mem.size < (1 << 20)) get_bios32_info(hd_data, &mem, &bt->bios32);
-  }
-
-  if(bt->bios32.ok) {
-    mem = hd_data->bios_rom;
-
-    if(
-      mem.start <= 0xfffea &&
-      mem.start + mem.size >= 0xfffea + 6 &&
-      !memcmp(mem.data + 0xfffea - mem.start, "COMPAQ", 6)
-    ) {
-      bt->bios32.compaq = 1;
-      ADD2LOG("  bios32: compaq machine\n");
-    }
-  }
-
-}
-
-
-void read_memory(hd_data_t *hd_data, memory_range_t *mem)
-{
-#ifdef BIOS_TEST
-  char *s = getenv("LIBHD_MEM");
-#endif
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, ">%p\n", CALLED_FROM(read_memory, mem));
-  }
-#endif
-
-  if(mem->data) free_mem(mem->data);
-  mem->data = new_mem(mem->size);
-#ifdef BIOS_TEST
-  hd_read_mmap(hd_data, s ?: DEV_MEM, mem->data, mem->start, mem->size);
-#else
-  hd_read_mmap(hd_data, DEV_MEM, mem->data, mem->start, mem->size);
-#endif
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, "<%p\n", CALLED_FROM(read_memory, mem));
-  }
-#endif
-}
-
-
-void dump_memory(hd_data_t *hd_data, memory_range_t *mem, int sparse, char *label)
-{
-  unsigned u, step;
-
-  if(!mem->size || !mem->data) return;
-
-#if 1
-  step = sparse ? 0x1000 : 0x10;
-#else
-  step = 0x10;
-#endif
-
-  ADD2LOG("----- %s 0x%05x - 0x%05x -----\n", label, mem->start, mem->start + mem->size - 1);
-  for(u = 0; u < mem->size; u += step) {
-    ADD2LOG("  %03x  ", u + mem->start);
-    hexdump(&hd_data->log, 1, mem->size - u > 0x10 ? 0x10 : mem->size - u, mem->data + u);
-    ADD2LOG("\n");
-  }
-  ADD2LOG("----- %s end -----\n", label);
-}
-
-
-void get_pnp_support_status(memory_range_t *mem, bios_info_t *bt)
-{
-  int i;
-  unsigned char pnp[4] = { '$', 'P', 'n', 'P' };
-  unsigned char *t;
-  unsigned l, cs;
-
-  if(!mem->data) return;
-
-  for(i = 0xf0000 - mem->start; (unsigned) i < mem->size; i += 0x10) {
-    t = mem->data + i;
-    if(t[0] == pnp[0] && t[1] == pnp[1] && t[2] == pnp[2] && t[3] == pnp[3]) {
-      for(l = cs = 0; l < t[5]; l++) { cs += t[l]; }
-      if((cs & 0xff) == 0) {           // checksum ok
-        bt->is_pnp_bios = 1;
-//        printf("0x%x bytes at 0x%x, cs = 0x%x\n", t[5], i, cs);
-        bt->pnp_id = t[0x17] + (t[0x18] << 8) + (t[0x19] << 16) + (t[0x20] << 24);
-      }
-    }
-  }
-}
-
-unsigned char crc(unsigned char *mem, unsigned len)
-{
-  unsigned char uc = 0;
-
-  while(len--) uc += *mem++;
-
-  return uc;
-}
-
-
-void smbios_get_info(hd_data_t *hd_data, memory_range_t *mem, bios_info_t *bt)
-{
-  unsigned u, u1, u2, ok, hlen = 0, ofs;
-  unsigned addr = 0, len = 0, scnt;
-  unsigned structs = 0, type, slen;
-  char *s;
-  memory_range_t memory;
-  hd_smbios_t *sm;
-
-  if(!mem->data || mem->size < 0x100) return;
-
-  for(u = ok = 0; u <= mem->size - 0x100; u += 0x10) {
-    if(*(unsigned *) (mem->data + u) == 0x5f4d535f) {  /* "_SM_" */
-      hlen = mem->data[u + 5];
-      addr = *(unsigned *) (mem->data + u + 0x18);
-      len = *(unsigned short *) (mem->data + u + 0x16);
-      structs = *(unsigned short *) (mem->data + u + 0x1c);
-      if(hlen < 0x1e) continue;
-      ok = crc(mem->data + u, hlen) == 0 && addr < (1 << 20) && len;
-      if(ok) break;
-    }
-  }
-
-  if(!ok) return;
-
-  bt->smbios_ver = (mem->data[u + 6] << 8) + mem->data[u + 7];
-
-  hd_data->smbios = smbios_free(hd_data->smbios);
-
-  memory.start = mem->start + u;
-  memory.size = hlen;
-  memory.data = mem->data + u;
-  dump_memory(hd_data, &memory, 0, "SMBIOS Entry Point");
-
-  memory.start = addr;
-  memory.size = len;
-  memory.data = NULL;
-  read_memory(hd_data, &memory);
-  if(len >= 0x4000) {
-    ADD2LOG(
-      "  SMBIOS Structure Table at 0x%05x (size 0x%x)\n",
-      addr, len
-    );
-  }
-  else {
-    dump_memory(hd_data, &memory, 0, "SMBIOS Structure Table");
-  }
-
-  for(type = 0, u = 0, ofs = 0; u < structs && ofs + 3 < len; u++) {
-    type = memory.data[ofs];
-    slen = memory.data[ofs + 1];
-    if(ofs + slen > len || slen < 4) break;
-    sm = smbios_add_entry(&hd_data->smbios, new_mem(sizeof *sm));
-    sm->any.type = type;
-    sm->any.data_len = slen;
-    sm->any.data = new_mem(slen);
-    memcpy(sm->any.data, memory.data + ofs, slen);
-    sm->any.handle = memory.data[ofs + 2] + (memory.data[ofs + 3] << 8);
-    ADD2LOG("  type 0x%02x [0x%04x]: ", type, sm->any.handle);
-    if(slen) hexdump(&hd_data->log, 0, slen, sm->any.data);
-    ADD2LOG("\n");
-    if(type == sm_end) break;
-    ofs += slen;
-    u1 = ofs;
-    u2 = 1;
-    scnt = 0;
-    while(ofs + 1 < len) {
-      if(!memory.data[ofs]) {
-        if(ofs > u1) {
-          s = canon_str(memory.data + u1, strlen(memory.data + u1));
-          add_str_list(&sm->any.strings, s);
-          scnt++;
-          if(*s) ADD2LOG("       str%d: \"%s\"\n", scnt, s);
-          free_mem(s);
-          u1 = ofs + 1;
-          u2++;
-        }
-        if(!memory.data[ofs + 1]) {
-          ofs += 2;
-          break;
-        }
-      }
-      ofs++;
-    }
-  }
-
-  if(u != structs) {
-    if(type == sm_end) {
-      ADD2LOG("  smbios: stopped at end tag\n");
-    }
-    else {
-      ADD2LOG("  smbios oops: only %d of %d structs found\n", u, structs);
-    }
-  }
-
-  memory.data = free_mem(memory.data);
-
-  smbios_parse(hd_data);
-}
-
-
-void get_fsc_info(hd_data_t *hd_data, memory_range_t *mem, bios_info_t *bt)
-{
-  unsigned u, mtype, fsc_id;
-  unsigned x, y;
-  hd_smbios_t *sm;
-  char *vendor = NULL;
-
-  if(!mem->data || mem->size < 0x20) return;
-
-  for(sm = hd_data->smbios; sm; sm = sm->next) {
-    if(sm->any.type == sm_sysinfo) {
-      vendor = sm->sysinfo.manuf;
-      break;
-    }
-  }
-
-  vendor = vendor && !strcasecmp(vendor, "Fujitsu") ? "Fujitsu" : "Fujitsu Siemens";
-
-  for(u = 0; u <= mem->size - 0x20; u += 0x10) {
-    if(
-      *(unsigned *) (mem->data + u) == 0x696a7546 &&
-      *(unsigned *) (mem->data + u + 4) == 0x20757374
-    ) {
-      mtype = *(unsigned *) (mem->data + u + 0x14);
-      if(!crc(mem->data + u, 0x20) && !(mtype & 0xf0000000)) {
-        fsc_id = (mtype >> 12) & 0xf;
-
-        switch(fsc_id) {
-          case 1:
-            x = 640; y = 480;
-            break;
-
-          case 2:
-            x = 800; y = 600;
-            break;
-
-          case 3:
-            x = 1024; y = 768;
-            break;
-
-          case 4:
-            x = 1280; y = 1024;
-            break;
-
-          case 5:
-            x = 1400; y = 1050;
-            break;
-
-          case 6:
-            x = 1024; y = 512;
-            break;
-
-          case 7:
-            x = 1280; y = 600;
-            break;
-
-          case 8:
-            x = 1600; y = 1200;
-            break;
-
-          default:
-            x = 0; y = 0;
-        }
-
-        if(x) {
-          bt->lcd.vendor = new_str(vendor);
-          bt->lcd.name = new_str("Notebook LCD");
-          bt->lcd.width = x;
-          bt->lcd.height = y;
-        }
-
-        ADD2LOG("  found FSC LCD: %d (%ux%u)\n", fsc_id, x, y);
-        break;
-      }
-    }
-  }
-}
-
-
-void add_panel_info(hd_data_t *hd_data, bios_info_t *bt)
-{
-  unsigned width, height;
-  char *vendor, *name, *version;
-  hd_smbios_t *sm;
-  unsigned u;
-
-  if(bt->lcd.width || !hd_data->smbios) return;
-
-  vendor = name = version = NULL;
-  width = height = 0;
-
-  for(sm = hd_data->smbios; sm; sm = sm->next) {
-    if(sm->any.type == sm_sysinfo) {
-      vendor = sm->sysinfo.manuf;
-      name = sm->sysinfo.product;
-      version = sm->sysinfo.version;
-      break;
-    }
-  }
-
-  if(!vendor || !name) return;
-
-  for(u = 0; u < sizeof panel_data / sizeof *panel_data; u++) {
-    if(
-      !strcmp(vendor, panel_data[u].vendor) &&
-      !strcmp(name, panel_data[u].name) &&
-      (version || !panel_data[u].version) &&
-      (!version || !panel_data[u].version || !strcmp(version, panel_data[u].version))
-    ) {
-      bt->lcd.vendor = new_str(vendor);
-      bt->lcd.name = new_str("Notebook LCD");
-      bt->lcd.width = panel_data[u].width;
-      bt->lcd.height = panel_data[u].height;
-      break;
-    }
-  }
-}
-
-
-void add_mouse_info(hd_data_t *hd_data, bios_info_t *bt)
-{
-  unsigned compat_vend, compat_dev, bus;
-  char *vendor, *name, *type;
-  hd_smbios_t *sm;
-
-  if(bt->mouse.compat_vend || !hd_data->smbios) return;
-
-  vendor = name = type = NULL;
-  compat_vend = compat_dev = bus = 0;
-
-  for(sm = hd_data->smbios; sm; sm = sm->next) {
-    if(sm->any.type == sm_sysinfo) {
-      vendor = sm->sysinfo.manuf;
-      name = sm->sysinfo.product;
-    }
-    if(
-      sm->any.type == sm_mouse &&
-      !compat_vend     /* take the first entry */
-    ) {
-      compat_vend = compat_dev = bus = 0;
-      type = NULL;
-      
-      switch(sm->mouse.interface.id) {
-        case 4:        /* ps/2 */
-        case 7:        /* bus mouse (dell notebooks report this) */
-          bus = bus_ps2;
-          compat_vend = MAKE_ID(TAG_SPECIAL, 0x0200);
-          compat_dev = MAKE_ID(TAG_SPECIAL, sm->mouse.buttons == 3 ? 0x0007 : 0x0006);
-          break;
-      }
-      type = sm->mouse.mtype.name;
-      if(sm->mouse.mtype.id == 1) type = "Touch Pad";  /* Why??? */
-      if(sm->mouse.mtype.id == 2) type = NULL;         /* "Other" */
-    }
-  }
-
-  if(!vendor || !name) return;
-
-  if(!type) {
-    if(!strcmp(vendor, "Sony Corporation") && strstr(name, "PCG-") == name) {
-      bus = bus_ps2;
-      type = "Touch Pad";
-      compat_vend = MAKE_ID(TAG_SPECIAL, 0x0200);
-      compat_dev = MAKE_ID(TAG_SPECIAL, 0x0006);
-    }
-  }
-
-  if(!type) return;
-
-  bt->mouse.vendor = new_str(vendor);
-  bt->mouse.type = new_str(type);
-  bt->mouse.bus = bus;
-  bt->mouse.compat_vend = compat_vend;
-  bt->mouse.compat_dev = compat_dev;
-}
-
-
-int get_smp_info(hd_data_t *hd_data, memory_range_t *mem, smp_info_t *smp)
-{
-#ifndef __ia64__
-  unsigned u, ok;
-  unsigned addr = 0, len;
-
-  if(mem->size < 0x10) return 0;
-
-  for(u = ok = 0; u <= mem->size - 0x10; u++) {
-    if(*(unsigned *) (mem->data + u) == 0x5f504d5f) {  /* "_MP_" */
-      addr = *(unsigned *) (mem->data + u + 4);
-      len = mem->data[u + 8];
-      ok = len == 1 && crc(mem->data + u, 0x10) == 0 && addr < (1 << 20) ? 1 : 0;
-      ADD2LOG(
-        "  smp: %svalid MP FP at 0x%05x (size 0x%x, rev %u), MP config at 0x%05x\n",
-        ok ? "" : "in", u + mem->start, len << 4, mem->data[u + 9], addr
-      );
-      if(ok) break;
-    }
-  }
-
-  if(ok) {
-    smp->ok = 1;
-    smp->mpfp = mem->start + u;
-    smp->rev = mem->data[u + 9];
-    smp->mpconfig = addr;
-    memcpy(smp->feature, mem->data + u + 11, 5);
-  }
-
-  return ok;
-#else
-  return 0;
-#endif
-}
-
-
-void parse_mpconfig(hd_data_t *hd_data, memory_range_t *mem, smp_info_t *smp)
-{
-  unsigned cfg_len, xcfg_len;
-  unsigned char u0, ux0;
-  unsigned u, type, len, entries, entry_cnt;
-  char *s;
-
-  cfg_len = xcfg_len = 0;
-
-  if(*(unsigned *) (mem->data) == 0x504d4350) {                /* "PCMP" */
-    cfg_len = mem->data[0x04] + (mem->data[0x05] << 8);
-    smp->mpconfig_size = cfg_len;
-    u0 = crc(mem->data, cfg_len);
-    if(u0) return;
-    smp->mpconfig_ok = 1;
-    smp->cpus = smp->cpus_en = 0;
-    xcfg_len = mem->data[0x28] + (mem->data[0x29] << 8);
-    ux0 = crc(mem->data + cfg_len, xcfg_len) + mem->data[0x2a];
-    if(!ux0) {
-      smp->mpconfig_size += xcfg_len;
-    }
-    else {
-      xcfg_len = 0;
-    }
-  }
-
-  if(cfg_len) {
-    s = canon_str(mem->data + 8, 8);
-    strcpy(smp->oem_id, s);
-    free_mem(s);
-    s = canon_str(mem->data + 0x10, 12);
-    strcpy(smp->prod_id, s);
-    s = free_mem(s);
-
-    entries = mem->data[0x22] + (mem->data[0x23] << 8);
-    ADD2LOG("  base MP config table (%u entries):\n", entries);
-    entry_cnt = 0;
-    for(u = 0x2c; u < cfg_len - 1; u += len, entry_cnt++) {
-      type = mem->data[u];
-      len = type == 0 ? 20 : type <= 4 ? 8 : 16;
-      ADD2LOG("  %stype %u, len %u\n    ", type > 4 ? "unknown ": "", type, len);
-      if(len + u > cfg_len) len = cfg_len - u;
-      hexdump(&hd_data->log, 1, len, mem->data + u);
-      ADD2LOG("\n");
-      if(type > 4) break;
-      if(type == 0) {
-        smp->cpus++;
-        if((mem->data[u + 3] & 1)) smp->cpus_en++;
-      }
-    }
-    if(entry_cnt != entries) {
-      ADD2LOG("  oops: %u entries instead of %u found\n", entry_cnt, entries);
-    }
-  }
-
-  if(xcfg_len) {
-    ADD2LOG("  extended MP config table:\n");
-    for(u = 0; u < xcfg_len - 2; u += len) {
-      type = mem->data[u + cfg_len];
-      len = mem->data[u + cfg_len + 1];
-      ADD2LOG("  type %u, len %u\n    ", type, len);
-      if(len + u > xcfg_len) len = xcfg_len - u;
-      hexdump(&hd_data->log, 1, len, mem->data + cfg_len + u);
-      ADD2LOG("\n");
-      if(len < 2) {
-        ADD2LOG("  oops: invalid record lenght\n");
-        break;
-      }
-    }
-  }
-}
-
-
-int get_bios32_info(hd_data_t *hd_data, memory_range_t *mem, bios32_info_t *bios32)
-{
-  unsigned u, ok;
-  unsigned addr = 0, len;
-
-  if(mem->size < 0x10) return 0;
-
-  for(u = ok = 0; u <= mem->size - 0x10; u += 0x10) {
-    if(*(unsigned *) (mem->data + u) == 0x5f32335f) {  /* "_32_" */
-      addr = *(unsigned *) (mem->data + u + 4);
-      len = mem->data[u + 9];
-      ok = len == 1 && crc(mem->data + u, 0x10) == 0 && addr < (1 << 20) ? 1 : 0;
-      ADD2LOG(
-        "  bios32: %svalid SD header at 0x%05x (size 0x%x, rev %u), SD at 0x%05x\n",
-        ok ? "" : "in", u + mem->start, len << 4, mem->data[u + 8], addr
-      );
-      if(ok) break;
-    }
-  }
-
-  if(ok) {
-    bios32->ok = 1;
-    bios32->entry = addr;
-  }
-
-  return ok;
-}
-
-
-#endif /* defined(__i386__) || defined (__x86_64__) */
-
diff --git a/src/hwinfo/src/hd/bios.h b/src/hwinfo/src/hd/bios.h
deleted file mode 100644 (file)
index cdb046f..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#define BIOS_ROM_START  0xc0000
-#define BIOS_ROM_SIZE   0x40000
-
-#define BIOS_RAM_START  0x400
-#define BIOS_RAM_SIZE   0x100
-
-void hd_scan_bios(hd_data_t *hd_data);
-void get_vbe_info(hd_data_t *hd_data, vbe_info_t *vbe);
diff --git a/src/hwinfo/src/hd/block.c b/src/hwinfo/src/hd/block.c
deleted file mode 100644 (file)
index 2a8f400..0000000
+++ /dev/null
@@ -1,1578 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <ctype.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <linux/iso_fs.h>
-#include <scsi/sg.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "hddb.h"
-#include "block.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * block device stuff
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-static void get_block_devs(hd_data_t *hd_data);
-static void add_partitions(hd_data_t *hd_data, hd_t *hd, char *path);
-static void add_cdrom_info(hd_data_t *hd_data, hd_t *hd);
-static void add_other_sysfs_info(hd_data_t *hd_data, hd_t *hd, struct sysfs_device *sf_dev);
-static void add_ide_sysfs_info(hd_data_t *hd_data, hd_t *hd, struct sysfs_device *sf_dev);
-static void add_scsi_sysfs_info(hd_data_t *hd_data, hd_t *hd, struct sysfs_device *sf_dev);
-static void read_partitions(hd_data_t *hd_data);
-static void read_cdroms(hd_data_t *hd_data);
-static cdrom_info_t *new_cdrom_entry(cdrom_info_t **ci);
-static cdrom_info_t *get_cdrom_entry(cdrom_info_t *ci, int n);
-static void get_scsi_tape(hd_data_t *hd_data);
-static void get_generic_scsi_devs(hd_data_t *hd_data);
-static void add_disk_size(hd_data_t *hd_data, hd_t *hd);
-
-
-void hd_scan_sysfs_block(hd_data_t *hd_data)
-{
-  if(!hd_probe_feature(hd_data, pr_block)) return;
-
-  hd_data->module = mod_block;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  hd_data->disks = free_str_list(hd_data->disks);
-  hd_data->partitions = free_str_list(hd_data->partitions);
-  hd_data->cdroms = free_str_list(hd_data->cdroms);
-
-  if(hd_probe_feature(hd_data, pr_block_mods)) {
-    PROGRESS(1, 0, "block modules");
-    load_module(hd_data, "ide_cd");
-    load_module(hd_data, "sr_mod");
-    load_module(hd_data, "sd_mod");
-    load_module(hd_data, "st");
-  }
-
-  PROGRESS(2, 0, "sysfs drivers");
-
-  hd_sysfs_driver_list(hd_data);
-
-  PROGRESS(3, 0, "cdrom");
-
-  read_cdroms(hd_data);
-
-  PROGRESS(4, 0, "partition");
-
-  read_partitions(hd_data);
-
-  PROGRESS(5, 0, "get sysfs block dev data");
-
-  get_block_devs(hd_data);
-
-  if(hd_data->cdrom) {
-    ADD2LOG("oops: cdrom list not empty\n");
-  }
-}
-
-
-void get_block_devs(hd_data_t *hd_data)
-{
-  str_list_t *sl;
-  char *s, *t;
-  unsigned u1, u2, u3;
-  uint64_t ul0;
-  hd_t *hd, *hd1;
-  hd_dev_num_t dev_num;
-
-  struct sysfs_bus *sf_bus;
-  struct sysfs_class *sf_class;
-  struct sysfs_class_device *sf_cdev;
-  struct sysfs_device *sf_dev;
-  struct dlist *sf_cdev_list;
-  struct dlist *sf_ide_list = NULL;
-  struct sysfs_device *sf_ide;
-
-  sf_bus = sysfs_open_bus("ide");
-  if(sf_bus) {
-    sf_ide_list = sysfs_get_bus_devices(sf_bus);
-    if(sf_ide_list) dlist_for_each_data(sf_ide_list, sf_ide, struct sysfs_device) {
-      ADD2LOG(
-        "  ide: bus_id = %s path = %s\n",
-        sf_ide->bus_id,
-        hd_sysfs_id(sf_ide->path)
-      );
-    }
-  }
-
-  sf_class = sysfs_open_class("block");
-
-  if(!sf_class) {
-    ADD2LOG("sysfs: no such class: block\n");
-    return;
-  }
-
-  sf_cdev_list = sysfs_get_class_devices(sf_class);
-  if(sf_cdev_list) dlist_for_each_data(sf_cdev_list, sf_cdev, struct sysfs_class_device) {
-    ADD2LOG(
-      "  block: name = %s, path = %s\n",
-      sf_cdev->name,
-      hd_sysfs_id(sf_cdev->path)
-    );
-
-    memset(&dev_num, 0, sizeof dev_num);
-
-    if((s = hd_attr_str(sysfs_get_classdev_attr(sf_cdev, "dev")))) {
-      if(sscanf(s, "%u:%u", &u1, &u2) == 2) {
-        dev_num.type = 'b';
-        dev_num.major = u1;
-        dev_num.minor = u2;
-        dev_num.range = 1;
-      }
-      ADD2LOG("    dev = %u:%u\n", u1, u2);
-    }
-
-    if(hd_attr_uint(sysfs_get_classdev_attr(sf_cdev, "range"), &ul0, 0)) {
-      dev_num.range = ul0;
-      ADD2LOG("    range = %u\n", dev_num.range);
-    }
-
-    sf_dev = sysfs_get_classdev_device(sf_cdev);
-    if(sf_dev) {
-      ADD2LOG(
-        "    block device: bus = %s, bus_id = %s driver = %s\n      path = %s\n",
-        sf_dev->bus,
-        sf_dev->bus_id,
-        sf_dev->driver_name,
-        hd_sysfs_id(sf_dev->path)
-      );
-    }
-
-    hd = NULL;
-
-    /* check if disk is DASD and has already been found by s390.c */
-    if(sf_dev && sf_dev->driver_name && strstr(sf_dev->driver_name,"dasd"))
-    {
-      char bid[9];
-      hd_res_t* res;
-      //fprintf(stderr,"dn %s bi %s\n",sf_dev->driver_name,sf_dev->bus_id);
-      for(hd=hd_data->hd;hd;hd=hd->next)
-      {
-       //fprintf(stderr,"bcid %d\n",hd->base_class.id);
-       if(hd->base_class.id == bc_storage_device
-          && hd->detail
-          && hd->detail->ccw.type == hd_detail_ccw)
-       {
-         for(res=hd->res;res;res=res->next)
-         {
-           if(res->io.type==res_io)
-           {
-             sprintf(bid,"%01x.%01x.%04x",
-                     hd->detail->ccw.data->lcss >> 8,
-                     hd->detail->ccw.data->lcss & 0xff,
-                     (unsigned short)res->io.base);
-             //fprintf(stderr,"bid %s\n",bid);
-             if (strcmp(bid,sf_dev->bus_id)==0) goto out;
-           }
-         }
-       }
-      }
-      hd=NULL;
-      out:;
-    }
-    else if((sl = search_str_list(hd_data->disks, hd_sysfs_name2_dev(sf_cdev->name)))) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->sub_class.id = sc_sdev_disk;
-    }
-    else if((sl = search_str_list(hd_data->cdroms, hd_sysfs_name2_dev(sf_cdev->name)))) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->sub_class.id = sc_sdev_cdrom;
-    }
-    else if(
-      sf_dev &&
-      sf_dev->bus &&
-      (!strcmp(sf_dev->bus, "scsi") || !strcmp(sf_dev->bus, "ide"))
-    ) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->sub_class.id = sc_sdev_other;
-    }
-
-    if(hd) {
-      str_printf(&hd->unix_dev_name, 0, "/dev/%s", hd_sysfs_name2_dev(sf_cdev->name));
-
-      hd->base_class.id = bc_storage_device;
-
-      hd->sysfs_id = new_str(hd_sysfs_id(sf_cdev->path));
-
-      if(sf_dev) hd->sysfs_device_link = new_str(hd_sysfs_id(sf_dev->path));
-
-      hd->unix_dev_num = dev_num;
-
-      hd->bus.id = bus_none;
-
-      if(sf_dev) {
-        if(sf_dev->bus) {
-          if(!strcmp(sf_dev->bus, "ide")) hd->bus.id = bus_ide;
-          else if(!strcmp(sf_dev->bus, "scsi")) hd->bus.id = bus_scsi;
-        }
-        hd->sysfs_bus_id = new_str(sf_dev->bus_id);
-      }
-
-      if(sf_dev && (s = hd_sysfs_id(sf_dev->path))) {
-
-        /* parent has longest matching sysfs id */
-        u2 = strlen(s);
-        for(u3 = 0, hd1 = hd_data->hd; hd1; hd1 = hd1->next) {
-          if(hd1->sysfs_id) {
-            u1 = strlen(hd1->sysfs_id);
-            if(u1 > u3 && u1 <= u2 && !strncmp(s, hd1->sysfs_id, u1)) {
-              u3 = u1;
-              hd->attached_to = hd1->idx;
-            }
-          }
-        }
-
-        /* find longest matching sysfs id we have a driver for */
-        s = new_str(s);
-        t = strrchr(s, '/');
-        if(t) *t = 0;
-        t = hd_sysfs_find_driver(hd_data, s, 0);
-        if(t) {
-          add_str_list(&hd->drivers, t);
-        }
-        s = free_mem(s);
-
-        /* look for ide-scsi handled devices */
-        if(hd->bus.id == bus_scsi) {
-          if(sf_ide_list) dlist_for_each_data(sf_ide_list, sf_ide, struct sysfs_device) {
-            if(
-              strcmp(sf_dev->path, sf_ide->path) &&
-              !strncmp(sf_dev->path, sf_ide->path, strlen(sf_ide->path)) &&
-              sscanf(sf_ide->bus_id, "%u.%u", &u1, &u2) == 2
-            ) {
-              str_printf(&hd->unix_dev_name2, 0, "/dev/hd%c", 'a' + (u1 << 1) + u2);
-            }
-          }
-        }
-      }
-
-      /*
-       * set hd->drivers before calling any of add_xxx_sysfs_info()
-       */
-      if(
-        sf_dev &&
-        sf_dev->driver_name &&
-        *sf_dev->driver_name &&
-        strcmp(sf_dev->driver_name, "unknown")
-      ) {
-        add_str_list(&hd->drivers, sf_dev->driver_name);
-      }
-
-      if(hd->bus.id == bus_ide) {
-        add_ide_sysfs_info(hd_data, hd, sf_dev);
-      }
-      else if(hd->bus.id == bus_scsi) {
-        add_scsi_sysfs_info(hd_data, hd, sf_dev);
-      }
-      else {
-        add_other_sysfs_info(hd_data, hd, sf_dev);
-      }
-
-      
-      if(hd->sub_class.id == sc_sdev_cdrom) {
-        add_cdrom_info(hd_data, hd);
-      }
-
-      if(
-        hd->sub_class.id == sc_sdev_disk &&
-        hd_probe_feature(hd_data, pr_block_part)
-      ) {
-        add_partitions(hd_data, hd, sf_cdev->path);
-      }
-
-    }
-
-  }
-
-  sysfs_close_class(sf_class);
-
-  sysfs_close_bus(sf_bus);
-}
-
-
-/*
- * Find driver for sysfs_id.
- *
- * Return driver for id (exact = 1) or longest matching id (exact = 0).
- */
-char *hd_sysfs_find_driver(hd_data_t *hd_data, char *sysfs_id, int exact)
-{
-  hd_sysfsdrv_t *sf;
-  char *t;
-  unsigned u1, u2, u3;
-
-  if(!sysfs_id || !*sysfs_id) return NULL;
-
-  t = NULL;
-
-  if(exact) {
-    for(sf = hd_data->sysfsdrv; sf; sf = sf->next) {
-      if(!strcmp(sysfs_id, sf->device)) {
-        t = sf->driver;
-        break;
-      }
-    }
-  }
-  else {
-    u2 = strlen(sysfs_id);
-    u3 = 0;
-    for(sf = hd_data->sysfsdrv; sf; sf = sf->next) {
-      u1 = strlen(sf->device);
-      if(u1 > u3 && u1 <= u2 && !strncmp(sysfs_id, sf->device, u1)) {
-        u3 = u1;
-        t = sf->driver;
-      }
-    }
-  }
-
-  return t;
-}
-
-
-void add_partitions(hd_data_t *hd_data, hd_t *hd, char *path)
-{
-  hd_t *hd1;
-  str_list_t *sl;
-  char *s;
-  size_t len;
-
-  s = hd->unix_dev_name + sizeof "/dev/" - 1;
-  len = strlen(s);
-  for(sl = hd_data->partitions; sl; sl = sl->next) {
-    if(!strncmp(sl->str, s, len)) {
-      hd1 = add_hd_entry(hd_data, __LINE__, 0);
-      hd1->base_class.id = bc_partition;
-      str_printf(&hd1->unix_dev_name, 0, "/dev/%s", sl->str);
-      hd1->attached_to = hd->idx;
-
-      str_printf(&hd1->sysfs_id, 0, "%s/%s", hd->sysfs_id, hd_sysfs_dev2_name(sl->str));
-    }
-  }
-}
-
-
-void add_cdrom_info(hd_data_t *hd_data, hd_t *hd)
-{
-  cdrom_info_t *ci, **prev;
-
-  hd->detail = free_hd_detail(hd->detail);
-  hd->detail = new_mem(sizeof *hd->detail);
-  hd->detail->type = hd_detail_cdrom;
-
-  for(ci = *(prev = &hd_data->cdrom); ci; ci = *(prev = &ci->next)) {
-    if(!strcmp(hd->unix_dev_name + sizeof "/dev/" - 1, ci->name)) {
-      hd->detail->cdrom.data = ci;
-      *prev = ci->next;
-      hd->detail->cdrom.data->next = NULL;
-      break;
-    }
-  }
-
-  if((ci = hd->detail->cdrom.data)) {
-    /* update prog_if: cdr, cdrw, ... */
-    if(
-      /* ###### FIXME: dosn't work anyway: ide-scsi doesn't support sysfs */
-      hd->bus.id == bus_scsi &&
-      !search_str_list(hd->drivers, "ide-scsi")                /* could be ide, though */
-    ) {
-      /* scsi devs lie */
-      if(ci->dvd && (ci->cdrw || ci->dvdr || ci->dvdram)) {
-        ci->dvd = ci->dvdr = ci->dvdram = 0;
-      }
-      ci->dvdr = ci->dvdram = 0;
-      ci->cdr = ci->cdrw = 0;
-      if(hd->prog_if.id == pif_cdr) ci->cdr = 1;
-    }
-
-    /* trust ide info */
-    if(ci->dvd) {
-      hd->is.dvd = 1;
-      hd->prog_if.id = pif_dvd;
-    }
-    if(ci->cdr) {
-      hd->is.cdr = 1;
-      hd->prog_if.id = pif_cdr;
-    }
-    if(ci->cdrw) {
-      hd->is.cdrw = 1;
-      hd->prog_if.id = pif_cdrw;
-    }
-    if(ci->dvdr) {
-      hd->is.dvdr = 1;
-      hd->prog_if.id = pif_dvdr;
-    }
-    if(ci->dvdram) {
-      hd->is.dvdram = 1;
-      hd->prog_if.id = pif_dvdram;
-    }
-  }
-
-  if(
-    hd_probe_feature(hd_data, pr_block_cdrom) &&
-    hd_report_this(hd_data, hd)
-  ) {
-    hd_read_cdrom_info(hd_data, hd);
-  }
-}
-
-
-void add_other_sysfs_info(hd_data_t *hd_data, hd_t *hd, struct sysfs_device *sf_dev)
-{
-  unsigned u0, u1;
-  char c;
-
-  if(hd->sysfs_id) {
-    if(
-      sscanf(hd->sysfs_id, "/block/cciss!c%ud%u", &u0, &u1) == 2
-    ) {
-      hd->slot = (u0 << 8) + u1;
-      str_printf(&hd->device.name, 0, "CCISS disk %u/%u", u0, u1);
-    }
-    else if(
-      sscanf(hd->sysfs_id, "/block/ida!c%ud%u", &u0, &u1) == 2
-    ) {
-      hd->slot = (u0 << 8) + u1;
-      str_printf(&hd->device.name, 0, "SMART Array %u/%u", u0, u1);
-    }
-    else if(
-      sscanf(hd->sysfs_id, "/block/rd!c%ud%u", &u0, &u1) == 2
-    ) {
-      hd->slot = (u0 << 8) + u1;
-      str_printf(&hd->device.name, 0, "DAC960 RAID Array %u/%u", u0, u1);
-    }
-    else if(
-      sscanf(hd->sysfs_id, "/block/i2o!hd%c", &c) == 1 &&
-      c >= 'a'
-    ) {
-      hd->slot = c - 'a';
-      str_printf(&hd->device.name, 0, "I2O disk %u", hd->slot);
-    }
-    else if(
-      sscanf(hd->sysfs_id, "/block/dasd%c", &c) == 1 &&
-      c >= 'a'
-    ) {
-      hd->slot = c - 'a';
-      hd->device.name = new_str("S390 Disk");
-    }
-  }
-
-  add_disk_size(hd_data, hd);
-}
-
-
-void add_ide_sysfs_info(hd_data_t *hd_data, hd_t *hd, struct sysfs_device *sf_dev)
-{
-  char *fname = NULL, buf[256], *dev_name, *s;
-  unsigned u0, u1, u2, size = 0;
-  str_list_t *sl, *sl0;
-  hd_res_t *res;
-  FILE *f;
-
-  if(!hd_report_this(hd_data, hd)) return;
-
-  if(hd->sysfs_bus_id && sscanf(hd->sysfs_bus_id, "%u.%u", &u0, &u1) == 2) {
-    /* host.master/slave */
-    hd->slot = (u0 << 1) + u1;
-  }
-
-  if(
-    hd->unix_dev_name &&
-    strlen(hd->unix_dev_name) > 5
-  ) {
-    dev_name = hd->unix_dev_name + 5;
-
-    str_printf(&fname, 0, PROC_IDE "/%s/media", dev_name);
-    if((sl = read_file(fname, 0, 1))) {
-
-      if(strstr(sl->str, "floppy"))
-        hd->sub_class.id = sc_sdev_floppy;
-      else if(strstr(sl->str, "cdrom"))
-        hd->sub_class.id = sc_sdev_cdrom;
-      else if(strstr(sl->str, "tape"))
-        hd->sub_class.id = sc_sdev_tape;
-
-      free_str_list(sl);
-    }
-
-    str_printf(&fname, 0, PROC_IDE "/%s/model", dev_name);
-    if((sl = read_file(fname, 0, 1))) {
-      hd->vendor.name = canon_str(sl->str, strlen(sl->str));
-      if((s = strchr(hd->vendor.name, ' '))) {
-        hd->device.name = canon_str(s, strlen(s));
-        if(*hd->device.name) {
-          *s = 0;
-        }
-        else {
-          hd->device.name = free_mem(hd->device.name);
-        }
-      }
-      if(!hd->device.name) {
-        hd->device.name = hd->vendor.name;
-        hd->vendor.name = NULL;
-      }
-
-      free_str_list(sl);
-    }
-
-    str_printf(&fname, 0, PROC_IDE "/%s/driver", dev_name);
-    if((sl = read_file(fname, 0, 1))) {
-      if((s = strchr(sl->str, ' '))) *s = 0;
-      s = canon_str(sl->str, strlen(sl->str));
-      add_str_list(&hd->drivers, s);
-      s = free_mem(s);
-      free_str_list(sl);
-    }
-
-    str_printf(&fname, 0, PROC_IDE "/%s/capacity", dev_name);
-    if((sl = read_file(fname, 0, 1))) {
-      if(sscanf(sl->str, "%u", &u0) == 1 && u0 != 0x7fffffff) {
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->size.type = res_size;
-        res->size.unit = size_unit_sectors;
-        res->size.val1 = size = u0;
-        res->size.val2 = 512;          // ####### FIXME: sector size?
-      }
-      free_str_list(sl);
-    }
-
-    str_printf(&fname, 0, PROC_IDE "/%s/geometry", dev_name);
-    if((sl0 = read_file(fname, 0, 2))) {
-      for(sl = sl0; sl; sl = sl->next) {
-        if(sscanf(sl->str, " physical %u / %u / %u", &u0, &u1, &u2) == 3) {
-          if(u0 || u1 || u2) {
-            if(size && u1 && u2) {
-              u0 = size / (u1 * u2);
-            }
-            res = add_res_entry(&hd->res, new_mem(sizeof *res));
-            res->disk_geo.type = res_disk_geo;
-            res->disk_geo.cyls = u0;
-            res->disk_geo.heads = u1;
-            res->disk_geo.sectors = u2;
-            res->disk_geo.geotype = geo_physical;
-          }
-          continue;
-        }
-
-        if(sscanf(sl->str, " logical %u / %u / %u", &u0, &u1, &u2) == 3) {
-          if(size && u1 && u2) {
-            u0 = size / (u1 * u2);
-          }
-          res = add_res_entry(&hd->res, new_mem(sizeof *res));
-          res->disk_geo.type = res_disk_geo;
-          res->disk_geo.cyls = u0;
-          res->disk_geo.heads = u1;
-          res->disk_geo.sectors = u2;
-          res->disk_geo.geotype = geo_logical;
-        }
-      }
-      free_str_list(sl0);
-    }
-
-    str_printf(&fname, 0, PROC_IDE "/%s/cache", dev_name);
-    if((sl = read_file(fname, 0, 1))) {
-      if(sscanf(sl->str, "%u", &u0) == 1 && u0) {
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->cache.type = res_cache;
-        res->cache.size = u0;
-      }
-      free_str_list(sl);
-    }
-
-    str_printf(&fname, 0, PROC_IDE "/%s/identify", dev_name);
-    if((f = fopen(fname, "r"))) {
-      u1 = 0;
-      memset(buf, sizeof buf, 0);
-      while(u1 < sizeof buf - 1 && fscanf(f, "%x", &u0) == 1) {
-        buf[u1++] = u0 >> 8; buf[u1++] = u0;
-      }
-      fclose(f);
-
-      /* ok, we now have the ATA/ATAPI ident block */
-
-      if(buf[0x14] || buf[0x15]) {     /* has serial id */
-        hd->serial = canon_str(buf + 0x14, 20);
-      }
-      if(buf[0x2e] || buf[0x2f]) {     /* has revision id */
-        hd->revision.name = canon_str(buf + 0x2e, 8);
-      }
-    }
-
-    free_mem(fname);
-  }
-
-  if(!size) add_disk_size(hd_data, hd);
-}
-
-
-/*
- * assumes hd->drivers aleady includes scsi device drivers (like 'sd')
- */
-void add_scsi_sysfs_info(hd_data_t *hd_data, hd_t *hd, struct sysfs_device *sf_dev)
-{
-  hd_t *hd1;
-  char *s, *t, *cs, *pr_str;
-  unsigned u0, u1, u2, u3;
-  int fd, k;
-  unsigned char scsi_cmd_buf[0x300];
-  struct sg_io_hdr hdr;
-  unsigned char *uc;
-  scsi_t *scsi;
-  hd_res_t *geo, *size;
-  uint64_t ul0;
-
-  if(!hd_report_this(hd_data, hd)) return;
-
-  hd->detail = new_mem(sizeof *hd->detail);
-  hd->detail->type = hd_detail_scsi;
-  hd->detail->scsi.data = scsi = new_mem(sizeof *scsi);
-
-  if(hd->sysfs_bus_id && sscanf(hd->sysfs_bus_id, "%u:%u:%u:%u", &u0, &u1, &u2, &u3) == 4) {
-    /* host:channel:id:lun */
-    hd->slot = (u0 << 8) + (u1 << 4) + u2;
-    hd->func = u3;
-  }
-
-  if((s = hd_attr_str(sysfs_get_device_attr(sf_dev, "vendor")))) {
-    cs = canon_str(s, strlen(s));
-    ADD2LOG("    vendor = %s\n", cs);
-    if(*cs) {
-      hd->vendor.name = cs;
-    }
-    else {
-      free_mem(cs);
-    }
-  }
-
-  if((s = hd_attr_str(sysfs_get_device_attr(sf_dev, "model")))) {
-    cs = canon_str(s, strlen(s));
-    ADD2LOG("    model = %s\n", cs);
-    if(*cs) {
-      hd->device.name = cs;
-    }
-    else {
-      free_mem(cs);
-    }
-
-    /* sata entries are somewhat strange... */
-    if(
-      hd->vendor.name &&
-      !strcmp(hd->vendor.name, "ATA") &&
-      hd->device.name
-    ) {
-      hd->bus.id = bus_ide;
-
-      if((cs = strchr(hd->device.name, ' '))) {
-        t = canon_str(cs, strlen(cs));
-        if(*t) {
-          *cs = 0;
-          free_mem(hd->vendor.name);
-          hd->vendor.name = hd->device.name;
-          hd->device.name = t;
-        }
-        else {
-          t = free_mem(t);
-        }
-      }
-
-      if(!strcmp(hd->vendor.name, "ATA")) {
-        hd->vendor.name = free_mem(hd->vendor.name);
-      }
-    }
-  }
-
-  if((s = hd_attr_str(sysfs_get_device_attr(sf_dev, "rev")))) {
-    cs = canon_str(s, strlen(s));
-    ADD2LOG("    rev = %s\n", cs);
-    if(*cs) {
-      hd->revision.name = cs;
-    }
-    else {
-      free_mem(cs);
-    }
-  }
-
-  if(hd_attr_uint(sysfs_get_device_attr(sf_dev, "type"), &ul0, 0)) {
-    ADD2LOG("    type = %u\n", (unsigned) ul0);
-    if(ul0 == 6 /* scanner */) {
-      hd->sub_class.id = sc_sdev_scanner;
-    }
-    else if(ul0 == 3 /* processor */ && hd->vendor.name) {
-      if(
-        !strncmp(hd->vendor.name, "HP", sizeof "HP" - 1) ||
-        !strncmp(hd->vendor.name, "EPSON", sizeof "EPSON" - 1)
-      ) {
-        hd->sub_class.id = sc_sdev_scanner;
-      }
-    }
-
-    /*
-     * typically needed for usb card readers (unused slots)
-     */
-    if(
-      hd->base_class.id == bc_storage_device &&
-      hd->sub_class.id == sc_sdev_other
-    ) {
-      switch(ul0) {
-        case 0:
-          if(search_str_list(hd->drivers, "sd")) {
-            hd->sub_class.id = sc_sdev_disk;
-          }
-          break;
-
-        case 5:
-          if(search_str_list(hd->drivers, "sr")) {
-            hd->sub_class.id = sc_sdev_cdrom;
-          }
-          break;
-      }
-    }
-
-  }
-
-  /* s390: wwpn & fcp lun */
-  if(hd_attr_uint(sysfs_get_device_attr(sf_dev, "wwpn"), &ul0, 0)) {
-    ADD2LOG("    wwpn = 0x%016"PRIx64"\n", ul0);
-    scsi->wwpn = ul0;
-
-    /* it's a bit of a hack, actually */
-    t = new_str(hd_sysfs_id(sf_dev->path));
-    if(t) {
-      if((s = strrchr(t, '/'))) *s = 0;
-      if((s = strrchr(t, '/'))) *s = 0;
-      if((s = strrchr(t, '/'))) {
-        scsi->controller_id = new_str(s + 1);
-      }
-    }
-    t = free_mem(t);
-  }
-
-  if(hd_attr_uint(sysfs_get_device_attr(sf_dev, "fcp_lun"), &ul0, 0)) {
-    ADD2LOG("    fcp_lun = 0x%016"PRIx64"\n", ul0);
-    scsi->fcp_lun = ul0;
-  }
-
-  /* ppc: get rom id */
-  if((hd1 = hd_get_device_by_idx(hd_data, hd->attached_to)) && hd1->rom_id) {
-    str_printf(&hd->rom_id, 0, "%s/@%u", hd1->rom_id, (hd->slot & 0xf));
-  }
-
-  pr_str = NULL;
-
-  if(
-    hd_report_this(hd_data, hd) &&
-    hd->unix_dev_name &&
-    hd->sub_class.id == sc_sdev_cdrom &&
-    hd_data->in_vmware != 1            /* VMWare doesn't like it */
-  ) {
-    PROGRESS(5, 0, hd->unix_dev_name);
-    fd = open(hd->unix_dev_name, O_RDONLY | O_NONBLOCK);
-    if(fd >= 0) {
-
-      str_printf(&pr_str, 0, "%s cache", hd->unix_dev_name);
-      PROGRESS(5, 1, pr_str);
-
-      memset(scsi_cmd_buf, 0, sizeof scsi_cmd_buf);
-      memset(&hdr, 0, sizeof(hdr));
-
-      hdr.interface_id = 'S';
-      hdr.cmd_len = 6;
-      hdr.dxfer_direction = SG_DXFER_FROM_DEV;
-      hdr.dxferp = scsi_cmd_buf + 8 + 6;
-      hdr.dxfer_len = 0xff;
-      hdr.cmdp = scsi_cmd_buf + 8;
-      hdr.cmdp[0] = 0x1a;
-      hdr.cmdp[2] = 0x08;
-      hdr.cmdp[4] = 0xff;
-
-      k = ioctl(fd, SG_IO, &hdr);
-
-      if(k) {
-        ADD2LOG("%s status(0x1a:8) 0x%x\n", hd->unix_dev_name, k);
-      }
-      else {
-        unsigned char *ptr = hdr.dxferp;
-
-        uc = ptr + 4 + ptr[3] + 2;
-        scsi->cache = uc[0];
-        ADD2LOG("  scsi cache: 0x%02x\n", uc[0]);
-    
-        if((scsi->cache & 4)) {
-          hd->prog_if.id = pif_cdr;
-        }
-      }
-
-      close(fd);
-    }
-  }
-
-
-  if(
-    hd_report_this(hd_data, hd) &&
-    hd->unix_dev_name &&
-    hd->sub_class.id == sc_sdev_disk &&
-    !hd_probe_feature(hd_data, pr_scsi_noserial)
-  ) {
-    PROGRESS(5, 0, hd->unix_dev_name);
-    fd = open(hd->unix_dev_name, O_RDONLY | O_NONBLOCK);
-    if(fd >= 0) {
-
-      str_printf(&pr_str, 0, "%s geo", hd->unix_dev_name);
-      PROGRESS(5, 1, pr_str);
-
-      if(hd_getdisksize(hd_data, hd->unix_dev_name, fd, &geo, &size) == 1) {
-        /* (low-level) unformatted disk */
-        hd->is.notready = 1;
-      }
-
-      if(geo) add_res_entry(&hd->res, geo);
-      if(size) add_res_entry(&hd->res, size);
-
-      str_printf(&pr_str, 0, "%s serial", hd->unix_dev_name);
-      PROGRESS(5, 2, pr_str);
-
-      memset(scsi_cmd_buf, 0, sizeof scsi_cmd_buf);
-      memset(&hdr, 0, sizeof(hdr));
-
-      hdr.interface_id = 'S';
-      hdr.cmd_len = 6;
-      hdr.dxfer_direction = SG_DXFER_FROM_DEV;
-      hdr.dxferp = scsi_cmd_buf + 8 + 6;
-      hdr.dxfer_len = 0x24;
-      hdr.cmdp = scsi_cmd_buf + 8;
-      hdr.cmdp[0] = 0x12;
-      hdr.cmdp[1] = 0x01;
-      hdr.cmdp[2] = 0x80;
-      hdr.cmdp[4] = 0x24;
-      k = ioctl(fd, SG_IO, &hdr);
-
-      if(k) {
-        ADD2LOG("%s status(0x12) 0x%x\n", scsi->dev_name, k);
-      }
-      else {
-        unsigned char *ptr = hdr.dxferp;
-
-        ADD2LOG("  serial id len: %u\n", ptr[3]);
-
-        if((hd->serial = canon_str(ptr + 4, ptr[3]))) {
-          if(!*hd->serial) hd->serial = free_mem(hd->serial);
-        }
-      }
-
-      close(fd);
-    }
-  }
-
-  pr_str = free_mem(pr_str);
-
-
-  if(
-    hd->base_class.id == bc_storage_device &&
-    hd->sub_class.id == sc_sdev_scanner
-  ) {
-    hd->base_class.id = bc_scanner;
-  }
-
-  // ###### FIXME: usb-storage: disk vs. floppy?
-}
-
-
-void read_partitions(hd_data_t *hd_data)
-{
-  str_list_t *sl, *sl0, *pl0 = NULL;
-  char buf[256], *s1, *name, *base;
-  char *last_base = new_str(" ");
-  char *last_name = new_str(" ");
-  int l, is_disk;
-
-  if(!(sl0 = read_file(PROC_PARTITIONS, 2, 0))) return;
-
-  if(hd_data->debug) {
-    ADD2LOG("----- "PROC_PARTITIONS" -----\n");
-    for(sl = sl0; sl; sl = sl->next) {
-      ADD2LOG("  %s", sl->str);
-    }
-    ADD2LOG("----- "PROC_PARTITIONS" end -----\n");
-  }
-
-  for(sl = sl0; sl; sl = sl->next) {
-    *buf = 0;
-    if(sscanf(sl->str, "%*s %*s %*s %255s", buf) > 0) {
-      if(*buf) add_str_list(&pl0, buf);
-    }
-  }
-
-  free_str_list(sl0);
-
-  for(is_disk = 1, sl = pl0; sl; sl = sl->next) {
-    base = sl->str;
-    l = strlen(base);
-    if(!l) continue;
-
-    s1 = base + l - 1;
-    while(isdigit(*s1) && s1 > base) s1--;
-    if(s1 == base) continue;
-
-    name = new_str(base);
-    s1[1] = 0;
-
-    if(!strcmp(last_base, base)) {
-      if(!strcmp(last_name, base)) is_disk = 0;
-    }
-    else {
-      is_disk = strncmp(last_name, base, strlen(last_name)) ? 1 : 0;
-    }
-
-    if(!search_str_list(hd_data->cdroms, name)) {
-      if(
-        strncmp(name, "loop", sizeof "loop" - 1) &&
-        (
-          hd_data->flags.list_md ||
-          (
-            strncmp(name, "md", sizeof "md" - 1) &&
-            strncmp(name, "dm-", sizeof "dm-" - 1)
-          )
-        )
-      ) {
-        add_str_list(is_disk ? &hd_data->disks : &hd_data->partitions, name);
-      }
-    }
-    free_mem(last_base);
-    free_mem(last_name);
-
-    last_base = new_str(base);
-    last_name = name; name = NULL;
-  }
-
-  free_mem(last_base);
-  free_mem(last_name);
-
-  free_str_list(pl0);
-
-  if(hd_data->debug) {
-    ADD2LOG("disks:\n");
-    for(sl = hd_data->disks; sl; sl = sl->next) ADD2LOG("  %s\n", sl->str);
-    ADD2LOG("partitions:\n");
-    for(sl = hd_data->partitions; sl; sl = sl->next) ADD2LOG("  %s\n", sl->str);
-  }
-}
-
-
-/*
- * Read iso9660/el torito info, if there is a CD inserted.
- * Returns NULL if nothing was found
- */
-cdrom_info_t *hd_read_cdrom_info(hd_data_t *hd_data, hd_t *hd)
-{
-  int fd;
-  char *s;
-  cdrom_info_t *ci;
-  struct iso_primary_descriptor iso_desc;
-  unsigned char sector[0x800];
-  unsigned et;
-  unsigned u0, u1, u2;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_read_cdrom_info, hd_data), hd_data);
-  }
-#endif
-
-  /* free existing entry */
-  if(hd->detail && hd->detail->type != hd_detail_cdrom) {
-    hd->detail = free_hd_detail(hd->detail);
-  }
-
-  if(!hd->detail) {
-    hd->detail = new_mem(sizeof *hd->detail);
-    hd->detail->type = hd_detail_cdrom;
-    hd->detail->cdrom.data = new_mem(sizeof *hd->detail->cdrom.data);
-  }
-
-  ci = hd->detail->cdrom.data;
-
-  hd->is.notready = 0;
-
-  if((fd = open(hd->unix_dev_name, O_RDONLY)) < 0) {
-    /* we are here if there is no CD in the drive */
-    hd->is.notready = 1;
-    return NULL;
-  }
-
-  ci->iso9660.ok = 0;
-  if(
-    lseek(fd, 0x8000, SEEK_SET) >= 0 &&
-    read(fd, &iso_desc, sizeof iso_desc) == sizeof iso_desc
-  ) {
-    ci->cdrom = 1;
-    if(!memcmp(iso_desc.id, "CD001", 5)) {
-      ci->iso9660.ok = 1;
-      /* now, fill in the fields */
-      s = canon_str(iso_desc.volume_id, sizeof iso_desc.volume_id);
-      if(!*s) s = free_mem(s);
-      ci->iso9660.volume = s;
-
-      s = canon_str(iso_desc.publisher_id, sizeof iso_desc.publisher_id);
-      if(!*s) s = free_mem(s);
-      ci->iso9660.publisher = s;
-
-      s = canon_str(iso_desc.preparer_id, sizeof iso_desc.preparer_id);
-      if(!*s) s = free_mem(s);
-      ci->iso9660.preparer = s;
-
-      s = canon_str(iso_desc.application_id, sizeof iso_desc.application_id);
-      if(!*s) s = free_mem(s);
-      ci->iso9660.application = s;
-
-      s = canon_str(iso_desc.creation_date, sizeof iso_desc.creation_date);
-      if(!*s) s = free_mem(s);
-      ci->iso9660.creation_date = s;
-    }
-  }
-
-  if(
-    ci->iso9660.ok &&
-    lseek(fd, 0x8800, SEEK_SET) >= 0 &&
-    read(fd, &sector, sizeof sector) == sizeof sector
-  ) {
-    if(
-      sector[0] == 0 && sector[6] == 1 &&
-      !memcmp(sector + 1, "CD001", 5) &&
-      !memcmp(sector + 7, "EL TORITO SPECIFICATION", 23)
-    ) {
-      et = sector[0x47] + (sector[0x48] << 8) + (sector[0x49] << 16) + (sector[0x4a] << 24);
-      ADD2LOG("  %s: el torito boot catalog at 0x%04x\n", ci->name, et);
-      if(
-        lseek(fd, et * 0x800, SEEK_SET) >= 0 &&
-        read(fd, &sector, sizeof sector) == sizeof sector &&
-        sector[0] == 1
-      ) {
-        ci->el_torito.ok = 1;
-        ci->el_torito.catalog = et;
-        ci->el_torito.platform = sector[1];
-        s = canon_str(sector + 4, 24);
-        if(!*s) s = free_mem(s);
-        ci->el_torito.id_string = s;
-        ci->el_torito.bootable = sector[0x20] == 0x88 ? 1 : 0;
-        ci->el_torito.media_type = sector[0x21];
-        ADD2LOG("    media type: %u\n",  ci->el_torito.media_type);
-        ci->el_torito.load_address = (sector[0x22] + (sector[0x23] << 8)) << 4;
-        ADD2LOG("    load address: 0x%04x\n",  ci->el_torito.load_address);
-#if 0
-        if(ci->el_torito.platform == 0 && ci->el_torito.load_address == 0)
-          ci->el_torito.load_address = 0x7c00;
-#endif
-        ci->el_torito.load_count = sector[0x26] + (sector[0x27] << 8);
-        ci->el_torito.start = sector[0x28] + (sector[0x29] << 8) + (sector[0x2a] << 16) + (sector[0x2b] << 24);
-        if(ci->el_torito.media_type >= 1 && ci->el_torito.media_type <= 3) {
-          ci->el_torito.geo.c = 80;
-          ci->el_torito.geo.h = 2;
-        }
-        switch(ci->el_torito.media_type) {
-          case 1:
-            ci->el_torito.geo.s = 15;
-            break;
-          case 2:
-            ci->el_torito.geo.s = 18;
-            break;
-          case 3:
-            ci->el_torito.geo.s = 36;
-            break;
-        }
-        if(
-          lseek(fd, ci->el_torito.start * 0x800, SEEK_SET) >= 0 &&
-          read(fd, &sector, sizeof sector) == sizeof sector
-        ) {
-          if(ci->el_torito.media_type == 4) {
-            /* ##### we should go on and read the 1st partition sector in this case... */
-            ci->el_torito.geo.h = (unsigned) sector[0x1be + 5] + 1;
-            ci->el_torito.geo.s = sector[0x1be + 6] & 0x3f;
-            ci->el_torito.geo.c = sector[0x1be + 7] + (((unsigned) sector[0x1be + 6] >> 6) << 8);
-          }
-          if(
-            sector[0x1fe] == 0x55 && sector[0x1ff] == 0xaa &&
-            sector[0x0b] == 0 && sector[0x0c] == 2 &&
-            sector[0x0e] == 1 && sector[0x0f] == 0
-          ) {
-            u0 = sector[0x13] + (sector[0x14] << 8);   /* partition size */
-            u1 = sector[0x18] + (sector[0x19] << 8);   /* sectors per track */
-            u2 = sector[0x1a] + (sector[0x1b] << 8);   /* heads */
-            u0 = u0 ? u0 : sector[0x20] + (sector[0x21] << 8) + (sector[0x22] << 16) + ((unsigned) sector[0x23] << 24);
-            if(sector[0x26] == 0x29) {
-              s = canon_str(sector + 0x2b, 11);
-              if(!*s) s = free_mem(s);
-              ci->el_torito.label = s;
-            }
-            if(!ci->el_torito.label) {
-              s = canon_str(sector + 3, 8);
-              if(!*s) s = free_mem(s);
-              ci->el_torito.label = s;
-            }
-            if(
-              (ci->el_torito.media_type == 0 || ci->el_torito.media_type > 3) &&
-              u0 && u1 && u2
-            ) {
-              ci->el_torito.geo.h = u2;
-              ci->el_torito.geo.s = u1;
-              ci->el_torito.geo.size = u0;
-              ci->el_torito.geo.c = ci->el_torito.geo.size / (u1 * u2);
-            }
-          }
-        }
-
-        ci->el_torito.geo.size = ci->el_torito.geo.s * ci->el_torito.geo.c * ci->el_torito.geo.h;
-      }
-    }
-  }
-
-  close(fd);
-
-  return ci;
-}
-
-
-/*
- * Read the list of CDROM devices known to the kernel. The info is taken
- * from /proc/sys/dev/cdrom/info.
- */
-void read_cdroms(hd_data_t *hd_data)
-{
-  char *s, *t, *v;
-  str_list_t *sl, *sl0;
-  cdrom_info_t *ci;
-  int i, line, entries = 0;
-  unsigned val;
-
-  if(!(sl0 = read_file(PROC_CDROM_INFO, 2, 0))) return;
-
-  if((hd_data->debug & HD_DEB_CDROM)) {
-    ADD2LOG("----- "PROC_CDROM_INFO" -----\n");
-    for(sl = sl0; sl; sl = sl->next) {
-      if(*sl->str != '\n') ADD2LOG("%s", sl->str);
-    }
-    ADD2LOG("----- "PROC_CDROM_INFO" end -----\n");
-  }
-
-  for(sl = sl0; sl; sl = sl->next) {
-    if(
-      (line = 0, strstr(sl->str, "drive name:") == sl->str) ||
-      (line++, strstr(sl->str, "drive speed:") == sl->str) ||
-      (line++, strstr(sl->str, "Can write CD-R:") == sl->str) ||
-      (line++, strstr(sl->str, "Can write CD-RW:") == sl->str) ||
-      (line++, strstr(sl->str, "Can read DVD:") == sl->str) ||
-      (line++, strstr(sl->str, "Can write DVD-R:") == sl->str) ||
-      (line++, strstr(sl->str, "Can write DVD-RAM:") == sl->str)
-    ) {
-      s = strchr(sl->str, ':') + 1;
-      i = 0;
-      while((t = strsep(&s, " \t\n"))) {
-        if(!*t) continue;
-        i++;
-        switch(line) {
-          case 0:      /* drive name */
-            ci = new_cdrom_entry(&hd_data->cdrom);
-            entries++;
-            add_str_list(&hd_data->cdroms, t);
-            ci->name = new_str(t);
-            break;
-
-          case 1:      /* drive speed */
-          case 2:      /* Can write CD-R */
-          case 3:      /* Can write CD-RW */
-          case 4:      /* Can read DVD */
-          case 5:      /* Can write DVD-R */
-          case 6:      /* Can write DVD-RAM */
-            ci = get_cdrom_entry(hd_data->cdrom, entries - i);
-            if(ci) {
-              val = strtoul(t, &v, 10);
-              if(!*v) {
-                switch(line) {
-                  case 1:
-                    ci->speed = val;
-                    break;
-                  case 2:
-                    ci->cdr = val;
-                    break;
-                  case 3:
-                    ci->cdrw = val;
-                    break;
-                  case 4:
-                    ci->dvd = val;
-                    break;
-                  case 5:
-                    ci->dvdr = val;
-                    break;
-                  case 6:
-                    ci->dvdram = val;
-                    break;
-                }
-              }
-            }
-            break;
-        }
-      }
-    }  
-  }
-
-  free_str_list(sl0);
-}
-
-
-/* add new entries at the _start_ of the list */
-cdrom_info_t *new_cdrom_entry(cdrom_info_t **ci)
-{
-  cdrom_info_t *new_ci = new_mem(sizeof *new_ci);
-
-  new_ci->next = *ci;
-  return *ci = new_ci;
-}
-
-
-/* return nth entry */
-cdrom_info_t *get_cdrom_entry(cdrom_info_t *ci, int n)
-{
-  if(n < 0) return NULL;
-
-  while(n--) {
-    if(!ci) return NULL;
-    ci = ci->next;
-  }
-
-  return ci;
-}
-
-
-/*
- * Add generic scsi devs.
- */
-void hd_scan_sysfs_scsi(hd_data_t *hd_data)
-{
-  if(!hd_probe_feature(hd_data, pr_scsi)) return;
-
-  hd_data->module = mod_scsi;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "scsi modules");
-
-  load_module(hd_data, "sg");
-
-  PROGRESS(2, 0, "scsi tape");
-
-  get_scsi_tape(hd_data);
-
-  PROGRESS(3, 0, "scsi generic");
-
-  get_generic_scsi_devs(hd_data);
-}
-
-
-void get_scsi_tape(hd_data_t *hd_data)
-{
-  char *s, *t;
-  unsigned u1, u2, u3;
-  uint64_t ul0;
-  hd_t *hd, *hd1;
-  hd_dev_num_t dev_num;
-
-  struct sysfs_class *sf_class;
-  struct sysfs_class_device *sf_cdev;
-  struct sysfs_device *sf_dev;
-  struct dlist *sf_cdev_list;
-
-  sf_class = sysfs_open_class("scsi_tape");
-
-  if(!sf_class) {
-    ADD2LOG("sysfs: no such class: scsi_tape\n");
-    return;
-  }
-
-  sf_cdev_list = sysfs_get_class_devices(sf_class);
-  if(sf_cdev_list) dlist_for_each_data(sf_cdev_list, sf_cdev, struct sysfs_class_device) {
-    ADD2LOG(
-      "  scsi tape: name = %s, path = %s\n",
-      sf_cdev->name,
-      hd_sysfs_id(sf_cdev->path)
-    );
-
-    memset(&dev_num, 0, sizeof dev_num);
-
-    if((s = hd_attr_str(sysfs_get_classdev_attr(sf_cdev, "dev")))) {
-      if(sscanf(s, "%u:%u", &u1, &u2) == 2) {
-        dev_num.type = 'c';
-        dev_num.major = u1;
-        dev_num.minor = u2;
-        dev_num.range = 1;
-      }
-      ADD2LOG("    dev = %u:%u\n", u1, u2);
-    }
-
-    if(hd_attr_uint(sysfs_get_classdev_attr(sf_cdev, "range"), &ul0, 0)) {
-      dev_num.range = ul0;
-      ADD2LOG("    range = %u\n", dev_num.range);
-    }
-
-    sf_dev = sysfs_get_classdev_device(sf_cdev);
-    if(sf_dev) {
-      s = hd_sysfs_id(sf_dev->path);
-      ADD2LOG(
-        "    scsi device: bus = %s, bus_id = %s driver = %s\n      path = %s\n",
-        sf_dev->bus,
-        sf_dev->bus_id,
-        sf_dev->driver_name,
-        s
-      );
-
-      for(hd = hd_data->hd; hd; hd = hd->next) {
-        if(
-          hd->module == hd_data->module &&
-          hd->sysfs_device_link &&
-          hd->base_class.id == bc_storage_device &&
-          hd->sub_class.id == sc_sdev_tape &&
-          s &&
-          !strcmp(hd->sysfs_device_link, s)
-        ) break;
-      }
-
-      if(!hd) {
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->base_class.id = bc_storage_device;
-        hd->sub_class.id = sc_sdev_tape;
-
-        hd->bus.id = bus_scsi;
-
-        hd->sysfs_device_link = new_str(s);
-
-        hd->sysfs_bus_id = new_str(sf_dev->bus_id);
-
-        /* parent has longest matching sysfs id */
-        u2 = strlen(s);
-        for(u3 = 0, hd1 = hd_data->hd; hd1; hd1 = hd1->next) {
-          if(hd1->sysfs_id) {
-            u1 = strlen(hd1->sysfs_id);
-            if(u1 > u3 && u1 <= u2 && !strncmp(s, hd1->sysfs_id, u1)) {
-              u3 = u1;
-              hd->attached_to = hd1->idx;
-            }
-          }
-        }
-
-        /* find longest matching sysfs id we have a driver for */
-        s = new_str(s);
-        t = strrchr(s, '/');
-        if(t) *t = 0;
-        t = hd_sysfs_find_driver(hd_data, s, 0);
-        if(t) {
-          add_str_list(&hd->drivers, t);
-        }
-        s = free_mem(s);
-
-        if(
-          sf_dev->driver_name &&
-          *sf_dev->driver_name &&
-          strcmp(sf_dev->driver_name, "unknown")
-        ) {
-          add_str_list(&hd->drivers, sf_dev->driver_name);
-        }
-
-        add_scsi_sysfs_info(hd_data, hd, sf_dev);
-      }
-
-      s = hd_sysfs_name2_dev(sf_cdev->name);
-
-      if(!hd->unix_dev_name || strlen(s) + sizeof "/dev/" - 1 < strlen(hd->unix_dev_name)) {
-        str_printf(&hd->unix_dev_name, 0, "/dev/%s", s);
-        hd->unix_dev_num = dev_num;
-        free_mem(hd->sysfs_id);
-        hd->sysfs_id = new_str(hd_sysfs_id(sf_cdev->path));
-      }
-    }
-  }
-
-  sysfs_close_class(sf_class);
-}
-
-
-void get_generic_scsi_devs(hd_data_t *hd_data)
-{
-  char *s, *t;
-  unsigned u1, u2, u3;
-  uint64_t ul0;
-  hd_t *hd, *hd1;
-  hd_dev_num_t dev_num;
-
-  struct sysfs_class *sf_class;
-  struct sysfs_class_device *sf_cdev;
-  struct sysfs_device *sf_dev;
-  struct dlist *sf_cdev_list;
-
-  sf_class = sysfs_open_class("scsi_generic");
-
-  if(!sf_class) {
-    ADD2LOG("sysfs: no such class: scsi_generic\n");
-    return;
-  }
-
-  sf_cdev_list = sysfs_get_class_devices(sf_class);
-  if(sf_cdev_list) dlist_for_each_data(sf_cdev_list, sf_cdev, struct sysfs_class_device) {
-    ADD2LOG(
-      "  scsi: name = %s, path = %s\n",
-      sf_cdev->name,
-      hd_sysfs_id(sf_cdev->path)
-    );
-
-    memset(&dev_num, 0, sizeof dev_num);
-
-    if((s = hd_attr_str(sysfs_get_classdev_attr(sf_cdev, "dev")))) {
-      if(sscanf(s, "%u:%u", &u1, &u2) == 2) {
-        dev_num.type = 'c';
-        dev_num.major = u1;
-        dev_num.minor = u2;
-        dev_num.range = 1;
-      }
-      ADD2LOG("    dev = %u:%u\n", u1, u2);
-    }
-
-    if(hd_attr_uint(sysfs_get_classdev_attr(sf_cdev, "range"), &ul0, 0)) {
-      dev_num.range = ul0;
-      ADD2LOG("    range = %u\n", dev_num.range);
-    }
-
-    sf_dev = sysfs_get_classdev_device(sf_cdev);
-    if(sf_dev) {
-      s = hd_sysfs_id(sf_dev->path);
-
-      ADD2LOG(
-        "    scsi device: bus = %s, bus_id = %s driver = %s\n      path = %s\n",
-        sf_dev->bus,
-        sf_dev->bus_id,
-        sf_dev->driver_name,
-        s
-      );
-    }
-
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(
-        hd->sysfs_device_link &&
-        hd->bus.id == bus_scsi &&
-        s &&
-        !strcmp(hd->sysfs_device_link, s)
-      ) break;
-    }
-
-    if(hd) {
-      if(!hd->unix_dev_name2) {
-        str_printf(&hd->unix_dev_name2, 0, "/dev/%s", hd_sysfs_name2_dev(sf_cdev->name));
-        hd->unix_dev_num2 = dev_num;
-      }
-    }
-
-    hd = NULL;
-
-    if(
-      sf_dev &&
-      sf_dev->driver_name &&
-      !strcmp(sf_dev->driver_name, "unknown")
-    ) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_storage_device;
-      hd->sub_class.id = sc_sdev_other;
-
-      str_printf(&hd->unix_dev_name, 0, "/dev/%s", hd_sysfs_name2_dev(sf_cdev->name));
-
-      hd->bus.id = bus_scsi;
-
-      hd->sysfs_id = new_str(hd_sysfs_id(sf_cdev->path));
-
-      hd->unix_dev_num = dev_num;
-
-      if(sf_dev) hd->sysfs_bus_id = new_str(sf_dev->bus_id);
-
-      if(sf_dev && (s = hd_sysfs_id(sf_dev->path))) {
-
-        /* parent has longest matching sysfs id */
-        u2 = strlen(s);
-        for(u3 = 0, hd1 = hd_data->hd; hd1; hd1 = hd1->next) {
-          if(hd1->sysfs_id) {
-            u1 = strlen(hd1->sysfs_id);
-            if(u1 > u3 && u1 <= u2 && !strncmp(s, hd1->sysfs_id, u1)) {
-              u3 = u1;
-              hd->attached_to = hd1->idx;
-            }
-          }
-        }
-
-        /* find longest matching sysfs id we have a driver for */
-        s = new_str(s);
-        t = strrchr(s, '/');
-        if(t) *t = 0;
-        t = hd_sysfs_find_driver(hd_data, s, 0);
-        if(t) {
-          add_str_list(&hd->drivers, t);
-        }
-        s = free_mem(s);
-
-      }
-
-      add_scsi_sysfs_info(hd_data, hd, sf_dev);
-
-    }
-
-  }
-
-  sysfs_close_class(sf_class);
-}
-
-
-void add_disk_size(hd_data_t *hd_data, hd_t *hd)
-{
-  hd_res_t *geo, *size;
-  int fd;
-  char *pr_str;
-
-  pr_str = NULL;
-
-  if(
-    hd->unix_dev_name &&
-    hd->sub_class.id == sc_sdev_disk
-  ) {
-    PROGRESS(5, 0, hd->unix_dev_name);
-    fd = open(hd->unix_dev_name, O_RDONLY | O_NONBLOCK);
-    if(fd >= 0) {
-
-      str_printf(&pr_str, 0, "%s geo", hd->unix_dev_name);
-      PROGRESS(5, 1, pr_str);
-
-      if(hd_getdisksize(hd_data, hd->unix_dev_name, fd, &geo, &size) == 1) {
-        /* (low-level) unformatted disk */
-        hd->is.notready = 1;
-      }
-
-      if(geo) add_res_entry(&hd->res, geo);
-      if(size) add_res_entry(&hd->res, size);
-
-      close(fd);
-    }
-  }
-
-  pr_str = free_mem(pr_str);
-}
-
-
diff --git a/src/hwinfo/src/hd/block.h b/src/hwinfo/src/hd/block.h
deleted file mode 100644 (file)
index d3dad43..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-void hd_scan_sysfs_block(hd_data_t *hd_data);
-void hd_scan_sysfs_scsi(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/braille.c b/src/hwinfo/src/hd/braille.c
deleted file mode 100644 (file)
index 5095c28..0000000
+++ /dev/null
@@ -1,455 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <termios.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "braille.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * braille displays
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#if !defined(LIBHD_TINY) && !defined(__sparc__)
-
-static unsigned do_alva(hd_data_t *hd_data, char *dev_name, int cnt);
-static unsigned do_fhp(hd_data_t *hd_data, char *dev_name, unsigned baud, int cnt);
-static unsigned do_ht(hd_data_t *hd_data, char *dev_name, int cnt);
-static unsigned do_baum(hd_data_t *hd_data, char *dev_name, int cnt);
-
-void hd_scan_braille(hd_data_t *hd_data)
-{
-  hd_t *hd, *hd_tmp;
-  int cnt = 0;
-  unsigned dev, vend;
-
-  if(!hd_probe_feature(hd_data, pr_braille)) return;
-
-  hd_data->module = mod_braille;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_comm &&
-      hd->sub_class.id == sc_com_ser &&
-      hd->unix_dev_name &&
-      !hd->tag.ser_skip &&
-      !has_something_attached(hd_data, hd)
-    ) {
-      cnt++;
-      dev = vend = 0;
-
-      if(hd_probe_feature(hd_data, pr_braille_alva)) {
-        PROGRESS(1, cnt, "alva");
-        vend = MAKE_ID(TAG_SPECIAL, 0x5001);
-        dev = do_alva(hd_data, hd->unix_dev_name, cnt);
-      }
-
-      if(!dev && hd_probe_feature(hd_data, pr_braille_fhp)) {
-        PROGRESS(1, cnt, "fhp_old");
-        vend = MAKE_ID(TAG_SPECIAL, 0x5002);
-        dev = do_fhp(hd_data, hd->unix_dev_name, B19200, cnt);
-        if(!dev) {
-          PROGRESS(1, cnt, "fhp_el");
-          dev = do_fhp(hd_data, hd->unix_dev_name, B38400, cnt);
-        }
-      }
-
-      if(!dev && hd_probe_feature(hd_data, pr_braille_ht)) {
-        PROGRESS(1, cnt, "ht");
-        vend = MAKE_ID(TAG_SPECIAL, 0x5003);
-        dev = do_ht(hd_data, hd->unix_dev_name, cnt);
-      }
-
-      if(!dev && hd_probe_feature(hd_data, pr_braille_baum)) {
-        PROGRESS(1, cnt, "baum");
-        vend = MAKE_ID(TAG_SPECIAL, 0x5004);
-        dev = do_baum(hd_data, hd->unix_dev_name, cnt);
-      }
-
-      if(dev) {
-        hd_tmp = add_hd_entry(hd_data, __LINE__, 0);
-        hd_tmp->base_class.id = bc_braille;
-        hd_tmp->bus.id = bus_serial;
-        hd_tmp->unix_dev_name = new_str(hd->unix_dev_name);
-        hd_tmp->attached_to = hd->idx;
-        hd_tmp->vendor.id = vend;
-        hd_tmp->device.id = dev;
-      }
-    }
-  }
-}
-
-
-/*
- * autodetect for Alva Braille-displays
- * Author: marco Skambraks <marco@suse.de>
- * Suse GmbH Nuernberg
- *
- * This is free software, placed under the terms of the
- * GNU General Public License, as published by the Free Software
- * Foundation.  Please see the file COPYING for details.
-*/
-
-/* Communication codes */
-#define BRL_ID "\033ID="
-
-
-#define WAIT_DTR       700000
-#define WAIT_FLUSH     200
-
-unsigned do_alva(hd_data_t *hd_data, char *dev_name, int cnt)
-{
-  int fd, i, timeout = 100;
-  struct termios oldtio, newtio;               /* old & new terminal settings */
-  int model = -1;
-  unsigned char buffer[sizeof BRL_ID];
-  unsigned dev = 0;
-
-  PROGRESS(2, cnt, "alva open");
-
-  /* Open the Braille display device for random access */
-  fd = open(dev_name, O_RDWR | O_NOCTTY);
-  if(fd < 0) return 0;
-
-  tcgetattr(fd, &oldtio);      /* save current settings */
-
-  /* Set flow control and 8n1, enable reading */
-  memset(&newtio, 0, sizeof newtio);
-  newtio.c_cflag = CRTSCTS | CS8 | CLOCAL | CREAD;
-  /* Ignore bytes with parity errors and make terminal raw and dumb */
-  newtio.c_iflag = IGNPAR;
-  newtio.c_oflag = 0;          /* raw output */
-  newtio.c_lflag = 0;          /* don't echo or generate signals */
-  newtio.c_cc[VMIN] = 0;       /* set nonblocking read */
-  newtio.c_cc[VTIME] = 0;
-
-  PROGRESS(3, cnt, "alva init ok");
-
-  PROGRESS(4, cnt, "alva read data");
-
-  /* autodetecting ABT model */
-  /* to force DTR off */
-  cfsetispeed(&newtio, B0);
-  cfsetospeed(&newtio, B0);
-  tcsetattr(fd, TCSANOW, &newtio);     /* activate new settings */
-  usleep(WAIT_DTR);
-
-  tcflush(fd, TCIOFLUSH);              /* clean line */
-  usleep(WAIT_FLUSH);
-
-  /* DTR back on */
-  cfsetispeed(&newtio, B9600);
-  cfsetospeed(&newtio, B9600);
-  tcsetattr(fd, TCSANOW, &newtio);     /* activate new settings */
-  usleep(WAIT_DTR);                    /* give time to send ID string */
-
-  if((i = read(fd, buffer, sizeof buffer)) == sizeof buffer) {
-    if(!strncmp(buffer, BRL_ID, sizeof BRL_ID - 1)) {
-      /* Find out which model we are connected to... */
-      switch(model = buffer[sizeof buffer - 1])
-      {
-        case    1:
-        case    2:
-        case    3:
-        case    4:
-        case 0x0b:
-        case 0x0d:
-        case 0x0e:
-         dev = MAKE_ID(TAG_SPECIAL, model);
-         break;
-      }
-    }
-  }
-  ADD2LOG("alva.%d@%s[%d]: ", timeout, dev_name, i);
-  if(i > 0) hexdump(&hd_data->log, 1, i, buffer);
-  ADD2LOG("\n");
-
-  PROGRESS(5, cnt, "alva read done");
-
-  /* reset serial lines */
-  tcflush(fd, TCIOFLUSH);
-  tcsetattr(fd, TCSAFLUSH, &oldtio);
-  close(fd);
-
-  return dev;
-}
-
-
-/*
- * autodetect for Papenmeier Braille-displays
- * Author: marco Skambraks <marco@suse.de>
- * Suse GmbH Nuernberg
- *
- * This is free software, placed under the terms of the
- * GNU General Public License, as published by the Free Software
- * Foundation.  Please see the file COPYING for details.
- */
-
-unsigned do_fhp(hd_data_t *hd_data, char *dev_name, unsigned baud, int cnt)
-{
-  int fd, i;
-  char crash[] = { 2, 'S', 0, 0, 0, 0 };
-  unsigned char buf[10];
-  struct termios oldtio, newtio;       /* old & new terminal settings */
-  unsigned dev;
-
-  PROGRESS(2, cnt, "fhp open");
-
-  /* Now open the Braille display device for random access */
-  fd = open(dev_name, O_RDWR | O_NOCTTY);
-  if(fd < 0) return 0;
-
-  tcgetattr(fd, &oldtio);      /* save current settings */
-
-  /* Set bps, flow control and 8n1, enable reading */
-  memset(&newtio, 0, sizeof newtio);
-  newtio.c_cflag = baud | CS8 | CLOCAL | CREAD;
-
-  /* Ignore bytes with parity errors and make terminal raw and dumb */
-  newtio.c_iflag = IGNPAR;
-  newtio.c_oflag = 0;                          /* raw output */
-  newtio.c_lflag = 0;                          /* don't echo or generate signals */
-  newtio.c_cc[VMIN] = 0;                       /* set nonblocking read */
-  newtio.c_cc[VTIME] = 0;
-  tcflush(fd, TCIFLUSH);                       /* clean line */
-  tcsetattr(fd, TCSANOW, &newtio);             /* activate new settings */
-
-  PROGRESS(3, cnt, "fhp init ok");
-
-  crash[2] = 0x200 >> 8;
-  crash[3] = 0x200 & 0xff;
-  crash[5] = (7+10) & 0xff;
-
-  write(fd, crash, sizeof crash);
-  write(fd, "1111111111",10);
-  write(fd, "\03", 1);
-
-  crash[2] = 0x0 >> 8;
-  crash[3] = 0x0 & 0xff;
-  crash[5] = 5 & 0xff;
-
-  write(fd, crash, sizeof crash);
-  write(fd, "1111111111", 10);
-  write(fd, "\03", 1);
-
-  usleep(500000);              /* 100000 should be enough */
-
-  PROGRESS(4, cnt, "fhp write ok");
-
-  i = read(fd, &buf, 10);
-
-  PROGRESS(5, cnt, "fhp read done");
-
-  ADD2LOG("fhp@%s[%d]: ", dev_name, i);
-  if(i > 0) hexdump(&hd_data->log, 1, i, buf);
-  ADD2LOG("\n");
-
-  dev = 0;
-  if(i == 10 && buf[0] == 0x02 && buf[1] == 0x49) {
-    switch(buf[2]) {
-      case  1:
-      case  2:
-      case  3:
-      case 64:
-      case 65:
-      case 66:
-      case 67:
-      case 68:
-        dev = buf[2];
-        dev = MAKE_ID(TAG_SPECIAL, dev);
-        break;
-    }
-  }
-  if(!dev) ADD2LOG("no fhp display: 0x%02x\n", i >= 2 ? buf[2] : 0);
-
-  /* reset serial lines */
-  tcflush(fd, TCIOFLUSH);
-  tcsetattr(fd, TCSAFLUSH, &oldtio);
-  close(fd);
-
-  return dev;
-}
-
-
-/*
- * autodetect for Handy Tech  Braille-displays
- * Author: marco Skambraks <marco@suse.de>
- * Suse GmbH Nuernberg
- *
- * This is free software, placed under the terms of the
- * GNU General Public License, as published by the Free Software
- * Foundation.  Please see the file COPYING for details.
-*/
-
-unsigned do_ht(hd_data_t *hd_data, char *dev_name, int cnt)
-{
-  int fd, i;
-  unsigned char code = 0xff, buf[2] = { 0, 0 };
-  struct termios oldtio, newtio;
-  unsigned dev = 0;
-
-  PROGRESS(2, cnt, "ht open");
-
-  fd = open(dev_name, O_RDWR | O_NOCTTY);
-  if(fd < 0) return 0;
-
-  tcgetattr(fd, &oldtio);
-
-  newtio = oldtio;
-  newtio.c_cflag = CLOCAL | PARODD | PARENB | CREAD | CS8;
-  newtio.c_iflag = IGNPAR;
-  newtio.c_oflag = 0;
-  newtio.c_lflag = 0;
-  newtio.c_cc[VMIN] = 0;
-  newtio.c_cc[VTIME] = 0;
-
-  i = 0;
-  /*
-   * Force down DTR, flush any pending data and then the port to what we
-   * want it to be
-   */
-  if(
-    !(
-      cfsetispeed(&newtio, B0) ||
-      cfsetospeed(&newtio, B0) ||
-      tcsetattr(fd, TCSANOW, &newtio) ||
-      tcflush(fd, TCIOFLUSH) ||
-      cfsetispeed(&newtio, B19200) ||
-      cfsetospeed(&newtio, B19200) ||
-      tcsetattr(fd, TCSANOW, &newtio)
-    )
-  ) {
-    /* Pause to let them take effect */
-    usleep(500);
-
-    PROGRESS(3, cnt, "ht init ok");
-
-    write(fd, &code, 1);       /* reset brl */
-    usleep(5000);              /* wait for reset */
-
-    PROGRESS(4, cnt, "ht write ok");
-
-    read(fd, buf, 1);
-    i = 1;
-
-    PROGRESS(5, cnt, "ht read done");
-
-    if(buf[0] == 0xfe) {       /* resetok now read id */
-      usleep(5000);
-      read(fd, buf + 1, 1);
-      i = 2;
-
-      PROGRESS(6, cnt, "ht read done");
-
-      switch(buf[1]) {
-       case 0x05:
-       case 0x09:
-       case 0x44:
-       case 0x74:
-       case 0x80:
-       case 0x84:
-       case 0x88:
-       case 0x89:
-          dev = buf[1];
-          dev = MAKE_ID(TAG_SPECIAL, dev);
-          break;
-      }
-    }
-  }
-
-  ADD2LOG("ht@%s[%d]: ", dev_name, i);
-  if(i > 0) hexdump(&hd_data->log, 1, i, buf);
-  ADD2LOG("\n");
-
-  if(!dev) ADD2LOG("no ht display: 0x%02x\n", buf[1]);
-
-  /* reset serial lines */
-  tcflush(fd, TCIOFLUSH);
-  tcsetattr(fd, TCSAFLUSH, &oldtio);
-  close(fd);
-
-  return dev;
-}
-
-
-/*
- * autodetect for Baum Braille-displays
- * Author: marco Skambraks <marco@suse.de>
- * Suse GmbH Nuernberg
- *
- * This is free software, placed under the terms of the
- * GNU General Public License, as published by the Free Software
- * Foundation.  Please see the file COPYING for details.
-*/
-
-#define BAUDRATE       B19200          /* But both run at 19k2 */
-#define MAXREAD                18
-
-unsigned do_baum(hd_data_t *hd_data, char *dev_name, int cnt)
-{
-  static char device_id[] = { 0x1b, 0x84 };
-  int fd;
-  struct termios oldtio, curtio;
-  unsigned char buf[MAXREAD + 1];
-  int i;
-
-  PROGRESS(2, cnt, "baum open");
-
-  fd = open(dev_name, O_RDWR | O_NOCTTY);
-  if(fd < 0) return 0;
-
-  tcgetattr(fd, &curtio);
-
-  oldtio = curtio;
-  cfmakeraw(&curtio);
-
-  /* no SIGTTOU to backgrounded processes */
-  curtio.c_lflag &= ~TOSTOP;
-  curtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD;
-  /* no input parity check, no XON/XOFF */
-  curtio.c_iflag &= ~(INPCK | ~IXOFF);
-
-  curtio.c_cc[VTIME] = 1;      /* 0.1s timeout between chars on input */
-  curtio.c_cc[VMIN] = 0;       /* no minimum input */
-
-  tcsetattr(fd, TCSAFLUSH, &curtio);
-
-  /* write ID-request */
-  write(fd, device_id, sizeof device_id);
-
-  /* wait for response */
-  usleep(100000);
-
-  PROGRESS(3, cnt, "baum write ok");
-
-  i = read(fd, buf, sizeof buf - 1);
-  buf[sizeof buf - 1] = 0;
-
-  PROGRESS(4, cnt, "baum read done");
-
-  ADD2LOG("baum@%s[%d]: ", dev_name, i);
-  if(i > 0) hexdump(&hd_data->log, 1, i, buf);
-  ADD2LOG("\n");
-
-  /* reset serial lines */
-  tcflush(fd, TCIOFLUSH);
-  tcsetattr(fd, TCSAFLUSH, &oldtio);
-  close(fd);
-
-  if(!strcmp(buf + 2, "Baum Vario40")) return 1;
-  if(!strcmp(buf + 2, "Baum Vario80")) return 2;
-
-  return 0;
-}
-
-
-#endif /* !defined(LIBHD_TINY) && !defined(__sparc__) */
-
diff --git a/src/hwinfo/src/hd/braille.h b/src/hwinfo/src/hd/braille.h
deleted file mode 100644 (file)
index 7c5496e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_braille(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/cpu.c b/src/hwinfo/src/hd/cpu.c
deleted file mode 100644 (file)
index e8f4fd8..0000000
+++ /dev/null
@@ -1,777 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#ifdef __ia64__
-#include <fcntl.h>
-#include <errno.h>
-#include <stdint.h>
-#include <sys/mman.h>
-#endif
-
-#ifdef __powerpc__
-#include <sys/utsname.h>
-#endif
-
-#include "hd.h"
-#include "hd_int.h"
-#include "klog.h"
-#include "cpu.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * cpu info
- *
- * Note: on other architectures, entries differ (cf. Alpha)!!!
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-static void read_cpuinfo(hd_data_t *hd_data);
-static void dump_cpu_data(hd_data_t *hd_data);
-
-#if defined(__i386__) || defined(__x86_64__)
-static inline unsigned units_per_cpu();
-#endif
-#ifdef __ia64__
-static int ia64DetectSMP(hd_data_t *hd_data);
-#endif
-
-void hd_scan_cpu(hd_data_t *hd_data)
-{
-  hd_t *hd0, *hd;
-  int i, cpus;
-  unsigned u;
-
-  if(!hd_probe_feature(hd_data, pr_cpu)) return;
-
-  hd_data->module = mod_cpu;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-  hd_data->cpu = free_str_list(hd_data->cpu);
-
-  PROGRESS(1, 0, "cpuinfo");
-
-  read_cpuinfo(hd_data);
-
-  for(hd0 = hd_data->hd; hd0; hd0 = hd0->next) {
-    if(hd0->base_class.id == bc_internal && hd0->sub_class.id == sc_int_cpu) break;
-  }
-
-  if(!hd0 || hd0->next) return;                /* 0 or > 1 entries */
-
-  /* only one entry, maybe UP kernel on SMP system */
-
-  cpus = 0;
-
-#ifdef __ia64__
-  cpus = ia64DetectSMP(hd_data);
-#endif
-
-  for(i = 1; i < cpus; i++) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    u = hd->idx;
-    hd_copy(hd, hd0);
-    hd->idx = u;
-    hd->slot = i;
-  }
-}
-
-
-void read_cpuinfo(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  unsigned cpus = 0;
-  cpu_info_t *ct;
-  str_list_t *sl;
-
-#if defined(__i386__) || defined (__x86_64__)
-  char model_id[80], vendor_id[80], features[0x100];
-  unsigned bogo, mhz, cache, family, model, stepping;
-  char *t0, *t;
-#endif
-
-#ifdef __ia64__
-  char model_id[80], vendor_id[80], features[0x100];
-  unsigned mhz, stepping;
-  char *t0, *t;
-#endif
-
-#ifdef __alpha__
-  char model_id[80], system_id[80], serial_number[80], platform[80];
-  unsigned cpu_variation, cpu_revision, u, hz;
-  cpu_info_t *ct1;
-#endif
-
-#ifdef __PPC__
-  char model_id[80], vendor_id[80], motherboard[80];
-  unsigned bogo, mhz, cache, family, model, stepping;
-  struct utsname un;
-#endif
-
-#ifdef __sparc__
-  char cpu_id[80], fpu_id[80], promlib[80], prom[80], type[80], mmu[80];
-  unsigned u, bogo, cpus_active;
-#endif
-
-#if defined(__s390__) || defined(__s390x__)
-  char vendor_id[80];
-  unsigned bogo;
-  unsigned u0, u1, u2, u3;
-#endif
-
-  hd_data->cpu = read_file(PROC_CPUINFO, 0, 0);
-  if((hd_data->debug & HD_DEB_CPU)) dump_cpu_data(hd_data);
-  if(!hd_data->cpu) return;
-
-#ifdef __alpha__
-  *model_id = *system_id = *serial_number = *platform = 0;
-  cpu_variation = cpu_revision = hz = 0;
-
-  for(sl = hd_data->cpu; sl; sl = sl->next) {
-    if(sscanf(sl->str, "cpu model : %79[^\n]", model_id) == 1) continue;
-    if(sscanf(sl->str, "system type : %79[^\n]", system_id) == 1) continue;
-    if(sscanf(sl->str, "cpu variation : %u", &cpu_variation) == 1) continue;
-    if(sscanf(sl->str, "cpu revision : %u", &cpu_revision) == 1) continue;
-    if(sscanf(sl->str, "system serial number : %79[^\n]", serial_number) == 1) continue;
-    if(sscanf(sl->str, "cpus detected : %u", &cpus) == 1) continue;
-    if(sscanf(sl->str, "cycle frequency [Hz] : %u", &hz) == 1) continue;
-    if(sscanf(sl->str, "system variation : %79[^\n]", platform) == 1) continue;
-  }
-
-  if(*model_id || *system_id) {        /* at least one of those */
-    ct = new_mem(sizeof *ct);
-    ct->architecture = arch_alpha;
-    if(model_id) ct->model_name = new_str(model_id);
-    if(system_id) ct->vend_name = new_str(system_id);
-    if(strncmp(serial_number, "MILO", 4) == 0)
-      hd_data->boot = boot_milo;
-    else
-      hd_data->boot = boot_aboot;
-
-    ct->family = cpu_variation;
-    ct->model = cpu_revision;
-    ct->stepping = 0;
-    ct->cache = 0;
-    ct->clock = (hz + 500000) / 1000000;
-
-    if(platform && strcmp(platform, "0")) {
-      ct->platform = new_str(platform);
-    }
-
-    if(!cpus) cpus = 1;                /* at least 1 machine had a "cpus: 0" entry... */
-    for(u = 0; u < cpus; u++) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_internal;
-      hd->sub_class.id = sc_int_cpu;
-      hd->slot = u;
-      hd->detail = new_mem(sizeof *hd->detail);
-      hd->detail->type = hd_detail_cpu;
-      if(u) {
-        hd->detail->cpu.data = ct1 = new_mem(sizeof *ct);
-        *ct1 = *ct;
-        ct1->model_name = new_str(ct1->model_name);
-        ct1->vend_name = new_str(ct1->vend_name);
-        ct1->platform = new_str(ct1->platform);
-      }
-      else {
-        hd->detail->cpu.data = ct;
-      }
-    }
-
-  }
-#endif /* __alpha__ */
-
-
-#ifdef __sparc__
-  *cpu_id = *fpu_id = *promlib = *prom = *type = *mmu = 0;
-  cpus = cpus_active = bogo = 0;
-
-  for(sl = hd_data->cpu; sl; sl = sl->next) {
-    if(sscanf(sl->str, "cpu             : %79[^\n]", cpu_id) == 1);
-    if(sscanf(sl->str, "fpu             : %79[^\n]", fpu_id) == 1);
-    if(sscanf(sl->str, "promlib         : %79[^\n]", promlib) == 1);
-    if(sscanf(sl->str, "prom            : %79[^\n]", prom) == 1);
-    if(sscanf(sl->str, "type            : %79[^\n]", type) == 1);
-    if(sscanf(sl->str, "ncpus probed    : %u", &cpus) == 1);
-    if(sscanf(sl->str, "ncpus active    : %u", &cpus_active) == 1);
-    if(sscanf(sl->str, "BogoMips        : %u", &bogo) == 1);
-    if(sscanf(sl->str, "MMU Type        : %79[^\n]", mmu) == 1);
-  }
-
-  if(*cpu_id) {
-    for(u = 0; u < cpus; u++) {
-      ct = new_mem(sizeof *ct);
-      ct->platform = new_str (type);
-      if(strcmp (type, "sun4u") == 0)
-        ct->architecture = arch_sparc64;
-      else
-        ct->architecture = arch_sparc;
-
-      ct->model_name = new_str(cpu_id);
-      hd_data->boot = boot_silo;
-
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_internal;
-      hd->sub_class.id = sc_int_cpu;
-      hd->slot = u;
-      hd->detail = new_mem(sizeof *hd->detail);
-      hd->detail->type = hd_detail_cpu;
-      hd->detail->cpu.data = ct;
-    }
-  }
-#endif /* sparc */
-
-
-#if defined(__i386__) || defined (__x86_64__)
-  *model_id = *vendor_id = *features = 0;
-  bogo = mhz = cache = family = model = stepping = 0;
-
-  for(sl = hd_data->cpu; sl; sl = sl->next) {
-    if(sscanf(sl->str, "model name : %79[^\n]", model_id) == 1);
-    if(sscanf(sl->str, "vendor_id : %79[^\n]", vendor_id) == 1);
-    if(sscanf(sl->str, "flags : %255[^\n]", features) == 1);
-    if(sscanf(sl->str, "bogomips : %u", &bogo) == 1);
-    if(sscanf(sl->str, "cpu MHz : %u", &mhz) == 1);
-    if(sscanf(sl->str, "cache size : %u KB", &cache) == 1);
-
-    if(sscanf(sl->str, "cpu family : %u", &family) == 1);
-    if(sscanf(sl->str, "model : %u", &model) == 1);
-    if(sscanf(sl->str, "stepping : %u", &stepping) == 1);
-
-    if(strstr(sl->str, "processor") == sl->str || !sl->next) {         /* EOF */
-      if(*model_id || *vendor_id) {    /* at least one of those */
-        ct = new_mem(sizeof *ct);
-#ifdef __i386__
-       ct->architecture = arch_intel;
-#endif
-#ifdef __x86_64__
-       ct->architecture = arch_x86_64;
-#endif
-        if(model_id) ct->model_name = new_str(model_id);
-        if(vendor_id) ct->vend_name = new_str(vendor_id);
-        ct->family = family;
-        ct->model = model;
-        ct->stepping = stepping;
-        ct->cache = cache;
-       hd_data->boot = boot_grub;
-
-        /* round clock to typical values */
-        if(mhz >= 38 && mhz <= 42)
-          mhz = 40;
-        else if(mhz >= 88 && mhz <= 92)
-          mhz = 90;
-        else {
-         unsigned u, v;
-
-          u = (mhz + 2) % 100;
-          v = (mhz + 2) / 100;
-          if(u <= 4)
-            u = 2;
-          else if(u >= 25 && u <= 29)
-            u = 25 + 2;
-          else if(u >= 33 && u <= 37)
-            u = 33 + 2;
-          else if(u >= 50 && u <= 54)
-            u = 50 + 2;
-          else if(u >= 66 && u <= 70)
-            u = 66 + 2;
-          else if(u >= 75 && u <= 79)
-            u = 75 + 2;
-          else if(u >= 80 && u <= 84)  /* there are 180MHz PPros */
-            u = 80 + 2;
-          u -= 2;
-          mhz = v * 100 + u;
-        }
-
-        ct->clock = mhz;
-
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->base_class.id = bc_internal;
-        hd->sub_class.id = sc_int_cpu;
-        hd->slot = cpus;
-        hd->detail = new_mem(sizeof *hd->detail);
-        hd->detail->type = hd_detail_cpu;
-        hd->detail->cpu.data = ct;
-
-        if(*features) {
-          for(t0 = features; (t = strsep(&t0, " ")); ) {
-            add_str_list(&ct->features, t);
-            if(!strcmp(t, "ht")) ct->units = units_per_cpu();
-          }
-        }
-
-        *model_id = *vendor_id = 0;
-        bogo = mhz = cache = family = model= 0;
-        cpus++;
-      }
-    }
-  }
-#endif /* __i386__ || __x86_64__ */
-
-
-#ifdef __PPC__
-  *model_id = *vendor_id = *motherboard = 0;
-  bogo = mhz = cache = family = model = stepping = 0;
-
-  for(sl = hd_data->cpu; sl; sl = sl->next) {
-    if(sscanf(sl->str, "machine : %79[^\n]", vendor_id) == 1);
-  }
-
-  for(sl = hd_data->cpu; sl; sl = sl->next) {
-    if(sscanf(sl->str, "cpu : %79[^\n]", model_id) == 1);
-    if(sscanf(sl->str, "motherboard : %79[^\n]", motherboard) == 1);
-    if(sscanf(sl->str, "bogomips : %u", &bogo) == 1);
-    if(sscanf(sl->str, "clock : %u", &mhz) == 1);
-    if(sscanf(sl->str, "L2 cache : %u KB", &cache) == 1);
-
-    if(strstr(sl->str, "processor") == sl->str || !sl->next) {         /* EOF */
-      if(*model_id) {  /* at least one of those */
-        ct = new_mem(sizeof *ct);
-        ct->architecture = arch_ppc;
-        if(model_id) {
-          ct->model_name = new_str(model_id);
-        }
-
-        if(!uname(&un))
-               if(strstr(un.machine,"ppc64"))
-                       ct->architecture = arch_ppc64;
-
-        if(vendor_id) ct->vend_name = new_str(vendor_id);
-        if(motherboard) ct->platform = new_str(motherboard);
-        ct->family = family;
-        ct->model = model;
-        ct->stepping = stepping;
-        ct->cache = cache;
-        hd_data->boot = boot_ppc;
-        ct->clock = mhz;
-
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->base_class.id = bc_internal;
-        hd->sub_class.id = sc_int_cpu;
-        hd->slot = cpus;
-        hd->detail = new_mem(sizeof *hd->detail);
-        hd->detail->type = hd_detail_cpu;
-        hd->detail->cpu.data = ct;
-
-        if(ct->vend_name && !strcmp(ct->vend_name, "PowerBook") && !hd_data->color_code) {
-          hd_data->color_code = 7;     // black
-        }
-        
-        *model_id = 0;
-        bogo = mhz = cache = family = model= 0;
-        cpus++;
-      }
-    }
-  }
-#endif /* __PPC__  */
-
-
-#ifdef __ia64__
-  *model_id = *vendor_id = *features = 0;
-  mhz = stepping = 0;
-
-  for(sl = hd_data->cpu; sl; sl = sl->next) {
-    if(sscanf(sl->str, "family : %79[^\n]", model_id) == 1);
-    if(sscanf(sl->str, "vendor : %79[^\n]", vendor_id) == 1);
-    if(sscanf(sl->str, "features : %255[^\n]", features) == 1);
-    if(sscanf(sl->str, "cpu MHz : %u", &mhz) == 1);
-    if(sscanf(sl->str, "revision : %u", &stepping) == 1);
-
-    if(strstr(sl->str, "processor") == sl->str || !sl->next) {         /* EOF */
-      if(*model_id || *vendor_id) {    /* at least one of those */
-        ct = new_mem(sizeof *ct);
-       ct->architecture = arch_ia64;
-        if(model_id) ct->model_name = new_str(model_id);
-        if(vendor_id) ct->vend_name = new_str(vendor_id);
-        ct->stepping = stepping;
-       hd_data->boot = boot_elilo;
-
-        /* round clock to typical values */
-        if(mhz >= 38 && mhz <= 42)
-          mhz = 40;
-        else if(mhz >= 88 && mhz <= 92)
-          mhz = 90;
-        else {
-         unsigned u, v;
-
-          u = (mhz + 2) % 100;
-          v = (mhz + 2) / 100;
-          if(u <= 4)
-            u = 2;
-          else if(u >= 25 && u <= 29)
-            u = 25 + 2;
-          else if(u >= 33 && u <= 37)
-            u = 33 + 2;
-          else if(u >= 50 && u <= 54)
-            u = 50 + 2;
-          else if(u >= 66 && u <= 70)
-            u = 66 + 2;
-          else if(u >= 75 && u <= 79)
-            u = 75 + 2;
-          else if(u >= 80 && u <= 84)  /* there are 180MHz PPros */
-            u = 80 + 2;
-          u -= 2;
-          mhz = v * 100 + u;
-        }
-
-        ct->clock = mhz;
-
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->base_class.id = bc_internal;
-        hd->sub_class.id = sc_int_cpu;
-        hd->slot = cpus;
-        hd->detail = new_mem(sizeof *hd->detail);
-        hd->detail->type = hd_detail_cpu;
-        hd->detail->cpu.data = ct;
-
-        if(*features) {
-          for(t0 = features; (t = strsep(&t0, " ")); ) {
-            add_str_list(&ct->features, t);
-          }
-        }
-
-        *model_id = *vendor_id = 0;
-        mhz = 0;
-        cpus++;
-      }
-    }
-  }
-
-#endif /* __ia64__  */
-
-
-#if defined(__s390__) || defined(__s390x__)
-  *vendor_id = 0;
-  bogo = 0;
-
-  for(sl = hd_data->cpu; sl; sl = sl->next) {
-    if(sscanf(sl->str, "vendor_id : %79[^\n]", vendor_id) == 1);
-    if(sscanf(sl->str, "bogomips per cpu : %u", &bogo) == 1);
-  }
-
-  for(sl = hd_data->cpu; sl; sl = sl->next) {
-    if(
-      sscanf(sl->str, "processor %u : version = %x , identification = %x , machine = %x", &u0, &u1, &u2, &u3) == 4
-    ) {
-      ct = new_mem(sizeof *ct);
-#ifdef __s390x__
-      ct->architecture = arch_s390x;
-#else
-      ct->architecture = arch_s390;
-#endif
-      if(vendor_id) ct->vend_name = new_str(vendor_id);
-      ct->stepping = u1;
-      hd_data->boot = boot_s390;
-
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_internal;
-      hd->sub_class.id = sc_int_cpu;
-      hd->slot = cpus;
-      hd->detail = new_mem(sizeof *hd->detail);
-      hd->detail->type = hd_detail_cpu;
-      hd->detail->cpu.data = ct;
-
-      bogo = 0;
-      cpus++;
-    }
-  }
-#endif /* defined(__s390__) || defined(__s390x__) */
-}
-
-/*
- * Add some cpu data to the global log.
- */
-void dump_cpu_data(hd_data_t *hd_data)
-{
-  str_list_t *sl;
-
-  ADD2LOG("----- /proc/cpuinfo -----\n");
-  for(sl = hd_data->cpu; sl; sl = sl->next) {
-    ADD2LOG("  %s", sl->str);
-  }
-  ADD2LOG("----- /proc/cpuinfo end -----\n");
-}
-
-
-#if defined(__i386__) || defined(__x86_64__)
-inline unsigned units_per_cpu()
-{
-  unsigned u;
-
-  asm(
-#ifdef __i386__
-    "push %%ebx\n\t"
-#else
-    "push %%rbx\n\t"
-#endif
-    "mov $1,%%eax\n\t"
-    "cpuid\n\t"
-    "shr $8,%%ebx\n\t"
-    "movzx %%bh,%%eax\n\t"
-#ifdef __i386__
-    "pop %%ebx"
-#else
-    "pop %%rbx"
-#endif
-    : "=a" (u)
-    :: "%ecx", "%edx"
-  );
-
-  return u;
-}
-#endif
-
-
-#ifdef __ia64__
-
-/*
- * IA64 SMP detection code
- */
-
-#define PAGE_OFFSET(addr) ((uintptr_t) (addr) & (getpagesize () - 1))
-
-typedef struct
-{
-  uint8_t type;
-  uint8_t length;
-} __attribute__ ((packed)) acpi_table_entry_header;
-
-struct acpi20_table_rsdp
-{
-  char signature[8];
-  uint8_t checksum;
-  char oem_id[6];
-  uint8_t revision;
-  uint32_t rsdt_address;
-  uint32_t length;
-  unsigned long xsdt_address;
-  uint8_t ext_checksum;
-  uint8_t reserved[3];
-} __attribute__ ((packed));
-
-struct acpi_table_header
-{
-  char signature[4];
-  uint32_t length;
-  uint8_t revision;
-  uint8_t checksum;
-  char oem_id[6];
-  char oem_table_id[8];
-  uint32_t oem_revision;
-  char asl_compiler_id[4];
-  uint32_t asl_compiler_revision;
-};
-
-#define ACPI_XSDT_SIG "XSDT"
-struct acpi_table_xsdt
-{
-  struct acpi_table_header header;
-  unsigned long entry[0];
-} __attribute__ ((packed));
-
-#define ACPI_MADT_SIG "ACPI"
-struct acpi_table_madt
-{
-  struct acpi_table_header header;
-  uint32_t lapic_address;
-  struct
-  {
-    uint32_t pcat_compat:1;
-    uint32_t reserved:31;
-  } flags;
-} __attribute__ ((packed));
-
-#define ACPI_MADT_LSAPIC 7
-
-struct acpi_table_lsapic
-{
-  acpi_table_entry_header header;
-  uint8_t acpi_id;
-  uint8_t id;
-  uint8_t eid;
-  uint8_t reserved[3];
-  struct
-  {
-    uint32_t enabled:1;
-    uint32_t reserved:31;
-  } flags;
-} __attribute__ ((packed));
-
-/*
- * Map an ACPI table into virtual memory
- */
-static struct acpi_table_header *
-acpi_map_table (int mem, unsigned long addr, char *signature)
-{
-  /* mmap header to determine table size */
-  struct acpi_table_header *table = NULL;
-  unsigned long offset = PAGE_OFFSET (addr);
-  uint8_t *mapped = mmap (NULL,
-                         sizeof (struct acpi_table_header) + offset,
-                         PROT_READ,
-                         MAP_PRIVATE,
-                         mem,
-                         (unsigned long) addr - offset);
-  table = (struct acpi_table_header *) (mapped != MAP_FAILED
-                                       ? mapped + offset
-                                       : NULL);
-  if (table)
-    {
-      if (memcmp (table->signature, signature, sizeof (table->signature)))
-       {
-         munmap ((char *) table - offset,
-                 sizeof (struct acpi_table_header) + offset);
-         return NULL;
-       }
-      {
-       /* re-mmap entire table */
-       unsigned long size = table->length;
-       munmap ((uint8_t *) table - offset,
-               sizeof (struct acpi_table_header) + offset);
-       mapped = mmap (NULL, size + offset, PROT_READ, MAP_PRIVATE, mem,
-                      (unsigned long) addr - offset);
-       table = (struct acpi_table_header *) (mapped != MAP_FAILED
-                                             ? mapped + offset
-                                             : NULL);
-      }
-    }
-  return table;
-}
-
-/*
- * Unmap an ACPI table from virtual memory
- */
-static void
-acpi_unmap_table (struct acpi_table_header * table)
-{
-  if (table)
-    {
-      unsigned long offset = PAGE_OFFSET (table);
-      munmap ((uint8_t *) table - offset, table->length + offset);
-    }
-}
-
-int
-acpi_parse_lsapic (acpi_table_entry_header *p)
-{
-  struct acpi_table_lsapic *lsapic = (struct acpi_table_lsapic *) p;
-
-  return lsapic->flags.enabled;
-}
-
-static int
-acpi_parse_madt (struct acpi_table_madt *madt)
-{
-  acpi_table_entry_header *p, *end;
-  int n_cpu = 0;
-
-  p = (acpi_table_entry_header *) (madt + 1);
-  end = (acpi_table_entry_header *) ((char *) madt + madt->header.length);
-
-  while (p < end)
-    {
-      if (p->type == ACPI_MADT_LSAPIC)
-       n_cpu += acpi_parse_lsapic (p);
-
-      p = (acpi_table_entry_header *) ((char *) p + p->length);
-    }
-
-  return n_cpu;
-}
-
-static int
-acpi_parse_rsdp (int mem_fd, struct acpi20_table_rsdp *rsdp)
-{
-  int n_cpu = 0;
-  int i;
-  struct acpi_table_xsdt *xsdt = 0;
-  int tables;
-
-  if (rsdp->xsdt_address)
-    xsdt = (struct acpi_table_xsdt *) acpi_map_table (mem_fd, rsdp->xsdt_address,
-                                                     ACPI_XSDT_SIG);
-  if (xsdt)
-    {
-      tables = (xsdt->header.length - sizeof (struct acpi_table_header)) / 8;
-      for (i = 0; i < tables; i++)
-       {
-         struct acpi_table_header *dt
-           = acpi_map_table (mem_fd, xsdt->entry[i], ACPI_MADT_SIG);
-         if (dt)
-           n_cpu += acpi_parse_madt ((struct acpi_table_madt *) dt);
-         acpi_unmap_table (dt);
-       }
-      acpi_unmap_table ((struct acpi_table_header *) xsdt);
-    }
-  return n_cpu;
-}
-
-int ia64DetectSMP(hd_data_t *hd_data)
-{
-  int n_cpu = 0, mem_fd, systab_fd;
-  struct acpi20_table_rsdp rsdp;
-  uint8_t *mapped;
-  unsigned long addr = 0, offset;
-  int ok = 0;
-  str_list_t *sl;
-  const char *rsd_klog = "ACPI 2.0=";
-  const char *rsd_systab = "ACPI20=";
-  char *s;
-
-  mem_fd = open("/dev/mem", O_RDONLY);
-  if(mem_fd == -1) return -1;
-
-  systab_fd = open("/proc/efi/systab", O_RDONLY);
-  if (systab_fd != -1)
-    {
-      char buffer[512];
-      int n_read = read(systab_fd, buffer, sizeof(buffer) - 1);
-      close(systab_fd);
-      if (n_read > 0)
-       {
-         buffer[n_read] = 0;
-         if ((s = strstr(buffer, rsd_systab)) != NULL &&
-             sscanf(s + strlen(rsd_systab), "%lx", &addr) == 1)
-           goto found_it;
-       }
-    }
-
-  if(!hd_data->klog) read_klog(hd_data);
-
-  for(sl = hd_data->klog; sl; sl = sl->next) {
-    if((s = strstr(sl->str, rsd_klog))) {
-      if(sscanf(s + strlen(rsd_klog), "%lx", &addr) == 1) {
-      found_it:
-       offset= PAGE_OFFSET (addr);
-        mapped = mmap(NULL, sizeof rsdp + offset, PROT_READ, MAP_PRIVATE,
-                     mem_fd, (unsigned long) addr - offset);
-       if(mapped != MAP_FAILED) {
-         ADD2LOG("seek to 0x%lx\n", addr);
-          memcpy(&rsdp, mapped + offset, sizeof rsdp);
-         munmap(mapped, sizeof rsdp + offset);
-         ok = 1;
-        }
-        break;
-      }
-    }
-  }
-
-  if(ok) {
-    n_cpu = acpi_parse_rsdp(mem_fd, &rsdp);
-    if(n_cpu) {
-      ADD2LOG("RSDP found at 0x%lx\n", addr);
-    }
-  }
-
-  close (mem_fd);
-
-  ADD2LOG("n_cpu = %d\n", n_cpu);
-
-  return n_cpu;
-}
-
-
-#endif /* __ia64__ */
-
diff --git a/src/hwinfo/src/hd/cpu.h b/src/hwinfo/src/hd/cpu.h
deleted file mode 100644 (file)
index 1ff02fa..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_cpu(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/edd.c b/src/hwinfo/src/hd/edd.c
deleted file mode 100644 (file)
index 6a4c693..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "hddb.h"
-#include "edd.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * edd
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-static void get_edd_info(hd_data_t *hd_data);
-
-void hd_scan_sysfs_edd(hd_data_t *hd_data)
-{
-  if(!hd_probe_feature(hd_data, pr_edd)) return;
-
-  hd_data->module = mod_edd;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  hd_data->flags.edd_used = 0;
-
-  if(hd_probe_feature(hd_data, pr_edd_mod)) {
-    PROGRESS(1, 0, "edd mod");
-    load_module(hd_data, "edd");
-  }
-
-  PROGRESS(2, 0, "edd info");
-
-  get_edd_info(hd_data);
-}
-
-
-void get_edd_info(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  hd_res_t *res;
-  unsigned u, u1, u2, edd_cnt = 0, lba;
-  uint64_t ul0;
-  str_list_t *sl;
-  bios_info_t *bt;
-  edd_info_t *ei;
-
-  struct sysfs_directory *sf_dir;
-  struct sysfs_directory *sf_dir_2;
-  struct sysfs_link *sf_link;
-
-  for(u = 0; u < sizeof hd_data->edd / sizeof *hd_data->edd; u++) {
-    free_mem(hd_data->edd[u].sysfs_id);
-  }
-
-  memset(hd_data->edd, 0, sizeof hd_data->edd);
-
-  sf_dir = sysfs_open_directory("/sys/firmware/edd");
-
-  if(sf_dir) {
-    if(!sysfs_read_all_subdirs(sf_dir)) {
-      if(sf_dir->subdirs) {
-        dlist_for_each_data(sf_dir->subdirs, sf_dir_2, struct sysfs_directory) {
-
-          if(
-            sscanf(sf_dir_2->name, "int13_dev%02x", &u) == 1 &&
-            u >= 0x80 &&
-            u <= 0xff
-          ) {
-            edd_cnt++;
-
-            u -= 0x80;
-
-            ei = hd_data->edd + u;
-
-            if(hd_attr_uint(sysfs_get_directory_attribute(sf_dir_2, "sectors"), &ul0, 0)) {
-              ei->sectors = ul0;
-            }
-
-            if(hd_attr_uint(sysfs_get_directory_attribute(sf_dir_2, "default_cylinders"), &ul0, 0)) {
-              ei->edd.cyls = ul0;
-            }
-
-            if(hd_attr_uint(sysfs_get_directory_attribute(sf_dir_2, "default_heads"), &ul0, 0)) {
-              ei->edd.heads = ul0;
-            }
-
-            if(hd_attr_uint(sysfs_get_directory_attribute(sf_dir_2, "default_sectors_per_track"), &ul0, 0)) {
-              ei->edd.sectors = ul0;
-            }
-
-            if(hd_attr_uint(sysfs_get_directory_attribute(sf_dir_2, "legacy_max_cylinder"), &ul0, 0)) {
-              ei->legacy.cyls = ul0 + 1;
-            }
-
-            if(hd_attr_uint(sysfs_get_directory_attribute(sf_dir_2, "legacy_max_head"), &ul0, 0)) {
-              ei->legacy.heads = ul0 + 1;
-            }
-
-            if(hd_attr_uint(sysfs_get_directory_attribute(sf_dir_2, "legacy_sectors_per_track"), &ul0, 0)) {
-              ei->legacy.sectors = ul0;
-            }
-
-            if(ei->sectors && ei->edd.heads && ei->edd.sectors) {
-              ei->edd.cyls = ei->sectors / (ei->edd.heads * ei->edd.sectors);
-            }
-
-            sf_link = sysfs_get_directory_link(sf_dir_2, "pci_dev");
-            if(sf_link) {
-              hd_data->edd[u].sysfs_id = new_str(hd_sysfs_id(sf_link->target));
-              if((hd = hd_find_sysfs_id(hd_data, hd_data->edd[u].sysfs_id))) {
-                hd_data->edd[u].hd_idx = hd->idx;
-              }
-            }
-
-            sl = hd_attr_list(sysfs_get_directory_attribute(sf_dir_2, "extensions"));
-            if(search_str_list(sl, "Fixed disk access")) hd_data->edd[u].ext_fixed_disk = 1;
-            if(search_str_list(sl, "Device locking and ejecting")) hd_data->edd[u].ext_lock_eject = 1;
-            if(search_str_list(sl, "Enhanced Disk Drive support")) hd_data->edd[u].ext_edd = 1;
-            if(search_str_list(sl, "64-bit extensions")) hd_data->edd[u].ext_64bit = 1;
-
-            ADD2LOG(
-              "edd: 0x%02x\n  size: %"PRIu64"\n  chs default: %u/%u/%u\n  chs legacy: %u/%u/%u\n  caps: %s%s%s%s\n  attached: #%u %s\n",
-              u + 0x80,
-              ei->sectors,
-              ei->edd.cyls,
-              ei->edd.heads,
-              ei->edd.sectors,
-              ei->legacy.cyls,
-              ei->legacy.heads,
-              ei->legacy.sectors,
-              ei->ext_fixed_disk ? "fixed " : "",
-              ei->ext_lock_eject ? "lock " : "",
-              ei->ext_edd ? "edd " : "",
-              ei->ext_64bit ? "64bit " : "",
-              ei->hd_idx,
-              ei->sysfs_id ?: ""
-            );
-          }
-        }
-      }
-    }
-  }
-
-  sysfs_close_directory(sf_dir);
-
-  if(!edd_cnt) return;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_storage_device &&
-      hd->sub_class.id == sc_sdev_disk
-    ) {
-      hd->rom_id = free_mem(hd->rom_id);
-    }
-  }
-
-  /* add BIOS drive ids to disks */
-
-  /* first, check sysfs link */
-  for(u = 0; u < sizeof hd_data->edd / sizeof *hd_data->edd; u++) {
-    if(!hd_data->edd[u].hd_idx) continue;
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(
-        hd->base_class.id == bc_storage_device &&
-        hd->sub_class.id == sc_sdev_disk &&
-        hd->attached_to == hd_data->edd[u].hd_idx &&
-        !hd->rom_id
-      ) {
-        str_printf(&hd->rom_id, 0, "0x%02x", u + 0x80);
-        hd_data->flags.edd_used = 1;
-        hd_data->edd[u].assigned = 1;
-        break;
-      }
-    }
-  }
-
-  /* try based on disk size */
-  for(u = 0; u < sizeof hd_data->edd / sizeof *hd_data->edd; u++) {
-    if(hd_data->edd[u].assigned) continue;
-    if(!(ul0 = hd_data->edd[u].sectors)) continue;
-    for(u1 = u2 = 0; u1 < sizeof hd_data->edd / sizeof *hd_data->edd; u1++) {
-      if(ul0 == hd_data->edd[u1].sectors) u2++;
-    }
-
-    /* more than one disk with this size */
-    if(u2 != 1) continue;
-
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(
-        hd->base_class.id == bc_storage_device &&
-        hd->sub_class.id == sc_sdev_disk &&
-        !hd->rom_id
-      ) {
-        for(res = hd->res; res; res = res->next) {
-          if(
-            res->any.type == res_size &&
-            res->size.unit == size_unit_sectors &&
-            res->size.val1 == ul0
-          ) break;
-        }
-
-        if(!res) continue;
-
-        str_printf(&hd->rom_id, 0, "0x%02x", u + 0x80);
-        hd_data->flags.edd_used = 1;
-        hd_data->edd[u].assigned = 1;
-        break;
-      }
-    }
-  }
-
-  /* set lba support flag in BIOS data */
-  for(lba = u = 0; u < sizeof hd_data->edd / sizeof *hd_data->edd; u++) {
-    if(hd_data->edd[u].ext_fixed_disk) {
-      lba = 1;
-      break;
-    }
-  }
-
-  if(lba) {
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(
-        hd->base_class.id == bc_internal &&
-        hd->sub_class.id == sc_int_bios &&
-        hd->detail &&
-        hd->detail->type == hd_detail_bios &&
-        (bt = hd->detail->bios.data)
-      ) {
-        bt->lba_support = lba;
-      }
-    }
-  }
-
-}
-
diff --git a/src/hwinfo/src/hd/edd.h b/src/hwinfo/src/hd/edd.h
deleted file mode 100644 (file)
index c931ff8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_sysfs_edd(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/fb.c b/src/hwinfo/src/hd/fb.c
deleted file mode 100644 (file)
index 62e3148..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <linux/hdreg.h>
-#include <linux/fb.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "fb.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *
- * scan framebuffer devices
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-typedef struct {
-  unsigned width;
-  unsigned height;
-  double pix_clock;
-  double h_freq;
-  double v_freq;
-} fb_info_t;
-
-static fb_info_t *fb_get_info(hd_data_t *hd_data);
-
-void hd_scan_fb(hd_data_t *hd_data)
-{
-  fb_info_t *fb;
-  hd_t *hd;
-  hd_res_t *res;
-  unsigned imac_dev, imac_vend;
-  unsigned imac = 0;
-  monitor_info_t *mi = NULL;
-
-  if(!hd_probe_feature(hd_data, pr_fb)) return;
-
-  hd_data->module = mod_fb;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "read info");
-
-  fb = fb_get_info(hd_data);
-
-  if(fb) {
-    imac_dev = MAKE_ID(TAG_EISA, 0x9d03);
-    imac_vend = name2eisa_id("APP");
-
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(hd->base_class.id == bc_monitor) break;
-    }
-
-    if(hd && hd->device.id == imac_dev && hd->vendor.id == imac_vend) {
-      hd->tag.remove = 1;
-      remove_tagged_hd_entries(hd_data);
-      imac = 1;
-      hd = NULL;
-    }
-
-    /* add monitor entry based on fb data if we have no other info */
-    if(!hd) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_monitor;
-      if(imac) {
-        hd->vendor.id = imac_vend;
-        hd->device.id = imac_dev;
-      }
-      else {
-        hd->vendor.name = new_str("Generic");
-        hd->device.name = new_str("Monitor");
-      }
-
-      res = add_res_entry(&hd->res, new_mem(sizeof *res));
-      res->monitor.type = res_monitor;
-      res->monitor.width = fb->width;
-      res->monitor.height = fb->height;
-      res->monitor.vfreq = fb->v_freq + 0.5;
-
-      if(!hd->detail) {
-        mi = new_mem(sizeof *mi);
-        hd->detail = new_mem(sizeof *hd->detail);
-        hd->detail->type = hd_detail_monitor;
-        hd->detail->monitor.data = mi;
-
-        mi->min_vsync = 50;
-        mi->min_hsync = 31;
-        mi->max_vsync = fb->v_freq * 1.11 + 0.9;
-        mi->max_hsync = fb->h_freq / 1000.0 + 1.9;
-        if(mi->max_vsync <= mi->min_vsync) mi->max_vsync = mi->min_vsync + 10;
-        if(mi->max_hsync <= mi->min_hsync) mi->max_hsync = mi->min_hsync + 5;
-        /* round up */
-        mi->max_vsync = ((mi->max_vsync + 9) / 10) * 10;
-      }
-    }
-  }
-}
-
-fb_info_t *fb_get_info(hd_data_t *hd_data)
-{
-  int fd;
-  struct fb_var_screeninfo fbv_info;
-  static fb_info_t fb_info;
-  fb_info_t *fb = NULL;
-  int h, v;
-
-  fd = open(DEV_FB, O_RDONLY);
-  if(fd < 0) fd = open(DEV_FB0, O_RDONLY);
-  if(fd < 0) return fb;
-
-  if(!ioctl(fd, FBIOGET_VSCREENINFO, &fbv_info)) {
-    h = fbv_info.left_margin + fbv_info.xres + fbv_info.right_margin + fbv_info.hsync_len;
-    v = fbv_info.upper_margin + fbv_info.yres + fbv_info.lower_margin + fbv_info.vsync_len;
-    if(fbv_info.pixclock && h && v) {
-      fb_info.width = fbv_info.xres;
-      fb_info.height = fbv_info.yres;
-      fb_info.pix_clock = 1e12 / fbv_info.pixclock;
-      fb_info.h_freq = fb_info.pix_clock / h;
-      fb_info.v_freq = fb_info.h_freq / v;
-      fb = &fb_info;
-      ADD2LOG("fb: size %d x %d\n", fb_info.width, fb_info.height);
-      ADD2LOG("fb: timing %.2f MHz, %.2f kHz, %.2f Hz\n", fb_info.pix_clock * 1e-6, fb_info.h_freq * 1e-3, fb_info.v_freq);
-    }
-  }
-
-  close(fd);
-
-  return fb;
-}
diff --git a/src/hwinfo/src/hd/fb.h b/src/hwinfo/src/hd/fb.h
deleted file mode 100644 (file)
index 08b77ab..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_fb(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/floppy.c b/src/hwinfo/src/hd/floppy.c
deleted file mode 100644 (file)
index 3c34feb..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "klog.h"
-#include "floppy.h"
-
-static void dump_floppy_data(hd_data_t *hd_data);
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * floppy info
- *
- * This should currently be called *before* scan_misc() so we can try to get
- * the floppy controller resources in scan_misc() by actually accessing the
- * floppy drive. (Otherwise there would be a rather longish timeout.)
- *
- * This is all rather strange and should be rewritten...
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-
-void hd_scan_floppy(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  char b0[10], b1[10], c;
-  unsigned u;
-  int fd, i, floppy_ctrls = 0, floppy_ctrl_idx = 0;
-  str_list_t *sl;
-  hd_res_t *res;
-  int floppy_stat[2] = { 1, 1 };
-
-  if(!hd_probe_feature(hd_data, pr_floppy)) return;
-
-  hd_data->module = mod_floppy;
-
-   /* some clean-up */
-  remove_hd_entries(hd_data);
-  hd_data->floppy = free_str_list(hd_data->floppy);
-
-  PROGRESS(1, 0, "get nvram");
-
-  /*
-   * Look for existing floppy controller entries (typically there will be
-   * *none*).
-   */
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->base_class.id == bc_storage && hd->sub_class.id == sc_sto_floppy) {
-      floppy_ctrls++;
-      floppy_ctrl_idx = hd->idx;
-    }
-  }
-
-  /*
-   * Is enough to load the nvram module.
-   *
-   * Note: although you must be root to access /dev/nvram, every
-   * user can read /proc/nvram.
-   */
-  fd = open(DEV_NVRAM, O_RDONLY | O_NONBLOCK);
-  if(fd >= 0) close(fd);
-
-  if(
-    !(hd_data->floppy = read_file(PROC_NVRAM_24, 0, 0)) &&
-    !(hd_data->floppy = read_file(PROC_NVRAM_22, 0, 0))
-  );
-
-  if(hd_data->floppy && (hd_data->debug & HD_DEB_FLOPPY)) dump_floppy_data(hd_data);
-
-  if(!hd_data->klog) read_klog(hd_data);
-
-  for(sl = hd_data->klog; sl; sl = sl->next) {
-    if(sscanf(sl->str, "<4>floppy%u: no floppy controllers foun%c", &u, &c) == 2) {
-      if(u < sizeof floppy_stat / sizeof *floppy_stat) {
-        floppy_stat[u] = 0;
-      }
-    }
-  }
-
-  if(hd_data->floppy) {
-    PROGRESS(2, 0, "nvram info");
-    sl = hd_data->floppy;
-  }
-  else {
-    PROGRESS(2, 0, "klog info");
-    sl = hd_data->klog;
-  }
-
-  for(; sl; sl = sl->next) {
-    if(hd_data->floppy) {
-      i = sscanf(sl->str, " Floppy %u type : %8[0-9.]'' %8[0-9.]%c", &u, b0, b1, &c) == 4;
-    }
-    else {
-      i = sscanf(sl->str, "<6>Floppy drive(s): fd%u is %8[0-9.]%c", &u, b1, &c) == 3;
-      *b0 = 0;
-    }
-
-    if(i) {
-      if(
-        !floppy_ctrls &&
-        u < sizeof floppy_stat / sizeof *floppy_stat &&
-        floppy_stat[u]
-      ) {
-        /* create one, if missing (there's no floppy without a controller...) */
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->base_class.id = bc_storage;
-        hd->sub_class.id = sc_sto_floppy;
-        floppy_ctrl_idx = hd->idx;
-        floppy_ctrls++;
-      }
-
-      if(floppy_ctrls) {
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->base_class.id = bc_storage_device;
-        hd->sub_class.id = sc_sdev_floppy;
-        hd->bus.id = bus_floppy;
-        hd->slot = u;
-        str_printf(&hd->unix_dev_name, 0, "/dev/fd%u", u);
-
-        if(*b0) {
-          res = add_res_entry(&hd->res, new_mem(sizeof *res));
-          res->size.type = res_size;
-          res->size.val1 = str2float(b0, 2);
-          res->size.unit = size_unit_cinch;
-        }
-
-        /* 'k' or 'M' */
-        i = c == 'M' ? str2float(b1, 3) : str2float(b1, 0);
-
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->size.type = res_size;
-        res->size.val1 = i << 1;
-        res->size.val2 = 0x200;
-        res->size.unit = size_unit_sectors;
-
-        /* the only choice... */
-        if(floppy_ctrls == 1) hd->attached_to = floppy_ctrl_idx;
-      }
-    }
-  }
-}
-
-
-/*
- * Add floppy data to the global log.
- */
-void dump_floppy_data(hd_data_t *hd_data)
-{
-  str_list_t *sl;
-
-  ADD2LOG("----- /proc/nvram -----\n");
-  for(sl = hd_data->floppy; sl; sl = sl->next) {
-    ADD2LOG("  %s", sl->str);
-  }
-  ADD2LOG("----- /proc/nvram end -----\n");
-}
diff --git a/src/hwinfo/src/hd/floppy.h b/src/hwinfo/src/hd/floppy.h
deleted file mode 100644 (file)
index c12815a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_floppy(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/hd.c b/src/hwinfo/src/hd/hd.c
deleted file mode 100644 (file)
index 8db54e3..0000000
+++ /dev/null
@@ -1,5684 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdarg.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <ctype.h>
-#include <errno.h>
-#include <dirent.h>
-#include <time.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <sys/time.h>
-#include <sys/ioctl.h>
-#include <sys/mount.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <sys/mman.h>
-typedef unsigned long kernel_ulong_t;
-#include <linux/types.h>
-#include <linux/pci.h>
-#include <linux/hdreg.h>
-#define _LINUX_AUDIT_H_
-#include <linux/fs.h>
-
-#define u64 uint64_t
-
-#ifndef BLKSSZGET
-#define BLKSSZGET _IO(0x12,104)                /* get block device sector size */
-#endif
-
-#include "hd.h"
-#include "hddb.h"
-#include "hd_int.h"
-#include "smbios.h"
-#include "memory.h"
-#include "isapnp.h"
-#include "monitor.h"
-#include "cpu.h"
-#include "misc.h"
-#include "mouse.h"
-#include "floppy.h"
-#include "bios.h"
-#include "serial.h"
-#include "net.h"
-#include "version.h"
-#include "usb.h"
-#include "adb.h"
-#include "modem.h"
-#include "parallel.h"
-#include "isa.h"
-#include "isdn.h"
-#include "kbd.h"
-#include "prom.h"
-#include "sbus.h"
-#include "int.h"
-#include "braille.h"
-#include "sys.h"
-#include "manual.h"
-#include "fb.h"
-#include "pppoe.h"
-#include "pcmcia.h"
-#include "s390.h"
-#include "pci.h"
-#include "block.h"
-#include "edd.h"
-#include "input.h"
-#include "wlan.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * various functions commmon to all probing modules
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#ifdef __i386__
-#define HD_ARCH "ia32"
-#endif
-
-#ifdef __ia64__
-#define HD_ARCH "ia64"
-#endif
-
-#ifdef __alpha__
-#define HD_ARCH "axp"
-#endif
-
-#ifdef __PPC__
-#define HD_ARCH "ppc"
-#endif
-
-#ifdef __sparc__
-#define HD_ARCH "sparc"
-#endif
-
-#ifdef __s390x__
-#define HD_ARCH "s390x"
-#else
-#ifdef __s390__
-#define HD_ARCH "s390"
-#endif
-#endif
-
-#ifdef __arm__
-#define HD_ARCH "arm"
-#endif
-
-#ifdef __mips__
-#define HD_ARCH "mips"
-#endif
-
-#ifdef __x86_64__
-#define HD_ARCH "x86-64"
-#endif
-
-#ifdef __hppa__
-#define HD_ARCH "hppa"
-#endif
-
-typedef struct disk_s {
-  struct disk_s *next;
-  unsigned crc;
-  unsigned crc_match:1;
-  unsigned hd_idx;
-  char *dev_name;
-  unsigned char *data;
-} disk_t;
-
-static struct s_pr_flags *get_pr_flags(enum probe_feature feature);
-static void fix_probe_features(hd_data_t *hd_data);
-static void set_probe_feature(hd_data_t *hd_data, enum probe_feature feature, unsigned val);
-static void free_old_hd_entries(hd_data_t *hd_data);
-static hd_t *free_hd_entry(hd_t *hd);
-static hd_t *add_hd_entry2(hd_t **hd, hd_t *new_hd);
-static void timeout_alarm_handler(int signal);
-static void get_probe_env(hd_data_t *hd_data);
-static void hd_scan_xtra(hd_data_t *hd_data);
-static hd_t *hd_get_device_by_id(hd_data_t *hd_data, char *id);
-static int has_item(hd_hw_item_t *items, hd_hw_item_t item);
-static int has_hw_class(hd_t *hd, hd_hw_item_t *items);
-
-static void test_read_block0_open(void *arg);
-static void get_kernel_version(hd_data_t *hd_data);
-static int is_modem(hd_data_t *hd_data, hd_t *hd);
-static int is_audio(hd_data_t *hd_data, hd_t *hd);
-static void assign_hw_class(hd_data_t *hd_data, hd_t *hd);
-static void short_vendor(char *vendor);
-static void create_model_name(hd_data_t *hd_data, hd_t *hd);
-
-static void sigchld_handler(int);
-static pid_t child_id;
-static volatile pid_t child;
-static char *hd_shm_add_str(hd_data_t *hd_data, char *str);
-static str_list_t *hd_shm_add_str_list(hd_data_t *hd_data, str_list_t *sl);
-
-static hd_udevinfo_t *hd_free_udevinfo(hd_udevinfo_t *ui);
-static hd_sysfsdrv_t *hd_free_sysfsdrv(hd_sysfsdrv_t *sf);
-
-
-/*
- * Names of the probing modules.
- * Cf. enum mod_idx in hd_int.h.
- */
-static struct s_mod_names {
-  unsigned val;
-  char *name;
-} pr_modules[] = {
-  { mod_none, "none"},
-  { mod_memory, "memory"},
-  { mod_pci, "pci"},
-  { mod_isapnp, "isapnp"},
-  { mod_pnpdump, "pnpdump"},
-  { mod_net, "net"},
-  { mod_floppy, "floppy"},
-  { mod_misc, "misc" },
-  { mod_bios, "bios"},
-  { mod_cpu, "cpu"},
-  { mod_monitor, "monitor"},
-  { mod_serial, "serial"},
-  { mod_mouse, "mouse"},
-  { mod_scsi, "scsi"},
-  { mod_usb, "usb"},
-  { mod_adb, "adb"},
-  { mod_modem, "modem"},
-  { mod_parallel, "parallel" },
-  { mod_isa, "isa" },
-  { mod_isdn, "isdn" },
-  { mod_kbd, "kbd" },
-  { mod_prom, "prom" },
-  { mod_sbus, "sbus" },
-  { mod_int, "int" },
-  { mod_braille, "braille" },
-  { mod_xtra, "hd" },
-  { mod_sys, "sys" },
-  { mod_manual, "manual" },
-  { mod_fb, "fb" },
-  { mod_pppoe, "pppoe" },
-  { mod_pcmcia, "pcmcia" },
-  { mod_s390, "s390" },
-  { mod_sysfs, "sysfs" },
-  { mod_dsl, "dsl" },
-  { mod_block, "block" },
-  { mod_edd, "edd" },
-  { mod_input, "input" }
-};
-
-/*
- * Names for the probe flags. Used for debugging and command line parsing in
- * hw.c. Cf. enum probe_feature, hd_data_t.probe.
- */
-static struct s_pr_flags {
-  enum probe_feature val, parent;
-  unsigned mask;       /* bit 0: default, bit 1: all, bit 2: max, bit 3: linuxrc */
-  char *name;
-} pr_flags[] = {
-  { pr_default,      -1,                  1, "default"       },
-  { pr_all,          -1,                2  , "all"           },
-  { pr_max,          -1,              4    , "max"           },
-  { pr_lxrc,         -1,            8      , "lxrc"          },
-  { pr_memory,        0,            8|4|2|1, "memory"        },
-  { pr_pci,           0,            8|4|2|1, "pci"           },
-  { pr_s390,          0,            8|4|2|1, "s390"          },
-  { pr_s390disks,     0,                  0, "s390disks"     },
-  { pr_isapnp,        0,              4|2|1, "isapnp"        },
-  { pr_isapnp_old,    pr_isapnp,          0, "isapnp.old"    },
-  { pr_isapnp_new,    pr_isapnp,          0, "isapnp.new"    },
-  { pr_isapnp_mod,    0,              4    , "isapnp.mod"    },
-  { pr_isapnp,        0,                  0, "pnpdump"       },        /* alias for isapnp */
-  { pr_net,           0,            8|4|2|1, "net"           },
-  { pr_floppy,        0,            8|4|2|1, "floppy"        },
-  { pr_misc,          pr_bios,      8|4|2|1, "misc"          },        // ugly hack!
-  { pr_misc_serial,   pr_misc,      8|4|2|1, "misc.serial"   },
-  { pr_misc_par,      pr_misc,        4|2|1, "misc.par"      },
-  { pr_misc_floppy,   pr_misc,      8|4|2|1, "misc.floppy"   },
-  { pr_bios,          0,            8|4|2|1, "bios"          },
-  { pr_bios_vesa,     pr_bios,        4|2|1, "bios.vesa"     },
-  { pr_bios_ddc,      pr_bios_vesa,       0, "bios.ddc"      },
-  { pr_bios_fb,       pr_bios_vesa,       0, "bios.fb"       },
-  { pr_bios_mode,     pr_bios_vesa,       0, "bios.mode"     },
-  { pr_bios_vbe,      pr_bios_mode,       0, "bios.vbe"      }, // just an alias
-  { pr_cpu,           0,            8|4|2|1, "cpu"           },
-  { pr_monitor,       0,            8|4|2|1, "monitor"       },
-  { pr_serial,        0,              4|2|1, "serial"        },
-#if defined(__sparc__)
-  /* Probe for mouse on SPARC */
-  { pr_mouse,         0,            8|4|2|1, "mouse"         },
-#else
-  { pr_mouse,         0,              4|2|1, "mouse"         },
-#endif
-  { pr_scsi,          0,            8|4|2|1, "scsi"          },
-  { pr_scsi_noserial, 0,                  0, "scsi.noserial" },
-  { pr_usb,           0,            8|4|2|1, "usb"           },
-  { pr_usb_mods,      0,              4    , "usb.mods"      },
-  { pr_adb,           0,            8|4|2|1, "adb"           },
-  { pr_modem,         0,              4|2|1, "modem"         },
-  { pr_modem_usb,     pr_modem,       4|2|1, "modem.usb"     },
-  { pr_parallel,      0,              4|2|1, "parallel"      },
-  { pr_parallel_lp,   pr_parallel,    4|2|1, "parallel.lp"   },
-  { pr_parallel_zip,  pr_parallel,    4|2|1, "parallel.zip"  },
-  { pr_parallel_imm,  0,                  0, "parallel.imm"  },
-  { pr_isa,           0,              4|2|1, "isa"           },
-  { pr_isa_isdn,      pr_isa,         4|2|1, "isa.isdn"      },
-  { pr_isdn,          0,              4|2|1, "isdn"          },
-  { pr_kbd,           0,            8|4|2|1, "kbd"           },
-  { pr_prom,          0,            8|4|2|1, "prom"          },
-  { pr_sbus,          0,            8|4|2|1, "sbus"          },
-  { pr_int,           0,            8|4|2|1, "int"           },
-#if defined(__i386__) || defined (__x86_64__)
-  { pr_braille,       0,              4|2|1, "braille"       },
-  { pr_braille_alva,  pr_braille,     4|2|1, "braille.alva"  },
-  { pr_braille_fhp,   pr_braille,     4|2|1, "braille.fhp"   },
-  { pr_braille_ht,    pr_braille,     4|2|1, "braille.ht"    },
-  { pr_braille_baum,  pr_braille,     4|2|1, "braille.baum"  },
-#else
-  { pr_braille,       0,              4|2  , "braille"       },
-  { pr_braille_alva,  pr_braille,         0, "braille.alva"  },
-  { pr_braille_fhp,   pr_braille,     4|2  , "braille.fhp"   },
-  { pr_braille_ht,    pr_braille,     4|2  , "braille.ht"    },
-  { pr_braille_baum,  pr_braille,     4|2  , "braille.baum"  },
-#endif
-  { pr_ignx11,        0,                  0, "ignx11"        },
-  { pr_sys,           0,            8|4|2|1, "sys"           },
-  { pr_manual,        0,            8|4|2|1, "manual"        },
-  { pr_fb,            0,            8|4|2|1, "fb"            },
-  { pr_pppoe,         0,            8|4|2|1, "pppoe"         },
-  /* dummy, used to turn off hwscan */
-  { pr_scan,          0,                  0, "scan"          },
-  { pr_pcmcia,        0,            8|4|2|1, "pcmcia"        },
-  { pr_fork,          0,                  0, "fork"          },
-  { pr_cpuemu,        0,                  0, "cpuemu"        },
-  { pr_cpuemu_debug,  pr_cpuemu,          0, "cpuemu.debug"  },
-  { pr_sysfs,         0,                  0, "sysfs"         },
-  { pr_dsl,           0,              4|2|1, "dsl"           },
-  { pr_udev,          0,            8|4|2|1, "udev"          },
-  { pr_block,         0,            8|4|2|1, "block"         },
-  { pr_block_cdrom,   pr_block,     8|4|2|1, "block.cdrom"   },
-  { pr_block_part,    pr_block,     8|4|2|1, "block.part"    },
-  { pr_block_mods,    pr_block,     8|4|2|1, "block.mods"    },
-  { pr_edd,           0,            8|4|2|1, "edd"           },
-  { pr_edd_mod,       pr_edd,       8|4|2|1, "edd.mod"       },
-  { pr_input,         0,            8|4|2|1, "input"         },
-  { pr_wlan,          0,            8|4|2|1, "wlan"          }
-};
-
-struct s_pr_flags *get_pr_flags(enum probe_feature feature)
-{
-  int i;
-
-  for(i = 0; (unsigned) i < sizeof pr_flags / sizeof *pr_flags; i++) {
-    if(feature == pr_flags[i].val) return pr_flags + i;
-  }
-
-  return NULL;
-}
-
-void fix_probe_features(hd_data_t *hd_data)
-{
-  int i;
-
-  for(i = 0; (unsigned) i < sizeof hd_data->probe; i++) {
-    hd_data->probe[i] |= hd_data->probe_set[i];
-    hd_data->probe[i] &= ~hd_data->probe_clr[i];
-  }
-}
-
-void set_probe_feature(hd_data_t *hd_data, enum probe_feature feature, unsigned val)
-{
-  unsigned ofs, bit, mask;
-  int i;
-  struct s_pr_flags *pr;
-
-  if(!(pr = get_pr_flags(feature))) return;
-
-  if(pr->parent == -1u) {
-    mask = pr->mask;
-    for(i = 0; (unsigned) i < sizeof pr_flags / sizeof *pr_flags; i++) {
-      if(pr_flags[i].parent != -1u && (pr_flags[i].mask & mask))
-        set_probe_feature(hd_data, pr_flags[i].val, val);
-    }
-  }
-  else {
-    ofs = feature >> 3; bit = feature & 7;
-    if(ofs < sizeof hd_data->probe) {
-      if(val) {
-        hd_data->probe_set[ofs] |= 1 << bit;
-        hd_data->probe_clr[ofs] &= ~(1 << bit);
-      }
-      else {
-        hd_data->probe_clr[ofs] |= 1 << bit;
-        hd_data->probe_set[ofs] &= ~(1 << bit);
-      }
-    }
-    if(pr->parent) set_probe_feature(hd_data, pr->parent, val);
-  }
-
-  fix_probe_features(hd_data);
-}
-
-void hd_set_probe_feature(hd_data_t *hd_data, enum probe_feature feature)
-{
-  unsigned ofs, bit, mask;
-  int i;
-  struct s_pr_flags *pr;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_set_probe_feature, hd_data), hd_data);
-  }
-#endif
-
-  if(!(pr = get_pr_flags(feature))) return;
-
-  if(pr->parent == -1u) {
-    mask = pr->mask;
-    for(i = 0; (unsigned) i < sizeof pr_flags / sizeof *pr_flags; i++) {
-      if(pr_flags[i].parent != -1u && (pr_flags[i].mask & mask))
-        hd_set_probe_feature(hd_data, pr_flags[i].val);
-    }
-  }
-  else {
-    ofs = feature >> 3; bit = feature & 7;
-    if(ofs < sizeof hd_data->probe)
-      hd_data->probe[ofs] |= 1 << bit;
-    if(pr->parent) hd_set_probe_feature(hd_data, pr->parent);
-  }
-
-  fix_probe_features(hd_data);
-}
-
-void hd_clear_probe_feature(hd_data_t *hd_data, enum probe_feature feature)
-{
-  unsigned ofs, bit, mask;
-  int i;
-  struct s_pr_flags *pr;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_clear_probe_feature, hd_data), hd_data);
-  }
-#endif
-
-  if(!(pr = get_pr_flags(feature))) return;
-
-  if(pr->parent == -1u) {
-    mask = pr->mask;
-    for(i = 0; (unsigned) i < sizeof pr_flags / sizeof *pr_flags; i++) {
-      if(pr_flags[i].parent != -1u && (pr_flags[i].mask & mask))
-        hd_clear_probe_feature(hd_data, pr_flags[i].val);
-    }
-  }
-  else {
-    ofs = feature >> 3; bit = feature & 7;
-    if(ofs < sizeof hd_data->probe)
-      hd_data->probe[ofs] &= ~(1 << bit);
-  }
-}
-
-int hd_probe_feature(hd_data_t *hd_data, enum probe_feature feature)
-{
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_probe_feature, hd_data), hd_data);
-  }
-#endif
-
-  if(feature < 0 || feature >= pr_default) return 0;
-
-  return hd_data->probe[feature >> 3] & (1 << (feature & 7)) ? 1 : 0;
-}
-
-
-void hd_set_probe_feature_hw(hd_data_t *hd_data, hd_hw_item_t item)
-{
-  hd_set_probe_feature(hd_data, pr_int);
-  hd_set_probe_feature(hd_data, pr_manual);
-
-  switch(item) {
-    case hw_cdrom:
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_block_mods);
-      hd_set_probe_feature(hd_data, pr_scsi);
-      if(!hd_data->flags.fast) {
-        hd_set_probe_feature(hd_data, pr_block_cdrom);
-      }
-      break;
-
-    case hw_floppy:
-      hd_set_probe_feature(hd_data, pr_floppy);
-      hd_set_probe_feature(hd_data, pr_misc_floppy);
-      hd_set_probe_feature(hd_data, pr_prom);
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_block);
-      hd_set_probe_feature(hd_data, pr_block_mods);
-      hd_set_probe_feature(hd_data, pr_scsi);
-      break;
-
-    case hw_partition:
-      hd_set_probe_feature(hd_data, pr_block_part);
-
-    case hw_disk:
-      hd_set_probe_feature(hd_data, pr_s390disks);
-      hd_set_probe_feature(hd_data, pr_bios);          // bios disk order
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_block);
-      hd_set_probe_feature(hd_data, pr_block_mods);
-      hd_set_probe_feature(hd_data, pr_edd_mod);
-      hd_set_probe_feature(hd_data, pr_scsi);
-      break;
-
-    case hw_block:
-      hd_set_probe_feature(hd_data, pr_prom);
-      hd_set_probe_feature(hd_data, pr_s390disks);
-      hd_set_probe_feature(hd_data, pr_bios);          // bios disk order
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_block);
-      hd_set_probe_feature(hd_data, pr_block_mods);
-      hd_set_probe_feature(hd_data, pr_edd_mod);
-      hd_set_probe_feature(hd_data, pr_scsi);
-      if(!hd_data->flags.fast) {
-        hd_set_probe_feature(hd_data, pr_floppy);
-        hd_set_probe_feature(hd_data, pr_misc_floppy);
-        hd_set_probe_feature(hd_data, pr_block_cdrom);
-      }
-      hd_set_probe_feature(hd_data, pr_block_part);
-      break;
-
-    case hw_network:
-      hd_set_probe_feature(hd_data, pr_net);
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_prom);
-      hd_set_probe_feature(hd_data, pr_usb);
-      break;
-
-    case hw_display:
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_sbus);
-      hd_set_probe_feature(hd_data, pr_prom);
-      hd_set_probe_feature(hd_data, pr_misc);          /* for isa cards */
-      break;
-
-    case hw_monitor:
-      hd_set_probe_feature(hd_data, pr_misc);
-      hd_set_probe_feature(hd_data, pr_prom);
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_bios_ddc);
-      hd_set_probe_feature(hd_data, pr_fb);
-      hd_set_probe_feature(hd_data, pr_monitor);
-      break;
-
-    case hw_framebuffer:
-      hd_set_probe_feature(hd_data, pr_misc);
-      hd_set_probe_feature(hd_data, pr_prom);
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_bios_fb);
-      hd_set_probe_feature(hd_data, pr_fb);
-      break;
-
-    case hw_mouse:
-      hd_set_probe_feature(hd_data, pr_misc);
-      if(!hd_data->flags.fast) {
-        hd_set_probe_feature(hd_data, pr_serial);
-      }
-      hd_set_probe_feature(hd_data, pr_adb);
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_kbd);
-      hd_set_probe_feature(hd_data, pr_sys);
-      hd_set_probe_feature(hd_data, pr_bios);
-      hd_set_probe_feature(hd_data, pr_mouse);
-      hd_set_probe_feature(hd_data, pr_input);
-      break;
-
-    case hw_joystick:
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_input);
-      break;
-
-    case hw_chipcard:
-      hd_set_probe_feature(hd_data, pr_misc);
-      if(!hd_data->flags.fast) {
-        hd_set_probe_feature(hd_data, pr_serial);
-      }
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_mouse);         /* we need the pnp code */
-      break;
-
-    case hw_camera:
-      hd_set_probe_feature(hd_data, pr_usb);
-      break;
-
-    case hw_keyboard:
-      hd_set_probe_feature(hd_data, pr_cpu);
-      hd_set_probe_feature(hd_data, pr_misc);
-      hd_set_probe_feature(hd_data, pr_adb);
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_kbd);
-      hd_set_probe_feature(hd_data, pr_input);
-#ifdef __PPC__
-      hd_set_probe_feature(hd_data, pr_serial);
-#endif
-      break;
-
-    case hw_sound:
-      hd_set_probe_feature(hd_data, pr_misc);
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_isapnp);
-      hd_set_probe_feature(hd_data, pr_isapnp_mod);
-      hd_set_probe_feature(hd_data, pr_sbus);
-      hd_set_probe_feature(hd_data, pr_prom);
-      break;
-
-    case hw_isdn:
-      hd_set_probe_feature(hd_data, pr_misc);          /* get basic i/o res */
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_pcmcia);
-      hd_set_probe_feature(hd_data, pr_isapnp);
-      hd_set_probe_feature(hd_data, pr_isapnp_mod);
-      hd_set_probe_feature(hd_data, pr_isa_isdn);
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_isdn);
-      break;
-
-    case hw_modem:
-      hd_set_probe_feature(hd_data, pr_misc);
-      hd_set_probe_feature(hd_data, pr_serial);
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_modem);
-      hd_set_probe_feature(hd_data, pr_modem_usb);
-      break;
-
-    case hw_storage_ctrl:
-      hd_set_probe_feature(hd_data, pr_floppy);
-      hd_set_probe_feature(hd_data, pr_sys);
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_sbus);
-      if(!hd_data->flags.fast) {
-        hd_set_probe_feature(hd_data, pr_misc_par);
-        hd_set_probe_feature(hd_data, pr_parallel_zip);
-      }
-      hd_set_probe_feature(hd_data, pr_s390);
-      hd_set_probe_feature(hd_data, pr_prom);
-#ifdef __PPC__
-      hd_set_probe_feature(hd_data, pr_misc);
-#endif
-      break;
-
-    case hw_network_ctrl:
-      hd_set_probe_feature(hd_data, pr_misc);
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_net);
-      hd_set_probe_feature(hd_data, pr_pcmcia);
-      hd_set_probe_feature(hd_data, pr_isapnp);
-      hd_set_probe_feature(hd_data, pr_isapnp_mod);
-      hd_set_probe_feature(hd_data, pr_sbus);
-      hd_set_probe_feature(hd_data, pr_isdn);
-      hd_set_probe_feature(hd_data, pr_dsl);
-      hd_set_probe_feature(hd_data, pr_prom);
-      hd_set_probe_feature(hd_data, pr_s390);
-      hd_set_probe_feature(hd_data, pr_wlan);
-      break;
-
-    case hw_printer:
-      hd_set_probe_feature(hd_data, pr_sys);
-      hd_set_probe_feature(hd_data, pr_bios);
-      hd_set_probe_feature(hd_data, pr_misc_par);
-      hd_set_probe_feature(hd_data, pr_parallel_lp);
-      hd_set_probe_feature(hd_data, pr_usb);
-      break;
-
-    case hw_wlan:
-      hd_set_probe_feature(hd_data, pr_pcmcia);
-      hd_set_probe_feature(hd_data, pr_wlan);
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_net);
-      break;
-
-    case hw_tv:
-    case hw_dvb:
-      hd_set_probe_feature(hd_data, pr_pci);
-      break;
-
-    case hw_scanner:
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_scsi);
-      break;
-
-    case hw_braille:
-      hd_set_probe_feature(hd_data, pr_misc_serial);
-      hd_set_probe_feature(hd_data, pr_serial);
-      hd_set_probe_feature(hd_data, pr_braille_alva);
-      hd_set_probe_feature(hd_data, pr_braille_fhp);
-      hd_set_probe_feature(hd_data, pr_braille_ht);
-      hd_set_probe_feature(hd_data, pr_braille_baum);
-      hd_set_probe_feature(hd_data, pr_usb);
-      break;
-
-    case hw_sys:
-      hd_set_probe_feature(hd_data, pr_bios);
-      hd_set_probe_feature(hd_data, pr_prom);
-      hd_set_probe_feature(hd_data, pr_s390);
-      hd_set_probe_feature(hd_data, pr_sys);
-      break;
-
-    case hw_cpu:
-      hd_set_probe_feature(hd_data, pr_cpu);
-      break;
-
-    case hw_bios:
-      hd_set_probe_feature(hd_data, pr_bios);
-      hd_set_probe_feature(hd_data, pr_edd_mod);
-      break;
-
-    case hw_vbe:
-      hd_set_probe_feature(hd_data, pr_bios_ddc);
-      hd_set_probe_feature(hd_data, pr_bios_fb);
-      hd_set_probe_feature(hd_data, pr_bios_mode);
-      hd_set_probe_feature(hd_data, pr_monitor);
-      break;
-
-    case hw_manual:
-      hd_set_probe_feature(hd_data, pr_manual);
-      break;
-
-    case hw_usb_ctrl:
-    case hw_pcmcia_ctrl:
-    case hw_ieee1394_ctrl:
-    case hw_hotplug_ctrl:
-      hd_set_probe_feature(hd_data, pr_misc);
-      hd_set_probe_feature(hd_data, pr_pci);
-      break;
-
-    case hw_usb:
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_isdn);  // need pr_misc, too?
-      hd_set_probe_feature(hd_data, pr_dsl);
-      hd_set_probe_feature(hd_data, pr_block);
-      hd_set_probe_feature(hd_data, pr_block_mods);
-      hd_set_probe_feature(hd_data, pr_scsi);
-      hd_set_probe_feature(hd_data, pr_net);
-      hd_data->flags.fast = 1;
-      break;
-
-    case hw_pci:
-      hd_set_probe_feature(hd_data, pr_misc);
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_net);
-      hd_set_probe_feature(hd_data, pr_isdn);
-      hd_set_probe_feature(hd_data, pr_dsl);
-      hd_set_probe_feature(hd_data, pr_prom);
-      break;
-
-    case hw_isapnp:
-      hd_set_probe_feature(hd_data, pr_isapnp);
-      hd_set_probe_feature(hd_data, pr_isapnp_mod);
-      hd_set_probe_feature(hd_data, pr_misc);
-      hd_set_probe_feature(hd_data, pr_isdn);
-      break;
-
-    case hw_bridge:
-      hd_set_probe_feature(hd_data, pr_misc);
-      hd_set_probe_feature(hd_data, pr_pci);
-      break;
-
-    case hw_hub:
-      hd_set_probe_feature(hd_data, pr_usb); 
-      break;
-
-    case hw_memory:
-      hd_set_probe_feature(hd_data, pr_memory); 
-      break;
-
-    case hw_scsi:
-    case hw_tape:
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_block);
-      hd_set_probe_feature(hd_data, pr_block_mods);
-      hd_set_probe_feature(hd_data, pr_scsi);
-      break;
-
-    case hw_ide:
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_block);
-      hd_set_probe_feature(hd_data, pr_block_mods);
-      break;
-
-    case hw_pppoe:
-      hd_set_probe_feature(hd_data, pr_net);
-      hd_set_probe_feature(hd_data, pr_pppoe);
-      break;
-
-    case hw_dsl:
-      hd_set_probe_feature(hd_data, pr_net);
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_pppoe);
-      hd_set_probe_feature(hd_data, pr_usb);
-      break;
-
-    case hw_pcmcia:
-      hd_set_probe_feature(hd_data, pr_pci);
-      hd_set_probe_feature(hd_data, pr_pcmcia);
-      hd_set_probe_feature(hd_data, pr_wlan);
-      hd_set_probe_feature(hd_data, pr_net);
-      hd_set_probe_feature(hd_data, pr_isdn);
-      break;
-
-    case hw_bluetooth:
-      hd_set_probe_feature(hd_data, pr_usb);
-      hd_set_probe_feature(hd_data, pr_isdn);  // need pr_misc, too?
-      hd_set_probe_feature(hd_data, pr_dsl);
-      break;
-
-    case hw_all:
-      hd_set_probe_feature(hd_data, pr_default);
-      break;
-    
-    case hw_redasd:
-      hd_set_probe_feature(hd_data, pr_block);
-      hd_set_probe_feature(hd_data, pr_block_mods);
-      break;
-
-    case hw_unknown:
-    case hw_ieee1394:
-    case hw_hotplug:
-    case hw_zip:
-      break;
-  }
-}
-
-
-/*
- * Free all data associated with a hd_data_t struct. *Not* the struct itself.
- */
-hd_data_t *hd_free_hd_data(hd_data_t *hd_data)
-{
-  hddb_pci_t *p;
-  unsigned u;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_free_hd_data, hd_data), hd_data);
-  }
-#endif
-
-  add_hd_entry2(&hd_data->old_hd, hd_data->hd); hd_data->hd = NULL;
-  hd_data->log = free_mem(hd_data->log);
-  free_old_hd_entries(hd_data);                /* hd_data->old_hd */
-  /* hd_data->pci is always NULL */
-  /* hd_data->isapnp->card is always NULL */
-  hd_data->isapnp = free_mem(hd_data->isapnp);
-  /* hd_data->cdrom is always NULL */
-  hd_data->net = free_str_list(hd_data->net);
-  hd_data->floppy = free_str_list(hd_data->floppy);
-  hd_data->misc = free_misc(hd_data->misc);
-  /* hd_data->serial is always NULL */
-  /* hd_data->scsi is always NULL */
-  /* hd_data->ser_mouse is always NULL */
-  /* hd_data->ser_modem is always NULL */
-  hd_data->cpu = free_str_list(hd_data->cpu);
-  hd_data->klog = free_str_list(hd_data->klog);
-  hd_data->proc_usb = free_str_list(hd_data->proc_usb);
-  /* hd_data->usb is always NULL */
-
-  if((p = hd_data->hddb_pci)) {
-    for(; p->module; p++) free_mem(p->module);
-  }
-  if(hd_data->hddb2[0]) {
-    free_mem(hd_data->hddb2[0]->list);
-    free_mem(hd_data->hddb2[0]->ids); 
-    free_mem(hd_data->hddb2[0]->strings);
-    hd_data->hddb2[0] = free_mem(hd_data->hddb2[0]);
-  }
-  /* hddb2[1] is the static internal database; don't try to free it! */
-  hd_data->hddb2[1] = NULL;
-
-  hd_data->hddb_pci = free_mem(hd_data->hddb_pci);
-  hd_data->kmods = free_str_list(hd_data->kmods);
-  hd_data->bios_rom.data = free_mem(hd_data->bios_rom.data);
-  hd_data->bios_ram.data = free_mem(hd_data->bios_ram.data);
-  hd_data->bios_ebda.data = free_mem(hd_data->bios_ebda.data);
-  hd_data->cmd_line = free_mem(hd_data->cmd_line);
-  hd_data->xtra_hd = free_str_list(hd_data->xtra_hd);
-  hd_data->devtree = free_devtree(hd_data);
-  hd_data->manual = hd_free_manual(hd_data->manual);
-  hd_data->disks = free_str_list(hd_data->disks);
-  hd_data->partitions = free_str_list(hd_data->partitions);
-  hd_data->cdroms = free_str_list(hd_data->cdroms);
-
-  hd_data->smbios = smbios_free(hd_data->smbios);
-
-  hd_data->udevinfo = hd_free_udevinfo(hd_data->udevinfo);
-  hd_data->sysfsdrv = hd_free_sysfsdrv(hd_data->sysfsdrv);
-
-  hd_data->only = free_str_list(hd_data->only);
-  hd_data->scanner_db = free_str_list(hd_data->scanner_db);
-
-  for(u = 0; u < sizeof hd_data->edd / sizeof *hd_data->edd; u++) {
-    hd_data->edd[u].sysfs_id = free_mem(hd_data->edd[u].sysfs_id);
-  }
-
-  hd_data->last_idx = 0;
-
-  hd_shm_done(hd_data);
-
-  memset(hd_data, 0, sizeof *hd_data);
-
-  return NULL;
-}
-
-
-/*
- * Free all data associated with a driver_info_t struct. Even the struct itself.
- */
-driver_info_t *free_driver_info(driver_info_t *di)
-{
-  driver_info_t *next;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(free_driver_info, di), di);
-  }
-#endif
-
-  for(; di; di = next) {
-    next = di->next;
-
-    switch(di->any.type) {
-      case di_any:
-      case di_display:
-        break;
-
-      case di_module:
-        free_str_list(di->module.names);
-        free_str_list(di->module.mod_args);
-        free_mem(di->module.conf);
-        break;
-
-      case di_mouse:
-        free_mem(di->mouse.xf86);
-        free_mem(di->mouse.gpm);
-        break;
-
-      case di_x11:
-        free_mem(di->x11.server);
-        free_mem(di->x11.xf86_ver);
-        free_str_list(di->x11.extensions);
-        free_str_list(di->x11.options);
-        free_str_list(di->x11.raw);
-        free_mem(di->x11.script);
-        break;
-
-      case di_isdn:
-        free_mem(di->isdn.i4l_name);
-        if(di->isdn.params) {
-          isdn_parm_t *p = di->isdn.params, *next;
-          for(; p; p = next) {
-            next = p->next;
-            free_mem(p->name);
-            free_mem(p->alt_value);
-            free_mem(p);
-          }
-        }
-        break;
-
-      case di_dsl:
-        free_mem(di->dsl.name);
-        free_mem(di->dsl.mode);
-        break;
-
-      case di_kbd:
-        free_mem(di->kbd.XkbRules);
-        free_mem(di->kbd.XkbModel);
-        free_mem(di->kbd.XkbLayout);
-        free_mem(di->kbd.keymap);
-        break;
-    }
-
-    free_str_list(di->any.hddb0);
-    free_str_list(di->any.hddb1);
-
-    free_mem(di);
-  }
-
-  return NULL;
-}
-
-
-int exists_hd_entry(hd_data_t *hd_data, hd_t *old_hd, hd_t *hd_ex)
-{
-  hd_t *hd;
-
-  if(!hd_ex) return 0;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd == hd_ex) return 1;
-  }
-  for(hd = old_hd; hd; hd = hd->next) {
-    if(hd == hd_ex) return 1;
-  }
-
-  return 0;
-}
-
-
-/*!
- * \note This may not free it.
- */
-hd_t *hd_free_hd_list(hd_t *hd)
-{
-  hd_t *h;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_free_hd_list, hd), hd);
-  }
-#endif
-
-  /* Note: hd->next should better be NULL! */
-  if(hd && hd->tag.freeit) {
-    free_hd_entry(hd);
-    return free_mem(hd);
-  }
-
-  /* do nothing unless the list holds only copies of hd_t entries */
-  for(h = hd; h; h = h->next) if(!h->ref) return NULL;
-
-  for(; hd; hd = (h = hd)->next, free_mem(h));
-
-  return NULL;
-}
-
-hd_detail_t *free_hd_detail(hd_detail_t *d)
-{
-  if(!d) return NULL;
-
-  switch(d->type) {
-    case hd_detail_pci: {
-        pci_t *p = d->pci.data;
-
-        free_mem(p->log);
-        free_mem(p->sysfs_id);
-        free_mem(p->sysfs_bus_id);
-        free_mem(p);
-      }
-      break;
-
-    case hd_detail_usb:
-      {
-        usb_t *u = d->usb.data;
-
-        if(!u->cloned) {
-          free_str_list(u->c);
-          free_str_list(u->e);
-        }
-        free_str_list(u->d);
-        free_str_list(u->p);
-        free_str_list(u->s);
-        free_str_list(u->t);
-        free_str_list(u->i);
-
-        free_mem(u->manufact);
-        free_mem(u->product);
-        free_mem(u->serial);
-        free_mem(u->driver);
-        free_mem(u->raw_descr.data);
-
-        free_mem(u);
-      }
-      break;
-
-    case hd_detail_isapnp:
-      {
-        isapnp_dev_t *i = d->isapnp.data;
-        int j;
-
-        if(!i->ref) {
-          free_mem(i->card->serial);
-          free_mem(i->card->card_regs);
-          free_mem(i->card->ldev_regs);
-          for(j = 0; j < i->card->res_len; j++) {
-            free_mem(i->card->res[j].data);
-          }
-          if(i->card->res) free_mem(i->card->res);
-        }
-        free_mem(i->card);
-        free_mem(i);
-      }
-      break;
-
-    case hd_detail_cdrom:
-      {
-        cdrom_info_t *c = d->cdrom.data;
-
-        if(c) {
-          free_mem(c->name);
-          free_mem(c->iso9660.volume);
-          free_mem(c->iso9660.publisher);
-          free_mem(c->iso9660.preparer);
-          free_mem(c->iso9660.application);
-          free_mem(c->iso9660.creation_date);
-          free_mem(c->el_torito.id_string);
-          free_mem(c->el_torito.label);
-
-          free_mem(c);
-        }
-      }
-      break;
-
-    case hd_detail_floppy:
-      free_mem(d->floppy.data);
-      break;
-
-    case hd_detail_bios:
-      {
-        bios_info_t *b = d->bios.data;
-
-        free_mem(b->vbe.oem_name);
-        free_mem(b->vbe.vendor_name);
-        free_mem(b->vbe.product_name);
-        free_mem(b->vbe.product_revision);
-        free_mem(b->vbe.mode);
-        free_mem(b->lcd.vendor);
-        free_mem(b->lcd.name);
-        free_mem(b->mouse.vendor);
-        free_mem(b->mouse.type);
-
-        free_mem(b);
-      }
-      break;
-
-    case hd_detail_cpu:
-      {
-        cpu_info_t *c = d->cpu.data;
-
-        free_mem(c->vend_name);
-        free_mem(c->model_name);
-        free_mem(c->platform);
-        free_str_list(c->features);
-        free_mem(c);
-      }
-      break;
-
-    case hd_detail_prom:
-      free_mem(d->prom.data);
-      break;
-
-    case hd_detail_monitor:
-      {
-        monitor_info_t *m = d->monitor.data;
-
-        free_mem(m->vendor);
-        free_mem(m->name);
-        free_mem(m->serial);
-
-        free_mem(m);
-      }
-      break;
-
-    case hd_detail_sys:
-      {
-        sys_info_t *s = d->sys.data;
-
-        free_mem(s->system_type);
-        free_mem(s->generation);
-        free_mem(s->vendor);
-        free_mem(s->model);
-        free_mem(s->serial);
-        free_mem(s->lang);
-
-        free_mem(s);
-      }
-      break;
-
-    case hd_detail_scsi:
-      free_scsi(d->scsi.data, 1);
-      break;
-
-    case hd_detail_devtree:
-      /* is freed with hd_data->dev_tree */
-      break;
-
-  case hd_detail_ccw:
-         free_mem(d->ccw.data);
-         break;
-  }
-
-  free_mem(d);
-
-  return NULL;
-}
-
-
-hd_t *free_hd_entry(hd_t *hd)
-{
-  free_mem(hd->bus.name);
-  free_mem(hd->base_class.name);
-  free_mem(hd->sub_class.name);
-  free_mem(hd->prog_if.name);
-  free_mem(hd->vendor.name);
-  free_mem(hd->device.name);
-  free_mem(hd->sub_vendor.name);
-  free_mem(hd->sub_device.name);
-  free_mem(hd->revision.name);
-  free_mem(hd->serial);
-  free_mem(hd->compat_vendor.name);
-  free_mem(hd->compat_device.name);
-  free_mem(hd->model);
-  free_mem(hd->sysfs_id);
-  free_mem(hd->sysfs_bus_id);
-  free_mem(hd->sysfs_device_link);
-  free_str_list(hd->unix_dev_names);
-  free_mem(hd->unix_dev_name);
-  free_mem(hd->unix_dev_name2);
-  free_mem(hd->rom_id);
-  free_mem(hd->unique_id);
-  free_mem(hd->block0);
-  free_mem(hd->driver);
-  free_str_list(hd->drivers);
-  free_mem(hd->old_unique_id);
-  free_mem(hd->unique_id1);
-  free_mem(hd->usb_guid);
-  free_mem(hd->parent_id);
-  free_str_list(hd->child_ids);
-  free_mem(hd->config_string);
-  free_str_list(hd->extra_info);
-
-  free_res_list(hd->res);
-
-  free_hd_detail(hd->detail);
-
-  free_driver_info(hd->driver_info);
-  free_str_list(hd->requires);
-
-  memset(hd, 0, sizeof *hd);
-
-  return NULL;
-}
-
-misc_t *free_misc(misc_t *m)
-{
-  int i, j;
-
-  if(!m) return NULL;
-
-  for(i = 0; (unsigned) i < m->io_len; i++) {
-    free_mem(m->io[i].dev);
-  }
-  free_mem(m->io);
-
-  for(i = 0; (unsigned) i < m->dma_len; i++) {
-    free_mem(m->dma[i].dev);
-  }
-  free_mem(m->dma);
-
-  for(i = 0; (unsigned) i < m->irq_len; i++) {
-    for(j = 0; j < m->irq[i].devs; j++) {
-      free_mem(m->irq[i].dev[j]);
-    }
-    free_mem(m->irq[i].dev);
-  }
-  free_mem(m->irq);
-
-  free_str_list(m->proc_io);
-  free_str_list(m->proc_dma);
-  free_str_list(m->proc_irq);
-
-  free_mem(m);
-
-  return NULL;
-}
-
-scsi_t *free_scsi(scsi_t *scsi, int free_all)
-{
-  scsi_t *next;
-
-  for(; scsi; scsi = next) {
-    next = scsi->next;
-
-    free_mem(scsi->dev_name);
-    free_mem(scsi->guessed_dev_name);
-    free_mem(scsi->vendor);
-    free_mem(scsi->model);
-    free_mem(scsi->rev);
-    free_mem(scsi->type_str);
-    free_mem(scsi->serial);
-    free_mem(scsi->proc_dir);
-    free_mem(scsi->driver);
-    free_mem(scsi->info);
-    free_mem(scsi->usb_guid);
-    free_str_list(scsi->host_info);
-    free_mem(scsi->controller_id);
-
-    if(!free_all) {
-      next = scsi->next;
-      memset(scsi, 0, sizeof scsi);
-      scsi->next = next;
-      break;
-    }
-
-    free_mem(scsi);
-  }
-
-  return NULL;
-}
-
-
-hd_manual_t *hd_free_manual(hd_manual_t *manual)
-{
-  hd_manual_t *next;
-
-  if(!manual) return NULL;
-
-  for(; manual; manual = next) {
-    next = manual->next;
-
-    free_mem(manual->unique_id);
-    free_mem(manual->parent_id);
-    free_mem(manual->child_ids);
-    free_mem(manual->model);
-
-    free_mem(manual->config_string);
-
-    free_str_list(manual->key);
-    free_str_list(manual->value);
-
-    free_mem(manual);
-  }
-
-  return NULL;
-}
-
-
-/*
- * Removes all hd_data->old_hd entries and frees their memory.
- */
-void free_old_hd_entries(hd_data_t *hd_data)
-{
-  hd_t *hd, *next;
-
-  for(hd = hd_data->old_hd; hd; hd = next) {
-    next = hd->next;
-
-    if(exists_hd_entry(hd_data, next, hd->ref) && hd->ref->ref_cnt) hd->ref->ref_cnt--;
-
-    if(!hd->ref) free_hd_entry(hd);
-
-    free_mem(hd);
-  }
-
-  hd_data->old_hd = NULL;
-}
-
-
-void *new_mem(size_t size)
-{
-  void *p;
-
-  if(size == 0) return NULL;
-
-  p = calloc(size, 1);
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, "%p\t%p\t0x%x\n", CALLED_FROM(new_mem, size), p, size);
-  }
-#endif
-
-  if(p) return p;
-
-  fprintf(stderr, "memory oops 1\n");
-  exit(11);
-  /*NOTREACHED*/
-  return 0;
-}
-
-void *resize_mem(void *p, size_t n)
-{
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log && p) fprintf(libhd_log, "%p\t%p\n", CALLED_FROM(resize_mem, p), p);
-  }
-#endif
-
-  p = realloc(p, n);
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, "%p\t%p\t0x%x\n", CALLED_FROM(resize_mem, p), p, n);
-  }
-#endif
-
-  if(!p) {
-    fprintf(stderr, "memory oops 7\n");
-    exit(17);
-  }
-
-  return p;
-}
-
-void *add_mem(void *p, size_t elem_size, size_t n)
-{
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log && p) fprintf(libhd_log, "%p\t%p\n", CALLED_FROM(add_mem, p), p);
-  }
-#endif
-
-  p = realloc(p, (n + 1) * elem_size);
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, "%p\t%p\t0x%x\n", CALLED_FROM(add_mem, p), p, (n + 1) * elem_size);
-  }
-#endif
-
-  if(!p) {
-    fprintf(stderr, "memory oops 7\n");
-    exit(17);
-  }
-
-  memset(p + n * elem_size, 0, elem_size);
-
-  return p;
-}
-
-char *new_str(const char *s)
-{
-  char *t;
-
-  if(!s) return NULL;
-
-  t = strdup(s);
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, "%p\t%p\t0x%x\n", CALLED_FROM(new_str, s), t, strlen(t) + 1);
-  }
-#endif
-
-  if(t) return t;
-
-  fprintf(stderr, "memory oops 2\n");
-  /*NOTREACHED*/
-  exit(12);
-
-  return NULL;
-}
-
-void *free_mem(void *p)
-{
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log && p) fprintf(libhd_log, "%p\t%p\n", CALLED_FROM(free_mem, p), p);
-  }
-#endif
-
-  if(p) free(p);
-
-  return NULL;
-}
-
-void join_res_io(hd_res_t **res1, hd_res_t *res2)
-{
-  hd_res_t *res;
-
-  /*
-   * see if we must add an i/o range (tricky...)
-   *
-   * We look for identical i/o bases and add a range if one was missing. If
-   * no matching pair was found, add the i/o resource.
-   */
-  for(; res2; res2 = res2->next) {
-    if(res2->io.type == res_io) {
-      for(res = *res1; res; res = res->next) {
-        if(res->io.type == res_io) {
-          if(res->io.base == res2->io.base) {
-            /* identical bases: take maximum of both ranges */
-            if(res2->io.range > res->io.range) {
-              res->io.range = res2->io.range;
-            }
-            break;
-          }
-          else if(
-            res->io.range &&
-            res2->io.range &&
-            res->io.base + res->io.range == res2->io.base)
-          {
-            /* res2 directly follows res1: extend res1 to cover res2 */
-            res->io.range += res2->io.range;
-            break;
-          }
-          else if(
-            res2->io.base >= res->io.base &&
-            res2->io.base < res->io.base + res->io.range
-          ) {
-            /* res2 is totally contained in res1: ignore it */
-            break;
-          }
-        }
-      }
-      if(!res) {
-        res = add_res_entry(res1, new_mem(sizeof *res));
-        *res = *res2;  /* *copy* the struct */
-        res->next = NULL;
-      }
-    }
-  }
-}
-
-void join_res_irq(hd_res_t **res1, hd_res_t *res2)
-{
-  hd_res_t *res;
-
-  /* see if we must add an dma channel */
-  for(; res2; res2 = res2->next) {
-    if(res2->irq.type == res_irq) {
-      for(res = *res1; res; res = res->next) {
-        if(res->irq.type == res_irq && res->irq.base == res2->irq.base) break;
-      }
-      if(!res) {
-        res = add_res_entry(res1, new_mem(sizeof *res));
-        *res = *res2;  /* *copy* the struct */
-        res->next = NULL;
-      }
-    }
-  }
-}
-
-
-void join_res_dma(hd_res_t **res1, hd_res_t *res2)
-{
-  hd_res_t *res;
-
-  /* see if we must add an dma channel */
-  for(; res2; res2 = res2->next) {
-    if(res2->dma.type == res_dma) {
-      for(res = *res1; res; res = res->next) {
-        if(res->dma.type == res_dma && res->dma.base == res2->dma.base) break;
-      }
-      if(!res) {
-        res = add_res_entry(res1, new_mem(sizeof *res));
-        *res = *res2;  /* *copy* the struct */
-        res->next = NULL;
-      }
-    }
-  }
-}
-
-
-/*
- * Check whether both resource lists have common entries.
- */
-int have_common_res(hd_res_t *res1, hd_res_t *res2)
-{
-  hd_res_t *res;
-
-  for(; res1; res1 = res1->next) {
-    for(res = res2; res; res = res->next) {
-      if(res->any.type == res1->any.type) {
-        switch(res->any.type) {
-          case res_io:
-            if(res->io.base == res1->io.base) return 1;
-            break;
-
-          case res_irq:
-            if(res->irq.base == res1->irq.base) return 1;
-            break;
-
-          case res_dma:
-            if(res->dma.base == res1->dma.base) return 1;
-            break;
-
-          default: /* gcc -Wall */
-           break;
-        }
-      }
-    }
-  }
-
-  return 0;
-}
-
-
-/*
- * Free the memory allocated by a resource list.
- */
-hd_res_t *free_res_list(hd_res_t *res)
-{
-  hd_res_t *next;
-
-  for(; res; res = next) {
-    next = res->next;
-
-    if(res->any.type == res_init_strings) {
-      free_mem(res->init_strings.init1);
-      free_mem(res->init_strings.init2);
-    }
-
-    if(res->any.type == res_pppd_option) {
-      free_mem(res->pppd_option.option);
-    }
-
-    if(res->any.type == res_hwaddr) {
-      free_mem(res->hwaddr.addr);
-    }
-
-    free_mem(res);
-  }
-
-  return NULL;
-}
-
-
-/*
- * Note: new_res is directly inserted into the list, so you *must* make sure
- * that new_res points to a malloc'ed pice of memory.
- */
-hd_res_t *add_res_entry(hd_res_t **res, hd_res_t *new_res)
-{
-  while(*res) res = &(*res)->next;
-
-  return *res = new_res;
-}
-
-
-hd_t *add_hd_entry(hd_data_t *hd_data, unsigned line, unsigned count)
-{
-  hd_t *hd;
-
-  hd = add_hd_entry2(&hd_data->hd, new_mem(sizeof *hd));
-
-  hd->idx = ++(hd_data->last_idx);
-  hd->module = hd_data->module;
-  hd->line = line;
-  hd->count = count;
-
-  return hd;
-}
-
-
-hd_t *add_hd_entry2(hd_t **hd, hd_t *new_hd)
-{
-  while(*hd) hd = &(*hd)->next;
-
-  return *hd = new_hd;
-}
-
-
-void hd_scan(hd_data_t *hd_data)
-{
-  char *s = NULL;
-  int i, j;
-  hd_t *hd, *hd2;
-  uint64_t irqs;
-  str_list_t *sl, *sl0;
-
-#ifdef LIBHD_MEMCHECK
-  if(!libhd_log) {
-    char *s = getenv("LIBHD_MEMCHECK");
-
-    if(s && *s) {
-      libhd_log = fopen(s, "w");
-      if(libhd_log) setlinebuf(libhd_log);
-    }
-  }
-#endif
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_scan, hd_data), hd_data);
-  }
-#endif
-
-  /* log the debug & probe flags */
-  if(hd_data->debug && !hd_data->flags.internal) {
-    ADD2LOG("libhd version %s%s (%s)\n", HD_VERSION_STRING, getuid() ? "u" : "", HD_ARCH);
-  }
-
-  get_kernel_version(hd_data);
-
-  /* needed only on 1st call */
-  if(hd_data->last_idx == 0) {
-    get_probe_env(hd_data);
-  }
-
-  fix_probe_features(hd_data);
-
-  if(hd_data->debug && !hd_data->flags.internal) {
-    for(i = sizeof hd_data->probe - 1; i >= 0; i--) {
-      str_printf(&s, -1, "%02x", hd_data->probe[i]);
-    }
-    ADD2LOG("debug = 0x%x\nprobe = 0x%s (", hd_data->debug, s);
-    s = free_mem(s);
-
-    for(i = 1; i < pr_default; i++) {          /* 1 because of pr_memory */
-      if((s = hd_probe_feature_by_value(i))) {
-        ADD2LOG("%s%c%s", i == 1 ? "" : " ", hd_probe_feature(hd_data, i) ? '+' : '-', s);
-      }
-    }
-
-    ADD2LOG(")\n");
-  }
-
-  /* init driver info database */
-  hddb_init(hd_data);
-
-  /* only first time */
-  if(hd_data->last_idx == 0) {
-    hd_set_probe_feature(hd_data, pr_fork);
-    if(!hd_probe_feature(hd_data, pr_fork)) hd_data->flags.nofork = 1;
-//    hd_set_probe_feature(hd_data, pr_sysfs);
-    if(!hd_probe_feature(hd_data, pr_sysfs)) hd_data->flags.nosysfs = 1;
-    if(hd_probe_feature(hd_data, pr_cpuemu)) hd_data->flags.cpuemu = 1;
-    if(hd_probe_feature(hd_data, pr_udev)) hd_data->flags.udev = 1;
-  }
-
-  /* get shm segment, if we didn't do it already */
-  hd_shm_init(hd_data);
-
-  if(!hd_data->shm.ok && !hd_data->flags.nofork) {
-    hd_data->flags.nofork = 1;
-    ADD2LOG("shm: failed to get shm segment; will not fork\n");
-  }
-
-  if(hd_data->only) {
-    s = hd_join(", ", hd_data->only);
-    ADD2LOG("only: %s\n", s);
-    s = free_mem(s);
-  }
-
-#ifndef LIBHD_TINY
-  /*
-   * There might be old 'manual' entries left from an earlier scan. Remove
-   * them, they will confuse us.
-   */
-  if(hd_probe_feature(hd_data, pr_manual)) {
-    hd_data->module = mod_manual;
-    remove_hd_entries(hd_data);
-  }
-#endif
-
-  /*
-   * for various reasons, do it befor scan_misc()
-   */
-  hd_scan_floppy(hd_data);
-
-  /*
-   * to be able to read the right parport io,
-   * we have to do this before scan_misc()
-   */
-#if defined(__i386__) || defined (__x86_64__) || defined (__ia64__)
-  hd_scan_bios(hd_data);
-#endif
-  
-  /* before hd_scan_misc(): we need some ppc info later */
-  hd_scan_sys(hd_data);
-
-  /* get basic system info */
-  hd_scan_misc(hd_data);
-
-  /* hd_scan_cpu() after hd_scan_misc(): klog needed */
-  hd_scan_cpu(hd_data);
-  hd_scan_memory(hd_data);
-
-  hd_scan_sysfs_pci(hd_data);
-
-  /* do it _after_ hd_scan_sysfs_pci() */
-#if defined(__PPC__)
-  hd_scan_prom(hd_data);
-#endif
-
-#if defined(__s390__) || defined(__s390x__)
-  hd_scan_s390disks(hd_data);
-  hd_scan_s390(hd_data);
-#endif
-
-  /* after hd_scan_prom() and hd_scan_bios() */
-  hd_scan_monitor(hd_data);
-
-#ifndef LIBHD_TINY
-#if defined(__i386__) || defined(__alpha__)
-  hd_scan_isapnp(hd_data);
-#endif
-#endif
-
-#ifndef LIBHD_TINY
-#if defined(__i386__)
-  hd_scan_isa(hd_data);
-#endif
-#endif
-
-  /* after pci & isa */
-  hd_scan_pcmcia(hd_data);
-
-  hd_scan_serial(hd_data);
-
-  /* merge basic system info & the easy stuff */
-  hd_scan_misc2(hd_data);
-
-#ifndef LIBHD_TINY
-  if(!hd_data->flags.no_parport) {
-    hd_scan_parallel(hd_data); /* after hd_scan_misc*() */
-  }
-#endif
-
-  hd_scan_sysfs_block(hd_data);
-  hd_scan_sysfs_scsi(hd_data);
-  hd_scan_sysfs_usb(hd_data);
-  hd_scan_sysfs_edd(hd_data);
-
-#if defined(__PPC__)
-  hd_scan_adb(hd_data);
-#endif
-
-#ifndef LIBHD_TINY
-#if !defined(__sparc__)
-  hd_scan_braille(hd_data);
-#endif
-  hd_scan_modem(hd_data);      /* do it before hd_scan_mouse() */
-  hd_scan_mouse(hd_data);
-#endif
-  hd_scan_sbus(hd_data);
-
-  hd_scan_input(hd_data);
-
-#if !defined(__s390__) && !defined(__s390x__)
-  hd_scan_kbd(hd_data);
-#endif
-
-  /* must be after hd_scan_monitor() */
-  hd_scan_fb(hd_data);
-
-  /* keep these at the end of the list */
-  hd_scan_net(hd_data);
-
-  hd_scan_pppoe(hd_data);
-
-#ifndef LIBHD_TINY
-  hd_scan_wlan(hd_data);
-#endif
-
-  for(hd = hd_data->hd; hd; hd = hd->next) hd_add_id(hd_data, hd);
-
-#ifndef LIBHD_TINY
-  hd_scan_manual(hd_data);
-#endif
-
-  /* add test entries */
-  hd_scan_xtra(hd_data);
-
-  /* some final fixup's */
-#if WITH_ISDN
-  hd_scan_isdn(hd_data);
-  hd_scan_dsl(hd_data);
-#endif
-  hd_scan_int(hd_data);
-
-  /* and again... */
-  for(hd = hd_data->hd; hd; hd = hd->next) hd_add_id(hd_data, hd);
-
-  /* assign parent & child ids */
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    hd->child_ids = free_str_list(hd->child_ids);
-    if((hd2 = hd_get_device_by_idx(hd_data, hd->attached_to))) {
-      free_mem(hd->parent_id);
-      hd->parent_id = new_str(hd2->unique_id);
-    }
-    else if((hd2 = hd_get_device_by_id(hd_data, hd->parent_id))) {
-      hd->attached_to = hd2->idx;
-    }
-    else {
-      hd->attached_to = 0;
-    }
-  }
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if((hd2 = hd_get_device_by_idx(hd_data, hd->attached_to))) {
-      add_str_list(&hd2->child_ids, hd->unique_id);
-    }
-  }
-
-  /* assign a hw_class & build a useful model string */
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    assign_hw_class(hd_data, hd);
-
-    /* create model name _after_ hw_class */
-    create_model_name(hd_data, hd);
-  }
-
-#ifndef LIBHD_TINY
-  /* must be _after_ we have valid hw_class entries */
-  hd_scan_manual2(hd_data);
-#endif
-
-  /* we are done... */
-  for(hd = hd_data->hd; hd; hd = hd->next) hd->tag.fixed = 1;
-
-  /* for compatibility */
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    hd->driver = free_mem(hd->driver);
-    if(hd->drivers && hd->drivers->str) hd->driver = new_str(hd->drivers->str);
-  }
-
-  hd_data->module = mod_none;
-
-  if(
-    hd_data->debug &&
-    !hd_data->flags.internal &&
-    (
-      hd_data->kmods ||
-      hd_probe_feature(hd_data, pr_int /* arbitrary; just avoid /proc/modules for -pr_all */)
-    )
-  ) {
-    sl0 = read_file(PROC_MODULES, 0, 0);
-    ADD2LOG("----- /proc/modules -----\n");
-    for(sl = sl0; sl; sl = sl->next) {
-      ADD2LOG("  %s", sl->str);
-    }
-    ADD2LOG("----- /proc/modules end -----\n");
-    free_str_list(sl0);
-  }
-
-  update_irq_usage(hd_data);
-
-  if(hd_data->debug && !hd_data->flags.internal) {
-    irqs = hd_data->used_irqs;
-
-    ADD2LOG("  used irqs:");
-    for(i = j = 0; i < 64; i++, irqs >>= 1) {
-      if((irqs & 1)) {
-        ADD2LOG("%c%d", j ? ',' : ' ', i);
-        j = 1;
-      }
-    }
-    ADD2LOG("\n");
-  }
-}
-
-
-/*
- * Note: due to byte order problems decoding the id is really a mess...
- * And, we use upper case for hex numbers!
- */
-char *isa_id2str(unsigned id)
-{
-  char *s = new_mem(8);
-  unsigned u = ((id & 0xff) << 8) + ((id >> 8) & 0xff);
-  unsigned v = ((id >> 8) & 0xff00) + ((id >> 24) & 0xff);
-
-  s[0] = ((u >> 10) & 0x1f) + 'A' - 1;
-  s[1] = ((u >>  5) & 0x1f) + 'A' - 1;
-  s[2] = ( u        & 0x1f) + 'A' - 1;
-
-  sprintf(s + 3, "%04X", v);
-
-  return s;
-}
-
-char *eisa_vendor_str(unsigned v)
-{
-  static char s[4];
-
-  s[0] = ((v >> 10) & 0x1f) + 'A' - 1;
-  s[1] = ((v >>  5) & 0x1f) + 'A' - 1;
-  s[2] = ( v        & 0x1f) + 'A' - 1;
-  s[3] = 0;
-
-  return s;
-}
-
-
-/*
- *  Must _not_ check that s is exactly 3 chars.
- */
-unsigned name2eisa_id(char *s)
-{
-  int i;
-  unsigned u = 0;
-
-  for(i = 0; i < 3; i++) {
-    u <<= 5;
-    if(s[i] < 'A' - 1 || s[i] > 'A' - 1 + 0x1f) return 0;
-    u += s[i] - 'A' + 1;
-  }
-
-  return MAKE_ID(TAG_EISA, u);
-}
-
-
-/*
- * Create a 'canonical' version, i.e. no spaces at start and end.
- *
- * Note: removes chars >= 0x80 as well (due to (char *))! This
- * is currently considered a feature.
- */
-char *canon_str(char *s, int len)
-{
-  char *m2, *m1, *m0;
-  int i;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, ">%p\n", CALLED_FROM(canon_str, s));
-  }
-#endif
-
-  if(len < 0) len = 0;         /* just to be safe */
-
-  m0 = new_mem(len + 1);
-
-  for(m1 = m0, i = 0; i < len; i++) {
-    if(m1 == m0 && s[i] <= ' ') continue;
-    *m1++ = s[i];
-  }
-  *m1 = 0;
-  while(m1 > m0 && m1[-1] <= ' ') {
-    *--m1 = 0;
-  }
-
-  m2 = new_str(m0);
-  free_mem(m0);
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, "<%p\n", CALLED_FROM(canon_str, s));
-  }
-#endif
-
-  return m2;
-}
-
-
-/*
- * Convert a n-digit hex number to its numerical value.
- */
-int hex(char *s, int n)
-{
-  int i = 0, j;
-
-  while(n--) {
-    if(sscanf(s++, "%1x", &j) != 1) return -1;
-    i = (i << 4) + j;
-  }
-
-  return i;
-}
-
-
-/* simple 32 bit fixed point numbers with n decimals */
-int str2float(char *s, int n)
-{
-  int i = 0;
-  int dot = 0;
-
-  while(*s) {
-    if(*s == '.') {
-      if(dot++) return 0;
-    }
-    else if(*s >= '0' && *s <= '9') {
-      if(dot) {
-        if(!n) return i;
-        n--;
-      }
-      i *= 10;
-      i += *s - '0';
-    }
-    else {
-      return 0;
-    }
-
-    s++;
-  }
-
-  while(n--) i *= 10;
-
-  return i;
-}
-
-
-/* simple 32 bit fixed point numbers with n decimals */
-char *float2str(int f, int n)
-{
-  int i = 1, j, m = n;
-  static char buf[32];
-
-  while(n--) i *= 10;
-
-  j = f / i;
-  i = f % i;
-
-  while(i && !(i % 10)) i /= 10, m--;
-
-  if(i) {
-    sprintf(buf, "%d.%0*d", j, m, i);
-  }
-  else {
-    sprintf(buf, "%d", j);
-  }
-
-  return buf;
-}
-
-
-/*
- * find hardware entry with given index
- */
-hd_t *hd_get_device_by_idx(hd_data_t *hd_data, unsigned idx)
-{
-  hd_t *hd;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_get_device_by_idx, hd_data), hd_data);
-  }
-#endif
-
-  if(!idx) return NULL;                /* early out: idx is always != 0 */
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->idx == idx) return hd;
-  }
-
-  return NULL;
-}
-
-
-/*
- * find hardware entry with given unique id
- */
-hd_t *hd_get_device_by_id(hd_data_t *hd_data, char *id)
-{
-  hd_t *hd;
-
-  if(!id) return NULL;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->unique_id && !strcmp(hd->unique_id, id)) return hd;
-  }
-
-  return NULL;
-}
-
-
-/*
- * Give the actual name of the probing module.
- */
-char *mod_name_by_idx(unsigned idx)
-{
-  unsigned u;
-
-  for(u = 0; u < sizeof pr_modules / sizeof *pr_modules; u++)
-    if(idx == pr_modules[u].val) return pr_modules[u].name;
-
-  return "";
-}
-
-
-/*
- * Print to a string.
- * Note: *buf must point to a malloc'd memory area (or be NULL).
- *
- * Use an offset of -1 or -2 to append the new string.
- *
- * As this function is quite often used to extend our log messages, there
- * is a cache that holds the length of the last string we created. This way
- * we speed this up somewhat. Use an offset of -2 to use this feature.
- * Note: this only works as long as str_printf() is used *exclusively* to
- * extend the string.
- */
-void str_printf(char **buf, int offset, char *format, ...)
-{
-  static char *last_buf = NULL;
-  static int last_len = 0;
-  int len, use_cache;
-  char b[0x10000];
-  va_list args;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, ">%p\n", CALLED_FROM(str_printf, buf));
-  }
-#endif
-
-  use_cache = offset == -2 ? 1 : 0;
-
-  if(*buf) {
-    if(offset == -1) {
-      offset = strlen(*buf);
-    }
-    else if(offset == -2) {
-      if(last_buf == *buf && last_len && !(*buf)[last_len])
-        offset = last_len;
-      else
-        offset = strlen(*buf);
-    }
-  }
-  else {
-    offset = 0;
-  }
-
-  va_start(args, format);
-  vsnprintf(b, sizeof b, format, args);
-  va_end(args);
-
-  *buf = resize_mem(*buf, (len = offset + strlen(b)) + 1);
-  strcpy(*buf + offset, b);
-
-  if(use_cache) {
-    last_buf = *buf;
-    last_len = len;
-  }
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, "<%p\n", CALLED_FROM(str_printf, buf));
-  }
-#endif
-}
-
-
-void hexdump(char **buf, int with_ascii, unsigned data_len, unsigned char *data)
-{
-  unsigned i;
-
-  for(i = 0; i < data_len; i++) {
-    if(i)
-      str_printf(buf, -2, " %02x", data[i]);
-    else
-      str_printf(buf, -2, "%02x", data[i]);
-  }
-
-  if(with_ascii) {
-    str_printf(buf, -2, "  \"");
-    for(i = 0; i < data_len; i++) {
-      str_printf(buf, -2, "%c", data[i] < ' ' || data[i] >= 0x7f ? '.' : data[i]);
-    }
-    str_printf(buf, -2, "\"");
-  }
-}
-
-
-/** \relates s_str_list_t
- * Search a string list for a string.
- */
-str_list_t *search_str_list(str_list_t *sl, char *str)
-{
-  if(!str) return NULL;
-
-  for(; sl; sl = sl->next) if(sl->str && !strcmp(sl->str, str)) return sl;
-
-  return NULL;
-}
-
-
-/** \relates s_str_list_t
- * Add a string to a string list.
- *
- * The new string (str) will be *copied*!
- */
-str_list_t *add_str_list(str_list_t **sl, char *str)
-{
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, ">%p\n", CALLED_FROM(add_str_list, sl));
-  }
-#endif
-
-  while(*sl) sl = &(*sl)->next;
-
-  *sl = new_mem(sizeof **sl);
-  (*sl)->str = new_str(str);
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, "<%p\n", CALLED_FROM(add_str_list, sl));
-  }
-#endif
-
-  return *sl;
-}
-
-
-/** \relates s_str_list_t
- * Free the memory allocated by a string list.
- */
-str_list_t *free_str_list(str_list_t *list)
-{
-  str_list_t *l;
-
-  for(; list; list = (l = list)->next, free_mem(l)) {
-    free_mem(list->str);
-  }
-
-  return NULL;
-}
-
-
-/*
- * Read a file; return a linked list of lines.
- *
- * start_line is zero-based; lines == 0 -> all lines
- */
-str_list_t *read_file(char *file_name, unsigned start_line, unsigned lines)
-{
-  FILE *f;
-  char buf[0x10000];
-  int pipe = 0;
-  str_list_t *sl_start = NULL, *sl_end = NULL, *sl;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, ">%p\n", CALLED_FROM(read_file, file_name));
-  }
-#endif
-
-  if(*file_name == '|') {
-    pipe = 1;
-    file_name++;
-    if(!(f = popen(file_name, "r"))) {
-#ifdef LIBHD_MEMCHECK
-      {
-        if(libhd_log) fprintf(libhd_log, "<%p\n", CALLED_FROM(read_file, file_name));
-      }
-#endif
-      return NULL;
-    }
-  }
-  else {
-    if(!(f = fopen(file_name, "r"))) {
-#ifdef LIBHD_MEMCHECK
-      {
-        if(libhd_log) fprintf(libhd_log, "<%p\n", CALLED_FROM(read_file, file_name));
-      }
-#endif
-      return NULL;
-    }
-  }
-
-  while(fgets(buf, sizeof buf, f)) {
-    if(start_line) {
-      start_line--;
-      continue;
-    }
-    sl = new_mem(sizeof *sl);
-    sl->str = new_str(buf);
-    if(sl_start)
-      sl_end->next = sl;
-    else
-      sl_start = sl;
-    sl_end = sl;
-
-    if(lines == 1) break;
-    lines--;
-  }
-
-  if(pipe)
-    pclose(f);
-  else
-    fclose(f);
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log) fprintf(libhd_log, "<%p\n", CALLED_FROM(read_file, file_name));
-  }
-#endif
-
-  return sl_start;
-}
-
-
-/*
- * Read directory, return a list of entries with file type 'type'.
- */
-str_list_t *read_dir(char *dir_name, int type)
-{
-  str_list_t *sl_start = NULL, *sl_end = NULL, *sl;
-  DIR *dir;
-  struct dirent *de;
-  struct stat sbuf;
-  char *s;
-  int dir_type;
-
-  if(dir_name && (dir = opendir(dir_name))) {
-    while((de = readdir(dir))) {
-      if(!strcmp(de->d_name, ".") || !strcmp(de->d_name, "..")) continue;
-      dir_type = 0;
-
-      if(type) {
-        s = NULL;
-        str_printf(&s, 0, "%s/%s", dir_name, de->d_name);
-
-        if(!lstat(s, &sbuf)) {
-          if(S_ISDIR(sbuf.st_mode)) {
-            dir_type = 'd';
-          }
-          else if(S_ISREG(sbuf.st_mode)) {
-            dir_type = 'r';
-          }
-          else if(S_ISLNK(sbuf.st_mode)) {
-            dir_type = 'l';
-          }
-        }
-
-        s = free_mem(s);
-      }
-
-      if(dir_type == type) {
-        sl = new_mem(sizeof *sl);
-        sl->str = new_str(de->d_name);
-        if(sl_start)
-          sl_end->next = sl;
-        else
-          sl_start = sl;
-        sl_end = sl;
-      }
-    }
-    closedir(dir);
-  }
-
-  return sl_start;
-}
-
-
-char *hd_read_symlink(char *link_name)
-{
-  static char buf[256];
-  int i;
-
-  i = readlink(link_name, buf, sizeof buf);
-  buf[sizeof buf - 1] = 0;
-  if(i >= 0 && (unsigned) i < sizeof buf) buf[i] = 0;
-  if(i < 0) *buf = 0;
-
-  return buf;
-}
-
-
-/*
- * Log the hardware detection progress.
- */
-void progress(hd_data_t *hd_data, unsigned pos, unsigned count, char *msg)
-{
-  char buf1[32], buf2[32], buf3[128], *fn;
-
-  if(hd_data->shm.ok && hd_data->flags.forked) {
-    ((hd_data_t *) (hd_data->shm.data))->shm.updated++;
-  }
-
-  if(!msg) msg = "";
-
-  sprintf(buf1, "%u", hd_data->module);
-  sprintf(buf2, ".%u", count);
-  fn = mod_name_by_idx(hd_data->module);
-
-  sprintf(buf3, "%s.%u%s", *fn ? fn : buf1, pos, count ? buf2 : "");
-
-  if((hd_data->debug & HD_DEB_PROGRESS))
-    ADD2LOG(">> %s: %s\n", buf3, msg);
-
-  if(hd_data->progress) hd_data->progress(buf3, msg);
-}
-
-
-
-/*
- * Returns a probe feature suitable for hd_*probe_feature().
- * If name is not a valid probe feature, 0 is returned.
- *
- */
-enum probe_feature hd_probe_feature_by_name(char *name)
-{
-  unsigned u;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_probe_feature_by_name, name), name);
-  }
-#endif
-
-  for(u = 0; u < sizeof pr_flags / sizeof *pr_flags; u++)
-    if(!strcmp(name, pr_flags[u].name)) return pr_flags[u].val;
-
-  return 0;
-}
-
-
-/*
- * Coverts a enum probe_feature to a string.
- * If it fails, NULL is returned.
- */
-char *hd_probe_feature_by_value(enum probe_feature feature)
-{
-  unsigned u;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%u\n", __FUNCTION__, CALLED_FROM(hd_probe_feature_by_value, feature), feature);
-  }
-#endif
-
-  for(u = 0; u < sizeof pr_flags / sizeof *pr_flags; u++)
-    if(feature == pr_flags[u].val) return pr_flags[u].name;
-
-  return NULL;
-}
-
-
-/*
- * Removes all hd_data->hd entries created by the current module from the
- * list. The old entries are added to hd_data->old_hd.
- */
-void remove_hd_entries(hd_data_t *hd_data)
-{
-  hd_t *hd;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->module == hd_data->module) {
-      hd->tag.remove = 1;
-    }
-  }
-
-  remove_tagged_hd_entries(hd_data);
-}
-
-
-/*
- * Removes all hd_data->hd entries that have the remove tag set from the
- * list. The old entries are added to hd_data->old_hd.
- */
-void remove_tagged_hd_entries(hd_data_t *hd_data)
-{
-  hd_t *hd, **prev, **h;
-
-  for(hd = *(prev = &hd_data->hd); hd;) {
-    if(hd->tag.remove) {
-      /* find end of the old list... */
-      h = &hd_data->old_hd;
-      while(*h) h = &(*h)->next;
-      *h = hd;         /* ...and append the entry */
-
-      hd = *prev = hd->next;
-      (*h)->next = NULL;
-    }
-    else {
-      hd = *(prev = &hd->next);
-    }
-  }
-}
-
-
-int hd_module_is_active(hd_data_t *hd_data, char *mod)
-{
-  str_list_t *sl, *sl0 = read_kmods(hd_data);
-  int active = 0;
-  char *s;
-#ifdef __PPC__
-  char *s1, *s2;
-#endif
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_module_is_active, hd_data), hd_data);
-  }
-#endif
-
-  mod = new_str(mod);
-
-  /* convert '-' to '_' */
-  for(s = mod; *s; s++) if(*s == '-') *s = '_';
-
-  for(sl = sl0; sl; sl = sl->next) {
-    if(!strcmp(sl->str, mod)) break;
-  }
-
-  free_str_list(sl0);
-  active = sl ? 1 : 0;
-
-  if(active) {
-    free_mem(mod);
-
-    return active;
-  }
-
-#ifdef __PPC__
-  /* temporary hack for ppc */
-  if(!strcmp(mod, "gmac")) {
-    s1 = "<6>eth";
-    s2 = " GMAC ";
-  }
-  else if(!strcmp(mod, "mace")) {
-    s1 = "<6>eth";
-    s2 = " MACE ";
-  }
-  else if(!strcmp(mod, "bmac")) {
-    s1 = "<6>eth";
-    s2 = " BMAC";
-  }
-  else if(!strcmp(mod, "mac53c94")) {
-    s1 = "<4>scsi";
-    s2 = " 53C94";
-  }
-  else if(!strcmp(mod, "mesh")) {
-    s1 = "<4>scsi";
-    s2 = " MESH";
-  }
-  else if(!strcmp(mod, "swim3")) {
-    s1 = "<6>fd";
-    s2 = " SWIM3 ";
-  }
-  else {
-    s1 = s2 = NULL;
-  }
-
-  if(s1) {
-    for(sl = hd_data->klog; sl; sl = sl->next) {
-      if(strstr(sl->str, s1) == sl->str && strstr(sl->str, s2)) {
-        active = 1;
-        break;
-      }
-    }
-  }
-#endif
-
-  free_mem(mod);
-
-  return active;
-}
-
-
-int hd_has_pcmcia(hd_data_t *hd_data)
-{
-  hd_t *hd;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(is_pcmcia_ctrl(hd_data, hd)) return 1;
-  }
-
-  return 0;
-}
-
-
-int hd_apm_enabled(hd_data_t *hd_data)
-{
-  hd_t *hd;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_apm_enabled, hd_data), hd_data);
-  }
-#endif
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_internal &&
-      hd->sub_class.id == sc_int_bios &&
-      hd->detail &&
-      hd->detail->type == hd_detail_bios &&
-      hd->detail->bios.data
-    ) {
-      return hd->detail->bios.data->apm_enabled;
-    }
-  }
-
-  return 0;
-}
-
-
-int hd_usb_support(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  hd_res_t *res;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_usb_support, hd_data), hd_data);
-  }
-#endif
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->base_class.id == bc_serial && hd->sub_class.id == sc_ser_usb) {
-      for(res = hd->res; res; res = res->next) {
-        if(res->any.type == res_irq)
-          return hd->prog_if.id == pif_usb_ohci ? 2 : 1;       /* 2: ohci, 1: uhci */
-      }
-    }
-  }
-
-  return 0;
-}
-
-
-int hd_smp_support(hd_data_t *hd_data)
-{
-  int is_smp = 0;
-  unsigned u;
-  hd_t *hd, *hd0;
-#if defined(__i386__) || defined (__x86_64__)
-  unsigned cpu_threads = 0;
-  cpu_info_t *ct;
-#endif
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_smp_support, hd_data), hd_data);
-  }
-#endif
-
-  u = hd_data->flags.internal;
-  hd_data->flags.internal = 1;
-  hd = hd_list(hd_data, hw_cpu, 0, NULL);
-  if(!hd) hd = hd_list(hd_data, hw_cpu, 1, NULL);
-  hd_data->flags.internal = u;
-
-  for(is_smp = 0, hd0 = hd; hd0; hd0 = hd0->next) is_smp++;
-  if(is_smp == 1) is_smp = 0;
-
-#if defined(__i386__) || defined (__x86_64__)
-  if(
-    hd &&
-    hd->detail &&
-    hd->detail->type == hd_detail_cpu &&
-    (ct = hd->detail->cpu.data)
-  ) {
-    cpu_threads = ct->units;
-  }
-#endif
-
-  hd = hd_free_hd_list(hd);
-
-#if !defined(LIBHD_TINY) && (defined(__i386__) || defined (__x86_64__))
-  if(is_smp < 2) {
-    if(!hd_data->bios_ram.data) {
-      hd_free_hd_list(hd_list(hd_data, hw_sys, 1, NULL));
-    }
-    is_smp = detect_smp_bios(hd_data);
-    // at least 2 processors
-    if(is_smp < 2) is_smp = 0;
-    if(!is_smp && cpu_threads > 1) is_smp = 2;
-  }
-#endif
-
-#ifdef __PPC__
-  if(is_smp < 2) {
-    if(!hd_data->devtree) {
-      hd_free_hd_list(hd_list(hd_data, hw_sys, 1, NULL));
-    }
-    is_smp = detect_smp_prom(hd_data);
-    if(is_smp < 0) is_smp = 0;
-  }
-#endif
-
-#if defined(__s390__) || defined(__s390x__)
-  if(!is_smp) is_smp = 1;
-#endif
-
-  return is_smp;
-}
-
-
-int hd_color(hd_data_t *hd_data)
-{
-#if 0
-  hd_t *hd;
-  prom_info_t *pt;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_internal && hd->sub_class.id == sc_int_prom &&
-      hd->detail && hd->detail->type == hd_detail_prom &&
-      (pt = hd->detail->prom.data) &&
-      pt->has_color
-    ) {
-      return pt->color;
-    }
-  }
-#endif
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_color, hd_data), hd_data);
-  }
-#endif
-
-  if(hd_data->color_code) return hd_data->color_code & 0xffff;
-
-  return -1;
-}
-
-
-int hd_mac_color(hd_data_t *hd_data)
-{
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_mac_color, hd_data), hd_data);
-  }
-#endif
-
-  return hd_color(hd_data);
-}
-
-
-unsigned hd_display_adapter(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  driver_info_t *di;
-  unsigned disp, disp_sbus, disp_pci, disp_any, disp_di;
-  unsigned disp_cnt, disp_any_cnt;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_display_adapter, hd_data), hd_data);
-  }
-#endif
-
-  /* if we know exactly where our primary display is, return it */
-  if(hd_get_device_by_idx(hd_data, hd_data->display)) return hd_data->display;
-
-  disp = disp_sbus = disp_pci = disp_any = disp_di = 0;
-  disp_cnt = disp_any_cnt = 0;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->base_class.id == bc_display) {
-      disp_any_cnt++;
-      if(!disp_any) disp_any = hd->idx;
-      if(hd->sub_class.id == sc_dis_vga) {
-        disp_cnt++;
-        if(!disp) disp = hd->idx;
-        if(hd->bus.id == bus_pci && !disp_pci) disp_pci = hd->idx;
-        if(hd->bus.id == bus_sbus && !disp_sbus) disp_sbus = hd->idx;
-      }
-      if(!disp_di) {
-        if(!(di = hd->driver_info)) {
-          hddb_add_info(hd_data, hd);
-          di = hd->driver_info;
-        }
-        if(di && di->any.type == di_x11 && di->x11.server) {
-          disp_di = hd->idx;
-        }
-      }
-    }
-  }
-
-  /* if there's only one display adapter, return it */
-  if(disp_any_cnt == 1) return disp_any;
-
-  /* if there's only one vga compatible adapter, return it */
-  if(disp_cnt == 1) return disp;
-
-  /* return 1st (vga compatible) sbus card */
-  /* note: the sbus code enters display cards as 'vga compatible' */
-  if(disp_sbus) return disp_sbus;
-
-  /* return 1st display adapter that has some x11 info */
-  if(disp_di) return disp_di;
-
-  /* return 1st vga compatible pci card */
-  if(disp_pci) return disp_pci;
-
-  /* return 1st vga compatible card */
-  if(disp) return disp;
-
-  /* return 1st display adapter */
-  if(disp_any) return disp_any;
-
-  /* there were none... */
-  return 0;
-}
-
-
-enum cpu_arch hd_cpu_arch(hd_data_t *hd_data)
-{
-  hd_t *hd;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_cpu_arch, hd_data), hd_data);
-  }
-#endif
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_internal &&
-      hd->sub_class.id == sc_int_cpu &&
-      hd->detail &&
-      hd->detail->type == hd_detail_cpu &&
-      hd->detail->cpu.data
-    ) {
-      return hd->detail->cpu.data->architecture;
-    }
-  }
-
-#ifdef __i386__
-  return arch_intel;
-#else
-#ifdef __alpha__
-  return arch_alpha;
-#else
-#ifdef __PPC__
-  return arch_ppc;
-#else
-#ifdef __sparc__
-  return arch_sparc;
-#else
-#ifdef __s390x__
-  return arch_s390x;
-#else
-#ifdef __s390__
-  return arch_s390;
-#else
-#ifdef __ia64__
-  return arch_ia64;
-#else
-#ifdef __x86_64__
-  return arch_x86_64;
-#else
-  return arch_unknown;
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-}
-
-
-enum boot_arch hd_boot_arch(hd_data_t *hd_data)
-{
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_boot_arch, hd_data), hd_data);
-  }
-#endif
-
-  return hd_data->boot;
-}
-
-
-int hd_is_uml(hd_data_t *hd_data)
-{
-  int is_uml = 0;
-  hd_t *hd;
-  cpu_info_t *ct;
-  unsigned u;
-  unsigned saved_mod = hd_data->module;
-  unsigned char probe_save[sizeof hd_data->probe];
-
-  u = hd_data->flags.internal;
-  hd_data->flags.internal = 1;
-  hd = hd_list(hd_data, hw_cpu, 0, NULL);
-  if(!hd) {
-    /* Do *not* run hd_list(,, 1,) here! */
-    memcpy(probe_save, hd_data->probe, sizeof probe_save);
-    hd_set_probe_feature(hd_data, pr_cpu);
-    hd_scan_cpu(hd_data);
-    memcpy(hd_data->probe, probe_save, sizeof hd_data->probe);
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(hd->base_class.id == bc_internal && hd->sub_class.id == sc_int_cpu) break;
-    }
-  }
-  hd_data->flags.internal = u;
-
-  if(
-    hd &&
-    hd->detail &&
-    hd->detail->type == hd_detail_cpu &&
-    (ct = hd->detail->cpu.data) &&
-    ct->model_name &&
-    !strcmp(ct->model_name, "UML")
-  ) {
-    is_uml = 1;
-  }
-
-  hd = hd_free_hd_list(hd);
-
-  hd_data->module = saved_mod;
-
-  return is_uml;
-}
-
-
-int hd_is_sgi_altix(hd_data_t *hd_data)
-{
-  struct stat sbuf;
-
-  return stat("/proc/sgi_sn", &sbuf) ? 0 : 1;
-}
-
-
-int hd_is_iseries(hd_data_t *hd_data)
-{
-  struct stat sbuf;
-
-  return stat(PROC_ISERIES, &sbuf) ? 0 : 1;
-}
-
-
-/*
- * makes a (shallow) copy; does some magic fixes
- */
-void hd_copy(hd_t *dst, hd_t *src)
-{
-  hd_t *tmp;
-//  unsigned u;
-
-  tmp = dst->next;
-//  u = dst->idx;
-
-  *dst = *src;
-  src->ref_cnt++;
-  dst->ref = src;
-
-  dst->next = tmp;
-//  dst->idx = u;
-
-  /* needed to keep in sync with the real device tree */
-  if(
-    dst->detail &&
-    dst->detail->type == hd_detail_devtree
-  ) {
-    dst->detail = NULL;                /* ??? was: free_mem(dst->detail); */
-  }
-}
-
-
-hd_t *hd_list(hd_data_t *hd_data, hd_hw_item_t item, int rescan, hd_t *hd_old)
-{
-  hd_t *hd, *hd1, *hd_list = NULL;
-  unsigned char probe_save[sizeof hd_data->probe];
-  unsigned fast_save;
-
-#ifdef LIBHD_MEMCHECK
-#ifndef __PPC__
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\t%u\t%u\t%p\n", __FUNCTION__, CALLED_FROM(hd_list, hd_data), hd_data, item, rescan, hd_old);
-  }
-#endif
-#endif
-
-  if(rescan) {
-    memcpy(probe_save, hd_data->probe, sizeof probe_save);
-    fast_save = hd_data->flags.fast;
-    hd_clear_probe_feature(hd_data, pr_all);
-#ifdef __powerpc__
-    hd_set_probe_feature(hd_data, pr_sys);
-    hd_scan(hd_data);
-#endif
-    hd_set_probe_feature_hw(hd_data, item);
-    hd_scan(hd_data);
-    memcpy(hd_data->probe, probe_save, sizeof hd_data->probe);
-    hd_data->flags.fast = fast_save;
-  }
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(!hd_report_this(hd_data, hd)) continue;
-
-    if(
-      (
-        item == hw_manual || hd_is_hw_class(hd, item)
-      )
-#ifndef LIBHD_TINY
-/* with LIBHD_TINY hd->status is not maintained (cf. manual.c) */
-      && (
-        hd->status.available == status_yes ||
-        hd->status.available == status_unknown ||
-        item == hw_manual ||
-        hd_data->flags.list_all
-      )
-#endif
-    ) {
-//      if(hd->is.softraiddisk) continue;              /* don't report them */
-
-      /* don't report old entries again */
-      for(hd1 = hd_old; hd1; hd1 = hd1->next) {
-        if(!cmp_hd(hd1, hd)) break;
-      }
-      if(!hd1) {
-        hd1 = add_hd_entry2(&hd_list, new_mem(sizeof *hd_list));
-        hd_copy(hd1, hd);
-      }
-    }
-  }
-
-  if(item == hw_manual) {
-    for(hd = hd_list; hd; hd = hd->next) {
-      hd->status.available = hd->status.available_orig;
-    }
-  }
-
-  return hd_list;
-}
-
-
-hd_t *hd_list_with_status(hd_data_t *hd_data, hd_hw_item_t item, hd_status_t status)
-{
-  hd_t *hd, *hd1, *hd_list = NULL;
-  unsigned char probe_save[sizeof hd_data->probe];
-
-#ifdef LIBHD_MEMCHECK
-#ifndef __PPC__
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\t%u\n", __FUNCTION__, CALLED_FROM(hd_list_with_status, hd_data), hd_data, item);
-  }
-#endif
-#endif
-
-  memcpy(probe_save, hd_data->probe, sizeof probe_save);
-  hd_clear_probe_feature(hd_data, pr_all);
-  hd_set_probe_feature(hd_data, pr_manual);
-  hd_scan(hd_data);
-  memcpy(hd_data->probe, probe_save, sizeof hd_data->probe);
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd_is_hw_class(hd, item)) {
-      if(
-        (status.configured == 0 || status.configured == hd->status.configured) &&
-        (status.available == 0 || status.available == hd->status.available) &&
-        (status.needed == 0 || status.needed == hd->status.needed) &&
-        (status.reconfig == 0 || status.reconfig == hd->status.reconfig)
-      ) {
-        hd1 = add_hd_entry2(&hd_list, new_mem(sizeof *hd_list));
-        hd_copy(hd1, hd);
-      }
-    }
-  }
-
-  return hd_list;
-}
-
-
-/* check if item is in items */
-int has_item(hd_hw_item_t *items, hd_hw_item_t item)
-{
-  while(*items) if(*items++ == item) return 1;
-
-  return 0;
-}
-
-
-/* check if one of items is in hw_class */
-int has_hw_class(hd_t *hd, hd_hw_item_t *items)
-{
-  while(*items) if(hd_is_hw_class(hd, *items++)) return 1;
-
-  return 0;
-}
-
-
-/*
- * items must be a 0 terminated list
- */
-hd_t *hd_list2(hd_data_t *hd_data, hd_hw_item_t *items, int rescan)
-{
-  hd_t *hd, *hd1, *hd_list = NULL;
-  unsigned char probe_save[sizeof hd_data->probe];
-  unsigned fast_save;
-  hd_hw_item_t *item_ptr;
-  int is_manual;
-
-  if(!items) return NULL;
-
-  is_manual = has_item(items, hw_manual);
-
-  if(rescan) {
-    memcpy(probe_save, hd_data->probe, sizeof probe_save);
-    fast_save = hd_data->flags.fast;
-    hd_clear_probe_feature(hd_data, pr_all);
-#ifdef __powerpc__
-    hd_set_probe_feature(hd_data, pr_sys);
-    hd_scan(hd_data);
-#endif
-    for(item_ptr = items; *item_ptr; item_ptr++) {
-      hd_set_probe_feature_hw(hd_data, *item_ptr);
-    }
-    hd_scan(hd_data);
-    memcpy(hd_data->probe, probe_save, sizeof hd_data->probe);
-    hd_data->flags.fast = fast_save;
-  }
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(!hd_report_this(hd_data, hd)) continue;
-    if(
-      (
-        is_manual || has_hw_class(hd, items)
-      )
-#ifndef LIBHD_TINY
-/* with LIBHD_TINY hd->status is not maintained (cf. manual.c) */
-      && (
-        hd->status.available == status_yes ||
-        hd->status.available == status_unknown ||
-        is_manual ||
-        hd_data->flags.list_all
-      )
-#endif
-    ) {
-//      if(hd->is.softraiddisk) continue;              /* don't report them */
-
-      /* don't report old entries again */
-      hd1 = add_hd_entry2(&hd_list, new_mem(sizeof *hd_list));
-      hd_copy(hd1, hd);
-    }
-  }
-
-  if(is_manual) {
-    for(hd = hd_list; hd; hd = hd->next) {
-      hd->status.available = hd->status.available_orig;
-    }
-  }
-
-  return hd_list;
-}
-
-
-/*
- * items must be a 0 terminated list
- */
-hd_t *hd_list_with_status2(hd_data_t *hd_data, hd_hw_item_t *items, hd_status_t status)
-{
-  hd_t *hd, *hd1, *hd_list = NULL;
-  unsigned char probe_save[sizeof hd_data->probe];
-
-  if(!items) return NULL;
-
-  memcpy(probe_save, hd_data->probe, sizeof probe_save);
-  hd_clear_probe_feature(hd_data, pr_all);
-  hd_set_probe_feature(hd_data, pr_manual);
-  hd_scan(hd_data);
-  memcpy(hd_data->probe, probe_save, sizeof hd_data->probe);
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(has_hw_class(hd, items)) {
-      if(
-        (status.configured == 0 || status.configured == hd->status.configured) &&
-        (status.available == 0 || status.available == hd->status.available) &&
-        (status.needed == 0 || status.needed == hd->status.needed) &&
-        (status.reconfig == 0 || status.reconfig == hd->status.reconfig)
-      ) {
-        hd1 = add_hd_entry2(&hd_list, new_mem(sizeof *hd_list));
-        hd_copy(hd1, hd);
-      }
-    }
-  }
-
-  return hd_list;
-}
-
-
-hd_t *hd_base_class_list(hd_data_t *hd_data, unsigned base_class)
-{
-  hd_t *hd, *hd1, *hd_list = NULL;
-//  hd_t *bridge_hd;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_base_class_list, hd_data), hd_data);
-  }
-#endif
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-
-#if 0
-    /* ###### fix later: card bus magic */
-    if((bridge_hd = hd_get_device_by_idx(hd_data, hd->attached_to))) {
-      if(
-        bridge_hd->base_class.id == bc_bridge &&
-        bridge_hd->sub_class.id == sc_bridge_cardbus
-      ) continue;
-    }
-#endif
-
-    /* add multimedia/sc_multi_video to display */
-    if(
-      hd->base_class.id == base_class ||
-      (
-        base_class == bc_display &&
-        hd->base_class.id == bc_multimedia &&
-        hd->sub_class.id == sc_multi_video
-      )
-    ) {
-      hd1 = add_hd_entry2(&hd_list, new_mem(sizeof *hd_list));
-      hd_copy(hd1, hd);
-    }
-  }
-
-  return hd_list;
-}
-
-hd_t *hd_sub_class_list(hd_data_t *hd_data, unsigned base_class, unsigned sub_class)
-{
-  hd_t *hd, *hd1, *hd_list = NULL;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_sub_class_list, hd_data), hd_data);
-  }
-#endif
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->base_class.id == base_class && hd->sub_class.id == sub_class) {
-      hd1 = add_hd_entry2(&hd_list, new_mem(sizeof *hd_list));
-      hd_copy(hd1, hd);
-    }
-  }
-
-  return hd_list;
-}
-
-hd_t *hd_bus_list(hd_data_t *hd_data, unsigned bus)
-{
-  hd_t *hd, *hd1, *hd_list = NULL;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_bus_list, hd_data), hd_data);
-  }
-#endif
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->bus.id == bus) {
-      hd1 = add_hd_entry2(&hd_list, new_mem(sizeof *hd_list));
-      hd_copy(hd1, hd);
-    }
-  }
-
-  return hd_list;
-}
-
-/* Convert libhd bus IDs to hwcfg bus names */
-const char* hd_busid_to_hwcfg(int busid)
-{
-       const char* const ids1[]={"none","isa","eisa","mc","pci","pcmcia","nubus","cardbus","other"};
-       const char* const ids2[]={"ps2","serial","parallel","floppy","scsi","ide","usb","adb","raid","sbus","i2o","vio","ccw","iucv"};
-       if(busid <9)
-               return ids1[busid];
-       else if(busid >=0x80 && busid <0x8e)
-               return ids2[busid-0x80];
-       else
-               return 0;
-}
-
-/*
- * Check if the execution of (*func)() takes longer than timeout seconds.
- * This is useful to work around long kernel-timeouts as in the floppy
- * detection and ps/2 mouse detection.
- */
-int hd_timeout(void(*func)(void *), void *arg, int timeout)
-{
-  int child1, child2;
-  int status = 0;
-
-  child1 = fork();
-  if(child1 == -1) return -1;
-
-  if(child1) {
-    if(waitpid(child1, &status, 0) == -1) return -1;
-//    fprintf(stderr, ">child1 status: 0x%x\n", status);
-
-    if(WIFEXITED(status)) {
-      status = WEXITSTATUS(status);
-//      fprintf(stderr, ">normal child1 status: 0x%x\n", status);
-      /* != 0 if we timed out */
-    }
-    else {
-      status = 0;
-    }
-  }
-  else {
-    /* fork again */
-
-#ifdef LIBHD_MEMCHECK
-    /* stop logging in child process */
-    if(libhd_log) fclose(libhd_log);
-    libhd_log = NULL;
-#endif
-
-    child2 = fork();
-    if(child2 == -1) return -1;
-
-    if(child2) {
-//      fprintf(stderr, ">signal\n");
-      signal(SIGALRM, timeout_alarm_handler);
-      alarm(timeout);
-      if(waitpid(child2, &status, 0) == -1) return -1;
-//      fprintf(stderr, ">child2 status: 0x%x\n", status);
-      _exit(0);
-    }
-    else {
-      (*func)(arg);
-      _exit(0);
-    }
-  }
-
-  return status ? 1 : 0;
-}
-
-void timeout_alarm_handler(int signal)
-{
-  _exit(63);
-}
-
-
-/*
- * Return list of loaded modules. Converts '-' to '_'.
- */
-str_list_t *read_kmods(hd_data_t *hd_data)
-{
-  str_list_t *sl, *sl0, *sl1 = NULL;
-  char *s;
-
-  if(!hd_data->kmods || hd_data->flags.keep_kmods != 2) {
-    hd_data->kmods = free_str_list(hd_data->kmods);
-    if(!(sl0 = read_file(PROC_MODULES, 0, 0))) return NULL;
-    hd_data->kmods = sl0;
-    if(hd_data->flags.keep_kmods == 1) hd_data->flags.keep_kmods = 2;
-  }
-
-  for(sl = hd_data->kmods; sl; sl = sl->next) {
-    s = sl->str;
-    add_str_list(&sl1, strsep(&s, " \t"));
-  }
-
-  for(sl = sl1; sl; sl = sl->next) {
-    for(s = sl->str; *s; s++) if(*s == '-') *s = '_';
-  }
-
-  return sl1;
-}
-
-
-str_list_t *get_cmdline(hd_data_t *hd_data, char *key)
-{
-  str_list_t *sl0, *sl1, *cmd = NULL;
-  char *s, *t, *t0;
-  int i, l = strlen(key);
-
-  if(!hd_data->cmd_line) {
-    sl0 = read_file(PROC_CMDLINE, 0, 1);
-    sl1 = read_file(LIB_CMDLINE, 0, 1);
-
-    if(sl0) {
-      i = strlen(sl0->str);
-      if(i && sl0->str[i - 1] == '\n') sl0->str[i - 1] = 0;
-      hd_data->cmd_line = new_str(sl0->str);
-      if(hd_data->debug) {
-        ADD2LOG("----- " PROC_CMDLINE " -----\n");
-        ADD2LOG("  %s\n", sl0->str);
-        ADD2LOG("----- " PROC_CMDLINE " end -----\n");
-      }
-    }
-    if(sl1) {
-      i = strlen(sl1->str);
-      if(i && sl1->str[i - 1] == '\n') sl1->str[i - 1] = 0;
-      str_printf(&hd_data->cmd_line, -1, " %s", sl1->str);
-      if(hd_data->debug) {
-        ADD2LOG("----- " LIB_CMDLINE " -----\n");
-        ADD2LOG("  %s\n", sl1->str);
-        ADD2LOG("----- " LIB_CMDLINE " end -----\n");
-      }
-    }
-
-    free_str_list(sl0);
-    free_str_list(sl1);
-  }
-
-  if(!hd_data->cmd_line) return NULL;
-
-  t = t0 = new_str(hd_data->cmd_line);
-  while((s = strsep(&t, " "))) {
-    if(!*s) continue;
-    if(!strncmp(s, key, l) && s[l] == '=') {
-      add_str_list(&cmd, s + l + 1);
-    }
-  }
-
-  free_mem(t0);
-
-  return cmd;
-}
-
-
-/*
- * Return field 'field' (starting with 0) from the 'SuSE='
- * kernel cmd line parameter.
- */
-char *get_cmd_param(hd_data_t *hd_data, int field)
-{
-  char *s, *t;
-  str_list_t *cmd;
-
-  if(!(cmd = get_cmdline(hd_data, "SuSE"))) return NULL;
-
-  s = cmd->str;
-
-  t = NULL;
-
-  if(s) {
-    for(; field; field--) {
-      if(!(s = strchr(s, ','))) break;
-      s++;
-    }
-
-    if(s && (t = strchr(s, ','))) *t = 0;
-  }
-
-  t = new_str(s);
-
-  free_str_list(cmd);
-
-  return t;
-}
-
-
-unsigned get_disk_crc(unsigned char *data, unsigned len)
-{
-  unsigned i, crc;
-
-  crc = -1;
-  for(i = 0; i < len; i++) {
-    crc += data[i];
-    crc *= 57;
-  }
-
-  return crc;
-}
-
-disk_t *add_disk_entry(disk_t **dl, disk_t *new_dl)
-{
-  while(*dl) dl = &(*dl)->next;
-  return *dl = new_dl;
-}
-
-disk_t *free_disk_list(disk_t *dl)
-{
-  disk_t *l;
-
-  for(; dl; dl = (l = dl)->next, free_mem(l));
-
-  return NULL;
-}
-
-int dev_name_duplicate(disk_t *dl, char *dev_name)
-{
-  for(; dl; dl = dl->next) {
-    if(!strcmp(dl->dev_name, dev_name)) return 1;
-  }
-
-  return 0;
-}
-
-unsigned hd_boot_disk(hd_data_t *hd_data, int *matches)
-{
-  hd_t *hd;
-  unsigned crc, hd_idx = 0;
-  char *s;
-  int i, j;
-  disk_t *dl, *dl0 = NULL, *dl1 = NULL;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_boot_disk, hd_data), hd_data);
-  }
-#endif
-
-  if(matches) *matches = 0;
-
-  if(!(s = get_cmd_param(hd_data, 2))) return 0;
-
-  i = strlen(s);
-
-  if(i >= 8) {
-    crc = hex(s, 8);
-  }
-  else {
-    free_mem(s);
-    return 0;
-  }
-
-  s = free_mem(s);
-
-  if((hd_data->debug & HD_DEB_BOOT)) {
-    ADD2LOG("    boot dev crc 0x%x\n", crc);
-  }
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_storage_device &&
-      hd->sub_class.id == sc_sdev_disk &&
-      hd->block0
-    ) {
-      if(dev_name_duplicate(dl0, hd->unix_dev_name)) continue;
-      dl = add_disk_entry(&dl0, new_mem(sizeof *dl0));
-      dl->dev_name = hd->unix_dev_name;
-      dl->hd_idx = hd->idx;
-      dl->crc = get_disk_crc(dl->data = hd->block0, 512);
-    }
-  }
-
-  if(!dl0) return 0;
-
-  if((hd_data->debug & HD_DEB_BOOT)) {
-    for(dl = dl0; dl; dl = dl->next) {
-      ADD2LOG("    crc %s 0x%08x\n", dl->dev_name, dl->crc);
-    }
-  }
-
-  for(i = 0, dl = dl0; dl; dl = dl->next) {
-    if(crc == dl->crc) {
-      dl->crc_match = 1;
-      dl1 = dl;
-      if(!i++) hd_idx = dl->hd_idx;
-    }
-  }
-
-  if(i == 1 && dl1 && (hd_data->debug & HD_DEB_BOOT)) {
-    ADD2LOG("----- MBR -----\n");
-    for(j = 0; j < 512; j += 0x10) {
-      ADD2LOG("  %03x  ", j);
-      hexdump(&hd_data->log, 1, 0x10, dl1->data + j);
-      ADD2LOG("\n");
-    }
-    ADD2LOG("----- MBR end -----\n");
-  }
-
-  free_disk_list(dl0);
-
-  if(matches) *matches = i;
-
-  hd_data->debug &= ~HD_DEB_BOOT;
-
-  return hd_idx;
-}
-
-void update_irq_usage(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  misc_irq_t *mi;
-  unsigned u, v;
-  uint64_t irqs = 0;
-  hd_res_t *res;
-
-  if(hd_data->misc) {
-    mi = hd_data->misc->irq;
-    for(u = 0; u < hd_data->misc->irq_len; u++) {
-      v = mi[u].irq;
-      irqs |= 1ull << v;
-    }
-  }
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    for(res = hd->res; res; res = res->next) {
-      if(res->any.type == res_irq) {
-        irqs |= 1ull << res->irq.base;
-      }
-    }
-  }
-
-  hd_data->used_irqs = irqs;
-}
-
-int run_cmd(hd_data_t *hd_data, char *cmd)
-{
-  char *xcmd = NULL;
-  str_list_t *sl, *sl0;
-
-  ADD2LOG("----- exec: \"%s\" -----\n", cmd);
-
-  if(*cmd == '/') {
-    str_printf(&xcmd, 0, "|%s 2>&1", cmd);
-    sl0 = read_file(xcmd, 0, 0);
-    for(sl = sl0; sl; sl = sl->next) ADD2LOG("  %s", sl->str);
-    sl0 = free_str_list(sl0);
-  }
-
-  ADD2LOG("----- return code: ? -----\n");
-
-  free_mem(xcmd);
-
-  return 0;
-}
-
-int probe_module(hd_data_t *hd_data, char *module)
-{
-  char *cmd = NULL;
-  int i;
-  struct stat sbuf;
-
-  if(hd_module_is_active(hd_data, module)) return 0;
-
-  if(stat(PROG_MODPROBE, &sbuf)) return 127;
-
-  str_printf(&cmd, 0, PROG_MODPROBE " %s", module);
-
-  i = run_cmd(hd_data, cmd);
-
-  free_mem(cmd);
-
-  return i;
-}
-
-int load_module_with_params(hd_data_t *hd_data, char *module, char *params)
-{
-  char *cmd = NULL;
-  int i;
-  struct stat sbuf;
-
-  if(hd_module_is_active(hd_data, module)) return 0;
-
-  if(stat(PROG_MODPROBE, &sbuf)) return 127;
-
-  str_printf(&cmd, 0, PROG_MODPROBE " %s %s", module, params ? params : "");
-
-  i = run_cmd(hd_data, cmd);
-
-  free_mem(cmd);
-
-  return i;
-}
-
-int load_module(hd_data_t *hd_data, char *module)
-{
-  return load_module_with_params(hd_data, module, NULL);
-}
-
-int unload_module(hd_data_t *hd_data, char *module)
-{
-  char *cmd = NULL;
-  int i;
-
-  if(!hd_module_is_active(hd_data, module)) return 0;
-
-  str_printf(&cmd, 0, PROG_RMMOD " %s", module);
-
-  i = run_cmd(hd_data, cmd);
-
-  free_mem(cmd);
-  
-  return i;
-}
-
-/*
- * Compare two hd entries and return 0 if they are identical.
- */
-int cmp_hd(hd_t *hd1, hd_t *hd2)
-{
-  if(!hd1 || !hd2) return 1;
-
-  if(
-    hd1->bus.id != hd2->bus.id ||
-    hd1->slot != hd2->slot ||
-    hd1->func != hd2->func ||
-    hd1->base_class.id != hd2->base_class.id ||
-    hd1->sub_class.id != hd2->sub_class.id ||
-    hd1->prog_if.id != hd2->prog_if.id ||
-    hd1->device.id != hd2->device.id ||
-    hd1->vendor.id != hd2->vendor.id ||
-    hd1->sub_vendor.id != hd2->sub_vendor.id ||
-    hd1->revision.id != hd2->revision.id ||
-    hd1->compat_device.id != hd2->compat_device.id ||
-    hd1->compat_vendor.id != hd2->compat_vendor.id ||
-
-    hd1->module != hd2->module ||
-    hd1->line != hd2->line
-  ) {
-    return 1;
-  }
-
-  if(hd1->unix_dev_name || hd2->unix_dev_name) {
-    if(hd1->unix_dev_name && hd2->unix_dev_name) {
-      if(strcmp(hd1->unix_dev_name, hd2->unix_dev_name)) return 1;
-    }
-    else {
-      return 1;
-    }
-  }
-
-  return 0;
-}
-
-
-void get_probe_env(hd_data_t *hd_data)
-{
-  char *s, *t, *env;
-  str_list_t *cmd = NULL;
-  int j, k;
-  char buf[10];
-
-  env = getenv("hwprobe");
-  if(!env) {
-    cmd = get_cmdline(hd_data, "hwprobe");
-    if(cmd) env = cmd->str;
-  }
-  s = env = new_str(env);
-
-  free_str_list(cmd);
-
-  if(!env) return;
-
-  hd_data->xtra_hd = free_str_list(hd_data->xtra_hd);
-
-  while((t = strsep(&s, ","))) {
-    if(*t == '+') {
-      k = 1; t++;
-    }
-    else if(*t == '-') {
-      k = 0; t++;
-    }
-    else {
-      k = 2;
-//      ADD2LOG("hwprobe: +/- missing before \"%s\"\n", t);
-//      return;
-    }
-
-    if((j = hd_probe_feature_by_name(t))) {
-      set_probe_feature(hd_data, j, k ? 1 : 0);
-    }
-    else if(sscanf(t, "%8[^:]:%8[^:]:%8[^:]", buf, buf, buf) == 3) {
-      add_str_list(&hd_data->xtra_hd, t - (k == 2 ? 0 : 1));
-    }
-    else {
-      if(*t) ADD2LOG("hwprobe: what is \"%s\"?\n", t);
-      return;
-    }
-  }
-
-  free_mem(env);
-}
-
-void hd_scan_xtra(hd_data_t *hd_data)
-{
-  str_list_t *sl;
-  hd_t *hd, *hd_tmp;
-  unsigned u0, u1, u2, tag;
-  int i, err;
-  char buf0[10], buf1[10], buf2[10], buf3[64], *s, k;
-
-  hd_data->module = mod_xtra;
-
-  remove_hd_entries(hd_data);
-
-  for(sl = hd_data->xtra_hd; sl; sl = sl->next) {
-    s = sl->str;
-    err = 0;
-    switch(*s) {
-      case '+': k = 1; s++; break;
-      case '-': k = 0; s++; break;
-      default: k = 2;
-    }
-    if(
-      (i = sscanf(s, "%8[^:]:%8[^:]:%8[^:]:%60s", buf0, buf1, buf2, buf3)) >= 3
-    ) {
-      if(i < 4) *buf3 = 0;
-
-      u0 = strtoul(buf0, &s, 16);
-      if(*s) err |= 1;
-      if(strlen(buf1) == 3) {
-        u1 = name2eisa_id(buf1);
-      }
-      else {
-        tag = TAG_PCI;
-        s = buf1;
-        switch(*s) {
-          case 'p': tag = TAG_PCI; s++; break;
-          case 'r': tag = 0; s++; break;
-          case 's': tag = TAG_SPECIAL; s++; break;
-          case 'u': tag = TAG_USB; s++; break;
-          case 'P': tag = TAG_PCMCIA; s++; break;
-        }
-        u1 = strtoul(s, &s, 16);
-        if(*s) err |= 2;
-        u1 = MAKE_ID(tag, u1);
-      }
-      u2 = strtoul(buf2, &s, 16);
-      if(*s) err |= 4;
-      u2 = MAKE_ID(ID_TAG(u1), ID_VALUE(u2));
-      if((err & 1) && !strcmp(buf0, "*")) {
-        u0 = -1;
-        err &= ~1;
-      }
-      if((err & 2) && !strcmp(buf1, "*")) {
-        u1 = 0;
-        err &= ~2;
-      }
-      if((err & 4) && !strcmp(buf2, "*")) {
-        u2 = 0;
-        err &= ~4;
-      }
-      if(!err) {
-        if(k) {
-          if(k == 2) {
-            /* insert at top */
-            hd_tmp = hd_data->hd;
-            hd_data->hd = NULL;
-            hd = add_hd_entry(hd_data, __LINE__, 0);
-            hd->next = hd_tmp;
-            hd_tmp = NULL;
-          }
-          else {
-            hd = add_hd_entry(hd_data, __LINE__, 0);
-          }
-          hd->base_class.id = u0 >> 8;
-          hd->sub_class.id = u0 & 0xff;
-          hd->vendor.id = u1;
-          hd->device.id = u2;
-          if(ID_TAG(hd->vendor.id) == TAG_PCI) hd->bus.id = bus_pci;
-          if(ID_TAG(hd->vendor.id) == TAG_USB) hd->bus.id = bus_usb;
-          if(ID_TAG(hd->vendor.id) == TAG_PCMCIA) {
-            hd->bus.id = bus_pcmcia;
-            hd->hotplug = hp_pcmcia;
-          }
-          if(*buf3) hd->unix_dev_name = new_str(buf3);
-          hd->status.available = status_yes;
-          hd->status.configured = status_new;
-          hd->status.needed = status_no;
-        }
-        else {
-          for(hd = hd_data->hd; hd; hd = hd->next) {
-            if(
-                (u0 == -1u || (
-                  hd->base_class.id == (u0 >> 8) &&
-                  hd->sub_class.id == (u0 & 0xff)
-                )) &&
-                (u1 == 0 || hd->vendor.id == u1) &&
-                (u2 == 0 || hd->device.id == u2) &&
-                (*buf3 == 0 || (
-                  hd->unix_dev_name &&
-                  !strcmp(hd->unix_dev_name, buf3)
-                ))
-            ) {
-              hd->tag.remove = 1;
-            }
-          }
-          remove_tagged_hd_entries(hd_data);
-        }
-      }
-    }
-  }
-}
-
-unsigned has_something_attached(hd_data_t *hd_data, hd_t *hd)
-{
-  hd_t *hd1;
-
-  for(hd1 = hd_data->hd; hd1; hd1 = hd1->next) {
-    if(hd1->attached_to == hd->idx) return hd1->idx;
-  }
-
-  return 0;
-}
-
-
-/* ##### FIX: replace with a real crc later ##### */
-void crc64(uint64_t *id, void *p, int len)
-{
-  unsigned char uc;
-
-  for(; len; len--, p++) {
-    uc = *(unsigned char *) p;
-    *id += uc + ((uc + 57) << 27);
-    *id *= 73;
-    *id *= 65521;
-  }
-}
-
-char *numid2str(uint64_t id, int len)
-{
-  static char buf[32];
-
-#ifdef NUMERIC_UNIQUE_ID
-  /* numeric */
-
-  if(len < (sizeof id << 3)) id &= ~(-1LL << len);
-  sprintf(buf, "%0*"PRIx64, len >> 2, id);
-
-#else
-  /* base64 like */
-
-  int i;
-  unsigned char u;
-
-  memset(buf, 0, sizeof buf);
-  for(i = 0; len > 0 && i < (int) sizeof buf - 1; i++, len -= 6, id >>= 6) {
-    u = id & 0x3f;
-    if(u < 10) {
-      u += '0';                        /* 0..9 */
-    }
-    else if(u < 10 + 26) {
-      u += 'A' - 10;           /* A..Z */
-    }
-    else if(u < 10 + 26 + 26) {
-      u += 'a' - 10 - 26;      /* a..z */
-    }
-    else if(u == 63) {
-      u = '+';
-    }
-    else {
-      u = '_';
-    }
-    buf[i] = u;
-  }
-
-#endif
-
-  return buf;
-}
-
-/*
- * calculate unique ids
- */
-#define INT_CRC(a, b)  crc64(&a, &hd->b, sizeof hd->b);
-#define STR_CRC(a, b)  if(hd->b) crc64(&a, hd->b, strlen(hd->b) + 1);
-
-
-// old method
-void hd_add_old_id(hd_t *hd)
-{
-  uint64_t id0 = 0, id1 = 0;
-
-  if(hd->unique_id) return;
-
-  INT_CRC(id0, bus.id);
-  INT_CRC(id0, slot);
-  INT_CRC(id0, func);
-  INT_CRC(id0, base_class.id);
-  INT_CRC(id0, sub_class.id);
-  INT_CRC(id0, prog_if.id);
-  STR_CRC(id0, unix_dev_name);
-  STR_CRC(id0, rom_id);
-
-  INT_CRC(id1, base_class.id);
-  INT_CRC(id1, sub_class.id);
-  INT_CRC(id1, prog_if.id);
-  INT_CRC(id1, device.id);
-  INT_CRC(id1, vendor.id);
-  INT_CRC(id1, sub_device.id);
-  INT_CRC(id1, sub_vendor.id);
-  INT_CRC(id1, revision.id);
-  INT_CRC(id1, compat_device.id);
-  INT_CRC(id1, compat_vendor.id);
-  STR_CRC(id1, device.name);
-  STR_CRC(id1, vendor.name);
-  STR_CRC(id1, sub_device.name);
-  STR_CRC(id1, sub_vendor.name);
-  STR_CRC(id1, revision.name);
-  STR_CRC(id1, serial);
-
-  id0 += (id0 >> 32);
-  str_printf(&hd->unique_id, 0, "%s", numid2str(id0, 24));
-  str_printf(&hd->unique_id, -1, ".%s", numid2str(id1, 64));
-}
-
-void hd_add_id(hd_data_t *hd_data, hd_t *hd)
-{
-  uint64_t id0 = 0, id1 = 0;
-
-  if(hd->unique_id) return;
-
-  hd_add_old_id(hd);
-  hd->old_unique_id = hd->unique_id;
-  hd->unique_id = NULL;
-
-  INT_CRC(id1, base_class.id);
-  INT_CRC(id1, sub_class.id);
-  INT_CRC(id1, prog_if.id);
-  INT_CRC(id1, device.id);
-  INT_CRC(id1, vendor.id);
-  INT_CRC(id1, sub_device.id);
-  INT_CRC(id1, sub_vendor.id);
-  INT_CRC(id1, revision.id);
-  if(
-    hd->detail &&
-    hd->detail->type == hd_detail_ccw &&
-    hd->detail->ccw.data
-  ) INT_CRC(id1, detail->ccw.data->cu_model);
-  INT_CRC(id1, compat_device.id);
-  INT_CRC(id1, compat_vendor.id);
-  // make sure we get the same id even if, say, the pci name list changes
-  if(!hd->device.id) STR_CRC(id1, device.name);
-  if(!hd->vendor.id) STR_CRC(id1, vendor.name);
-  if(!hd->sub_device.name) STR_CRC(id1, sub_device.name);
-  if(!hd->sub_vendor.name) STR_CRC(id1, sub_vendor.name);
-  if(!hd->revision.name) STR_CRC(id1, revision.name);
-  STR_CRC(id1, serial);
-
-  hd->unique_id1 = new_str(numid2str(id1, 64));
-
-  INT_CRC(id0, bus.id);
-
-  if(
-    (hd->bus.id == bus_usb ||
-    hd->bus.id == bus_ccw) &&
-    hd->sysfs_bus_id
-  ) {
-    STR_CRC(id0, sysfs_bus_id);
-  }
-  else if(
-    hd->bus.id != bus_usb &&
-    hd->bus.id != bus_pci &&
-    hd->sysfs_id
-  ) {
-    STR_CRC(id0, sysfs_id);
-  }
-  else if(hd->unix_dev_name) {
-    STR_CRC(id0, unix_dev_name);
-  }
-  else {
-    INT_CRC(id0, slot);
-    INT_CRC(id0, func);
-  }
-
-  STR_CRC(id0, rom_id);
-
-  id0 += (id0 >> 32);
-
-  str_printf(&hd->unique_id, 0, "%s.%s", numid2str(id0, 24), hd->unique_id1);
-}
-#undef INT_CRC
-#undef STR_CRC
-
-
-devtree_t *free_devtree(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  devtree_t *dt, *next;
-
-  /*
-   * first, remove all references in the current device tree
-   * (refs in hd_old can remain)
-   */
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->detail && hd->detail->type == hd_detail_devtree) {
-      hd->detail = free_mem(hd->detail);
-    }
-  }
-
-  for(dt = hd_data->devtree; dt; dt = next) {
-    next = dt->next;
-
-    free_mem(dt->path);
-    free_mem(dt->filename);
-    free_mem(dt->name);
-    free_mem(dt->model);
-    free_mem(dt->device_type);
-    free_mem(dt->compatible);
-    free_mem(dt->edid);
-
-    free_mem(dt);
-  }
-
-  return hd_data->devtree = NULL;
-}
-
-
-void test_read_block0_open(void *arg)
-{
-  open((char *) arg, O_RDONLY);
-}
-
-unsigned char *read_block0(hd_data_t *hd_data, char *dev, int *timeout)
-{
-  int fd, len, buf_size = 512, k, sel;
-  unsigned char *buf = NULL;
-  struct timeval to;
-  fd_set set, set0;
-
-  if(hd_timeout(test_read_block0_open, dev, *timeout) > 0) {
-    ADD2LOG("  read_block0: open(%s) timed out\n", dev);
-    *timeout = -1;
-    fd = -2;
-  }
-  else {
-    fd = open(dev, O_RDONLY);
-    if(fd < 0) ADD2LOG("  read_block0: open(%s) failed\n", dev);
-  }
-  if(fd >= 0) {
-    buf = new_mem(buf_size);
-    len = k = 0;
-
-    FD_ZERO(&set0);
-    FD_SET(fd, &set0);
-
-    to.tv_sec = *timeout; to.tv_usec = 0;
-    for(;;) {
-      set = set0;
-      if((sel = select(fd + 1, &set, NULL, NULL, &to)) > 0) {
-        if((k = read(fd, buf + len, buf_size - len)) > 0) len += k;
-        ADD2LOG("  read_block0: %d bytes (%ds, %dus)\n", k, (int) to.tv_sec, (int) to.tv_usec);
-        if(k <= 0 || buf_size == len) break;
-      }
-      if(sel == 0) {
-        *timeout = -2; break;
-      }
-    }
-
-    if(k < 0) {
-      ADD2LOG("  read_block0: read error(%s, %d, %d): errno %d\n", dev, len, buf_size - len, errno);
-      buf = free_mem(buf);
-    }
-    close(fd);
-  }
-
-  return buf;
-}
-
-
-void get_kernel_version(hd_data_t *hd_data)
-{
-  unsigned u1, u2;
-  str_list_t *sl;
-
-  if(hd_data->kernel_version) return;
-
-  hd_data->kernel_version = KERNEL_24;
-
-  sl = read_file(PROC_VERSION, 0, 1);
-
-  if(!sl || !sl->str) return;
-
-  if(sscanf(sl->str, "Linux version %u.%u.", &u1, &u2) == 2) {
-    if(hd_data->debug) {
-      ADD2LOG("kernel version is %u.%u\n", u1, u2);
-    }
-    u1 = (u1 << 16) + (u2 << 8);
-
-    if(u1 <= KERNEL_22) {
-      hd_data->kernel_version = KERNEL_22;
-    }
-    else if(u1 <= KERNEL_24) {
-      hd_data->kernel_version = KERNEL_24;
-    }
-    else if(u1 <= KERNEL_26) {
-      hd_data->kernel_version = KERNEL_26;
-    }
-  }
-
-  free_str_list(sl);
-}
-
-
-char *vend_id2str(unsigned vend)
-{
-  static char buf[32];
-  char *s;
-
-  *(s = buf) = 0;
-
-  if(ID_TAG(vend) == TAG_EISA) {
-    strcpy(s, eisa_vendor_str(vend));
-  }
-  else {
-    if(ID_TAG(vend) == TAG_USB) *s++ = 'u', *s = 0;
-    if(ID_TAG(vend) == TAG_SPECIAL) *s++ = 's', *s = 0;
-    if(ID_TAG(vend) == TAG_PCMCIA) *s++ = 'P', *s = 0;
-    sprintf(s, "%04x", ID_VALUE(vend));
-  }
-
-  return buf;
-}
-
-
-int is_modem(hd_data_t *hd_data, hd_t *hd)
-{
-  if(
-    hd->base_class.id == bc_modem ||
-    (
-      hd->base_class.id == bc_comm &&
-      hd->sub_class.id == sc_com_modem
-    )
-  ) return 1;
-
-  return 0;
-}
-
-
-int is_audio(hd_data_t *hd_data, hd_t *hd)
-{
-  /* ISA-PnP sound cards: just one entry per card */
-  if(
-    hd->bus.id == bus_isa &&
-    hd->is.isapnp &&
-    hd->func
-  ) return 0;
-
-  if(
-    hd->base_class.id == bc_multimedia &&
-    (
-      hd->sub_class.id == sc_multi_audio ||
-      hd->sub_class.id == 3
-    )
-  ) return 1;
-
-  return 0;
-}
-
-
-void assign_hw_class(hd_data_t *hd_data, hd_t *hd)
-{
-  int sc;              /* compare sub_class too */
-  unsigned base_class, sub_class;
-  hd_hw_item_t item;
-  int (*test_func)(hd_data_t *, hd_t *);
-
-  if(!hd) return;
-
-  // ###### FIXME: maybe just return here?
-  if(!hd->hw_class) {          /* skip if we've already done it */
-    for(item = 1; item < hw_all; item++) {
-
-      test_func = NULL;
-
-      sc = 0;
-      sub_class = 0;
-
-      base_class = -1;
-      switch(item) {
-        case hw_cdrom:
-          base_class = bc_storage_device;
-          sub_class = sc_sdev_cdrom;
-          sc = 1;
-          break;
-
-        case hw_floppy:
-          base_class = bc_storage_device;
-          sub_class = sc_sdev_floppy;
-          sc = 1;
-          break;
-
-        case hw_disk:
-          base_class = bc_storage_device;
-          sub_class = sc_sdev_disk;
-          sc = 1;
-          break;
-
-        case hw_network:
-          base_class = bc_network_interface;
-          break;
-
-        case hw_display:
-          base_class = bc_display;
-          break;
-
-        case hw_monitor:
-          base_class = bc_monitor;
-          break;
-
-        case hw_mouse:
-          base_class = bc_mouse;
-          break;
-
-        case hw_joystick:
-          base_class = bc_joystick;
-          break;
-
-        case hw_keyboard:
-          base_class = bc_keyboard;
-          break;
-
-        case hw_camera:
-          base_class = bc_camera;
-          break;
-
-        case hw_framebuffer:
-          base_class = bc_framebuffer;
-          break;
-
-        case hw_chipcard:
-          base_class = bc_chipcard;
-          break;
-
-        case hw_sound:
-          test_func = is_audio;
-          break;
-
-        case hw_isdn:
-          base_class = bc_isdn;
-          break;
-
-        case hw_dsl:
-          base_class = bc_dsl;
-          break;
-
-        case hw_modem:
-          test_func = is_modem;
-          break;
-
-        case hw_storage_ctrl:
-          base_class = bc_storage;
-          break;
-
-        case hw_network_ctrl:
-          base_class = bc_network;
-          break;
-
-        case hw_printer:
-          base_class = bc_printer;
-          break;
-
-        case hw_tv:
-          base_class = bc_tv;
-          break;
-
-        case hw_dvb:
-          base_class = bc_dvb;
-          break;
-
-        case hw_scanner:
-          base_class = bc_scanner;
-          break;
-
-        case hw_braille:
-          base_class = bc_braille;
-          break;
-
-        case hw_sys:
-          base_class = bc_internal;
-          sub_class = sc_int_sys;
-          sc = 1;
-          break;
-
-        case hw_cpu:
-          base_class = bc_internal;
-          sub_class = sc_int_cpu;
-          sc = 1;
-          break;
-
-        case hw_bios:
-          base_class = bc_internal;
-          sub_class = sc_int_bios;
-          sc = 1;
-          break;
-
-        case hw_usb_ctrl:
-          base_class = bc_serial;
-          sub_class = sc_ser_usb;
-          sc = 1;
-          break;
-
-        case hw_bridge:
-          base_class = bc_bridge;
-          break;
-
-        case hw_hub:
-          base_class = bc_hub;
-          break;
-
-        case hw_memory:
-          base_class = bc_internal;
-          sub_class = sc_int_main_mem;
-          sc = 1;
-          break;
-
-        case hw_ieee1394_ctrl:
-          base_class = bc_serial;
-          sub_class = sc_ser_fire;
-          sc = 1;
-          break;
-
-        case hw_pcmcia_ctrl:
-          test_func = is_pcmcia_ctrl;
-          break;
-
-        case hw_pppoe:
-          base_class = bc_network_interface;
-          break;
-
-        case hw_partition:
-          base_class = bc_partition;
-          break;
-
-        case hw_bluetooth:
-          base_class = bc_bluetooth;
-          break;
-
-        case hw_wlan:
-        case hw_block:
-        case hw_tape:
-        case hw_vbe:
-          break;
-
-        case hw_unknown:
-        case hw_all:
-        case hw_manual:                /* special */
-
-        /* bus types */
-        case hw_usb:
-        case hw_pci:
-        case hw_isapnp:
-        case hw_scsi:
-        case hw_ide:
-
-        case hw_pcmcia:                /* special */
-
-        case hw_ieee1394:      /* not handled */
-        case hw_hotplug:       /* not handled */
-        case hw_hotplug_ctrl:  /* not handled */
-        case hw_zip:           /* not handled */
-        case hw_redasd:
-          break;
-      }
-
-      if(test_func) {
-        if(test_func(hd_data, hd)) {
-          hd->hw_class = item;
-          break;
-        }
-      }
-      else if(
-        (
-          hd->base_class.id == base_class &&
-          (sc == 0 || hd->sub_class.id == sub_class)
-        )
-        ||
-        ( /* list other display adapters, too */
-          base_class == bc_display &&
-          hd->base_class.id == bc_multimedia &&
-          hd->sub_class.id == sc_multi_video
-        )
-        ||
-        ( /* make i2o storage controllers */
-          item == hw_storage_ctrl &&
-          hd->base_class.id == bc_i2o
-        )
-        ||
-        ( /* add fibre channel to storage ctrl list */
-          item == hw_storage_ctrl &&
-          hd->base_class.id == bc_serial &&
-          hd->sub_class.id == sc_ser_fiber
-        )
-      ) {
-        hd->hw_class = item;
-        break;
-      }
-    }
-
-    if(!hd->hw_class) hd->hw_class = hw_unknown;
-  }
-
-  hd_set_hw_class(hd, hd->hw_class);
-
-  if(hd->bus.id == bus_usb) {
-    hd_set_hw_class(hd, hw_usb);
-  }
-  else if(hd->bus.id == bus_pci) {
-    hd_set_hw_class(hd, hw_pci);
-  }
-  else if(hd->bus.id == bus_scsi) {
-    hd_set_hw_class(hd, hw_scsi);
-  }
-  else if(hd->bus.id == bus_ide) {
-    hd_set_hw_class(hd, hw_ide);
-  }
-  else if(hd->bus.id == bus_isa && hd->is.isapnp) {
-    hd_set_hw_class(hd, hw_isapnp);
-  }
-
-  if(hd->hw_class == hw_network && hd->is.pppoe) {
-    hd_set_hw_class(hd, hw_pppoe);
-  }
-
-  if(hd->usb_guid) {
-    hd_set_hw_class(hd, hw_usb);       // ###### maybe only if(hd->bus.id == bus_scsi)?
-  }
-
-  if(hd->hotplug == hp_pcmcia || hd->hotplug == hp_cardbus) {
-    hd_set_hw_class(hd, hw_pcmcia);
-  }
-
-  if(hd->is.wlan) {
-    hd_set_hw_class(hd, hw_wlan);
-  }
-
-  if(hd_is_hw_class(hd, hw_bios)) {
-    hd_set_hw_class(hd, hw_vbe);
-  }
-
-  if(
-    hd->base_class.id == bc_storage_device ||
-    hd->base_class.id == bc_partition
-  ) {
-    hd_set_hw_class(hd, hw_block);
-  }
-
-  if(
-    hd->base_class.id == bc_storage_device &&
-    hd->sub_class.id == sc_sdev_tape
-  ) {
-    hd_set_hw_class(hd, hw_tape);
-  }
-
-  if(
-    hd->base_class.id == bc_storage_device &&
-    hd->sub_class.id == sc_sdev_disk
-  ) {
-    hd_set_hw_class(hd, hw_redasd);
-  }
-}
-
-
-void short_vendor(char *vendor)
-{
-  static char *remove[] = {
-    ".", ",", "-", "&", " inc", "corporation", " corp", " system",
-    " systems", "technology", "technologies", "multimedia", "communications",
-    "computer", " ltd", "(formerly ncr)", " group", " labs", "research",
-    "equipment", " ag", "personal", " canada", "data", "products",
-    " america", " co", " of", "solutions", " as", "publishing", "(old)",
-    " usa", " gmbh", "electronic", "components", "(matsushita)", " ab",
-    " pte", " north", " japan", "limited", "microcomputer", " kg",
-    "incorporated", "semiconductor", "sem", "graphics"
-  };
-  int i, j;
-  int len, len1, len2;
-
-  if(!vendor) return;
-
-  len2 = strlen(vendor);
-
-  if(!len2) return;
-
-  do {
-    len = len2;
-    for(i = 0; (unsigned) i < sizeof remove / sizeof *remove; i++) {
-      len1 = strlen(remove[i]);
-      if(len > len1 && !strcasecmp(vendor + len - len1, remove[i])) {
-        vendor[j = len - len1] = 0;
-        for(j--; j >= 0; vendor[j--] = 0) {
-          if(!isspace(vendor[j])) break;
-        }
-      }
-    }
-    len2 = strlen(vendor);
-  } while(len2 != len);
-
-}
-
-
-void create_model_name(hd_data_t *hd_data, hd_t *hd)
-{
-  char *vend, *dev;
-  char *compat, *dev_class, *hw_class;
-  char *part1, *part2;
-  cpu_info_t *ct;
-
-  /* early out */
-  if(!hd || hd->model) return;
-
-  part1 = part2 = NULL;
-
-  vend = dev = compat = dev_class = hw_class = NULL;
-
-  if(
-    hd->hw_class == hw_cpu &&
-    hd->detail &&
-    hd->detail->type == hd_detail_cpu &&
-    (ct = hd->detail->cpu.data) &&
-    ct->model_name
-  ) {
-    /* cpu entry */
-
-    part1 = new_str(ct->model_name);
-    if(ct->clock) str_printf(&part1, -1, ", %u MHz", ct->clock);
-  }
-  else {
-    /* normal entry */
-
-    vend = new_str(hd->sub_vendor.name);
-
-    dev = new_str(hd->sub_device.name);
-
-    if(!vend) vend = new_str(hd->vendor.name);
-
-    if(!dev) dev = new_str(hd->device.name);
-
-    if(dev) {
-      if(vend) {
-        part1 = vend; part2 = dev;
-      }
-      else {
-        part1 = dev;
-      }
-    }
-
-    if(!part1 && !part2) {
-      compat = new_str(hd->compat_device.name);
-
-      dev_class = new_str(hd->sub_class.name ?: hd->base_class.name);
-
-      hw_class = new_str(hd_hw_item_name(hd->hw_class));
-
-      if(vend) {
-        if(compat) {
-          part1 = vend; part2 = compat;
-        }
-        else if(dev_class) {
-          part1 = vend; part2 = dev_class;
-        }
-      }
-      else {
-        if(
-          compat &&
-          dev_class &&
-          hd->base_class.id != bc_internal     /* avoid things like 'Notebook *System*' */
-       ) {
-          part1 = compat; part2 = dev_class;
-        }
-        else if(compat) {
-          part1 = compat;
-        }
-        else if(dev_class) {
-          part1 = dev_class;
-          if(hw_class && !strchr(part1, ' ') && strchr(hw_class, ' ')) {
-            part2 = hw_class;
-          }
-        }
-      }
-    }
-  }
-
-  if(part1 && part2) {
-    short_vendor(part1);
-  }
-
-  if(part1 && !strcasecmp(part1, "unknown")) {
-    part1 = part2;
-    part2 = NULL;
-  }
-
-  if(part1 && part2) {
-    /* maybe the vendor name is already part of the device name... */
-    if(strstr(part2, part1) || !strcasecmp(part1, part2)) {
-      part1 = part2;
-      part2 = NULL;
-    }
-  }
-
-  if(!part1 && !part2 && hw_class) {
-    str_printf(&part1, 0, "unknown %s", hw_class);
-    if(strchr(hw_class, ' ')) {
-      str_printf(&part1, -1, " hardware");
-    }
-  }
-
-  str_printf(&hd->model, 0, "%s%s%s", part1, part2 ? " " : "", part2 ? part2 : "");
-
-  free_mem(vend);
-  free_mem(dev);
-  free_mem(compat);
-  free_mem(dev_class);
-  free_mem(hw_class);
-}
-
-
-#ifndef LIBHD_TINY
-int hd_change_status(const char *id, hd_status_t status, const char *config_string)
-{
-  hd_data_t *hd_data;
-  hd_manual_t *entry;
-  int i;
-
-  hd_data = new_mem(sizeof *hd_data);
-
-  entry = hd_manual_read_entry(hd_data, (char *) id);
-
-  if(!entry || status.invalid) return 1;
-
-  if(status.configured) entry->status.configured = status.configured;
-  if(status.available) entry->status.available = status.available;
-  if(status.needed) entry->status.needed = status.needed;
-  entry->status.invalid = status.invalid;
-
-  if(config_string) {
-    free_mem(entry->config_string);
-    entry->config_string = new_str(config_string);
-  }
-
-  i = hd_manual_write_entry(hd_data, entry);
-  
-  hd_free_manual(entry);
-
-  hd_free_hd_data(hd_data);
-
-  free_mem(hd_data);
-
-  return i;
-}
-
-#endif         /* !defined(LIBHD_TINY) */
-
-
-int hd_getdisksize(hd_data_t *hd_data, char *dev, int fd, hd_res_t **geo, hd_res_t **size)
-{
-  int status=0;
-  hd_res_t *res;
-  struct hd_geometry geo_s;
-#ifdef HDIO_GETGEO_BIG
-  struct hd_big_geometry big_geo_s;
-#endif
-  unsigned long secs32;
-  uint64_t secs, secs0;
-  unsigned sec_size;
-  int close_fd = 0;
-  int got_big = 0;
-
-  *geo = *size = NULL;
-
-  ADD2LOG("  dev = %s, fd = %d\n", dev, fd);
-
-  if(fd < 0) {
-    if(!dev) return 0;
-    fd = open(dev, O_RDONLY | O_NONBLOCK);
-    close_fd = 1;
-    if(fd < 0) return 0;
-  }
-
-  ADD2LOG("  open ok, fd = %d\n", fd);
-
-  secs0 = 0;
-  res = NULL;
-
-#ifdef HDIO_GETGEO_BIG
-  if(!ioctl(fd, HDIO_GETGEO_BIG, &big_geo_s)) {
-    if(dev) ADD2LOG("%s: ioctl(big geo) ok\n", dev);
-    res = add_res_entry(geo, new_mem(sizeof *res));
-    res->disk_geo.type = res_disk_geo;
-    res->disk_geo.cyls = big_geo_s.cylinders;
-    res->disk_geo.heads = big_geo_s.heads;
-    res->disk_geo.sectors = big_geo_s.sectors;
-    res->disk_geo.geotype = geo_logical;
-    secs0 = (uint64_t) res->disk_geo.cyls * res->disk_geo.heads * res->disk_geo.sectors;
-    got_big = 1;
-  }
-  else {
-    ADD2LOG("  big geo failed: %s\n", strerror(errno));
-#else
-  {
-#endif
-    if(!ioctl(fd, HDIO_GETGEO, &geo_s)) {
-      if(dev) ADD2LOG("%s: ioctl(geo) ok\n", dev);
-      res = add_res_entry(geo, new_mem(sizeof *res));
-      res->disk_geo.type = res_disk_geo;
-      res->disk_geo.cyls = geo_s.cylinders;
-      res->disk_geo.heads = geo_s.heads;
-      res->disk_geo.sectors = geo_s.sectors;
-      res->disk_geo.geotype = geo_logical;
-      secs0 = (uint64_t) res->disk_geo.cyls * res->disk_geo.heads * res->disk_geo.sectors;
-    }
-    else {
-      ADD2LOG("  geo failed: %s\n", strerror(errno));
-    }
-  }
-
-  /* ##### maybe always BLKSZGET or always 0x200? */
-  if(!ioctl(fd, BLKSSZGET, &sec_size)) {
-    if(dev) ADD2LOG("%s: ioctl(block size) ok\n", dev);
-    if(!sec_size) sec_size = 0x200;
-  }
-  else {
-    sec_size = 0x200;
-  }
-
-  secs = 0;
-
-#if defined(__s390__) || defined(__s390x__)
-  if(res && res->disk_geo.sectors == 0)
-  { /* This seems to be an unformatted DASD -> fake the formatted geometry */
-    res->disk_geo.sectors=12;
-    sec_size=4096;
-    secs = (uint64_t) res->disk_geo.cyls * res->disk_geo.heads * res->disk_geo.sectors;
-    status=1;
-  }
-  else
-  {
-#endif
-    if(!ioctl(fd, BLKGETSIZE64, &secs)) {
-      if(dev) ADD2LOG("%s: ioctl(disk size) ok\n", dev);
-      secs /= sec_size;
-    }
-    else if(!ioctl(fd, BLKGETSIZE, &secs32)) {
-      if(dev) ADD2LOG("%s: ioctl(disk size32) ok\n", dev);
-      secs = secs32;
-    }
-    else {
-      secs = secs0;
-    }
-#if defined(__s390__) || defined(__s390x__)
-  }
-#endif
-
-  if(!got_big && secs0 && res) {
-    /* fix cylinder value */
-    res->disk_geo.cyls = secs / (res->disk_geo.heads * res->disk_geo.sectors);
-  }
-
-  if(secs) {
-    res = add_res_entry(size, new_mem(sizeof *res));
-    res->size.type = res_size;
-    res->size.unit = size_unit_sectors;
-    res->size.val1 = secs;
-    res->size.val2 = sec_size;
-  }
-
-  // ADD2LOG("  geo = %p, size = %p\n", *geo, *size);
-
-  if(close_fd) close(fd);
-  
-  return status;
-}
-
-
-str_list_t *hd_split(char del, char *str)
-{
-  char *t, *s;
-  str_list_t *sl = NULL;
-
-  if(!str) return NULL;
-
-  for(s = str = new_str(str); (t = strchr(s, del)); s = t + 1) {
-    *t = 0;
-    add_str_list(&sl, s);
-  }
-  add_str_list(&sl, s);
-
-  free_mem(str);
-
-  return sl;
-}
-
-
-char *hd_join(char *del, str_list_t *str)
-{
-  char *s;
-  str_list_t *str0;
-  int len = 0, del_len = 0;
-
-  if(del) del_len = strlen(del);
-
-  for(str0 = str; str0; str0 = str0->next) {
-    if(str0->str) len += strlen(str0->str);
-    if(str0->next) len += del_len;
-  }
-
-  if(!len) return NULL;
-
-  len++;
-
-  s = new_mem(len);
-
-  for(; str; str = str->next) {
-    if(str->str) strcat(s, str->str);
-    if(str->next && del) strcat(s, del);
-  }
-
-  return s;
-}
-
-
-/*
- * cf. pcmcia-cs-*:cardmgr/pcic_probe.c
- */
-int is_pcmcia_ctrl(hd_data_t *hd_data, hd_t *hd)
-{
-  int i;
-  static unsigned ids[][2] = {
-    { 0x1013, 0x1100 },
-    { 0x1013, 0x1110 },
-    { 0x10b3, 0xb106 },
-    { 0x1180, 0x0465 },
-    { 0x1180, 0x0466 },
-    { 0x1180, 0x0475 },
-    { 0x1180, 0x0476 },
-    { 0x1180, 0x0478 },
-    { 0x104c, 0xac12 },
-    { 0x104c, 0xac13 },
-    { 0x104c, 0xac15 },
-    { 0x104c, 0xac1a },
-    { 0x104c, 0xac1e },
-    { 0x104c, 0xac17 },
-    { 0x104c, 0xac19 },
-    { 0x104c, 0xac1c },
-    { 0x104c, 0xac16 },
-    { 0x104c, 0xac1d },
-    { 0x104c, 0xac1f },
-    { 0x104c, 0xac50 },
-    { 0x104c, 0xac51 },
-    { 0x104c, 0xac1b },
-    { 0x104c, 0xac52 },
-    { 0x104c, 0xac41 },
-    { 0x104c, 0xac40 },
-    { 0x104c, 0xac42 },
-    { 0x1217, 0x6729 },
-    { 0x1217, 0x673a },
-    { 0x1217, 0x6832 },
-    { 0x1217, 0x6836 },
-    { 0x1217, 0x6872 },
-    { 0x1217, 0x6925 },
-    { 0x1217, 0x6933 },
-    { 0x1217, 0x6972 },
-    { 0x1179, 0x0603 },
-    { 0x1179, 0x060a },
-    { 0x1179, 0x060f },
-    { 0x1179, 0x0617 },
-    { 0x119b, 0x1221 },
-    { 0x8086, 0x1221 }
-  };
-
-  if(!hd) return 0;
-
-  if(
-     hd->base_class.id == bc_bridge &&
-    (hd->sub_class.id == sc_bridge_pcmcia || hd->sub_class.id == sc_bridge_cardbus)
-  ) return 1;
-
-  /* just in case... */
-  if(hd->bus.id == bus_pci) {
-    for(i = 0; (unsigned) i < sizeof ids / sizeof *ids; i++) {
-      if(
-        ID_VALUE(hd->vendor.id) == ids[i][0] &&
-        ID_VALUE(hd->device.id) == ids[i][1]
-      ) return 1;
-    }
-  }
-
-  return 0;
-}
-
-void hd_set_hw_class(hd_t *hd, hd_hw_item_t hw_class)
-{
-  unsigned ofs, bit;
-
-  ofs = (unsigned) hw_class >> 3;
-  bit = (unsigned) hw_class & 7;
-
-  if(ofs < sizeof hd->hw_class_list / sizeof *hd->hw_class_list) {
-    hd->hw_class_list[ofs] |= 1 << bit;
-  }
-}
-
-
-int hd_is_hw_class(hd_t *hd, hd_hw_item_t hw_class)
-{
-  unsigned ofs, bit;
-
-  if(hw_class == hw_all) return 1;
-
-  ofs = (unsigned) hw_class >> 3;
-  bit = (unsigned) hw_class & 7;
-
-  if(ofs < sizeof hd->hw_class_list / sizeof *hd->hw_class_list) {
-    return hd->hw_class_list[ofs] & (1 << bit) ? 1 : 0;
-  }
-
-  return 0;
-}
-
-
-/*
- * Start subprocess for dangerous things.
- *
- * Stop it after total_timeout seconds or if nothing happens for
- * timeout seconds.
- */
-void hd_fork(hd_data_t *hd_data, int timeout, int total_timeout)
-{
-  void (*old_sigchld_handler)(int);
-  struct timespec wait_time;
-  int i, j, sleep_intr = 1;
-  hd_data_t *hd_data_shm;
-  time_t stop_time;
-  int updated, rem_time;
-  sigset_t new_set, old_set;
-
-  if(hd_data->flags.forked) return;
-
-  if(hd_data->flags.nofork) {
-    hd_data->flags.forked = 1;
-    return;
-  }
-
-  hd_data_shm = hd_data->shm.data;
-
-  stop_time = time(NULL) + total_timeout;
-  rem_time = total_timeout;
-
-  child_id = child = 0;
-
-  sigemptyset(&new_set);
-  sigaddset(&new_set, SIGCHLD);
-  sigprocmask(SIG_BLOCK, &new_set, &old_set);
-
-  old_sigchld_handler = signal(SIGCHLD, sigchld_handler);
-
-  wait_time.tv_sec = timeout;
-  wait_time.tv_nsec = 0;
-
-  updated = hd_data_shm->shm.updated;
-
-  child = fork();
-
-  sigprocmask(SIG_SETMASK, &old_set, NULL);
-
-  if(child != -1) {
-    if(child) {
-      ADD2LOG(
-        "******  started child process %d (%ds/%ds)  ******\n",
-        (int) child, timeout, total_timeout
-      );
-
-      while(child_id != child && sleep_intr) {
-        sleep_intr = nanosleep(&wait_time, &wait_time);
-//        fprintf(stderr, "woke up %d\n", sleep_intr);
-        rem_time = stop_time - time(NULL);
-        if(updated != hd_data_shm->shm.updated && rem_time >= 0) {
-          /* reset time if there was some progress and we've got some time left  */
-          rem_time++;
-          wait_time.tv_sec = rem_time > timeout ? timeout : rem_time;
-          wait_time.tv_nsec = 0;
-
-          sleep_intr = 1;
-        }
-        updated = hd_data_shm->shm.updated;
-      }
-
-      if(child_id != child) {
-        ADD2LOG("******  killed child process %d (%ds) ******\n", (int) child, rem_time);
-        kill(child, SIGKILL);
-        for(i = 10; i && !waitpid(child, NULL, WNOHANG); i--) {
-          wait_time.tv_sec = 0;
-          wait_time.tv_nsec = 10*1000000;
-          nanosleep(&wait_time, NULL);
-        }
-      }
-
-      i = hd_data->log ? strlen(hd_data->log) : 0;
-
-      if(hd_data_shm->log) {
-        j = strlen(hd_data_shm->log);
-        hd_data->log = resize_mem(hd_data->log, i + j + 1);
-        memcpy(hd_data->log + i, hd_data_shm->log, j + 1);
-      }
-
-      ADD2LOG("******  stopped child process %d (%ds)  ******\n", (int) child, rem_time);
-    }
-    else {
-#ifdef LIBHD_MEMCHECK
-      /* stop logging in child process */
-      if(libhd_log) fclose(libhd_log);
-      libhd_log = NULL;
-#endif
-      hd_data->log = free_mem(hd_data->log);
-
-      hd_data->flags.forked = 1;
-    }
-  }
-
-  signal(SIGCHLD, old_sigchld_handler);
-}
-
-
-/*
- * Stop subprocess.
- */
-void hd_fork_done(hd_data_t *hd_data)
-{
-  int len;
-  void *p;
-  hd_data_t *hd_data_shm;
-
-  if(!hd_data->flags.forked || hd_data->flags.nofork) return;
-
-  hd_data_shm = hd_data->shm.data;
-
-  if(hd_data->log) {
-    len = strlen(hd_data->log) + 1;
-    p = hd_shm_add(hd_data, hd_data->log, len);
-    hd_data_shm->log = p;
-  }
-
-  _exit(0);
-}
-
-
-/*
- * SIGCHLD handler while we're waiting for our child.
- */
-void sigchld_handler(int num)
-{
-  pid_t p = waitpid(child, NULL, WNOHANG);
-
-  if(p && p == child) child_id = p;
-}
-
-
-/*
- * Get a sufficiently large shm segment.
- */
-void hd_shm_init(hd_data_t *hd_data)
-{
-  void *p;
-
-  if(hd_data->shm.ok || hd_data->flags.nofork) return;
-
-  memset(&hd_data->shm, 0, sizeof hd_data->shm);
-
-  hd_data->shm.size = 256*1024;
-
-  hd_data->shm.id = shmget(IPC_PRIVATE, hd_data->shm.size, IPC_CREAT | 0600);
-
-  if(hd_data->shm.id == -1) {
-    ADD2LOG("shm: shmget failed (errno %d)\n", errno);
-    return;
-  }
-
-  p = shmat(hd_data->shm.id, NULL, 0);
-
-  if(p == (void *) -1) {
-    ADD2LOG("shm: shmat for segment %d failed (errno %d)\n", hd_data->shm.id, errno);
-  }
-
-  shmctl(hd_data->shm.id, IPC_RMID, NULL);
-
-  if(p == (void *) -1) return;
-
-  hd_data->shm.data = p;
-
-  ADD2LOG("shm: attached segment %d at %p\n", hd_data->shm.id, hd_data->shm.data);
-
-  hd_data->shm.ok = 1;
-
-  hd_shm_clean(hd_data);
-}
-
-
-/*
- * Reset shm usage, remove references to shm area.
- */
-void hd_shm_clean(hd_data_t *hd_data)
-{
-  hd_data_t *hd_data_shm;
-
-  if(!hd_data->shm.ok) return;
-
-  if(hd_is_shm_ptr(hd_data, hd_data->ser_mouse)) hd_data->ser_mouse = NULL;
-  if(hd_is_shm_ptr(hd_data, hd_data->ser_modem)) hd_data->ser_modem = NULL;
-
-
-  hd_data->shm.used = sizeof *hd_data;
-  hd_data->shm.updated = 0;
-
-  memcpy(hd_data_shm = hd_data->shm.data, hd_data, sizeof *hd_data);
-
-  hd_data_shm->log = NULL;
-}
-
-
-/*
- * Release shm segment.
- */
-void hd_shm_done(hd_data_t *hd_data)
-{
-  if(!hd_data->shm.ok) return;
-
-  shmdt(hd_data->shm.data);
-
-  hd_data->shm.ok = 0;
-}
-
-
-/*
- * Copy into shm area. If ptr is NULL return a shm area of size len.
- */
-void *hd_shm_add(hd_data_t *hd_data, void *ptr, unsigned len)
-{
-  if(!hd_data->shm.ok || !len) return NULL;
-
-  hd_data = hd_data->shm.data;
-
-  if(hd_data->shm.size - hd_data->shm.used < len) return NULL;
-
-  if(ptr) {
-    ptr = memcpy(hd_data->shm.data + hd_data->shm.used, ptr, len);
-  }
-  else {
-    ptr = memset(hd_data->shm.data + hd_data->shm.used, 0, len);
-  }
-
-  hd_data->shm.used += len;
-
-  return ptr;
-}
-
-
-/*
- * Check if ptr points to a valid shm address.
- */
-int hd_is_shm_ptr(hd_data_t *hd_data, void *ptr)
-{
-  if(!hd_data->shm.ok || !ptr) return 0;
-
-  hd_data = hd_data->shm.data;
-
-  if(
-    ptr < hd_data->shm.data ||
-    ptr >= hd_data->shm.data + hd_data->shm.used
-  ) return 0;
-  
-  return 1;
-}
-
-
-char *hd_shm_add_str(hd_data_t *hd_data, char *str)
-{
-  return hd_shm_add(hd_data, str, str ? strlen(str) + 1 : 0);
-}
-
-
-str_list_t *hd_shm_add_str_list(hd_data_t *hd_data, str_list_t *sl)
-{
-  str_list_t *sl0 = NULL, **sl_shm;
-
-  for(sl_shm = &sl0; sl; sl = sl->next, sl_shm = &(*sl_shm)->next) {
-    *sl_shm = hd_shm_add(hd_data, NULL, sizeof **sl_shm);
-    (*sl_shm)->str = hd_shm_add_str(hd_data, sl->str);
-  }
-
-  return sl0;
-}
-
-
-void hd_move_to_shm(hd_data_t *hd_data)
-{
-  hd_data_t *hd_data_shm;
-  ser_device_t *ser, **ser_shm;
-  struct {
-    ser_device_t **src, **dst;
-  } ser_dev[2];
-  unsigned u;
-
-  if(!hd_data->shm.ok) return;
-
-  hd_data_shm = hd_data->shm.data;
-
-  ser_dev[0].src = &hd_data->ser_mouse;
-  ser_dev[0].dst = &hd_data_shm->ser_mouse;
-  ser_dev[1].src = &hd_data->ser_modem;
-  ser_dev[1].dst = &hd_data_shm->ser_modem;
-
-  for(u = 0; u < sizeof ser_dev / sizeof *ser_dev; u++) {
-    if(*ser_dev[u].src) {
-      /* copy serial mouse data */
-      for(
-        ser = *ser_dev[u].src, ser_shm = ser_dev[u].dst;
-        ser;
-        ser = ser->next, ser_shm = &(*ser_shm)->next
-      ) {
-        *ser_shm = hd_shm_add(hd_data, ser, sizeof *ser);
-      }
-
-      for(ser = *ser_dev[u].dst; ser; ser = ser->next) {
-        ser->dev_name = hd_shm_add_str(hd_data, ser->dev_name);
-        ser->serial = hd_shm_add_str(hd_data, ser->serial);
-        ser->class_name = hd_shm_add_str(hd_data, ser->class_name);
-        ser->dev_id = hd_shm_add_str(hd_data, ser->dev_id);
-        ser->user_name = hd_shm_add_str(hd_data, ser->user_name);
-        ser->vend = hd_shm_add_str(hd_data, ser->vend);
-        ser->init_string1 = hd_shm_add_str(hd_data, ser->init_string1);
-        ser->init_string2 = hd_shm_add_str(hd_data, ser->init_string2);
-        ser->pppd_option = hd_shm_add_str(hd_data, ser->pppd_option);
-
-        ser->at_resp = hd_shm_add_str_list(hd_data, ser->at_resp);
-      }
-    }
-  }
-
-}
-
-
-hd_udevinfo_t *hd_free_udevinfo(hd_udevinfo_t *ui)
-{
-  hd_udevinfo_t *next;
-
-  for(; ui; ui = next) {
-    next = ui->next;
-
-    free_mem(ui->sysfs);
-    free_mem(ui->name);
-    free_str_list(ui->links);
-
-    free_mem(ui);
-  }
-
-  return NULL;
-}
-
-
-void read_udevinfo(hd_data_t *hd_data)
-{
-  str_list_t *sl, *udevinfo, *sl0, *sl1, *dir_list;
-  hd_udevinfo_t **uip, *ui;
-  char *s, buf[256];
-  int l;
-
-  udevinfo = NULL;
-
-  if((dir_list = read_dir("/dev/.udevdb", 'r'))) {
-    s = NULL;
-
-    for(sl = dir_list; sl; sl = sl->next) {
-      str_printf(&s, 0, "/dev/.udevdb/%s", sl->str);
-      sl0 = read_file(s, 0, 0);
-      if(sl0) {
-        sl1 = udevinfo;
-        udevinfo = sl0;
-        while(sl0->next) sl0 = sl0->next;
-        sl0->next = sl1;
-      }
-    }
-
-    s = free_mem(s);
-    free_str_list(dir_list);
-  }
-  else {
-    udevinfo = read_file("| " PROG_UDEVINFO " -d 2>/dev/null", 0, 0);
-  }
-
-  ADD2LOG("-----  udevinfo -----\n");
-  for(sl = udevinfo; sl; sl = sl->next) {
-    ADD2LOG("  %s", sl->str);
-  }
-  ADD2LOG("-----  udevinfo end -----\n");
-
-  hd_data->udevinfo = hd_free_udevinfo(hd_data->udevinfo);
-
-  uip = &hd_data->udevinfo;
-
-  for(ui = NULL, sl = udevinfo; sl; sl = sl->next) {
-    if(sscanf(sl->str, "P: %255s", buf) == 1) {
-      ui = *uip = new_mem(sizeof **uip);
-      uip = &(*uip)->next;
-      ui->sysfs = new_str(buf);
-
-      continue;
-    }
-
-    if(sscanf(sl->str, "T: %255s", buf) == 1) {
-      ui->type = *buf;
-
-      continue;
-    }
-
-    if(sscanf(sl->str, "N: %255s", buf) == 1) {
-      free_mem(ui->name);
-      ui->name = new_str(buf);
-
-      continue;
-    }
-
-    if(!strncmp(sl->str, "S:", 2)) {
-      s = sl->str + 2;
-      while(*s == ' ') s++;
-      l = strlen(s);
-      while(l > 0 && isspace(s[l-1])) s[--l] = 0;
-      if(*s) {
-        sl0 = hd_split(' ', s);
-        for(sl1 = sl0; sl1; sl1 = sl1->next) {
-          add_str_list(&ui->links, sl1->str);
-        }
-        free_str_list(sl0);
-      }
-
-      continue;
-    }
-  }
-
-  for(ui = hd_data->udevinfo; ui; ui = ui->next) {
-    ADD2LOG("%s\n", ui->sysfs);
-    if(ui->name) ADD2LOG("  name: %s\n", ui->name);
-    if(ui->links) {
-      s = hd_join(", ", ui->links);
-      ADD2LOG("  links: %s\n", s);
-      free_mem(s);
-    }
-  }
-
-  free_str_list(udevinfo);
-}
-
-
-/*
- * Return libhd version.
- */
-char *hd_version()
-{
-  return HD_VERSION_STRING;
-}
-
-
-hd_t *hd_find_sysfs_id(hd_data_t *hd_data, char *id)
-{
-  hd_t *hd;
-
-  if(id && *id) {
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(hd->sysfs_id && !strcmp(hd->sysfs_id, id)) return hd;
-    }
-  }
-
-  return NULL;
-}
-
-
-hd_sysfsdrv_t *hd_free_sysfsdrv(hd_sysfsdrv_t *sf)
-{
-  hd_sysfsdrv_t *next;
-
-  for(; sf; sf = next) {
-    next = sf->next;
-
-    free_mem(sf->driver);
-    free_mem(sf->device);
-
-    free_mem(sf);
-  }
-
-  return NULL;
-}
-
-
-void hd_sysfs_driver_list(hd_data_t *hd_data)
-{
-  char *bus;
-  hd_sysfsdrv_t **sfp, *sf;
-  str_list_t *sl, *sl0;
-  uint64_t id = 0;
-
-  struct sysfs_bus *sf_bus;
-  struct sysfs_driver *sf_drv;
-  struct sysfs_device *sf_dev;
-
-  struct dlist *sf_subsys;
-  struct dlist *sf_drv_list;
-  struct dlist *sf_dev_list;
-
-
-  for(sl = sl0 = read_file(PROC_MODULES, 0, 0); sl; sl = sl->next) {
-    crc64(&id, sl->str, strlen(sl->str) + 1);
-  }
-  free_str_list(sl0);
-
-  if(id != hd_data->sysfsdrv_id) {
-    hd_data->sysfsdrv = hd_free_sysfsdrv(hd_data->sysfsdrv);
-  }
-
-  if(hd_data->sysfsdrv) return;
-
-  hd_data->sysfsdrv_id = id;
-
-  sfp = &hd_data->sysfsdrv;
-
-  ADD2LOG("----- sysfs driver list (id 0x%016"PRIx64") -----\n", id);
-
-  sf_subsys = sysfs_open_subsystem_list("bus");
-
-  if(sf_subsys) dlist_for_each_data(sf_subsys, bus, char) {
-    sf_bus = sysfs_open_bus(bus);
-
-    if(sf_bus) {
-      sf_drv_list = sysfs_get_bus_drivers(sf_bus);
-      if(sf_drv_list) dlist_for_each_data(sf_drv_list, sf_drv, struct sysfs_driver) {
-        sf_dev_list = sysfs_get_driver_devices(sf_drv);
-        if(sf_dev_list) dlist_for_each_data(sf_dev_list, sf_dev, struct sysfs_device) {
-          sf = *sfp = new_mem(sizeof **sfp);
-          sfp = &(*sfp)->next;
-          sf->driver = new_str(sf_drv->name);
-          sf->device = new_str(hd_sysfs_id(sf_dev->path));
-          ADD2LOG("%16s: %s\n", sf->driver, sf->device);
-        }
-      }
-
-      sysfs_close_bus(sf_bus);
-    }
-  }
-
-  sysfs_close_list(sf_subsys);
-
-  ADD2LOG("----- sysfs driver list end -----\n");
-}
-
-
-int hd_report_this(hd_data_t *hd_data, hd_t *hd)
-{
-  if(!hd_data->only) return 1;
-
-  if(search_str_list(hd_data->only, hd->sysfs_id)) return 1;
-
-  return search_str_list(hd_data->only, hd->unix_dev_name) ? 1 : 0;
-}
-
-
-str_list_t *hd_module_list(hd_data_t *hd_data, unsigned id)
-{
-  hd_t *hd;
-  str_list_t *drivers = NULL, *sl;
-  driver_info_t *di;
-
-  hd = new_mem(sizeof *hd);
-  hd->tag.freeit = 1; 
-
-  hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0xf000);
-  hd->device.id = MAKE_ID(TAG_SPECIAL, id);
-
-  hddb_add_info(hd_data, hd);
-
-  for(di = hd->driver_info; di; di = di->next) {
-    if(di->any.type == di_module && di->module.modprobe) {
-      for(sl = di->module.names; sl; sl = sl->next) {
-        add_str_list(&drivers, sl->str);
-      }
-    }
-  }
-
-  hd_free_hd_list(hd);
-
-  return drivers;
-}
-
-
-/*
- * Read using mmap().
- */
-int hd_read_mmap(hd_data_t *hd_data, char *name, unsigned char *buf, off_t start, unsigned size)
-{
-  off_t map_start, xofs;
-  int psize = getpagesize(), fd;
-  unsigned map_size;
-  void *p;
-  struct stat sbuf;
-
-  if(!size || !name) return 0;
-
-  memset(buf, 0, size);
-
-  map_start = start & -psize;
-  xofs = start - map_start;
-
-  map_size = (xofs + size + psize - 1) & -psize;
-
-  fd = open(name, O_RDONLY);
-
-  if(fd == -1) return 0;
-
-  if(!fstat(fd, &sbuf) && S_ISREG(sbuf.st_mode)) {
-    if(sbuf.st_size < start + size) {
-      if(sbuf.st_size > start) {
-        size = sbuf.st_size - start;
-      }
-      else {
-        size = 0;
-      }
-    }
-  }
-
-  if(!size) {
-    close(fd);
-    return 0;
-  }
-
-  p = mmap(NULL, map_size, PROT_READ, MAP_PRIVATE, fd, map_start);
-
-  if(p == MAP_FAILED) {
-    if(hd_data) ADD2LOG(
-      "%s[0x%x, %u]: mmap(, %u,,,, 0x%x) failed: %s\n",
-      name, (unsigned) start, size, map_size, (unsigned) map_start, strerror(errno)
-    );
-    close(fd);
-    return 0;
-  }
-  if(hd_data) ADD2LOG(
-    "%s[0x%x, %u]: mmap(, %u,,,, 0x%x) ok\n",
-    name, (unsigned) start, size, map_size, (unsigned) map_start
-  );
-
-  memcpy(buf, p + xofs, size);
-
-  munmap(p, map_size);
-
-  close(fd);
-
-  return 1;
-}
-
-
diff --git a/src/hwinfo/src/hd/hd.h b/src/hwinfo/src/hd/hd.h
deleted file mode 100644 (file)
index 2e61cce..0000000
+++ /dev/null
@@ -1,2488 +0,0 @@
-#ifndef _HD_H
-#define _HD_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *
- *                      libhd data structures
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#define HD_VERSION     10
-
-/*
- * debug flags
- */
-#define HD_DEB_SHOW_LOG                (1 <<  0)
-#define HD_DEB_PROGRESS                (1 <<  1)
-#define HD_DEB_CREATION                (1 <<  2)
-#define HD_DEB_DRIVER_INFO     (1 <<  3)
-#define HD_DEB_PCI             (1 <<  4)
-#define HD_DEB_ISAPNP          (1 <<  5)
-#define HD_DEB_CDROM           (1 <<  6)
-#define HD_DEB_NET             (1 <<  7)
-#define HD_DEB_FLOPPY          (1 <<  8)
-#define HD_DEB_MISC            (1 <<  9)
-#define HD_DEB_SERIAL          (1 << 10)
-#define HD_DEB_MONITOR         (1 << 11)
-#define HD_DEB_CPU             (1 << 12)
-#define HD_DEB_BIOS            (1 << 13)
-#define HD_DEB_MOUSE           (1 << 14)
-#define HD_DEB_IDE             (1 << 15)
-#define HD_DEB_SCSI            (1 << 16)
-#define HD_DEB_USB             (1 << 17)
-#define HD_DEB_ADB             (1 << 18)
-#define HD_DEB_MODEM           (1 << 19)
-#define HD_DEB_PARALLEL                (1 << 20)
-#define HD_DEB_ISA             (1 << 21)
-#define HD_DEB_BOOT            (1 << 22)
-#define HD_DEB_HDDB            (1 << 23)
-
-#include <stdio.h>
-#include <inttypes.h>
-#include <termios.h>
-#include <sys/types.h>
-
-/*
- * libhd's directory
- */
-#define HARDWARE_DIR           "/var/lib/hardware"
-#define HARDWARE_UNIQUE_KEYS   HARDWARE_DIR "/unique-keys"
-
-/**
- * \defgroup idmacros Id macros
- * Macros to handle device and vendor ids.
- *
- * Example: to check if an id is a pci id and get its value,
- * do something like this:
- * \code
- * if(ID_TAG(hd->dev) == TAG_PCI) {
- *   pci_id = ID_VALUE(hd->dev)
- * }
- * \endcode
- *@{
- */
-
-#define TAG_PCI                1       /**< PCI ids. */
-#define TAG_EISA       2       /**< EISA ids (monitors, ISA-PnP, modems, mice etc). */
-#define TAG_USB                3       /**< USB ids. */
-#define TAG_SPECIAL    4       /**< Internally used ids. */
-#define TAG_PCMCIA     5       /**< PCMCIA ids. */
-
-/**
- * Get the real id value.
- */
-#define ID_VALUE(id)           ((id) & 0xffff)
-
-/**
- * Get the tag value.
- */
-#define ID_TAG(id)             (((id) >> 16) & 0xf)
-
-/**
- * Combine tag and id value.
- */
-#define MAKE_ID(tag, id_val)   ((tag << 16) | (id_val))
-
-/*@}*/
-
-/*
- * flags to control the probing.
- */
-typedef enum probe_feature {
-  pr_memory = 1, pr_pci, pr_isapnp, pr_net, pr_floppy, pr_misc,
-  pr_misc_serial, pr_misc_par, pr_misc_floppy, pr_serial, pr_cpu, pr_bios,
-  pr_monitor, pr_mouse, pr_scsi, pr_usb, pr_usb_mods, pr_adb, pr_modem,
-  pr_modem_usb, pr_parallel, pr_parallel_lp, pr_parallel_zip, pr_isa,
-  pr_isa_isdn, pr_isdn, pr_kbd, pr_prom, pr_sbus, pr_int, pr_braille,
-  pr_braille_alva, pr_braille_fhp, pr_braille_ht, pr_ignx11, pr_sys,
-  pr_bios_vbe, pr_isapnp_old, pr_isapnp_new, pr_isapnp_mod, pr_braille_baum,
-  pr_manual, pr_fb, pr_veth, pr_pppoe, pr_scan, pr_pcmcia, pr_fork,
-  pr_parallel_imm, pr_s390, pr_cpuemu, pr_sysfs, pr_s390disks, pr_udev,
-  pr_block, pr_block_cdrom, pr_block_part, pr_edd, pr_edd_mod, pr_bios_ddc,
-  pr_bios_fb, pr_bios_mode, pr_input, pr_block_mods, pr_bios_vesa,
-  pr_cpuemu_debug, pr_scsi_noserial, pr_wlan,
-  pr_max, pr_lxrc, pr_dsl, pr_default, pr_all          /* pr_all must be last */
-} hd_probe_feature_t;
-
-/*
- * list types for hd_list()
- *
- * if you want to modify this: cf. manual.c::hw_items[]
- *
- * Note: hw_tv _must_ be < hw_display!
- */
-typedef enum hw_item {
-  hw_sys = 1, hw_cpu, hw_keyboard, hw_braille, hw_mouse, hw_joystick,
-  hw_printer, hw_scanner, hw_chipcard, hw_monitor, hw_tv, hw_display,
-  hw_framebuffer, hw_camera, hw_sound, hw_storage_ctrl, hw_network_ctrl,
-  hw_isdn, hw_modem, hw_network, hw_disk, hw_partition, hw_cdrom, hw_floppy,
-  hw_manual, hw_usb_ctrl, hw_usb, hw_bios, hw_pci, hw_isapnp, hw_bridge,
-  hw_hub, hw_scsi, hw_ide, hw_memory, hw_dvb, hw_pcmcia, hw_pcmcia_ctrl,
-  hw_ieee1394, hw_ieee1394_ctrl, hw_hotplug, hw_hotplug_ctrl, hw_zip, hw_pppoe,
-  hw_wlan, hw_redasd, hw_dsl, hw_block, hw_tape, hw_vbe, hw_bluetooth,
-  /* append new entries here */
-  hw_unknown, hw_all                                   /* hw_all must be last */
-} hd_hw_item_t;
-
-/*
- * device base classes and bus types
- *
- */
-
-/* base class values (superset of PCI classes) */
-typedef enum base_classes {
-  /* these *must* match standard PCI class numbers */
-  bc_none, bc_storage, bc_network, bc_display, bc_multimedia,
-  bc_memory, bc_bridge, bc_comm, bc_system, bc_input, bc_docking,
-  bc_processor, bc_serial, bc_wireless, bc_i2o, bc_other = 0xff,
-
-  // add our own classes here (starting at 0x100 as PCI values are 8 bit)
-  bc_monitor = 0x100, bc_internal, bc_modem, bc_isdn, bc_ps2, bc_mouse,
-  bc_storage_device, bc_network_interface, bc_keyboard, bc_printer,
-  bc_hub, bc_braille, bc_scanner, bc_joystick, bc_chipcard, bc_camera,
-  bc_framebuffer, bc_dvb, bc_tv, bc_partition, bc_dsl, bc_bluetooth
-} hd_base_classes_t;
-
-/* subclass values of bc_monitor */
-typedef enum sc_monitor {
-  sc_mon_other, sc_mon_crt, sc_mon_lcd
-} hd_sc_monitor_t;
-
-/* subclass values of bc_storage */
-typedef enum sc_storage {
-  sc_sto_scsi, sc_sto_ide, sc_sto_floppy, sc_sto_ipi, sc_sto_raid,
-  sc_sto_other = 0x80
-} hd_sc_storage_t;
-
-/* subclass values of bc_display */
-typedef enum sc_display {
-  sc_dis_vga, sc_dis_xga, sc_dis_other = 0x80
-} hd_sc_display_t;
-
-/* subclass values of bc_framebuffer */
-typedef enum sc_framebuffer {
-  sc_fb_vesa = 1
-} hd_sc_framebuffer_t;
-
-/* subclass values of bc_bridge */
-typedef enum sc_bridge { 
-  sc_bridge_host, sc_bridge_isa, sc_bridge_eisa, sc_bridge_mc,
-  sc_bridge_pci, sc_bridge_pcmcia, sc_bridge_nubus, sc_bridge_cardbus,
-  sc_bridge_other = 0x80
-} hd_sc_bridge_t;
-
-/* subclass values of bc_comm */
-typedef enum sc_comm { 
-  sc_com_ser, sc_com_par, sc_com_multi, sc_com_modem, sc_com_other = 0x80
-} hd_sc_comm_t;
-
-/* subclass values of bc_system */
-typedef enum sc_system {
-  sc_sys_pic, sc_sys_dma, sc_sys_timer, sc_sys_rtc, sc_sys_other = 0x80
-} hd_sc_system_t;
-
-/* subclass values of bc_input */
-typedef enum sc_input {
-  sc_inp_keyb, sc_inp_digit, sc_inp_mouse, sc_inp_other = 0x80
-} hd_sc_input_t;
-
-/* subclass values of bc_serial */
-typedef enum sc_serial {
-  sc_ser_fire, sc_ser_access, sc_ser_ssa, sc_ser_usb, sc_ser_fiber,
-  sc_ser_smbus, sc_ser_other = 0x80
-} hd_sc_serial_t;
-
-/* internal sub class values (bc_internal) */
-typedef enum sc_internal {
-  sc_int_none, sc_int_isapnp_if, sc_int_main_mem, sc_int_cpu, sc_int_fpu,
-  sc_int_bios, sc_int_prom, sc_int_sys
-} hd_sc_internal_t;
-
-/* subclass values of bc_mouse */
-typedef enum sc_mouse {
-  sc_mou_ps2, sc_mou_ser, sc_mou_bus, sc_mou_usb, sc_mou_sun,
-  sc_mou_other = 0x80
-} hd_sc_mouse_t;
-
-/* subclass values of bc_storage_device */
-typedef enum sc_std {
-  sc_sdev_disk, sc_sdev_tape, sc_sdev_cdrom, sc_sdev_floppy, sc_sdev_scanner,
-  sc_sdev_other = 0x80
-} hd_sc_std_t;
-
-/* subclass values of bc_network_interface */
-typedef enum sc_net_if {
-  sc_nif_loopback, sc_nif_ethernet, sc_nif_tokenring, sc_nif_fddi,
-  sc_nif_ctc, sc_nif_iucv, sc_nif_hsi, sc_nif_qeth,
-  sc_nif_escon, sc_nif_myrinet, sc_nif_wlan, sc_nif_xp,
-  sc_nif_usb, sc_nif_other = 0x80, sc_nif_sit
-} hd_sc_net_if_t;
-
-/* subclass values of bc_multimedia */
-typedef enum sc_multimedia {
-  sc_multi_video, sc_multi_audio, sc_multi_other
-} hd_sc_multimedia_t;
-
-/* subclass values of bc_keyboard */
-typedef enum sc_keyboard {
-  sc_keyboard_kbd, sc_keyboard_console
-} hd_sc_keyboard_t;
-
-/* subclass values of bc_hub */
-typedef enum sc_hub {
-  sc_hub_other, sc_hub_usb
-} hd_sc_hub_t;
-
-/* subclass values of bc_camera */
-typedef enum sc_camera {
-  sc_camera_webcam, sc_camera_digital
-} hd_sc_camera_t;
-
-/* subclass values of bc_modem */
-typedef enum sc_modem {
-  sc_mod_at, sc_mod_win1, sc_mod_win2, sc_mod_win3, sc_mod_win4
-} hd_sc_modem_t;
-
-/* subclass values of bc_dsl */
-typedef enum sc_dsl {
-  sc_dsl_unknown, sc_dsl_pppoe, sc_dsl_capi, sc_dsl_capiisdn
-} hd_sc_dsl_t;
-
-/* prog_if's of sc_ser_usb */
-typedef enum pif_usb_e {
-  pif_usb_uhci = 0, pif_usb_ohci = 0x10, pif_usb_ehci = 0x20,
-  pif_usb_other = 0x80, pif_usb_device = 0xfe
-} hd_pif_usb_t;
-
-/* CD-ROM  prog_if values */
-typedef enum pif_cdrom {
-  pif_cdrom, pif_cdr, pif_cdrw, pif_dvd, pif_dvdr, pif_dvdram
-} hd_pif_cdrom_t ;
-
-/* S/390 disk prog_if values */
-typedef enum pif_s390disk {
-  pif_scsi, pif_dasd, pif_dasd_fba
-} hd_pif_s390disk_t;
-
-/* bus type values similar to PCI bridge subclasses */
-typedef enum bus_types {
-  bus_none, bus_isa, bus_eisa, bus_mc, bus_pci, bus_pcmcia, bus_nubus,
-  bus_cardbus, bus_other,
-
-  /* outside the range of the PCI values */
-  bus_ps2 = 0x80, bus_serial, bus_parallel, bus_floppy, bus_scsi, bus_ide, bus_usb,
-  bus_adb, bus_raid, bus_sbus, bus_i2o, bus_vio, bus_ccw, bus_iucv
-} hd_bus_types_t;
-
-/**
- * Hardware status.
- * The status is stored in /var/lib/hardware/unique-keys/ and used
- * to detect if the hardware is new and has to be configured by some
- * hardware %config tool.
- */
-typedef struct {
-  /**
-   * Status fields are invalid.
-   */
-  unsigned invalid:1;
-  /**
-   * Hardware should be reconfigured.
-   * Either \ref hd_status_t::status_yes or \ref hd_status_t::status_no.
-   * A hardware must be reconfigured if it is in state
-   * \ref hd_status_t::available == \ref hd_status_t::status_no and
-   * \ref hd_status_t::needed == \ref hd_status_t::status_yes.
-   * In other words, if a hardware that was
-   * needed to run the system is gone.
-   */
-  unsigned reconfig:3;
-
-  /**
-   * Hardware %config status.
-   * Set to \ref hd_status_t::status_yes if the hardware has been configured, otherwise
-   * \ref hd_status_t::status_no.
-   */
-  unsigned configured:3;
-
-  /**
-   * Hardware availability.
-   * Set to \ref hd_status_t::status_yes if the hardware has been detected or
-   * \ref hd_status_t::status_no if the hardware has not been found. You can set
-   * it to \ref hd_status_t::status_unknown to indicate that this hardware cannot
-   * be automatically detected (say, ISA cards).
-   * \note You can simulate all kinds of hardware on your system by
-   * creating entries in /var/lib/hardware/unique-keys/ that have
-   * \ref hd_status_t::available set to \ref hd_status_t::status_unknown.
-   */
-  unsigned available:3;
-
-  /**
-   * Hardware is needed.
-   * Set to \ref hd_status_t::status_yes if this hardware is really necessary to run
-   * your computer. The effect will be that some hardware %config dialog
-   * is run if the hardware item is not found.
-   * Typical examples are graphics cards and mice.
-   */
-  unsigned needed:3;
-
-  /**
-   * (Internal) original value of \ref available;
-   * This is used to keep track of the original value of the \ref hd_status_t::available
-   * state as it was stored in /var/lib/hardware/unique-keys/. (\ref hd_status_t::available
-   * is automatically updated during the detection process.)
-   */
-  unsigned available_orig:3;
-
-  /**
-   * Hardware is active.
-   */
-  unsigned active:3;
-} hd_status_t;
-
-/* hardware config status values */
-typedef enum {
-  status_no = 1, status_yes, status_unknown, status_new
-} hd_status_value_t;
-
-/**
- * Various types of hotplug devices.
- */
-typedef enum {
-  hp_none,     /**< Not a hotpluggable %device. */
-  hp_pcmcia,   /**< PCMCIA %device. */
-  hp_cardbus,  /**< Cardbus %device. */
-  hp_pci,      /**< PCI hotplug %device. */
-  hp_usb,      /**< USB %device. */
-  hp_ieee1394  /**< IEEE 1394 (FireWire) %device */
-} hd_hotplug_t;
-
-
-/**
- * Holds id/name pairs.
- * Used for bus, class, vendor, %device and such.
- */
-typedef struct {
-  unsigned id;         /**< Numeric id. */
-  char *name;          /**< Name (if any) that corresponds to \ref hd_id_t::id. */
-} hd_id_t;
-
-/**
- * String list type.
- * Used whenever we create a list of strings (e.g. file read).
- */
-typedef struct s_str_list_t {
-  struct s_str_list_t *next;   /**< Link to next member. */
-  char *str;                   /**< Some string data. */
-} str_list_t;
-
-
-typedef struct {
-  unsigned char bitmap[16];    /* large enough for all uses */
-  unsigned bits;               /* real bitmap length in bits */
-  unsigned not_empty:1;                /* at least 1 bit is set */
-  str_list_t *str;             /* interpreted bitmask */
-} hd_bitmap_t;
-
-
-/*
- * for memory areas
- */
-typedef struct {
-  unsigned start, size;                /* base address & size */
-  unsigned char *data;         /* actual data */
-} memory_range_t;
-
-
-/*
- * smp info according to Intel smp spec (ia32)
- */
-typedef struct {
-  unsigned ok:1;               /* data are valid */
-  unsigned rev;                        /* MP spec revision */
-  unsigned mpfp;               /* MP Floating Pointer struct */
-  unsigned mpconfig_ok:1;      /* MP config table valid */
-  unsigned mpconfig;           /* MP config table */
-  unsigned mpconfig_size;      /* dto, size */
-  unsigned char feature[5];    /* MP feature info */
-  char oem_id[9];              /* oem id */
-  char prod_id[13];            /* product id */
-  unsigned cpus, cpus_en;      /* number of cpus & ennabled cpus */
-} smp_info_t;
-
-
-/*
- * vesa bios extensions info
- */
-typedef struct vbe_mode_info_s {
-  unsigned number;             /* mode number */
-  unsigned attributes;         /* mode attributes */
-  unsigned width, height;      /* mode size */
-  unsigned bytes_p_line;       /* line length */
-  unsigned pixel_size;         /* bits per pixel */
-  unsigned fb_start;           /* frame buffer start address (if any) */
-  unsigned win_A_start;                /* window A start address */
-  unsigned win_A_attr;         /* window A attributes */
-  unsigned win_B_start;                /* window B start address */
-  unsigned win_B_attr;         /* window B attributes */
-  unsigned win_size;           /* window size in bytes */
-  unsigned win_gran;           /* window granularity in bytes */
-  unsigned pixel_clock;                /* maximum pixel clock */
-} vbe_mode_info_t;
-
-
-typedef struct {
-  unsigned ok:1;               /* data are valid */
-  unsigned version;            /* vbe version */
-  unsigned oem_version;                /* oem version info */
-  unsigned memory;             /* in bytes */
-  unsigned fb_start;           /* != 0 if framebuffer is supported */
-  char *oem_name;              /* oem name */
-  char *vendor_name;           /* vendor name */
-  char *product_name;          /* product name */
-  char *product_revision;      /* product revision */
-  unsigned modes;              /* number of supported video modes */
-  vbe_mode_info_t *mode;       /* video mode list */
-  unsigned current_mode;       /* current video mode */
-  unsigned char ddc[0x80];     /* ddc monitor info */
-} vbe_info_t;
-
-
-/*
- * Compaq Controller Order EV (CQHORD) definition
- */
-typedef struct {
-    unsigned id;
-    unsigned char slot;
-    unsigned char bus;
-    unsigned char devfn;
-    unsigned char misc;
-} cpq_ctlorder_t; 
-
-
-typedef struct {
-  unsigned ok:1;               /* data are valid */
-  unsigned entry;              /* entry point */
-  unsigned compaq:1;           /* is compaq system */
-  cpq_ctlorder_t cpq_ctrl[32]; /* 32 == MAX_CONTROLLERS */
-} bios32_info_t;
-
-
-/*
- * smbios entries
- */
-typedef enum {
-  sm_biosinfo, sm_sysinfo, sm_boardinfo, sm_chassis,
-  sm_processor, sm_memctrl, sm_memmodule, sm_cache,
-  sm_connect, sm_slot, sm_onboard, sm_oem,
-  sm_config, sm_lang, sm_group, sm_eventlog,
-  sm_memarray, sm_memdevice, sm_memerror, sm_memarraymap,
-  sm_memdevicemap, sm_mouse, sm_battery, sm_reset,
-  sm_secure, sm_power, sm_voltage, sm_cool,
-  sm_temperature, sm_current, sm_outofband, sm_bis,
-  sm_boot, sm_mem64error, sm_mandev, sm_mandevcomp,
-  sm_mdtd, sm_inactive = 126, sm_end = 127
-} hd_smbios_type_t;
-
-
-/* common part of all smbios_* types */
-typedef struct {
-  union u_hd_smbios_t *next;   /* link to next entry */
-  hd_smbios_type_t type;       /* BIOS info type */
-  int data_len;                        /* formatted section length */
-  unsigned char *data;         /* formatted section */
-  str_list_t *strings;         /* strings taken from the unformed section */
-  int handle;                  /* handle, unique 16 bit number */
-} smbios_any_t;
-
-
-/* BIOS related information */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  char *vendor;                        /* vendor name */
-  char *version;               /* version (free form) */
-  char *date;                  /* date mm/dd/yyyy (old: yy) */
-  hd_bitmap_t feature;         /* BIOS characteristics */
-  unsigned start;              /* start address */
-  unsigned rom_size;           /* ROM size (in bytes) */
-} smbios_biosinfo_t;
-
-
-/* overall system related information */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  char *manuf;                 /* manufacturer */
-  char *product;               /* product name */
-  char *version;               /* version */
-  char *serial;                        /* serial number */
-  unsigned char uuid[16];      /* universal unique id; all 0x00: undef, all 0xff: undef but settable */
-  hd_id_t wake_up;             /* wake-up type */
-} smbios_sysinfo_t;
-
-
-/* motherboard related information */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  char *manuf;                 /* manufacturer */
-  char *product;               /* product name */
-  char *version;               /* version */
-  char *serial;                        /* serial number */
-  char *asset;                 /* asset tag */
-  hd_id_t board_type;          /* board type */
-  hd_bitmap_t feature;         /* board features */
-  char *location;              /* location in chassis */
-  int chassis;                 /* handle of chassis */
-  int objects_len;             /* number of contained objects */
-  int *objects;                        /* array of object handles */
-} smbios_boardinfo_t;
-
-
-/* chassis information */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  char *manuf;                 /* manufacturer */
-  char *version;               /* version */
-  char *serial;                        /* serial number */
-  char *asset;                 /* asset tag */
-  hd_id_t ch_type;             /* chassis type */
-  unsigned lock;               /* 1: lock present, 0: not present or unknown */
-  hd_id_t bootup;              /* bootup state */
-  hd_id_t power;               /* power supply state (at last boot) */
-  hd_id_t thermal;             /* thermal state (at last boot) */
-  hd_id_t security;            /* security state (at last boot) */
-  unsigned oem;                        /* OEM-specific information */
-} smbios_chassis_t;
-
-
-/* processor information */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  char *socket;                        /* socket */
-  hd_id_t upgrade;             /* socket type */
-  char *manuf;                 /* manufacturer */
-  char *version;               /* version */
-  char *serial;                        /* serial number */
-  char *asset;                 /* asset tag */
-  char *part;                  /* part number */
-  hd_id_t pr_type;             /* processor type */
-  hd_id_t family;              /* processor family */
-  uint64_t cpu_id;             /* processor id */
-  unsigned voltage;            /* in 0.1 V */
-  unsigned ext_clock;          /* MHz */
-  unsigned max_speed;          /* MHz */
-  unsigned current_speed;      /* MHz */
-  unsigned sock_status;                /* socket status (1: populated, 0: empty */
-  hd_id_t cpu_status;          /* cpu status */
-  int l1_cache;                        /* handle of L1 cache */
-  int l2_cache;                        /* handle of L2 cache */
-  int l3_cache;                        /* handle of L3 cache */
-} smbios_processor_t;
-
-
-/* cache information */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  char *socket;                        /* socket designation */
-  unsigned max_size;           /* max cache size in kbytes */
-  unsigned current_size;       /* current size in kbytes */
-  unsigned speed;              /* cache speed in nanoseconds */
-  hd_id_t mode;                        /* operational mode */
-  unsigned state;              /* 0/1: disabled/enabled */
-  hd_id_t location;            /* cache location */
-  unsigned socketed;           /* 0/1: not socketed/socketed */
-  unsigned level;              /* cache level (0 = L1, 1 = L2, ...) */
-  hd_id_t ecc;                 /* error correction type */
-  hd_id_t cache_type;          /* logical cache type */
-  hd_id_t assoc;               /* cache associativity */
-  hd_bitmap_t supp_sram;       /* supported SRAM types */
-  hd_bitmap_t sram;            /* current SRAM type */
-} smbios_cache_t;
-
-
-/* port connector information */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  hd_id_t port_type;           /* port type */
-  char *i_des;                 /* internal reference designator */
-  hd_id_t i_type;              /* internal connector type */
-  char *x_des;                 /* external reference designator */
-  hd_id_t x_type;              /* external connector type */
-} smbios_connect_t;
-
-
-/* system slot information */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  char *desig;                 /* slot designation */
-  hd_id_t slot_type;           /* slot type */
-  hd_id_t bus_width;           /* data bus width */
-  hd_id_t usage;               /* current usage */
-  hd_id_t length;              /* slot length */
-  unsigned id;                 /* slot id */
-  hd_bitmap_t feature;         /* slot characteristics */
-} smbios_slot_t;
-
-
-/* on board devices information */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  unsigned dev_len;            /* device list length */
-  struct {
-    char *name;                        /* device name */
-    hd_id_t type;              /* device type */
-    unsigned status;           /* 0: disabled, 1: enabled */
-  } *dev;                      /* device list  */
-} smbios_onboard_t;
-
-
-/* OEM information */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  str_list_t *oem_strings;     /* OEM strings */
-} smbios_oem_t;
-
-
-/* system config options */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  str_list_t *options;         /* system config options */
-} smbios_config_t;
-
-
-/* language information */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;         /* list of languages */
-  int handle;
-  char *current;               /* current language */
-} smbios_lang_t;
-
-
-/* group associations */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  char *name;                  /* group name */
-  int items_len;               /* number of items in this group */
-  int *item_handles;           /* array of item handles */
-} smbios_group_t;
-
-
-/* physical memory array (consists of several memory devices) */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  hd_id_t location;            /* memory device location */
-  hd_id_t use;                 /* memory usage */
-  hd_id_t ecc;                 /* ECC types */
-  unsigned max_size;           /* maximum memory size in kB */
-  int error_handle;            /* points to error info record; 0xfffe: not supported, 0xffff: no error */
-  unsigned slots;              /* slots or sockets for this device */
-} smbios_memarray_t;
-
-
-/* memory device */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  char *location;              /* device location */
-  char *bank;                  /* bank location */
-  char *manuf;                 /* manufacturer */
-  char *serial;                        /* serial number */
-  char *asset;                 /* asset tag */
-  char *part;                  /* part number */
-  int array_handle;            /* memory array this device belongs to */
-  int error_handle;            /* points to error info record; 0xfffe: not supported, 0xffff: no error */
-  unsigned width;              /* data width in bits */
-  unsigned eccbits;            /* ecc bits */
-  unsigned size;               /* kB */
-  hd_id_t form;                        /* form factor */
-  unsigned set;                        /* 0: does not belong to a set; 1-0xfe: set number; 0xff: unknown */
-  hd_id_t mem_type;            /* memory type */
-  hd_bitmap_t type_detail;     /* memory type details */
-  unsigned speed;              /* in MHz */
-} smbios_memdevice_t;
-
-
-/* 32-bit memory error information  */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  hd_id_t err_type;            /* error type memory */
-  hd_id_t granularity;         /* memory array or memory partition */
-  hd_id_t operation;           /* mem operation causing the error */
-  unsigned syndrome;           /* vendor-specific ECC syndrome; 0: unknown */
-  unsigned array_addr;         /* fault address rel. to mem array; 0x80000000: unknown */
-  unsigned device_addr;                /* fault address rel to mem device; 0x80000000: unknown */
-  unsigned range;              /* range, within which the error can be determined; 0x80000000: unknown */
-} smbios_memerror_t;
-
-
-/* memory array mapped address */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  int array_handle;            /* memory array this mapping belongs to */
-  uint64_t start_addr;         /* memory range start address */
-  uint64_t end_addr;           /* end address */
-  unsigned part_width;         /* number of memory devices */
-} smbios_memarraymap_t;
-
-
-/* memory device mapped address */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  int memdevice_handle;                /* memory device handle */
-  int arraymap_handle;         /* memory array mapping handle */
-  uint64_t start_addr;         /* memory range start address */
-  uint64_t end_addr;           /* end address */
-  unsigned row_pos;            /* position of the referenced memory device in a row of the address partition */
-  unsigned interleave_pos;     /* dto, in an interleave */
-  unsigned interleave_depth;   /* number of consecutive rows */
-} smbios_memdevicemap_t;
-
-
-/* pointing device (aka 'mouse') information */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  hd_id_t mtype;               /* mouse type */
-  hd_id_t interface;           /* interface type */
-  unsigned buttons;            /* number of buttons */
-} smbios_mouse_t;
-
-
-/* hardware security */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  hd_id_t power;               /* power-on password status */
-  hd_id_t keyboard;            /* keyboard password status */
-  hd_id_t admin;               /* admin password status */
-  hd_id_t reset;               /* front panel reset status */
-} smbios_secure_t;
-
-
-/* system power controls */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  unsigned month;              /* next scheduled power-on month */
-  unsigned day;                        /* dto, day */
-  unsigned hour;               /* dto, hour */
-  unsigned minute;             /* dto, minute */
-  unsigned second;             /* dto, second */
-} smbios_power_t;
-
-
-/* 64-bit memory error information  */
-typedef struct {
-  union u_hd_smbios_t *next;
-  hd_smbios_type_t type;
-  int data_len;
-  unsigned char *data;
-  str_list_t *strings;
-  int handle;
-  hd_id_t err_type;            /* error type memory */
-  hd_id_t granularity;         /* memory array or memory partition */
-  hd_id_t operation;           /* mem operation causing the error */
-  unsigned syndrome;           /* vendor-specific ECC syndrome; 0: unknown */
-  uint64_t array_addr;         /* fault address rel. to mem array; 0x80000000: unknown */
-  uint64_t device_addr;                /* fault address rel to mem device; 0x80000000: unknown */
-  unsigned range;              /* range, within which the error can be determined; 0x80000000: unknown */
-} smbios_mem64error_t;
-
-
-typedef union u_hd_smbios_t {
-  union u_hd_smbios_t *next;  
-  smbios_any_t any;
-  smbios_biosinfo_t biosinfo;
-  smbios_sysinfo_t sysinfo;
-  smbios_boardinfo_t boardinfo;
-  smbios_chassis_t chassis;
-  smbios_processor_t processor;
-  smbios_cache_t cache;
-  smbios_connect_t connect;
-  smbios_slot_t slot;
-  smbios_onboard_t onboard;
-  smbios_oem_t oem;
-  smbios_config_t config;
-  smbios_lang_t lang;
-  smbios_group_t group;
-  smbios_memarray_t memarray;
-  smbios_memdevice_t memdevice;
-  smbios_memerror_t memerror;
-  smbios_memarraymap_t memarraymap;
-  smbios_memdevicemap_t memdevicemap;
-  smbios_mouse_t mouse;
-  smbios_secure_t secure;
-  smbios_power_t power;
-  smbios_mem64error_t mem64error;
-} hd_smbios_t;
-
-
-/*
- * udev database info
- */
-typedef struct s_udevinfo_t {
-  struct s_udevinfo_t *next;
-  char *sysfs;
-  char *name;
-  str_list_t *links;
-  int type;
-} hd_udevinfo_t;
-
-
-/*
- * sysfs driver info
- */
-typedef struct s_sysfsdrv_t {
-  struct s_sysfsdrv_t *next;
-  char *driver;
-  char *device;
-} hd_sysfsdrv_t;
-
-
-/*
- * device number; type is either 0 or 'b' or 'c'.
- *
- * range: number of nodes
- */
-typedef struct {
-  int type;
-  unsigned major, minor, range;
-} hd_dev_num_t;
-
-
-/*
- * structure holding the (raw) PCI data
- */
-typedef struct s_pci_t {
-  struct s_pci_t *next;                                /* linked list */
-  unsigned data_len;                           /* the actual length of the data field */
-  unsigned data_ext_len;                       /* max. accessed config byte; see code */
-  unsigned char data[256];                     /* the PCI data */
-  char *log;                                   /* log messages */
-  unsigned flags,                              /* various info, see enum pci_flags */
-           cmd,                                        /* PCI_COMMAND */
-           hdr_type,                           /* PCI_HEADER_TYPE */
-           secondary_bus;                      /* > 0 for PCI & CB bridges */
-  unsigned bus,                                        /* PCI bus #, *nothing* to do with hw_t.bus */
-           slot, func;                                 /* slot & function */
-  unsigned base_class, sub_class, prog_if;     /* PCI device classes */
-  unsigned dev, vend, sub_dev, sub_vend, rev;  /* vendor & device ids */
-  unsigned irq;                                        /* used irq, if any */
-  uint64_t base_addr[7];                       /* I/O or memory base */
-  uint64_t base_len[7];                                /* I/O or memory ranges */
-  unsigned addr_flags[7];                      /* I/O or memory address flags */
-  uint64_t rom_base_addr;                      /* memory base for card ROM */
-  uint64_t rom_base_len;                       /* memory range for card ROM */
-  char *sysfs_id;                              /* sysfs path */
-  char *sysfs_bus_id;                          /* sysfs bus id */
-} pci_t;
-
-/*
- * pci related flags cf. (pci_t).flags
- */
-typedef enum pci_flags {
-  pci_flag_ok, pci_flag_pm, pci_flag_agp
-} hd_pci_flags_t;
-
-
-/*
- * raw USB data
- */
-typedef struct usb_s {
-  struct usb_s *next;
-  unsigned hd_idx;
-  unsigned hd_base_idx;
-  /* see Linux USB docs */
-  str_list_t *c, *d, *e, *i, *p, *s, *t;
-  struct usb_s *cloned;
-  int bus, dev_nr, lev, parent, port, count, conns, used_conns, ifdescr;
-  unsigned speed;
-  unsigned vendor, device, rev;
-  char *manufact, *product, *serial;
-  char *driver;
-  memory_range_t raw_descr;
-  int d_cls, d_sub, d_prot;
-  int i_alt, i_cls, i_sub, i_prot;
-  unsigned country;
-} usb_t;
-
-/*
- *structures to hold the (raw) ISA-PnP data
- */
-typedef struct {
-  int len;
-  int type;
-  unsigned char *data;
-} isapnp_res_t;
-
-typedef struct {
-  int csn;
-  int log_devs;
-  unsigned char *serial;
-  unsigned char *card_regs;
-  unsigned char (*ldev_regs)[0xd0];
-  int res_len;
-  unsigned broken:1;           /* mark a broken card */
-  isapnp_res_t *res;
-} isapnp_card_t;
-
-typedef struct {
-  int read_port;
-  int cards;
-  isapnp_card_t *card;
-} isapnp_t;
-
-typedef struct {
-  isapnp_card_t *card;
-  int dev;
-  unsigned flags;                              /* cf. enum isapnp_flags */
-  unsigned ref:1;                              /* internally used flag */
-} isapnp_dev_t;
-
-/*
- * ISA-PnP related flags; cf. (isapnp_dev_t).flags
- */
-typedef enum isapnp_flags {
-  isapnp_flag_act
-} hd_isapnp_flags_t;
-
-
-/*
- * raw SCSI data
- */
-typedef struct scsi_s {
-  struct scsi_s *next;
-  unsigned deleted:1;
-  unsigned generic:1;
-  unsigned fake:1;
-  char *dev_name;
-  char *guessed_dev_name;
-  int generic_dev;
-  unsigned host, channel, id, lun;
-  char *vendor, *model, *rev, *type_str, *serial;
-  int type;
-  unsigned inode_low;
-  char *proc_dir, *driver;
-  unsigned unique;
-  char *info;
-  unsigned lgeo_c, lgeo_h, lgeo_s;
-  unsigned pgeo_c, pgeo_h, pgeo_s;
-  uint64_t size;
-  unsigned sec_size;
-  unsigned cache;
-  str_list_t *host_info;
-  char *usb_guid;
-  unsigned pci_info;
-  unsigned pci_bus;
-  unsigned pci_slot;
-  unsigned pci_func;
-  uint64_t wwpn;
-  uint64_t fcp_lun;
-  char *controller_id;
-} scsi_t;
-
-
-/*
- * PROM tree on PPC
- */
-typedef struct devtree_s {
-  struct devtree_s *next;
-  struct devtree_s *parent;
-  unsigned idx;
-  char *path, *filename;
-  unsigned pci:1;
-  char *name, *model, *device_type, *compatible;
-  int class_code;                       /* class : sub_class : prog-if */
-  int vendor_id, device_id, subvendor_id, subdevice_id;
-  int revision_id, interrupt;
-  unsigned char *edid;                  /* 128 bytes */
-} devtree_t;
-
-/*
- * Device/CU model numbers for S/390
- */
-typedef struct ccw_s {
-  unsigned char lcss;
-  unsigned char cu_model;
-  unsigned char dev_model;
-} ccw_t;
-
-/*
- * special CDROM entry
- */
-typedef struct cdrom_info_s {
-  struct cdrom_info_s *next;
-  char *name;
-  unsigned speed;
-  unsigned cdr:1, cdrw:1, dvd:1, dvdr:1, dvdram:1;
-  unsigned cdrom:1;            /* cdrom in drive */
-  struct {
-    unsigned ok:1;
-    char *volume, *publisher, *preparer, *application, *creation_date;
-  } iso9660;
-  struct {
-    unsigned ok:1;
-    unsigned platform;
-    char *id_string;
-    unsigned bootable:1;
-    unsigned media_type;       /* boot emulation type */
-    unsigned load_address;
-    unsigned load_count;       /* sectors to load */
-    unsigned start;            /* start sector */
-    unsigned catalog;          /* boot catalog start */
-    struct {
-      unsigned c, h, s;
-      unsigned size;
-    } geo;
-    char *label;
-  } el_torito;
-
-} cdrom_info_t;
-
-// note: obsolete, will be removed
-typedef struct {
-  unsigned char block0[512];
-} floppy_info_t;
-
-/*
- * bios data (ix86)
- */
-typedef struct {
-  unsigned apm_supported:1;
-  unsigned apm_enabled:1;
-  unsigned apm_ver, apm_subver;
-  unsigned apm_bios_flags;
-
-  unsigned vbe_ver;
-  unsigned vbe_video_mem;
-
-  unsigned ser_port0, ser_port1, ser_port2, ser_port3;
-  unsigned par_port0, par_port1, par_port2;
-
-  /* The id is still in big endian format! */
-  unsigned is_pnp_bios:1;
-  unsigned pnp_id;
-  unsigned lba_support:1;
-
-  unsigned low_mem_size;
-  smp_info_t smp;
-  vbe_info_t vbe;
-
-  unsigned smbios_ver;
-
-  struct {
-    unsigned width;
-    unsigned height;
-    char *vendor;
-    char *name;
-  } lcd;
-
-  struct {
-    char *vendor;
-    char *type;
-    unsigned bus;
-    unsigned compat_vend;
-    unsigned compat_dev;
-  } mouse;
-
-  struct {
-    unsigned ok:1;
-    unsigned scroll_lock:1;
-    unsigned num_lock:1;
-    unsigned caps_lock:1;
-  } led;
-
-  bios32_info_t bios32;
-
-} bios_info_t;
-
-
-/*
- * prom data (ppc, sparc)
- */
-typedef struct {
-  unsigned has_color:1;
-  unsigned color;
-} prom_info_t;
-
-
-/*
- * general system data
- */
-typedef struct {
-  char *system_type;
-  char *generation;
-  char *vendor;
-  char *model;
-  char *serial;
-  char *lang;
-} sys_info_t;
-
-
-/*
- * monitor (DDC) data
- */
-typedef struct {
-  unsigned manu_year;
-  unsigned min_vsync, max_vsync;       /* vsync range */
-  unsigned min_hsync, max_hsync;       /* hsync range */
-  char *vendor;
-  char *name;
-  char *serial;
-} monitor_info_t;
-
-
-typedef enum cpu_arch {
-  arch_unknown = 0,
-  arch_intel,
-  arch_alpha,
-  arch_sparc, arch_sparc64,
-  arch_ppc, arch_ppc64,
-  arch_68k,
-  arch_ia64,
-  arch_s390, arch_s390x,
-  arch_arm,
-  arch_mips,
-  arch_x86_64
-} hd_cpu_arch_t;
-
-// ###### drop boot_arch at all?
-typedef enum boot_arch {
-  boot_unknown = 0,
-  boot_lilo, boot_milo, boot_aboot, boot_silo, boot_ppc, boot_elilo, boot_s390,
-  boot_mips, boot_grub
-} hd_boot_arch_t;
-
-/* special cpu entry */
-typedef struct {
-  enum cpu_arch architecture;
-  unsigned family;             /* axp: cpu variation */
-  unsigned model;              /* axp: cpu revision */
-  unsigned stepping;
-  unsigned cache;
-  unsigned clock;
-  unsigned units;              /* >1 "hyperthreading" */
-  char *vend_name;             /* axp: system type */
-  char *model_name;            /* axp: cpu model */
-  char *platform;              /* x86: NULL */
-  str_list_t *features;                /* x86: flags */
-} cpu_info_t;
-
-
-/*
- * enhanced disk data (cf. edd.c)
- */
-typedef struct {
-  uint64_t sectors;
-  struct {
-    unsigned cyls, heads, sectors;
-  } edd;
-  struct {
-    unsigned cyls, heads, sectors;
-  } legacy;
-  unsigned ext_fixed_disk:1;
-  unsigned ext_lock_eject:1;
-  unsigned ext_edd:1;
-  unsigned ext_64bit:1;
-  unsigned assigned:1;
-  char *sysfs_id;
-  unsigned hd_idx;
-} edd_info_t;
-
-
-/*
- * database info
- */
-typedef struct {
-  unsigned data_len, data_max;
-  unsigned *data;
-  unsigned names_len, names_max;
-  char *names;
-} hddb_data_t;
-
-typedef uint32_t hddb_entry_mask_t;
-
-typedef struct hddb_list_s {   
-  hddb_entry_mask_t key_mask;
-  hddb_entry_mask_t value_mask;
-  unsigned key;
-  unsigned value;
-} hddb_list_t;
-
-typedef struct {
-  unsigned list_len, list_max;
-  hddb_list_t *list;
-  unsigned ids_len, ids_max;
-  unsigned *ids;
-  unsigned strings_len, strings_max;
-  char *strings;
-} hddb2_data_t;
-
-/*
- * pci module info
- */
-typedef struct {
-  char *module;
-  unsigned vendor;
-  unsigned device;
-  unsigned subvendor;
-  unsigned subdevice;
-  unsigned pciclass;
-  unsigned classmask;
-} hddb_pci_t;
-
-
-/*
- * resource types
- */
-typedef enum resource_types {
-  res_any, res_phys_mem, res_mem, res_io, res_irq, res_dma, res_monitor,
-  res_size, res_disk_geo, res_cache, res_baud, res_init_strings, res_pppd_option,
-  res_framebuffer, res_hwaddr, res_link, res_wlan
-} hd_resource_types_t;
-
-
-/*
- * size units (cf. (res_size_t).unit)
- */
-typedef enum size_units {
-  size_unit_cm, size_unit_cinch, size_unit_byte, size_unit_sectors,
-  size_unit_kbyte, size_unit_mbyte, size_unit_gbyte
-} hd_size_units_t;
-
-/*
- * access types for I/O and memory resources
- */
-typedef enum access_flags {
-  acc_unknown, acc_ro, acc_wo, acc_rw          /* unknown, read only, write only, read/write */
-} hd_access_flags_t;
-
-
-typedef enum yes_no_flag {
-  flag_unknown, flag_no, flag_yes              /* unknown, no, yes */
-} hd_yes_no_flag_t;
-
-
-typedef enum geo_types {
-  geo_physical = 0, geo_logical, geo_bios_edd, geo_bios_legacy
-} hd_geo_types_t;
-
-
-/*
- * definitions for the various resource types
- */
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-} res_any_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  uint64_t base, range;
-  unsigned
-    enabled:1,                         /* 0: disabled, 1 enabled */
-    access:2,                          /* enum access_flags */
-    prefetch:2;                                /* enum yes_no_flag */
-} res_mem_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  uint64_t range;
-} res_phys_mem_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  uint64_t base, range;
-  unsigned
-    enabled:1,                         /* 0: disabled, 1 enabled */
-    access:2;                          /* enum access_flags */
-} res_io_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  unsigned base;
-  unsigned triggered;                  /* # of interrupts */
-  unsigned enabled:1;                  /* 0: disabled, 1 enabled */
-} res_irq_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  unsigned base;
-  unsigned enabled:1;                  /* 0: disabled, 1 enabled */
-} res_dma_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  enum size_units unit;
-  uint64_t val1, val2;                 /* to allow for 2D values */
-} res_size_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  unsigned speed;
-  unsigned bits, stopbits;
-  char parity;                         /* n, e, o, s, m */
-  char handshake;                      /* -, h, s */
-} res_baud_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  unsigned size;                       /* in kbyte */
-} res_cache_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  unsigned cyls, heads, sectors;
-  uint64_t size;
-  enum geo_types geotype;              /* 0-3: physical/logical/bios edd/bios legacy */
-} res_disk_geo_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  unsigned width, height;              /* in pixel */
-  unsigned vfreq;                      /* in Hz */
-  unsigned interlaced:1;               /* 0/1 */
-} res_monitor_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  char *init1;
-  char *init2;
-} res_init_strings_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  char *option;
-} res_pppd_option_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  unsigned width, height;              /* in pixel */
-  unsigned bytes_p_line;               /* line length in bytes (do not confuse with 'width') */
-  unsigned colorbits;                  /* 4, 8, 15, 16, 24, 32 */
-  unsigned mode;                       /* mode number for kernel */
-} res_framebuffer_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  char *addr;
-} res_hwaddr_t;
-
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  unsigned state:1;                    /* network link state: 0 - not connected, 1 - connected */
-} res_link_t;
-
-/* wlan capabilities */
-typedef struct {
-  union u_hd_res_t *next;
-  enum resource_types type;
-  str_list_t *channels;
-  str_list_t *frequencies; /* in GHz units */
-  str_list_t *bitrates;    /* in Mbps units */
-  str_list_t *auth_modes;  /* open, sharedkey, wpa-psk, wpa-eap, wpa-leap */
-  str_list_t *enc_modes;   /* WEP40, WEP104, WEP128, WEP232, TKIP, CCMP */
-} res_wlan_t;
-
-typedef union u_hd_res_t {
-  union u_hd_res_t *next;  
-  res_any_t any;
-  res_io_t io;
-  res_mem_t mem;
-  res_phys_mem_t phys_mem;
-  res_irq_t irq;
-  res_dma_t dma;
-  res_size_t size;
-  res_cache_t cache;
-  res_baud_t baud;
-  res_disk_geo_t disk_geo;
-  res_monitor_t monitor;
-  res_init_strings_t init_strings;
-  res_pppd_option_t pppd_option;
-  res_framebuffer_t framebuffer;
-  res_hwaddr_t hwaddr;
-  res_link_t link;
-  res_wlan_t wlan;
-} hd_res_t;
-
-
-/*
- * data gathered by the misc module; basically resources from /proc
- */
-typedef struct {
-  uint64_t addr, size;
-  char *dev;
-  unsigned tag;
-} misc_io_t;
-
-typedef struct {
-  unsigned channel;
-  char *dev;
-  unsigned tag;
-} misc_dma_t;
-
-typedef struct {
-  unsigned irq, events;
-  int devs;
-  char **dev;
-  unsigned tag;
-} misc_irq_t;
-
-typedef struct {
-  unsigned io_len, dma_len, irq_len;
-  misc_io_t *io;
-  misc_dma_t *dma;
-  misc_irq_t *irq;
-  str_list_t *proc_io, *proc_dma, *proc_irq;
-} misc_t;
-
-typedef struct s_serial_t {
-  struct s_serial_t *next;
-  char *name;
-  char *device;
-  unsigned line, port, irq, baud;
-} serial_t;
-
-typedef struct s_ser_device_t {
-  struct s_ser_device_t *next;
-  unsigned hd_idx;
-  char *dev_name;
-  str_list_t *at_resp;
-  int fd;
-  struct termios tio;
-  unsigned max_baud, cur_baud;
-  unsigned is_mouse:1;
-  unsigned is_modem:1;
-  unsigned do_io:1;
-  unsigned char buf[0x1000];
-  int buf_len;
-  int garbage, non_pnp, pnp;
-  unsigned char pnp_id[8];
-  char *serial, *class_name, *dev_id, *user_name, *vend, *init_string1, *init_string2, *pppd_option;
-  unsigned pnp_rev;
-  unsigned bits;
-} ser_device_t;
-
-/*
- * Notes on isdn_parm_t:
- *   - def_value is only relevant of alt_values != 0
- *   - def_value should be a value out of alt_value[]
- *   - see libihw docu for the meaning of name,type,flags,def_value
- */
-typedef struct isdn_parm_s {
-  struct isdn_parm_s *next;
-  char *name;                          /* parameter name */
-  unsigned valid:1;                    /* 1: entry is valid, 0: some inconsistencies */
-  unsigned conflict:1;                 /* 1: ressource conflict (eg. no free irq) */
-  uint64_t value;                      /* value of the parameter */
-  unsigned type;                       /* CDBISDN type (P_...) */
-  unsigned flags;                      /* CDBISDN flags (P_...) */
-  unsigned def_value;                  /* default value */
-  int alt_values;                      /* length of alt_value[] */
-  unsigned *alt_value;                 /* possible values */
-} isdn_parm_t;
-
-/* device driver info types */
-typedef enum driver_info_type {
-  di_any, di_display, di_module, di_mouse, di_x11, di_isdn, di_kbd, di_dsl
-} hd_driver_info_t;
-
-/* unspecific info */
-typedef struct {
-  union driver_info_u *next;
-  enum driver_info_type type;          /* driver info type */
-  str_list_t *hddb0, *hddb1;           /* the actual driver database entries */
-} driver_info_any_t;
-
-/* display (monitor) info */
-typedef struct {
-  union driver_info_u *next;
-  enum driver_info_type type;          /* driver info type */
-  str_list_t *hddb0, *hddb1;           /* the actual driver database entries */
-  unsigned width, height;              /* max. useful display geometry */
-  unsigned min_vsync, max_vsync;       /* vsync range */
-  unsigned min_hsync, max_hsync;       /* hsync range */
-  unsigned bandwidth;                  /* max. pixel clock */
-} driver_info_display_t;
-
-/* module info */
-typedef struct {
-  union driver_info_u *next;
-  enum driver_info_type type;          /* driver info type */
-  str_list_t *hddb0, *hddb1;           /* the actual driver database entries */
-  unsigned active:1;                   /* if module is currently active */
-  unsigned modprobe:1;                 /* modprobe or insmod  */
-  str_list_t *names;                   /* (ordered) list of module names */
-  str_list_t *mod_args;                        /* list of module args (corresponds to the module name list) */
-  char *conf;                          /* conf.modules entry, if any (e.g. for sb.o) */
-} driver_info_module_t;
-
-/* mouse protocol info */
-typedef struct {
-  union driver_info_u *next;
-  enum driver_info_type type;          /* driver info type */
-  str_list_t *hddb0, *hddb1;           /* the actual driver database entries */
-  char *xf86;                          /* the XF86 protocol name */
-  char *gpm;                           /* dto, gpm */
-  int buttons;                         /* number of buttons, -1 --> unknown */
-  int wheels;                          /* dto, wheels */
-} driver_info_mouse_t;
-
-/* X11 server info */
-typedef struct {
-  union driver_info_u *next;
-  enum driver_info_type type;          /* driver info type */
-  str_list_t *hddb0, *hddb1;           /* the actual driver database entries */
-  char *server;                                /* the server/module name */
-  char *xf86_ver;                      /* XFree86 version (3 or 4) */
-  unsigned x3d:1;                      /* has 3D support */
-  struct {
-    unsigned all:5;                    /* the next 5 entries combined */
-    unsigned c8:1, c15:1, c16:1, c24:1, c32:1;
-  } colors;                            /* supported color depths */
-  unsigned dacspeed;                   /* max. ramdac clock */
-  str_list_t *extensions;              /* additional X extensions to load ('Module' section) */
-  str_list_t *options;                 /* special server options */
-  str_list_t *raw;                     /* extra info to add to XF86Config */
-  char *script;                                /* 3d script to run */
-} driver_info_x11_t;
-
-/* isdn info */
-typedef struct {
-  union driver_info_u *next;
-  enum driver_info_type type;          /* driver info type */
-  str_list_t *hddb0, *hddb1;           /* the actual driver database entries */
-  int i4l_type, i4l_subtype;           /* I4L types */
-  char *i4l_name;                      /* I4L card name */
-  isdn_parm_t *params;                 /* isdn parameters */
-} driver_info_isdn_t;
-
-/* dsl info */
-typedef struct {
-  union driver_info_u *next;
-  enum driver_info_type type;          /* driver info type */
-  str_list_t *hddb0, *hddb1;           /* the actual driver database entries */
-  char *mode;                          /* DSL driver types */
-  char *name;                          /* DSL driver name */
-} driver_info_dsl_t;
-
-/* keyboard info */
-typedef struct {
-  union driver_info_u *next;
-  enum driver_info_type type;          /* driver info type */
-  str_list_t *hddb0, *hddb1;           /* the actual driver database entries */
-  char *XkbRules;                      /* XF86Config entries */
-  char *XkbModel;
-  char *XkbLayout;
-  char *keymap;                                /* console keymap */
-} driver_info_kbd_t;
-
-/*
- * holds device driver info
- */
-typedef union driver_info_u {
-  union driver_info_u *next;
-  driver_info_any_t any;
-  driver_info_module_t module;
-  driver_info_mouse_t mouse;
-  driver_info_x11_t x11;
-  driver_info_display_t display;
-  driver_info_isdn_t isdn;
-  driver_info_dsl_t dsl;
-  driver_info_kbd_t kbd;
-} driver_info_t;
-
-
-/*
- * Some hardware doesn't fit into the hd_t scheme or there is info we
- * gathered during the scan process but that no-one really cares about. Such
- * stuff is stored in hd_detail_t.
- */
-typedef enum hd_detail_type {
-  hd_detail_pci, hd_detail_usb, hd_detail_isapnp, hd_detail_cdrom,
-  hd_detail_floppy, hd_detail_bios, hd_detail_cpu, hd_detail_prom,
-  hd_detail_monitor, hd_detail_sys, hd_detail_scsi, hd_detail_devtree,
-  hd_detail_ccw
-} hd_detail_type_t;
-
-typedef struct {
-  enum hd_detail_type type;
-  pci_t *data;
-} hd_detail_pci_t;
-
-typedef struct {
-  enum hd_detail_type type;
-  usb_t *data;
-} hd_detail_usb_t;
-
-typedef struct {
-  enum hd_detail_type type;
-  isapnp_dev_t *data;
-} hd_detail_isapnp_t;
-
-typedef struct {
-  enum hd_detail_type type;
-  cdrom_info_t *data;
-} hd_detail_cdrom_t;
-
-typedef struct {
-  enum hd_detail_type type;
-  floppy_info_t *data;
-} hd_detail_floppy_t;
-
-typedef struct {
-  enum hd_detail_type type;
-  bios_info_t *data;
-} hd_detail_bios_t;
-
-typedef struct {
-  enum hd_detail_type type;
-  cpu_info_t *data;
-} hd_detail_cpu_t;
-
-typedef struct {
-  enum hd_detail_type type;
-  prom_info_t *data;
-} hd_detail_prom_t;
-
-typedef struct {
-  enum hd_detail_type type;
-  monitor_info_t *data;
-} hd_detail_monitor_t;
-
-typedef struct {
-  enum hd_detail_type type;
-  sys_info_t *data;
-} hd_detail_sys_t;
-
-typedef struct {
-  enum hd_detail_type type;
-  scsi_t *data;
-} hd_detail_scsi_t;
-
-typedef struct {
-  enum hd_detail_type type;
-  devtree_t *data;
-} hd_detail_devtree_t;
-
-typedef struct {
-  enum hd_detail_type type;
-  ccw_t *data;
-} hd_detail_ccw_t;
-
-typedef union {
-  enum hd_detail_type type;
-  hd_detail_pci_t pci;
-  hd_detail_usb_t usb;
-  hd_detail_isapnp_t isapnp;
-  hd_detail_cdrom_t cdrom;
-  hd_detail_floppy_t floppy;
-  hd_detail_bios_t bios;
-  hd_detail_cpu_t cpu;
-  hd_detail_prom_t prom;
-  hd_detail_monitor_t monitor;
-  hd_detail_sys_t sys;
-  hd_detail_scsi_t scsi;
-  hd_detail_devtree_t devtree;
-  hd_detail_ccw_t ccw;
-} hd_detail_t;
-
-
-/* info about manually configured hardware (in /var/lib/hardware/) */
-typedef struct hd_manual_s {
-  struct hd_manual_s *next;
-
-  char *unique_id;
-  char *parent_id;
-  char *child_ids;
-  unsigned hw_class;
-  char *model;
-
-  hd_status_t status;
-  char *config_string;
-
-  /* More or less free-form key, value pairs.
-   * key should not contain '=', however.
-   */
-  str_list_t *key;
-  str_list_t *value;
-} hd_manual_t;
-
-
-/**
- * Individual hardware item.
- * Every hardware component gets an \ref hd_t entry. A list of all hardware
- * items is in \ref hd_data_t::hd.
- */
-typedef struct s_hd_t {
-  struct s_hd_t *next;         /**< Link to next hardware item. */
-  /**
-   * Unique index, starting at 1.
-   * Use \ref hd_get_device_by_idx() to look up an hardware entry by index. And don't
-   * free the result!
-   */
-  unsigned idx;
-
-  /**
-   * Hardware appears to be broken in some way.
-   * This was used to indicate broken framebuffer support of some graphics cards.
-   * Currently unused.
-   */
-  unsigned broken:1;
-
-  /**
-   * Bus type (id and name).
-   */ 
-  hd_id_t bus;
-
-  /**
-   * Slot and bus number.
-   * Bits 0-7: slot number, 8-31 bus number.
-   */
-  unsigned slot;
-
-  /**
-   * (PCI) function.
-   */
-  unsigned func;
-
-  /**
-   * Base class (id and name).
-   */
-  hd_id_t base_class;
-
-  /**
-   * Sub class (id and name).
-   */
-  hd_id_t sub_class;
-
-  /**
-   * (PCI) programming interface (id and name).
-   */
-  hd_id_t prog_if;
-
-  /**
-   * Vendor id and name.
-   * Id is actually a combination of some tag to differentiate the
-   * various id types and the real id. Use the \ref ID_VALUE macro to
-   * get e.g. the real PCI id value for a PCI %device.
-   */
-  hd_id_t vendor;
-
-  /**
-   * Device id and name.
-   * Id is actually a combination of some tag to differentiate the
-   * various id types and the real id. Use the \ref ID_VALUE macro to
-   * get e.g. the real PCI id value for a PCI %device.
-   * \note If you're looking or something printable, you might want to use \ref hd_t::model
-   * instead.
-   */
-  hd_id_t device;
-
-  /**
-   * Subvendor id and name.
-   * Id is actually a combination of some tag to differentiate the
-   * various id types and the real id. Use the \ref ID_VALUE macro to
-   * get e.g. the real PCI id value for a PCI %device.
-   */
-  hd_id_t sub_vendor;
-
-  /**
-   * Subdevice id and name.
-   * Id is actually a combination of some tag to differentiate the
-   * various id types and the real id. Use the \ref ID_VALUE macro to
-   * get e.g. the real PCI id value for a PCI %device.
-   */
-  hd_id_t sub_device;
-
-  /**
-   * Revision id or string.
-   * If revision is numerical (e.g. PCI) \ref hd_id_t::id is used.
-   * If revision is some char data (e.g. disk drives) it is stored in \ref hd_id_t::name.
-   */
-  hd_id_t revision;
-
-  /**
-   * Serial id.
-   */
-  char *serial;
-
-  /**
-   * Vendor id and name of some compatible hardware.
-   * Used mainly for ISA-PnP devices.
-   */
-  hd_id_t compat_vendor;
-
-  /**
-   * Device id and name of some compatible hardware.
-   * Used mainly for ISA-PnP devices.
-   */
-  hd_id_t compat_device;
-
-  /**
-   * Hardware class.
-   * Not to confuse with \ref base_class!
-   */
-  hd_hw_item_t hw_class;
-
-  /**
-   * Hardware class list.
-   * A device may belong to more than one hardware class.
-   */
-  unsigned char hw_class_list[(hw_all + 7) / 8];       /**< (Internal) bitmask of hw classes. */
-
-  /**
-   * Model name.
-   * This is a combination of vendor and %device names. Some heuristics is used
-   * to make it more presentable. Use this instead of \ref hd_t::vendor and
-   * \ref hd_t::device.
-   */
-  char *model;
-
-  /**
-   * Device this hardware is attached to.
-   * Link to some 'parent' %device. Use \ref hd_get_device_by_idx() to get
-   * the corresponding hardware entry.
-   */
-  unsigned attached_to;
-
-  /**
-   * sysfs entry for this hardware, if any.
-   */
-  char *sysfs_id;
-
-  /**
-   * sysfs bus id for this hardware, if any.
-   */
-  char *sysfs_bus_id;
-
-  /**
-   * sysfs device link.
-   */
-  char *sysfs_device_link;
-
-  /**
-   * Special %device file.
-   * Device file name to access this hardware. Normally something below /dev.
-   * For network interfaces this is the interface name.
-   */
-  char *unix_dev_name;
-
-  /**
-   * Device type & number according to sysfs.
-   */
-  hd_dev_num_t unix_dev_num;
-
-  /**
-   * List of %device names.
-   * Device file names to access this hardware. Normally something below /dev.
-   * They should be all equivalent. The preferred name however is
-   * \ref hd_t::unix_dev_name.
-   */
-  str_list_t *unix_dev_names;
-
-  /**
-   * Special %device file.
-   * Device file name to access this hardware. Most hardware only has one
-   * %device name stored in \ref hd_t::unix_dev_name. But in some cases
-   * there's an alternative name.
-   */
-  char *unix_dev_name2;
-
-  /**
-   * Device type & number according to sysfs.
-   */
-  hd_dev_num_t unix_dev_num2;
-
-  /**
-   * BIOS/PROM id.
-   * Where appropriate, this is a special BIOS/PROM id (e.g. "0x80" for
-   * the first harddisk on Intel-PCs).
-   * CHPID for s390.
-   */
-  char *rom_id;
-
-  /**
-   * Unique id for this hardware.
-   * A unique string identifying this hardware. The string consists
-   * of two parts separated by a dot ("."). The part before the dot
-   * describes the location (where the hardware is attached in the system).
-   * The part after the dot identifies the hardware itself. The string
-   * must not contain slashes ("/") because we're going to create files
-   * with this id as name. Apart from this there are no restrictions on
-   * the form of this string.
-   */
-  char *unique_id;
-
-  /* List of ids. */
-  str_list_t *unique_ids;
-
-  /**
-   * (Internal) Probing module that created this entry.
-   */
-  unsigned module;
-
-  /**
-   * (Internal) Source code line where this entry was created.
-   */
-  unsigned line;
-
-  /**
-   * (Internal) Counter, used in combination with \ref hd_t::module and \ref hd_t::line.
-   */
-  unsigned count;
-
-  /**
-   * Device resources.
-   */
-  hd_res_t *res;
-
-  /**
-   * Special info associated with this hardware.
-   * \note This is going to change!
-   */
-  hd_detail_t *detail;
-
-  /**
-   * (Internal) Unspecific text info.
-   * It is used to track IDE interfaces and assign them to the correct
-   * IDE controllers.
-   */
-  str_list_t *extra_info;
-
-  /**
-   * Hardware status (if available).
-   * The status is stored in files below /var/lib/hardware/unique-keys/. Every
-   * hardware item gets a file there with its unique id as file name.
-   */
-  hd_status_t status;
-
-  /**
-   * Some %config info.
-   * Every hardware item may get some string assigned. This string is stored
-   * in files below /var/lib/hardware/unique-keys/. There is no meaning
-   * associated with this string.
-   */
-  char *config_string;
-
-  /**
-   * Hotplug controller for this %device.
-   * It indicates what kind of hotplug %device (if any) this is.
-   */
-  hd_hotplug_t hotplug;
-
-   /**
-    * Slot the hotplug device is connected to (e.g. PCMCIA socket).
-    * \note \ref hotplug_slot counts 1-based (0: no information available).
-    */
-  unsigned hotplug_slot;
-
-  struct is_s {
-    unsigned agp:1;            /* AGP device */
-    unsigned isapnp:1;         /* ISA-PnP device */
-    unsigned notready:1;       /* block devices: no medium, other: device not configured */
-    unsigned manual:1;         /* undetectable, manually configured hardware */
-    unsigned softraiddisk:1;   /* disk belongs to some soft raid array */
-    unsigned zip:1;            /* zip floppy */
-    unsigned cdr:1;            /* CD-R */
-    unsigned cdrw:1;           /* CD-RW */
-    unsigned dvd:1;            /* DVD */
-    unsigned dvdr:1;           /* DVD-R */
-    unsigned dvdram:1;         /* DVD-RAM */
-    unsigned pppoe:1;          /* PPPOE modem connected */
-    unsigned wlan:1;           /* WLAN card */
-  } is;
-
-  struct tag_s {               /* this struct is for internal purposes only */
-    unsigned remove:1;         /* schedule for removal */
-    unsigned freeit:1;         /* for internal memory management */
-    unsigned fixed:1;          /* fixed, do no longer modify this entry */
-    unsigned ser_skip:1;       /* if serial line, don't scan for devices */
-    unsigned ser_device:2;     /* if != 0: info about attached serial device; see serial.c */
-  } tag;
-
-  /**
-   * (Internal) First 512 bytes of block devices.
-   * To check accessibility of block devices we read the first block. The data
-   * is used to identify the boot %device.
-   */
-  unsigned char *block0;
-
-  /**
-   * Currently active driver.
-   */
-  char *driver;
-
-  /**
-   * List of currently active drivers.
-   */
-  str_list_t *drivers;
-
-  /**
-   * Old \ref unique_id for compatibility.
-   * The calculation of unique ids has changed in libhd v3.17. Basically
-   * we no longer use the vendor/%device names if there are vendor/%device
-   * ids. (Otherwise a simple %device name database update would change the id,
-   * which is really not what you want.)
-   */
-  char *old_unique_id;
-
-  /**
-   * \ref unique_id of parent (\ref attached_to).
-   * \note Please do not use it for now.
-   * 
-   */
-  char *parent_id;
-
-  /**
-   * \ref unique_ids of children (\ref parent_id).
-   * \note Please do not use it for now.
-   * 
-   */
-  str_list_t *child_ids;
-
-  /**
-   * (Internal) location independent \ref unique_id part.
-   * The speed up some internal searches, we store it here separately.
-   */
-  char *unique_id1;
-
-  /**
-   * USB Global Unique Identifier.
-   * Available for USB devices. This may even be set if \ref hd_t::bus is not
-   * \ref bus_usb (e.g. USB storage devices will have \ref hd_t::bus set to
-   * \ref bus_scsi due to SCSI emulation).
-   */
-  char *usb_guid;
-
-  driver_info_t *driver_info;  /* device driver info */
-
-  str_list_t *requires;                /* packages/programs required for this hardware */
-
-  /*
-   * These are used internally for memory management.
-   * Do not even _think_ of modifying these!
-   */
-  unsigned ref_cnt;            /**< (Internal) memory reference count. */
-  struct s_hd_t *ref;          /**< (Internal) if set, this is only a reference. */
-} hd_t;
-
-
-/**
- * Holds all data accumulated during hardware probing.
- */
-typedef struct {
-  /**
-   * Current hardware list.
-   * The list of all currently probed hardware. This is not identical with
-   * the result of \ref hd_list(). (But a superset of it.)
-   */
-  hd_t *hd;
-
-  /**
-   * A progress indicator.
-   * If this callback function is not NULL, it is called at various points and can
-   * be used to give some user feedback what we are actually doing.
-   * If the debug flag HD_DEB_PROGRESS is set, progress messages are logged.
-   * \param pos Indicates where we are.
-   * \param msg Indicates what we are going to do.
-   */
-  void (*progress)(char *pos, char *msg);
-  
-  /** Log messages.
-   * All messages logged during hardware probing accumulate here.
-   */
-  char *log;
-
-  /** Debug flags.
-   * Although there exist some debug flag defines this scheme is currently
-   * not followed consistently. It is guaranteed however that -1 will give
-   * the most log messages and 0 the least.
-   */
-  unsigned debug;
-
-  /**
-   * Special flags.
-   * Influence hardware probing in some strange ways with these. You normally
-   * do not want to use them.
-   */
-  struct flag_struct {
-    unsigned internal:1;       /**< \ref hd_scan() has been called internally. */
-    unsigned dformat:2;                /**< Alternative output format. */
-    unsigned no_parport:1;     /**< Don't do parport probing: parport modules (used to) crash pmacs. */
-    unsigned iseries:1;                /**< Set if we are on an iSeries machine. */
-    unsigned list_all:1;       /**< Return even devices with status 'not available'. */
-    unsigned fast:1;           /**< Don't check tricky hardware. */
-    unsigned list_md:1;                /**< Report md & lvm devices from /proc/partitions */
-    unsigned nofork:1;         /**< don't run potentially hanging code in a subprocess */
-    unsigned nosysfs:1;                /**< don't ask sysfs */
-    unsigned forked:1;         /**< we're running in a subprocess */
-    unsigned cpuemu:1;         /**< use CPU emulation to run BIOS code (i386 only) */
-    unsigned udev:1;           /**< return first udev symlink as device name */
-    unsigned edd_used:1;       /**< internal: edd info has been used  */
-    unsigned keep_kmods:2;     /**< internal: don't reread kmods */
-  } flags;
-
-
-  /** Concentrate on these devices.
-   * List of sysfs ids for devices to look for.
-   */
-  str_list_t *only;
-
-  /*
-   * The following entries should *not* be accessed outside of libhd!
-   */
-  unsigned char probe[(pr_all + 7) / 8];       /**< (Internal) bitmask of probing features. */
-  unsigned char probe_set[(pr_all + 7) / 8];   /**< (Iternal) bitmask of probing features that will always be set. */
-  unsigned char probe_clr[(pr_all + 7) / 8];   /**< (Internal) bitmask of probing features that will always be reset. */
-  unsigned last_idx;           /**< (Internal) index of the last hd entry generated */
-  unsigned module;             /**< (Internal) the current probing module we are in */
-  enum boot_arch boot;         /**< (Internal) boot method */
-  hd_t *old_hd;                        /**< (Internal) old (outdated) entries (if you scan more than once) */
-  pci_t *pci;                  /**< (Internal) raw PCI data */
-  isapnp_t *isapnp;            /**< (Internal) raw ISA-PnP data */
-  cdrom_info_t *cdrom;         /**< (Internal) CDROM devs from PROC_CDROM_INFO */
-  str_list_t *net;             /**< (Internal) list of network interfaces */
-  str_list_t *floppy;          /**< (Internal) contents of PROC_NVRAM, used by the floppy module */
-  misc_t *misc;                        /**< (Internal) data gathered in the misc module */
-  serial_t *serial;            /**< (Internal) /proc's serial info */
-  scsi_t *scsi;                        /**< (Internal) raw SCSI data */
-  ser_device_t *ser_mouse;     /**< (Internal) info about serial mice */
-  ser_device_t *ser_modem;     /**< (Internal) info about serial modems */
-  str_list_t *cpu;             /**< (Internal) /proc/cpuinfo */
-  str_list_t *klog;            /**< (Internal) kernel log */
-  str_list_t *proc_usb;                /**< (Internal) /proc/bus/usb info */
-  usb_t *usb;                  /**< (Internal) usb info */
-  hddb_pci_t *hddb_pci_hm;     /**< (Internal) pci module info */
-  hddb_pci_t *hddb_pci;                /**< (Internal) pci module info */
-  hddb2_data_t *hddb2[2];      /**< (Internal) hardware database */
-  str_list_t *kmods;           /**< (Internal) list of active kernel modules */
-  uint64_t used_irqs;          /**< (Internal) irq usage */
-  uint64_t assigned_irqs;      /**< (Internal) irqs automatically assigned by libhd (for driver info) */
-  memory_range_t bios_rom;     /**< (Internal) BIOS 0xc0000 - 0xfffff */
-  memory_range_t bios_ram;     /**< (Internal) BIOS 0x00400 - 0x004ff */
-  memory_range_t bios_ebda;    /**< (Internal) EBDA */
-  unsigned display;            /**< (Internal) hd_idx of the active (vga) display */
-  unsigned color_code;         /**< (Internal) color, if any */
-  char *cmd_line;              /**< (Internal) kernel command line */
-  str_list_t *xtra_hd;         /**< (Internal) fake hd entries (for testing) */
-  devtree_t *devtree;          /**< (Internal) prom device tree on ppc */
-  unsigned kernel_version;     /**< (Internal) kernel version */
-  int in_vmware;               /**< (Internal) running in vmware */
-  hd_manual_t *manual;         /**< (Internal) hardware config info */
-  str_list_t *disks;           /**< (Internal) disks according to /proc/partitions */
-  str_list_t *partitions;      /**< (Internal) dto, partitions */
-  str_list_t *cdroms;          /**< (Internal) cdroms according to PROC_CDROM_INFO */
-  hd_smbios_t *smbios;         /**< (Internal) smbios data */
-  struct {
-    unsigned ok:1;
-    unsigned size;
-    unsigned used;
-    void *data;
-    int id;
-    int updated;
-  } shm;                       /**< (Internal) our shm segment */
-  unsigned pci_config_type;    /**< (Internal) PCI config type (1 or 2), 0: unknown */
-  hd_udevinfo_t *udevinfo;     /**< (Internal) udev info */
-  hd_sysfsdrv_t *sysfsdrv;     /**< (Internal) sysfs driver info */
-  uint64_t sysfsdrv_id;                /**< (Internal) sysfs driver info id */
-  str_list_t *scanner_db;      /**< (Internal) list of scanner modules */
-  edd_info_t edd[0x80];                /**< (Internal) enhanced disk drive data */
-} hd_data_t;
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *
- *                      libhd interface functions
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-/* implemented in hd.c */
-
-/* the actual hardware scan */
-void hd_scan(hd_data_t *hd_data);
-
-//! Free all data.
-hd_data_t *hd_free_hd_data(hd_data_t *hd_data);
-
-//! Free hardware items returned by e.g. \ref hd_list().
-hd_t *hd_free_hd_list(hd_t *hd);
-
-void hd_set_probe_feature(hd_data_t *hd_data, enum probe_feature feature);
-void hd_clear_probe_feature(hd_data_t *hd_data, enum probe_feature feature);
-int hd_probe_feature(hd_data_t *hd_data, enum probe_feature feature);
-void hd_set_probe_feature_hw(hd_data_t *hd_data, hd_hw_item_t item);
-
-enum probe_feature hd_probe_feature_by_name(char *name);
-char *hd_probe_feature_by_value(enum probe_feature feature);
-
-int hd_module_is_active(hd_data_t *hd_data, char *mod);
-
-hd_t *hd_base_class_list(hd_data_t *hd_data, unsigned base_class);
-hd_t *hd_sub_class_list(hd_data_t *hd_data, unsigned base_class, unsigned sub_class);
-hd_t *hd_bus_list(hd_data_t *hd_data, unsigned bus);
-const char* hd_busid_to_hwcfg(int busid);
-hd_t *hd_list(hd_data_t *hd_data, hd_hw_item_t item, int rescan, hd_t *hd_old);
-hd_t *hd_list_with_status(hd_data_t *hd_data, hd_hw_item_t item, hd_status_t status);
-hd_t *hd_list2(hd_data_t *hd_data, hd_hw_item_t *items, int rescan);
-hd_t *hd_list_with_status2(hd_data_t *hd_data, hd_hw_item_t *items, hd_status_t status);
-
-int hd_has_pcmcia(hd_data_t *hd_data);
-// will be gone soon
-// int hd_apm_enabled(hd_data_t *hd_data);
-int hd_usb_support(hd_data_t *hd_data);
-int hd_smp_support(hd_data_t *hd_data);
-int hd_mac_color(hd_data_t *hd_data);
-int hd_color(hd_data_t *hd_data);
-int hd_is_uml(hd_data_t *hd_data);
-unsigned hd_display_adapter(hd_data_t *hd_data);
-unsigned hd_boot_disk(hd_data_t *hd_data, int *matches);
-enum cpu_arch hd_cpu_arch(hd_data_t *hd_data);
-enum boot_arch hd_boot_arch(hd_data_t *hd_data);
-
-hd_t *hd_get_device_by_idx(hd_data_t *hd_data, unsigned idx);
-
-void hd_set_hw_class(hd_t *hd, hd_hw_item_t hw_class);
-int hd_is_hw_class(hd_t *hd, hd_hw_item_t hw_class);
-
-int hd_is_sgi_altix(hd_data_t *hd_data);
-
-char *hd_version(void);
-
-/* implemented in hddb.c */
-
-str_list_t *get_hddb_packages(hd_data_t *hd_data);
-void hddb_add_info(hd_data_t *hd_data, hd_t *hd);
-
-void hddb_dump_raw(hddb2_data_t *hddb, FILE *f);
-void hddb_dump(hddb2_data_t *hddb, FILE *f);
-
-/* implemented in hdp.c */
-
-void hd_dump_entry(hd_data_t *hd_data, hd_t *hd, FILE *f);
-
-
-/* implemented in cdrom.c */
-
-cdrom_info_t *hd_read_cdrom_info(hd_data_t *hd_data, hd_t *hd);
-
-/* implemented in manual.c */
-hd_manual_t *hd_manual_read_entry(hd_data_t *hd_data, const char *id);
-int hd_manual_write_entry(hd_data_t *hd_data, hd_manual_t *entry);
-hd_manual_t *hd_free_manual(hd_manual_t *manual);
-hd_t *hd_read_config(hd_data_t *hd_data, const char *id);
-int hd_write_config(hd_data_t *hd_data, hd_t *hd);
-char *hd_hw_item_name(hd_hw_item_t item);
-char *hd_status_value_name(hd_status_value_t status);
-int hd_change_status(const char *id, hd_status_t status, const char *config_string);
-int hd_read_mmap(hd_data_t *hd_data, char *name, unsigned char *buf, off_t start, unsigned size);
-
-
-/*
- * - - - - - CDB ISDN interface - - - - -
- */
-
-
-/* (C) 2003 kkeil@suse.de */
-
-#define CDBISDN_VERSION        0x0101
-
-#ifndef PCI_ANY_ID
-#define PCI_ANY_ID     0xffff
-#endif
-
-#define CDBISDN_P_NONE 0x0
-#define CDBISDN_P_IRQ  0x1
-#define CDBISDN_P_MEM  0x2
-#define CDBISDN_P_IO   0x3
-
-/* vendor info */
-typedef struct {
-       char    *name;
-       char    *shortname;
-       int     vnr;
-       int     refcnt;
-} cdb_isdn_vendor;
-
-typedef struct {
-       int     handle;         /* internal identifier idx in database */
-       int     vhandle;        /* internal identifier to vendor database */
-       char    *name;          /* cardname */
-       char    *lname;         /* vendor short name + cardname */
-       char    *Class;         /* CLASS of the card */
-       char    *bus;           /* bus type */
-       int     revision;       /* revision used with USB */
-       int     vendor;         /* Vendor ID for ISAPNP and PCI cards */
-       int     device;         /* Device ID for ISAPNP and PCI cards */
-       int     subvendor;      /* Subvendor ID for PCI cards */
-                               /* A value of 0xffff is ANY_ID */
-       int     subdevice;      /* Subdevice ID for PCI cards */
-                               /* A value of 0xffff is ANY_ID */
-       unsigned int features;  /* feature flags */
-       int     line_cnt;       /* count of ISDN ports */
-       int     vario_cnt;      /* count of driver varios */
-       int     vario;          /* referenz to driver vario record */
-} cdb_isdn_card;
-
-typedef struct  {
-       int     handle;         /* idx in database */   
-       int     next_vario;     /* link to alternate vario */
-       int     drvid;          /* unique id of the driver vario */
-       int     typ;            /* Type to identify the driver */
-       int     subtyp;         /* Subtype of the driver type */
-       int     smp;            /* SMP supported ? */
-       char    *mod_name;      /* name of the driver module */
-       char    *para_str;      /* optional parameter string */
-       char    *mod_preload;   /* optional modules to preload */
-       char    *cfg_prog;      /* optional cfg prog */
-       char    *firmware;      /* optional firmware to load */
-       char    *description;   /* optional description */
-       char    *need_pkg;      /* list of packages needed for function */
-       char    *info;          /* optional additional info */
-       char    *protocol;      /* supported D-channel protocols */
-       char    *interface;     /* supported API interfaces */
-       char    *io;            /* possible IO ports with legacy ISA cards */
-       char    *irq;           /* possible interrupts with legacy ISA cards */
-       char    *membase;       /* possible membase with legacy ISA cards */
-       char    *features;      /* optional features*/
-       int     card_ref;       /* reference to a card */
-       char    *name;          /* driver name */
-} cdb_isdn_vario;
-
-
-extern cdb_isdn_vendor *hd_cdbisdn_get_vendor(int);
-extern cdb_isdn_card   *hd_cdbisdn_get_card(int);
-extern cdb_isdn_vario  *hd_cdbisdn_get_vario_from_type(int, int);
-extern cdb_isdn_card   *hd_cdbisdn_get_card_from_type(int, int);
-extern cdb_isdn_card   *hd_cdbisdn_get_card_from_id(int, int, int, int);
-extern cdb_isdn_vario  *hd_cdbisdn_get_vario(int);
-extern int             hd_cdbisdn_get_version(void);
-extern int             hd_cdbisdn_get_db_version(void);
-extern char            *hd_cdbisdn_get_db_date(void);
-
-/* CDB ISDN interface end */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _HD_H */
diff --git a/src/hwinfo/src/hd/hd_int.h b/src/hwinfo/src/hd/hd_int.h
deleted file mode 100644 (file)
index 3695864..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-#include <sysfs/dlist.h>
-#include <sysfs/libsysfs.h>
-
-#define PROC_CMDLINE           "/proc/cmdline"
-#define PROC_PCI_DEVICES       "/proc/bus/pci/devices"
-#define PROC_PCI_BUS           "/proc/bus/pci"
-#define PROC_CPUINFO           "/proc/cpuinfo"
-#define PROC_IOPORTS           "/proc/ioports"
-#define PROC_DMA               "/proc/dma"
-#define PROC_INTERRUPTS                "/proc/interrupts"
-#define PROC_NVRAM_22          "/proc/driver/nvram"
-#define PROC_NVRAM_24          "/proc/nvram"
-#define PROC_IDE               "/proc/ide"
-#define PROC_SCSI              "/proc/scsi"
-#define PROC_CDROM_INFO                "/proc/sys/dev/cdrom/info"
-#define PROC_NET_IF_INFO       "/proc/net/dev"
-#define PROC_MODULES           "/proc/modules"
-#define PROC_DRIVER_SERIAL     "/proc/tty/driver/serial"
-#define PROC_DRIVER_MACSERIAL  "/proc/tty/driver/macserial"
-#define PROC_PARPORT_22                "/proc/parport/"                        /* Final '/' is essential! */
-#define PROC_PARPORT_24                "/proc/sys/dev/parport/parport"
-#define PROC_KCORE             "/proc/kcore"
-// #define PROC_USB_DEVICES    "/proc/bus/usb/devices"
-#define PROC_USB_DEVICES       "/proc/bus/usb/devices_please-use-sysfs-instead"
-#define PROC_PROM              "/proc/device-tree"
-#define PROC_MEMINFO           "/proc/meminfo"
-#define PROC_VERSION           "/proc/version"
-#define PROC_ISAPNP            "/proc/isapnp"
-#define PROC_ISERIES           "/proc/iSeries"
-#define PROC_ISERIES_VETH      "/proc/iSeries/veth"
-#define PROC_PARTITIONS                "/proc/partitions"
-#define PROC_APM               "/proc/apm"
-
-#define DEV_NVRAM              "/dev/nvram"
-#define DEV_PSAUX              "/dev/psaux"
-#define DEV_ADBMOUSE           "/dev/adbmouse"
-#define DEV_MEM                        "/dev/mem"
-#define DEV_KBD                        "/dev/kbd"
-#define DEV_CONSOLE            "/dev/console"
-#define DEV_OPENPROM           "/dev/openprom"
-#define DEV_SUNMOUSE           "/dev/sunmouse"
-#define DEV_MICE               "/dev/input/mice"
-#define DEV_FB                 "/dev/fb"
-#define DEV_FB0                        "/dev/fb0"
-
-#define PROG_MODPROBE          "/sbin/modprobe"
-#define PROG_RMMOD             "/sbin/rmmod"
-#define PROG_CARDCTL           "/sbin/cardctl"
-#define PROG_UDEVINFO          "/usr/bin/udevinfo"
-
-#define KLOG_BOOT              "/var/log/boot.msg"
-#define ISAPNP_CONF            "/etc/isapnp.conf"
-
-#define ID_LIST                        HARDWARE_DIR "/hd.ids"
-#define LIB_CMDLINE            HARDWARE_DIR "/cmdline"
-
-#define KERNEL_22              0x020200
-#define KERNEL_24              0x020400
-#define KERNEL_26              0x020600
-
-#if defined(__s390__) || defined(__s390x__) || defined(__alpha__) || defined(LIBHD_TINY)
-#define WITH_ISDN      0
-#else
-#define WITH_ISDN      1
-#endif
-
-#define PROGRESS(a, b, c) progress(hd_data, a, b, c)
-#define ADD2LOG(a...) str_printf(&hd_data->log, -2, a)
-
-#undef LIBHD_MEMCHECK
-
-#if defined(__i386__) || defined(__PPC__)
-/*
- * f: function we are in
- * a: first argument
- */
-
-#ifdef __i386__
-#define CALLED_FROM(f, a) ((void *) ((unsigned *) &a)[-1] - 5)
-#endif
-
-#ifdef __PPC__
-/* (1-arg funcs only) #define CALLED_FROM(f, a) ((void *) *((unsigned *) ((void *) &a - ((short *) f)[1] - 4)) - 4) */
-static inline void *getr1() { void *p; asm("mr %0,1" : "=r" (p) :); return p; }
-#define CALLED_FROM(f, a) ((void *) ((unsigned *) (getr1() - ((short *) f)[1]))[1] - 4)
-#endif
-#else
-#undef LIBHD_MEMCHECK
-#endif
-
-#ifdef LIBHD_MEMCHECK
-FILE *libhd_log;
-#endif
-
-
-/*
- * define to make (hd_t).unique_id a hex string, otherwise it is a
- * base64-like string
- */
-#undef NUMERIC_UNIQUE_ID
-
-/*
- * Internal probing module numbers. Use mod_name_by_idx() outside of libhd.
- */
-enum mod_idx {
-  mod_none, mod_memory, mod_pci, mod_isapnp, mod_pnpdump, mod_net,
-  mod_floppy, mod_misc, mod_bios, mod_cpu, mod_monitor, mod_mouse, mod_scsi,
-  mod_serial, mod_usb, mod_adb, mod_modem, mod_parallel, mod_isa, mod_isdn,
-  mod_kbd, mod_prom, mod_sbus, mod_int, mod_braille, mod_xtra, mod_sys,
-  mod_manual, mod_fb, mod_veth, mod_pppoe, mod_pcmcia, mod_s390,
-  mod_sysfs, mod_dsl, mod_block, mod_edd, mod_input, mod_wlan
-};
-
-void *new_mem(size_t size);
-void *resize_mem(void *, size_t);
-void *add_mem(void *, size_t, size_t);
-char *new_str(const char *);
-void *free_mem(void *);
-int have_common_res(hd_res_t *res1, hd_res_t *res2);
-void join_res_io(hd_res_t **res1, hd_res_t *res2);
-void join_res_irq(hd_res_t **res1, hd_res_t *res2);
-void join_res_dma(hd_res_t **res1, hd_res_t *res2);
-hd_res_t *free_res_list(hd_res_t *res);
-hd_res_t *add_res_entry(hd_res_t **res, hd_res_t *new_res);
-hd_t *add_hd_entry(hd_data_t *hd_data, unsigned line, unsigned count);
-misc_t *free_misc(misc_t *m);
-scsi_t *free_scsi(scsi_t *scsi, int free_all);
-hd_detail_t *free_hd_detail(hd_detail_t *d);
-devtree_t *free_devtree(hd_data_t *hd_data);
-void hd_add_id(hd_data_t *hd_data, hd_t *hd);
-
-char *isa_id2str(unsigned);
-char *eisa_vendor_str(unsigned);
-unsigned name2eisa_id(char *);
-char *canon_str(char *, int);
-
-int hex(char *string, int digits);
-
-void str_printf(char **buf, int offset, char *format, ...) __attribute__ ((format (printf, 3, 4)));
-void hexdump(char **buf, int with_ascii, unsigned data_len, unsigned char *data);
-str_list_t *search_str_list(str_list_t *sl, char *str);
-str_list_t *add_str_list(str_list_t **sl, char *str);
-str_list_t *free_str_list(str_list_t *list);
-str_list_t *read_file(char *file_name, unsigned start_line, unsigned lines);
-str_list_t *read_dir(char *dir_name, int type);
-char *hd_read_symlink(char *link_name);
-void progress(hd_data_t *hd_data, unsigned pos, unsigned count, char *msg);
-
-void remove_hd_entries(hd_data_t *hd_data);
-void remove_tagged_hd_entries(hd_data_t *hd_data);
-
-driver_info_t *free_driver_info(driver_info_t *di);
-
-int str2float(char *s, int n);
-char *float2str(int i, int n);
-
-/* return the file name of a module */
-char *mod_name_by_idx(unsigned idx);
-
-int hd_timeout(void(*func)(void *), void *arg, int timeout);
-
-str_list_t *read_kmods(hd_data_t *hd_data);
-char *get_cmd_param(hd_data_t *hd_data, int field);
-
-#ifdef __i386__
-/* smp/smp.c */
-int detectSMP(void);
-#endif
-
-void update_irq_usage(hd_data_t *hd_data);
-int run_cmd(hd_data_t *hd_data, char *cmd);
-int load_module_with_params(hd_data_t *hd_data, char *module, char *params);
-int load_module(hd_data_t *hd_data, char *module);
-int unload_module(hd_data_t *hd_data, char *module);
-int probe_module(hd_data_t *hd_data, char *module);
-
-int cmp_hd(hd_t *hd1, hd_t *hd2);
-unsigned has_something_attached(hd_data_t *hd_data, hd_t *hd);
-
-str_list_t *get_cmdline(hd_data_t *hd_data, char *key);
-
-int detect_smp_bios(hd_data_t *hd_data);
-int detect_smp_prom(hd_data_t *hd_data);
-
-unsigned char *read_block0(hd_data_t *hd_data, char *dev, int *timeout);
-
-void hd_copy(hd_t *dst, hd_t *src);
-
-/* parameter for gather_resources(,,, which) */
-#define W_IO    (1 << 0)
-#define W_DMA   (1 << 1)
-#define W_IRQ   (1 << 2)
-
-void gather_resources(misc_t *m, hd_res_t **r, char *name, unsigned which);
-
-char *vend_id2str(unsigned vend);
-
-int hd_getdisksize(hd_data_t *hd_data, char *dev, int fd, hd_res_t **geo, hd_res_t **size);
-
-str_list_t *hd_split(char del, char *str);
-char *hd_join(char *del, str_list_t *str);
-
-int is_pnpinfo(ser_device_t *mi, int ofs);
-
-int is_pcmcia_ctrl(hd_data_t *hd_data, hd_t *hd);
-
-void hd_fork(hd_data_t *hd_data, int timeout, int total_timeout);
-void hd_fork_done(hd_data_t *hd_data);
-void hd_shm_init(hd_data_t *hd_data);
-void hd_shm_clean(hd_data_t *hd_data);
-void hd_shm_done(hd_data_t *hd_data);
-void *hd_shm_add(hd_data_t *hd_data, void *ptr, unsigned len);
-int hd_is_shm_ptr(hd_data_t *hd_data, void *ptr);
-void hd_move_to_shm(hd_data_t *hd_data);
-
-void read_udevinfo(hd_data_t *hd_data);
-
-hd_t *hd_find_sysfs_id(hd_data_t *hd_data, char *id);
-int hd_attr_uint(struct sysfs_attribute *attr, uint64_t *u, int base);
-char *hd_attr_str(struct sysfs_attribute *attr);
-str_list_t *hd_attr_list(struct sysfs_attribute *attr);
-char *hd_sysfs_id(char *path);
-char *hd_sysfs_name2_dev(char *str);
-char *hd_sysfs_dev2_name(char *str);
-void hd_sysfs_driver_list(hd_data_t *hd_data);
-char *hd_sysfs_find_driver(hd_data_t *hd_data, char *sysfs_id, int exact);
-int hd_report_this(hd_data_t *hd_data, hd_t *hd);
-str_list_t *hd_module_list(hd_data_t *hd_data, unsigned id);
-
-int hd_is_iseries(hd_data_t *hd_data);
-
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/src/hwinfo/src/hd/hddb.c b/src/hwinfo/src/hd/hddb.c
deleted file mode 100644 (file)
index 691ecbe..0000000
+++ /dev/null
@@ -1,2748 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <sys/utsname.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "hddb.h"
-#include "isdn.h"
-#include "hddb_int.h"
-
-extern hddb2_data_t hddb_internal;
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-// #define HDDB_TRACE
-// #define HDDB_TEST
-// #define HDDB_EXTERNAL_ONLY
-
-static char *hid_tag_names[] = { "", "pci ", "eisa ", "usb ", "special ", "pcmcia " };
-// just experimenting...
-static char *hid_tag_names2[] = { "", "pci ", "eisa ", "usb ", "int ", "pcmcia " };
-
-typedef enum {
-  pref_empty, pref_new, pref_and, pref_or, pref_add
-} prefix_t;
-
-typedef struct line_s {
-  prefix_t prefix;
-  hddb_entry_t key;
-  char *value;
-} line_t;
-
-typedef struct {
-  int len;
-  unsigned val[32];    /* arbitrary (approx. max. number of modules/xf86 config lines) */
-} tmp_entry_t;
-
-/* except for driver, all strings are static and _must not_ be freed */
-typedef struct {
-  hddb_entry_mask_t key;
-  hddb_entry_mask_t value;
-  hddb_entry_mask_t value_mask[he_nomask];
-  hd_id_t bus;
-  hd_id_t base_class;
-  hd_id_t sub_class;
-  hd_id_t prog_if;
-  hd_id_t vendor;
-  hd_id_t device;
-  hd_id_t sub_vendor;
-  hd_id_t sub_device;
-  hd_id_t revision;
-  hd_id_t cu_model;
-  char *serial;
-  str_list_t *driver;
-  char *requires;
-} hddb_search_t;
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-static void hddb_init_pci(hd_data_t *hd_data);
-static hddb_pci_t *parse_pcimap(str_list_t *file);
-static driver_info_t *hd_pcidb(hd_data_t *hd_data, hddb_pci_t *pci_db, hd_t *hd, driver_info_t *drv_info);
-static void hddb_init_external(hd_data_t *hd_data);
-
-static line_t *parse_line(char *str);
-static unsigned store_string(hddb2_data_t *x, char *str);
-static unsigned store_list(hddb2_data_t *x, hddb_list_t *list);
-static unsigned store_value(hddb2_data_t *x, unsigned val);
-static unsigned store_entry(hddb2_data_t *x, tmp_entry_t *te);
-static void clear_entry(tmp_entry_t *te);
-static void add_value(tmp_entry_t *te, hddb_entry_t idx, unsigned val);
-static hddb_entry_mask_t add_entry(hddb2_data_t *hddb2, tmp_entry_t *te, hddb_entry_t idx, char *str);
-static int compare_ids(hddb2_data_t *hddb, hddb_search_t *hs, hddb_entry_mask_t mask, unsigned key);
-static void complete_ids(hddb2_data_t *hddb, hddb_search_t *hs, hddb_entry_mask_t key_mask, hddb_entry_mask_t mask, unsigned val_idx);
-static int hddb_search(hd_data_t *hd_data, hddb_search_t *hs, int max_recursions);
-#ifdef HDDB_TEST
-static void test_db(hd_data_t *hd_data);
-#endif
-static driver_info_t *hddb_to_device_driver(hd_data_t *hd_data, hddb_search_t *hs);
-static driver_info_t *kbd_driver(hd_data_t *hd_data, hd_t *hd);
-static driver_info_t *monitor_driver(hd_data_t *hd_data, hd_t *hd);
-
-#if WITH_ISDN
-/* static int chk_free_biosmem(hd_data_t *hd_data, unsigned addr, unsigned len); */
-/* static isdn_parm_t *new_isdn_parm(isdn_parm_t **ip); */
-static driver_info_t *isdn_driver(hd_data_t *hd_data, hd_t *hd, cdb_isdn_card *cic);
-static driver_info_t *dsl_driver(hd_data_t *hd_data, hd_t *hd, cdb_isdn_card *cic);
-#endif
-
-static hd_res_t *get_res(hd_t *h, enum resource_types t, unsigned index);
-static driver_info_t *reorder_x11(driver_info_t *di0, char *info);
-static void expand_driver_info(hd_data_t *hd_data, hd_t *hd);
-static char *module_cmd(hd_t *hd, char *cmd);
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-void hddb_init_pci(hd_data_t *hd_data)
-{
-  str_list_t *sl = NULL;
-  char *s = NULL, *r;
-  struct utsname ubuf;
-
-  if(!hd_data->hddb_pci) {
-    if(!uname(&ubuf)) {
-      r = getenv("LIBHD_KERNELVERSION");
-      if(!r || !*r) r = ubuf.release;
-      str_printf(&s, 0, "/lib/modules/%s/modules.pcimap", r);
-      sl = read_file(s, 0, 0);
-      s = free_mem(s);
-    }
-
-    hd_data->hddb_pci = parse_pcimap(sl);
-
-    sl = free_str_list(sl);
-  }
-
-  if(!hd_data->hddb_pci_hm) {
-    sl = read_file("/etc/hotplug/pci.handmap", 0, 0);
-    hd_data->hddb_pci_hm = parse_pcimap(sl);
-    sl = free_str_list(sl);
-  }
-}
-
-
-hddb_pci_t *parse_pcimap(str_list_t *file)
-{
-  str_list_t *sl;
-  unsigned len;
-  hddb_pci_t *pci, *p;
-  char buf[64];
-  unsigned u0, u1, u2, u3, u4, u5;
-
-  for(len = 1, sl = file; sl; sl = sl->next) len++;
-
-  pci = new_mem(len * sizeof *pci);
-
-  for(p = pci, sl = file; sl; sl = sl->next) {
-    if(sscanf(sl->str, "%63s %x %x %x %x %x %x", buf, &u0, &u1, &u2, &u3, &u4, &u5) == 7) {
-      p->module = new_str(buf);
-      p->vendor = u0;
-      p->device = u1;
-      p->subvendor = u2;
-      p->subdevice = u3;
-      p->pciclass = u4;
-      p->classmask = u5;
-
-      p++;
-    }
-  }
-
-#if 0
-  fprintf(stderr, "---  pcimap  ---\n");
-  for(p = pci; p->module; p++) {
-    fprintf(stderr, "%s, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x\n",
-      p->module, p->vendor, p->device, p->subvendor, p->subdevice,
-      p->pciclass, p->classmask
-    );
-  }
-#endif
-
-  return pci;
-}
-
-
-driver_info_t *hd_pcidb(hd_data_t *hd_data, hddb_pci_t *pci_db, hd_t *hd, driver_info_t *drv_info)
-{
-  unsigned vendor, device, subvendor, subdevice, pciclass;
-  driver_info_t **di = NULL, *di2;
-  pci_t *pci;
-  char *mod_list[16 /* arbitrary */];
-  int mod_prio[sizeof mod_list / sizeof *mod_list];
-  int i, prio, mod_list_len;
-
-  if(!pci_db) return drv_info;
-
-  if(ID_TAG(hd->vendor.id) != TAG_PCI) return drv_info;
-
-  /* don't add module info if driver info of some other type exists */
-  for(di = &drv_info; *di; di = &(*di)->next) {
-    if((*di)->any.type != di_module) return drv_info;
-  }
-
-  vendor = ID_VALUE(hd->vendor.id);
-  device = ID_VALUE(hd->device.id);
-  subvendor = ID_VALUE(hd->sub_vendor.id);
-  subdevice = ID_VALUE(hd->sub_device.id);
-  pciclass = (hd->base_class.id << 16) + ((hd->sub_class.id & 0xff) << 8) + (hd->prog_if.id & 0xff);
-
-  if(
-    hd->detail &&
-    hd->detail->type == hd_detail_pci &&
-    (pci = hd->detail->pci.data)
-  ) {
-    pciclass = (pci->base_class << 16) + ((pci->sub_class & 0xff) << 8) + (pci->prog_if & 0xff);
-  }
-
-  for(mod_list_len = 0; pci_db->module; pci_db++) {
-    if(
-      (pci_db->vendor == 0xffffffff || pci_db->vendor == vendor) &&
-      (pci_db->device == 0xffffffff || pci_db->device == device) &&
-      (pci_db->subvendor == 0xffffffff || pci_db->subvendor == subvendor) &&
-      (pci_db->subdevice == 0xffffffff || pci_db->subdevice == subdevice) &&
-      !((pci_db->pciclass ^ pciclass) & pci_db->classmask)
-    ) {
-      for(di2 = drv_info; di2; di2 = di2->next) {
-        if(
-          di2->any.type == di_module &&
-          di2->any.hddb0 &&
-          di2->any.hddb0->str &&
-          !strcmp(di2->any.hddb0->str, pci_db->module)
-        ) break;
-      }
-
-      if(di2) continue;
-
-      prio = 0;
-      if(pci_db->vendor == vendor) prio = 1;
-      if(pci_db->device == device) prio = 2;
-      if(pci_db->subvendor == subvendor) prio = 3;
-      if(pci_db->subdevice == subdevice) prio = 4;
-
-      mod_prio[mod_list_len] = prio;
-      mod_list[mod_list_len++] = pci_db->module;
-
-      if(mod_list_len >= sizeof mod_list / sizeof *mod_list) break;
-    }
-  }
-
-  for(prio = 4; prio >= 0; prio--) {
-    for(i = 0; i < mod_list_len; i++) {
-      if(mod_prio[i] == prio) {
-        *di = new_mem(sizeof **di);
-        (*di)->any.type = di_module;
-        (*di)->module.modprobe = 1;
-        add_str_list(&(*di)->any.hddb0, mod_list[i]);
-        di = &(*di)->next;
-      }
-    }
-  }
-
-  return drv_info;
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-void hddb_init(hd_data_t *hd_data)
-{
-  hddb_init_pci(hd_data);
-  hddb_init_external(hd_data);
-
-#ifndef HDDB_EXTERNAL_ONLY
-  hd_data->hddb2[1] = &hddb_internal;
-#endif
-
-#ifdef HDDB_TEST
-  test_db(hd_data);
-#endif
-}
-
-
-void hddb_init_external(hd_data_t *hd_data)
-{
-  str_list_t *sl, *sl0;
-  line_t *l;
-  unsigned l_start, l_end /* end points _past_ last element */;
-  unsigned u, ent, l_nr = 1;
-  tmp_entry_t tmp_entry[he_nomask /* _must_ be he_nomask! */];
-  hddb_entry_mask_t entry_mask = 0;
-  int state;
-  hddb_list_t dbl = {};
-  hddb2_data_t *hddb2;
-
-  if(hd_data->hddb2[0]) return;
-
-  hddb2 = hd_data->hddb2[0] = new_mem(sizeof *hd_data->hddb2[0]);
-
-  sl0 = read_file(ID_LIST, 0, 0);
-
-  l_start = l_end = 0;
-  state = 0;
-
-  for(sl = sl0; sl; sl = sl->next, l_nr++) {
-    l = parse_line(sl->str);
-    if(!l) {
-      ADD2LOG("hd.ids line %d: invalid line\n", l_nr);
-      state = 4;
-      break;
-    };
-    if(l->prefix == pref_empty) continue;
-    switch(l->prefix) {
-      case pref_new:
-        if((state == 2 && !entry_mask) || state == 1) {
-          ADD2LOG("hd.ids line %d: new item not allowed\n", l_nr);
-          state = 4;
-          break;
-        }
-        if(state == 2 && entry_mask) {
-          ent = store_entry(hddb2, tmp_entry);
-          if(ent == -1u) {
-            ADD2LOG("hd.ids line %d: internal hddb oops 1\n", l_nr);
-            state = 4;
-            break;
-          }
-          if(l_end && l_end > l_start) {
-            for(u = l_start; u < l_end; u++) {
-              hddb2->list[u].value_mask = entry_mask;
-              hddb2->list[u].value = ent;
-            }
-          }
-        }
-        entry_mask = 0;
-        clear_entry(tmp_entry);
-        state = 1;
-        l_start = store_list(hddb2, &dbl);
-        l_end = l_start + 1;
-        break;
-
-      case pref_and:
-        if(state != 1) {
-          ADD2LOG("hd.ids line %d: must start item first\n", l_nr);
-          state = 4;
-          break;
-        }
-        break;
-
-      case pref_or:
-        if(state != 1 || !entry_mask || l_end <= l_start || l_end < 1) {
-          ADD2LOG("hd.ids line %d: must start item first\n", l_nr);
-          state = 4;
-          break;
-        }
-        ent = store_entry(hddb2, tmp_entry);
-        if(ent == -1u) {
-          ADD2LOG("hd.ids line %d: internal hddb oops 2\n", l_nr);
-          state = 4;
-          break;
-        }
-        hddb2->list[l_end - 1].key_mask = entry_mask;
-        hddb2->list[l_end - 1].key = ent;
-        entry_mask = 0;
-        clear_entry(tmp_entry);
-        u = store_list(hddb2, &dbl);
-        if(u != l_end) {
-          ADD2LOG("hd.ids line %d: internal hddb oops 2\n", l_nr);
-          state = 4;
-          break;
-        }
-        l_end++;
-        break;
-
-      case pref_add:
-        if(state == 1 && !entry_mask) {
-          ADD2LOG("hd.ids line %d: driver info not allowed\n", l_nr);
-          state = 4;
-          break;
-        }
-        if(state == 1 && l_end > l_start) {
-          ent = store_entry(hddb2, tmp_entry);
-          if(ent == -1u) {
-            ADD2LOG("hd.ids line %d: internal hddb oops 3\n", l_nr);
-            state = 4;
-            break;
-          }
-          hddb2->list[l_end - 1].key_mask = entry_mask;
-          hddb2->list[l_end - 1].key = ent;
-          entry_mask = 0;
-          clear_entry(tmp_entry);
-          state = 2;
-        }
-        if(state != 2 || l_end == 0) {
-          ADD2LOG("hd.ids line %d: driver info not allowed\n", l_nr);
-          state = 4;
-          break;
-        }
-        break;
-
-      default:
-        state = 4;
-    }
-
-    if(state != 4) {
-      u = add_entry(hddb2, tmp_entry, l->key, l->value);
-      if(u) {
-        entry_mask |= u;
-      }
-      else {
-        ADD2LOG("hd.ids line %d: invalid info\n", l_nr);
-        state = 4;
-      }
-    }
-
-    if(state == 4) break;      /* error */
-  }
-
-  /* finalize last item */
-  if(state == 2 && entry_mask) {
-    ent = store_entry(hddb2, tmp_entry);
-    if(ent == -1u) {
-      ADD2LOG("hd.ids line %d: internal hddb oops 4\n", l_nr);
-      state = 4;
-    }
-    else if(l_end && l_end > l_start) {
-      for(u = l_start; u < l_end; u++) {
-        hddb2->list[u].value_mask = entry_mask;
-        hddb2->list[u].value = ent;
-      }
-    }
-  }
-
-  sl0 = free_str_list(sl0);
-
-  if(state == 4) {
-    /* there was an error */
-
-    free_mem(hddb2->list);
-    free_mem(hddb2->ids);
-    free_mem(hddb2->strings);
-    hd_data->hddb2[0] = free_mem(hd_data->hddb2[0]);
-  }
-}
-
-
-line_t *parse_line(char *str)
-{
-  static line_t l;
-  char *s;
-  int i;
-
-  /* drop leading spaces */
-  while(isspace(*str)) str++;
-
-  /* skip emtpy lines and comments */
-  if(!*str || *str == ';' || *str == '#') {
-    l.prefix = pref_empty;
-    return &l;
-  }
-
-  l.prefix = pref_new;
-
-  switch(*str) {
-    case '&':
-      l.prefix = pref_and;
-      str++;
-      break;
-
-    case '|':
-      l.prefix = pref_or;
-      str++;
-      break;
-
-    case '+':
-      l.prefix = pref_add;
-      str++;
-      break;
-  }
-
-  /* skip spaces */
-  while(isspace(*str)) str++;
-
-  s = str;
-  while(*str && !isspace(*str)) str++;
-  if(*str) *str++ = 0;
-  while(isspace(*str)) str++;
-
-  for(i = 0; (unsigned) i < sizeof hddb_entry_strings / sizeof *hddb_entry_strings; i++) {
-    if(!strcmp(s, hddb_entry_strings[i])) {
-      l.key = i;
-      break;
-    }
-  }
-
-  if((unsigned) i >= sizeof hddb_entry_strings / sizeof *hddb_entry_strings) return NULL;
-
-  l.value = str;
-
-  /* drop trailing white space */
-  i = strlen(str);
-  while(i > 0) {
-    if(isspace(str[i - 1]))
-      str[--i] = 0;
-    else
-      break;
-  }
-
-  /* special case: drop leading and final double quotes, if any */
-  i = strlen(l.value);
-  if(i >= 2 && l.value[0] == '"' && l.value[i - 1] == '"') {
-    l.value[i - 1] = 0;
-    l.value++;
-  }
-
-  // fprintf(stderr, "pre = %d, key = %d, val = \"%s\"\n", l.prefix, l.key, l.value);
-
-  return &l;
-}
-
-
-unsigned store_string(hddb2_data_t *x, char *str)
-{
-  unsigned l = strlen(str), u;
-
-  if(x->strings_len + l >= x->strings_max) {
-    x->strings_max += l + 0x1000;         /* >4k steps */
-    x->strings = resize_mem(x->strings, x->strings_max * sizeof *x->strings);
-  }
-
-  /* make sure the 1st byte is 0 */
-  if(x->strings_len == 0) {
-    *x->strings = 0;   /* resize_mem does _not_ clear memory */
-    x->strings_len = 1;
-  }
-
-  if(l == 0) return 0;         /* 1st byte is always 0 */
-
-  strcpy(x->strings + (u = x->strings_len), str);
-  x->strings_len += l + 1;
-
-  return u;
-}
-
-
-unsigned store_list(hddb2_data_t *x, hddb_list_t *list)
-{
-  if(x->list_len == x->list_max) {
-    x->list_max += 0x100;      /* 4k steps */
-    x->list = resize_mem(x->list, x->list_max * sizeof *x->list);
-  }
-
-  x->list[x->list_len++] = *list;
-
-  return x->list_len - 1;
-}
-
-
-unsigned store_value(hddb2_data_t *x, unsigned val)
-{
-  if(x->ids_len == x->ids_max) {
-    x->ids_max += 0x400;       /* 4k steps */
-    x->ids = resize_mem(x->ids, x->ids_max * sizeof *x->ids);
-  }
-
-  x->ids[x->ids_len++] = val;
-
-  return x->ids_len - 1;
-}
-
-
-/* returns index in hddb2->ids */
-unsigned store_entry(hddb2_data_t *x, tmp_entry_t *te)
-{
-  int i, j;
-  unsigned ent = -1, u, v;
-
-  for(i = 0; i < he_nomask; i++) {
-    if(te[i].len) {
-      for(j = 0; j < te[i].len; j++) {
-        v = te[i].val[j] | (1 << 31);
-        if(j == te[i].len - 1) v &= ~(1 << 31);
-        u = store_value(x, v);
-        if(ent == -1u) ent = u;
-      }
-    }
-  }
-
-  return ent;
-}
-
-void clear_entry(tmp_entry_t *te)
-{
-  memset(te, 0, he_nomask * sizeof *te);
-}
-
-void add_value(tmp_entry_t *te, hddb_entry_t idx, unsigned val)
-{
-  if(idx >= he_nomask) return;
-  te += idx;
-
-  if((unsigned) te->len >= sizeof te->val / sizeof *te->val) return;
-
-  te->val[te->len++] = val;
-}
-
-int parse_id(char *str, unsigned *id, unsigned *range, unsigned *mask)
-{
-  static unsigned id0, val;
-  unsigned tag = 0;
-  char c = 0, *s, *t = NULL;
-
-  *id = *range = *mask = 0;
-
-  if(!str || !*str) return 0;
-  
-  for(s = str; *str && !isspace(*str); str++);
-  if(*str) {
-    c = *(t = str);    /* remember for later */
-    *str++ = 0;
-  }
-  while(isspace(*str)) str++;
-
-  if(*s) {
-    if(!strcmp(s, "pci")) tag = TAG_PCI;
-    else if(!strcmp(s, "usb")) tag = TAG_USB;
-    else if(!strcmp(s, "special")) tag = TAG_SPECIAL;
-    else if(!strcmp(s, "eisa")) tag = TAG_EISA;
-    else if(!strcmp(s, "isapnp")) tag = TAG_EISA;
-    else if(!strcmp(s, "pcmcia")) tag = TAG_PCMCIA;
-    else {
-      str = s;
-      if(t) *t = c;    /* restore */
-    }
-  }
-
-  id0 = strtoul(str, &s, 0);
-
-  if(s == str) {
-    id0 = name2eisa_id(str);
-    if(!id0) return 0;
-    s = str + 3;
-    id0 = ID_VALUE(id0);
-    if(!tag) tag = TAG_EISA;
-  }
-
-  while(isspace(*s)) s++;
-  if(*s && *s != '&' && *s != '+') return 0;
-
-  *id = MAKE_ID(tag, id0);
-
-  if(!*s) return 1;
-
-  c = *s++;
-
-  while(isspace(*s)) s++;
-
-  val = strtoul(s, &str, 0);
-
-  if(s == str) return 0;
-
-  while(isspace(*str)) str++;
-
-  if(*str) return 0;
-
-  if(c == '+') *range = val; else *mask = val;
-
-  return c == '+' ? 2 : 3;
-}
-
-
-hddb_entry_mask_t add_entry(hddb2_data_t *hddb2, tmp_entry_t *te, hddb_entry_t idx, char *str)
-{
-  hddb_entry_mask_t mask = 0;
-  int i;
-  unsigned u, u0, u1, u2;
-  char *s, c;
-
-  for(i = 0; (unsigned) i < sizeof hddb_is_numeric / sizeof *hddb_is_numeric; i++) {
-    if(idx == hddb_is_numeric[i]) break;
-  }
-
-  if((unsigned) i < sizeof hddb_is_numeric / sizeof *hddb_is_numeric) {
-    /* numeric id */
-    mask |= 1 << idx;
-
-    i = parse_id(str, &u0, &u1, &u2);
-
-    switch(i) {
-      case 1:
-        add_value(te, idx, MAKE_DATA(FLAG_ID, u0));
-        break;
-
-      case 2:
-        add_value(te, idx, MAKE_DATA(FLAG_RANGE, u1));
-        add_value(te, idx, MAKE_DATA(FLAG_ID, u0));
-        break;
-
-      case 3:
-        add_value(te, idx, MAKE_DATA(FLAG_MASK, u2));
-        add_value(te, idx, MAKE_DATA(FLAG_ID, u0));
-        break;
-
-      default:
-        return 0;
-    }
-  }
-  else {
-    if(idx < he_nomask) {
-      /* strings */
-
-      mask |= 1 << idx;
-      u = store_string(hddb2, str);
-      // fprintf(stderr, ">>> %s\n", str);
-      add_value(te, idx, MAKE_DATA(FLAG_STRING, u));
-    }
-    else {
-      /* special */
-
-      if(idx == he_class_id) {
-        i = parse_id(str, &u0, &u1, &u2);
-        if(i != 1) return 0;
-        u = ID_VALUE(u0) >> 8;
-        add_value(te, he_baseclass_id, MAKE_DATA(FLAG_ID, u));
-        u = u0 & 0xff;
-        add_value(te, he_subclass_id, MAKE_DATA(FLAG_ID, u));
-        /* add_value(te, he_progif_id, MAKE_DATA(FLAG_ID, 0)); */
-        mask |= (1 << he_baseclass_id) + (1 << he_subclass_id) /* + (1 << he_progif_id) */;
-      }
-      else {
-        switch(idx) {
-          case he_driver_module_insmod:
-            c = 'i';
-            break;
-
-          case he_driver_module_modprobe:
-            c = 'm';
-            break;
-
-          case he_driver_module_config:
-            c = 'M';
-            break;
-
-          case he_driver_xfree:
-            c = 'x';
-            break;
-
-          case he_driver_xfree_config:
-            c = 'X';
-            break;
-
-          case he_driver_mouse:
-            c = 'p';
-            break;
-
-          case he_driver_display:
-            c = 'd';
-            break;
-
-          case he_driver_any:
-            c = 'a';
-            break;
-
-          default:
-            c = 0;
-            break;
-        }
-        if(c) {
-          s = new_mem(strlen(str) + 3);
-          s[0] = c;
-          s[1] = '\t';
-          strcpy(s + 2, str);
-          mask |= add_entry(hddb2, te, he_driver, s);
-          s = free_mem(s);
-        }
-      }
-    }
-  }
-
-  return mask;
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-void hddb_dump_raw(hddb2_data_t *hddb, FILE *f)
-{
-  int i;
-  unsigned u, fl, v, t, id;
-  char *s;
-
-  if(!hddb) return;
-
-  fprintf(f, "=== strings 0x%05x/0x%05x ===\n", hddb->strings_len, hddb->strings_max);
-
-  for(s = hddb->strings, i = 0, u = 0; u < hddb->strings_len; u++) {
-    if(!hddb->strings[u]) {
-      fprintf(f, "%4d (0x%05x): \"%s\"\n", i, (unsigned) (s - hddb->strings), s);
-      i++;
-      s = hddb->strings + u + 1;
-    }
-  }
-
-  fprintf(f, "\n=== ids 0x%05x/0x%05x ===\n", hddb->ids_len, hddb->ids_max);
-
-  for(u = 0; u < hddb->ids_len; u++) {
-    fprintf(f, "0x%05x: 0x%08x  ", u, hddb->ids[u]);
-    if(hddb->ids[u] & (1 << 31)) fprintf(f, "    ");
-    fl = DATA_FLAG(hddb->ids[u]) & 0x7;
-    v = DATA_VALUE(hddb->ids[u]);
-    if(fl == FLAG_STRING && v < hddb->strings_len) {
-      fprintf(f, "\"%s\"", hddb->strings + v);
-    }
-    else if(fl == FLAG_MASK) {
-      fprintf(f, "&0x%04x", v);
-    }
-    else if(fl == FLAG_RANGE) {
-      fprintf(f, "+0x%04x", v);
-    }
-    else if(fl == FLAG_ID) {
-      t = ID_TAG(v);
-      id = ID_VALUE(v);
-      fprintf(f, "%s0x%04x", hid_tag_name(t), id);
-      if(t == TAG_EISA) {
-        fprintf(f, " (%s)", eisa_vendor_str(id));
-      }
-    }
-    fprintf(f, "\n");
-  }
-
-  fprintf(f, "\n===  search list 0x%05x/0x%05x ===\n", hddb->list_len, hddb->list_max);
-
-  for(u = 0; u < hddb->list_len; u++) {
-    fprintf(f,
-      "%4d: 0x%08x 0x%08x 0x%05x 0x%05x\n",
-      u, hddb->list[u].key_mask, hddb->list[u].value_mask,
-      hddb->list[u].key, hddb->list[u].value
-    );
-  }
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-void hddb_dump_ent_name(hddb2_data_t *hddb, FILE *f, char pre, hddb_entry_t ent)
-{
-  int len, tab_ind = 24;
-
-  if(ent >= sizeof hddb_entry_strings / sizeof *hddb_entry_strings) return;
-
-  fprintf(f, "%c%s\t", pre, hddb_entry_strings[ent]);
-
-  len = strlen(hddb_entry_strings[ent]) + 1;
-
-  for(len = (len & ~7) + 8; len < tab_ind; len += 8) {
-    fputc('\t', f);
-  }
-}
-
-
-void hddb_dump_skey(hddb2_data_t *hddb, FILE *f, prefix_t pre, hddb_entry_mask_t key_mask, unsigned key)
-{
-  static char pref_char[5] = { ' ', ' ', '&', '|', '+' };
-  hddb_entry_t ent;
-  unsigned rm_val = 0, r_or_m = 0;
-  unsigned fl, val, *ids, id, tag, u;
-  char *str_val;
-  int i;
-
-  if(pre >= sizeof pref_char) return;
-
-  if(key >= hddb->ids_len) return;
-
-  ids = hddb->ids + key;
-
-  for(ent = 0; ent < he_nomask && key_mask; ent++, key_mask >>= 1) {
-    if(!(key_mask & 1)) continue;
-
-    fl = DATA_FLAG(*ids);
-    val = DATA_VALUE(*ids);
-
-    r_or_m = 0;
-
-    while((fl & FLAG_CONT)) {
-      if(fl == (FLAG_CONT | FLAG_RANGE)) {
-        rm_val = val;
-        r_or_m = 1;
-      }
-      else if(fl == (FLAG_CONT | FLAG_MASK)) {
-        rm_val = val;
-        r_or_m = 2;
-      }
-      else {
-        break;
-      }
-
-      ids++;
-
-      fl = DATA_FLAG(*ids);
-      val = DATA_VALUE(*ids);
-    }
-
-    fl &= ~FLAG_CONT;
-
-    if(ent != he_driver) {
-      hddb_dump_ent_name(hddb, f, pref_char[pre], ent);
-
-      if(fl == FLAG_ID) {
-        tag = ID_TAG(val);
-        id = ID_VALUE(val);
-        if(tag == TAG_EISA && (ent == he_vendor_id || ent == he_subvendor_id)) {
-          fprintf(f, "%s", eisa_vendor_str(id));
-        }
-        else {
-          u = 4;
-          if(ent == he_bus_id || ent == he_subclass_id || ent == he_progif_id) {
-            u = 2;
-          }
-          else if(ent == he_baseclass_id) {
-            u = 3;
-          }
-          fprintf(f, "%s0x%0*x", hid_tag_name(tag), u, id);
-        }
-        if(r_or_m) {
-          fprintf(f, "%c0x%04x", r_or_m == 1 ? '+' : '&', rm_val);
-        }
-      }
-      else if(fl == FLAG_STRING) {
-        if(val < hddb->strings_len) {
-          str_val = hddb->strings + val;
-          fprintf(f, "%s", str_val);
-        }
-      }
-      fputc('\n', f);
-    }
-    else {
-      ids--;
-      do {
-        ids++;
-        fl = DATA_FLAG(*ids) & ~FLAG_CONT;
-        val = DATA_VALUE(*ids);
-        if(fl != FLAG_STRING) break;
-        str_val = NULL;
-        if(val < hddb->strings_len) str_val = hddb->strings + val;
-        if(!str_val) break;
-        if(!*str_val && !str_val[1] == '\t') break;
-
-        switch(*str_val) {
-          case 'x':
-             i = he_driver_xfree;
-             break;
-
-           case 'X':
-             i = he_driver_xfree_config;
-             break;
-
-           case 'i':
-             i = he_driver_module_insmod;
-             break;
-
-           case 'm':
-             i = he_driver_module_modprobe;
-             break;
-
-           case 'M':
-             i = he_driver_module_config;
-             break;
-
-           case 'p':
-             i = he_driver_mouse;
-             break;
-
-           case 'd':
-             i = he_driver_display;
-             break;
-
-           case 'a':
-             i = he_driver_any;
-             break;
-
-           default:
-             i = -1;
-             break;
-        }
-        if(i == -1) break;
-
-        hddb_dump_ent_name(hddb, f, pref_char[pre], i);
-        fprintf(f, "%s\n", str_val + 2);
-      }
-      while((*ids & (1 << 31)));
-    }
-
-    /* at this point 'ids' must be the _current_ entry (_not_ the next) */
-
-    /* skip potential garbage/unhandled entries */
-    while((*ids & (1 << 31))) ids++;
-
-    ids++;
-
-    if(pre != pref_add) pre = pref_and;
-  }
-}
-
-
-void hddb_dump(hddb2_data_t *hddb, FILE *f)
-{
-  unsigned u;
-
-  if(!hddb) return;
-
-  for(u = 0; u < hddb->list_len; u++) {
-    hddb_dump_skey(hddb, f, pref_new, hddb->list[u].key_mask, hddb->list[u].key);
-    hddb_dump_skey(hddb, f, pref_add, hddb->list[u].value_mask, hddb->list[u].value);
-    fputc('\n', f);
-  }
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-int compare_ids(hddb2_data_t *hddb, hddb_search_t *hs, hddb_entry_mask_t mask, unsigned key)
-{
-  hddb_entry_t ent;
-  unsigned rm_val = 0, r_or_m = 0, res = 0;
-  unsigned fl, val, ok, *ids, id;
-  char *str, *str_val;
-
-  if(key >= hddb->ids_len) return 1;
-
-  ids = hddb->ids + key;
-
-  for(ent = 0; ent < he_nomask && mask && !res; ent++, mask >>= 1) {
-    if(!(mask & 1)) continue;
-
-    fl = DATA_FLAG(*ids);
-    val = DATA_VALUE(*ids);
-
-    r_or_m = 0;
-
-    while((fl & FLAG_CONT)) {
-      if(fl == (FLAG_CONT | FLAG_RANGE)) {
-        rm_val = val;
-        r_or_m = 1;
-      }
-      else if(fl == (FLAG_CONT | FLAG_MASK)) {
-        rm_val = val;
-        r_or_m = 2;
-      }
-      else {
-        break;
-      }
-
-      ids++;
-
-      fl = DATA_FLAG(*ids);
-      val = DATA_VALUE(*ids);
-    }
-
-    fl &= ~FLAG_CONT;
-
-    id = 0;
-    str = str_val = NULL;
-    ok = 0;
-    if(fl == FLAG_ID) {
-      ok = 1;
-      switch(ent) {
-        case he_bus_id:
-          id = hs->bus.id;
-          break;
-
-        case he_baseclass_id:
-          id = hs->base_class.id;
-          break;
-
-        case he_subclass_id:
-          id = hs->sub_class.id;
-          break;
-
-        case he_progif_id:
-          id = hs->prog_if.id;
-          break;
-
-        case he_vendor_id:
-          id = hs->vendor.id;
-          break;
-
-        case he_device_id:
-          id = hs->device.id;
-          break;
-
-        case he_subvendor_id:
-          id = hs->sub_vendor.id;
-          break;
-
-        case he_subdevice_id:
-          id = hs->sub_device.id;
-          break;
-
-        case he_rev_id:
-          id = hs->revision.id;
-          break;
-       case he_detail_ccw_data_cu_model:
-         id = hs->cu_model.id;
-         break;
-
-        default:
-          ok = 0;
-          break;
-      }
-    }
-    else if(fl == FLAG_STRING) {
-      if(val < hddb->strings_len) str_val = hddb->strings + val;
-      ok = 2;
-      switch(ent) {
-        case he_bus_name:
-          str = hs->bus.name;
-          break;
-
-        case he_baseclass_name:
-          str = hs->base_class.name;
-          break;
-
-        case he_subclass_name:
-          str = hs->sub_class.name;
-          break;
-
-        case he_progif_name:
-          str = hs->prog_if.name;
-          break;
-
-        case he_vendor_name:
-          str = hs->vendor.name;
-          break;
-
-        case he_device_name:
-          str = hs->device.name;
-          break;
-
-        case he_subvendor_name:
-          str = hs->sub_vendor.name;
-          break;
-
-        case he_subdevice_name:
-          str = hs->sub_device.name;
-          break;
-
-        case he_rev_name:
-          str = hs->revision.name;
-          break;
-
-        case he_serial:
-          str = hs->serial;
-          break;
-
-        case he_requires:
-          str = hs->requires;
-          break;
-
-        default:
-          ok = 0;
-      }
-    }
-
-    switch(ok) {
-      case 1:
-        switch(r_or_m) {
-          case 1:
-            if(id < val || id >= val + rm_val) res = 1;
-            break;
-
-          case 2:
-            if((id & ~rm_val) != val) res = 1;
-            break;
-
-          default:
-            if(id != val) res = 1;
-        }
-        break;
-
-      case 2:
-        if(str && str_val) {
-          if(strcmp(str, str_val)) res = 1;
-        }
-        else {
-          res = 1;
-        }
-        break;
-
-      default:
-        res = 1;
-    }
-
-#ifdef HDDB_TRACE
-    switch(ok) {
-      case 1:
-        if(r_or_m) {
-          printf(
-            "cmp: 0x%05x: (ent = %2d, id = 0x%x, val = 0x%x%c0x%x) = %d\n",
-            key, ent, id, val, r_or_m == 1 ? '+' : '&', rm_val, res
-          );
-        }
-        else {
-          printf(
-            "cmp: 0x%05x: (ent = %2d, id = 0x%x, val = 0x%x) = %d\n",
-            key, ent, id, val, res
-          );
-        }
-        break;
-
-      case 2:
-        printf(
-          "cmp: 0x%05x: (ent = %2d, id = \"%s\", val = \"%s\") = %d\n",
-          key, ent, str, str_val, res
-        );
-        
-        break;
-
-      default:
-        printf("cmp: 0x%05x: (ent = %2d, *** unhandled key ***) = %d\n", key, ent, res);
-    }
-#endif
-
-    /* at this point 'ids' must be the _current_ entry (_not_ the next) */
-
-    /* skip potential garbage/unhandled entries */
-    while((*ids & (1 << 31))) ids++;
-
-    ids++;
-  }
-
-  return res;
-}
-
-void complete_ids(
-  hddb2_data_t *hddb, hddb_search_t *hs,
-  hddb_entry_mask_t key_mask, hddb_entry_mask_t mask, unsigned val_idx
-)
-{
-  hddb_entry_t ent;
-  unsigned *ids, *id;
-  unsigned fl, val, ok;
-  char **str, *str_val;
-
-  if(val_idx >= hddb->ids_len) return;
-
-  ids = hddb->ids + val_idx;
-
-  for(ent = 0; ent < he_nomask && mask; ent++, mask >>= 1) {
-    if(!(mask & 1)) continue;
-
-    fl = DATA_FLAG(*ids);
-    val = DATA_VALUE(*ids);
-
-    fl &= ~FLAG_CONT;
-
-    id = NULL;
-    str = NULL;
-    str_val = NULL;
-    ok = 0;
-    if(fl == FLAG_ID) {
-      ok = 1;
-      switch(ent) {
-        case he_bus_id:
-          id = &hs->bus.id;
-          break;
-
-        case he_baseclass_id:
-          id = &hs->base_class.id;
-          break;
-
-        case he_subclass_id:
-          id = &hs->sub_class.id;
-          break;
-
-        case he_progif_id:
-          id = &hs->prog_if.id;
-          break;
-
-        case he_vendor_id:
-          id = &hs->vendor.id;
-          break;
-
-        case he_device_id:
-          id = &hs->device.id;
-          break;
-
-        case he_subvendor_id:
-          id = &hs->sub_vendor.id;
-          break;
-
-        case he_subdevice_id:
-          id = &hs->sub_device.id;
-          break;
-
-        case he_rev_id:
-          id = &hs->revision.id;
-          break;
-       
-       case he_detail_ccw_data_cu_model:
-         id = &hs->cu_model.id;
-         break;
-
-        default:
-          ok = 0;
-          break;
-      }
-    }
-    else if(fl == FLAG_STRING) {
-      if(val < hddb->strings_len) str_val = hddb->strings + val;
-      ok = 2;
-      switch(ent) {
-        case he_bus_name:
-          str = &hs->bus.name;
-          break;
-
-        case he_baseclass_name:
-          str = &hs->base_class.name;
-          break;
-
-        case he_subclass_name:
-          str = &hs->sub_class.name;
-          break;
-
-        case he_progif_name:
-          str = &hs->prog_if.name;
-          break;
-
-        case he_vendor_name:
-          str = &hs->vendor.name;
-          break;
-
-        case he_device_name:
-          str = &hs->device.name;
-          break;
-
-        case he_subvendor_name:
-          str = &hs->sub_vendor.name;
-          break;
-
-        case he_subdevice_name:
-          str = &hs->sub_device.name;
-          break;
-
-        case he_rev_name:
-          str = &hs->revision.name;
-          break;
-
-        case he_serial:
-          str = &hs->serial;
-          break;
-
-        case he_driver:
-          ok = 3;
-          break;
-
-        case he_requires:
-          str = &hs->requires;
-          break;
-
-        default:
-          ok = 0;
-      }
-    }
-
-    if(ok) {
-      if(
-        (hs->value_mask[ent] & key_mask) == hs->value_mask[ent] &&
-        key_mask != hs->value_mask[ent]
-      ) {
-        hs->value_mask[ent] = key_mask;
-        hs->value |= 1 << ent;
-      }
-      else {
-        /* don't change if already set */
-        ok = 4;
-      }
-
-#if 0
-      if((hs->value & (1 << ent))) {
-        /* don't change if already set */
-        ok = 4;
-      }
-      else if(ent != he_driver) {
-        hs->value |= 1 << ent;
-      }
-#endif
-    }
-
-    switch(ok) {
-      case 1:
-        *id = val;
-#ifdef HDDB_TRACE
-        printf("add: 0x%05x: (ent = %2d, val = 0x%08x)\n", val_idx, ent, val);
-#endif
-        break;
-
-      case 2:
-        *str = str_val;
-#ifdef HDDB_TRACE
-        printf("add: 0x%05x: (ent = %2d, val = \"%s\")\n", val_idx, ent, str_val);
-#endif
-        break;
-
-      case 3:
-        ids--;
-        hs->driver = free_str_list(hs->driver);
-        do {
-          ids++;
-          fl = DATA_FLAG(*ids) & ~FLAG_CONT;
-          val = DATA_VALUE(*ids);
-          if(fl != FLAG_STRING) break;
-          str_val = NULL;
-          if(val < hddb->strings_len) str_val = hddb->strings + val;
-          if(!str_val) break;
-#ifdef HDDB_TRACE
-          printf("add: 0x%05x: (ent = %2d, val = \"%s\")\n", val_idx, ent, str_val);
-#endif
-          add_str_list(&hs->driver, str_val);
-        }
-        while((*ids & (1 << 31)));
-        break;
-
-      case 4:
-        break;
-
-#ifdef HDDB_TRACE
-      default:
-        printf("add: 0x%05x: (ent = %2d, *** unhandled value ***)\n", val_idx, ent);
-#endif
-    }
-
-    /* at this point 'ids' must be the _current_ entry (_not_ the next) */
-
-    /* skip potential garbage/unhandled entries */
-    while((*ids & (1 << 31))) ids++;
-
-    ids++;
-  }
-}
-
-int hddb_search(hd_data_t *hd_data, hddb_search_t *hs, int max_recursions)
-{
-  unsigned u;
-  int i;
-  hddb2_data_t *hddb;
-  int db_idx;
-  hddb_entry_mask_t all_values = 0;
-
-  if(!hs) return 0;
-
-  if(!max_recursions) max_recursions = 2;
-
-  while(max_recursions--) {
-    for(db_idx = 0; (unsigned) db_idx < sizeof hd_data->hddb2 / sizeof *hd_data->hddb2; db_idx++) {
-      if(!(hddb = hd_data->hddb2[db_idx])) continue;
-
-      for(u = 0; u < hddb->list_len; u++) {
-        if(
-          (hs->key & hddb->list[u].key_mask) == hddb->list[u].key_mask
-          /* && (hs->value & hddb->list[u].value_mask) != hddb->list[u].value_mask */
-        ) {
-          i = compare_ids(hddb, hs, hddb->list[u].key_mask, hddb->list[u].key);
-          if(!i) {
-            complete_ids(hddb, hs,
-              hddb->list[u].key_mask,
-              hddb->list[u].value_mask, hddb->list[u].value
-            );
-          }
-        }
-      }
-    }
-
-    all_values |= hs->value;
-
-    if(!max_recursions) break;
-
-    hs->key |= hs->value;
-    hs->value = 0;
-    memset(hs->value_mask, 0, sizeof hs->value_mask);
-  }
-
-  hs->value = all_values;
-
-  return 1;
-}
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-#ifdef HDDB_TEST
-void test_db(hd_data_t *hd_data)
-{
-  hddb_search_t hs = {};
-  int i;
-
-  hs.bus.id = 4;
-  hs.key |= (1 << he_bus_id) + (1 << he_serial);
-
-  hs.serial = "ser 0123";
-
-  i = hddb_search(hd_data, &hs, 0);
-
-  printf("%d, >%s<\n", i, hs.bus.name);
-}
-#endif
-
-
-str_list_t *get_hddb_packages(hd_data_t *hd_data)
-{
-  return NULL;
-}
-
-
-unsigned device_class(hd_data_t *hd_data, unsigned vendor, unsigned device)
-{
-  hddb_search_t hs = {};
-
-  hs.vendor.id = vendor;
-  hs.device.id = device;
-  hs.key |= (1 << he_vendor_id) + (1 << he_device_id);
-
-  hddb_search(hd_data, &hs, 1);
-
-  if(
-    (hs.value & ((1 << he_baseclass_id) + (1 << he_subclass_id))) ==
-    ((1 << he_baseclass_id) + (1 << he_subclass_id))
-  ) {
-    return (hs.base_class.id << 8) + (hs.sub_class.id & 0xff);
-  }
-
-  return 0;
-}
-
-
-unsigned sub_device_class(hd_data_t *hd_data, unsigned vendor, unsigned device, unsigned sub_vendor, unsigned sub_device)
-{
-  hddb_search_t hs = {};
-
-  hs.vendor.id = vendor;
-  hs.device.id = device;
-  hs.sub_vendor.id = sub_vendor;
-  hs.sub_device.id = sub_device;
-  hs.key |= (1 << he_vendor_id) + (1 << he_device_id) + (1 << he_subvendor_id) + (1 << he_subdevice_id);
-
-  hddb_search(hd_data, &hs, 1);
-
-  if(
-    (hs.value & ((1 << he_baseclass_id) + (1 << he_subclass_id))) ==
-    ((1 << he_baseclass_id) + (1 << he_subclass_id))
-  ) {
-    return (hs.base_class.id << 8) + (hs.sub_class.id & 0xff);
-  }
-
-  return 0;
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-void hddb_add_info(hd_data_t *hd_data, hd_t *hd)
-{
-  hddb_search_t hs = {};
-  driver_info_t *new_driver_info = NULL;
-#if WITH_ISDN
-  cdb_isdn_card *cic;
-#endif
-
-  if(hd->tag.fixed) return;
-
-  hs.bus.id = hd->bus.id;
-  hs.key |= 1 << he_bus_id;
-
-  hs.base_class.id = hd->base_class.id;
-  hs.key |= 1 << he_baseclass_id;
-
-  hs.sub_class.id = hd->sub_class.id;
-  hs.key |= 1 << he_subclass_id;
-
-  hs.prog_if.id = hd->prog_if.id;
-  hs.key |= 1 << he_progif_id;
-
-  if(hd->vendor.id) {
-    hs.vendor.id = hd->vendor.id;
-    hs.key |= 1 << he_vendor_id;
-  }
-
-  if(hd->vendor.name) {
-    hs.vendor.name = hd->vendor.name;
-    hs.key |= 1 << he_vendor_name;
-  }
-
-  if(hd->device.id) {
-    hs.device.id = hd->device.id;
-    hs.key |= 1 << he_device_id;
-  }
-
-  if(hd->device.name) {
-    hs.device.name = hd->device.name;
-    hs.key |= 1 << he_device_name;
-  }
-
-  if(hd->sub_vendor.id) {
-    hs.sub_vendor.id = hd->sub_vendor.id;
-    hs.key |= 1 << he_subvendor_id;
-  }
-
-  if(hd->sub_device.id) {
-    hs.sub_device.id = hd->sub_device.id;
-    hs.key |= 1 << he_subdevice_id;
-  }
-
-  hs.revision.id = hd->revision.id;
-  hs.key |= 1 << he_rev_id;
-
-  if(hd->revision.name) {
-    hs.revision.name = hd->revision.name;
-    hs.key |= 1 << he_rev_name;
-  }
-
-  if(hd->serial) {
-    hs.serial = hd->serial;
-    hs.key |= 1 << he_serial;
-  }
-
-  if(hd->detail && hd->detail->ccw.data) {
-    hs.cu_model.id=hd->detail->ccw.data->cu_model;
-    hs.key |= 1 << he_detail_ccw_data_cu_model;
-  }
-
-  hddb_search(hd_data, &hs, 0);
-
-  if((hs.value & (1 << he_bus_id))) {
-    hd->bus.id = hs.bus.id;
-  }
-
-  if((hs.value & (1 << he_bus_name))) {
-    if(!hd->ref) free_mem(hd->bus.name);
-    hd->bus.name = new_str(hs.bus.name);
-  }
-
-  if((hs.value & (1 << he_baseclass_id))) {
-    hd->base_class.id = hs.base_class.id;
-  }
-
-  if((hs.value & (1 << he_baseclass_name))) {
-    if(!hd->ref) free_mem(hd->base_class.name);
-    hd->base_class.name = new_str(hs.base_class.name);
-  }
-
-  if((hs.value & (1 << he_subclass_id))) {
-    hd->sub_class.id = hs.sub_class.id;
-  }
-
-  if((hs.value & (1 << he_subclass_name))) {
-    if(!hd->ref) free_mem(hd->sub_class.name);
-    hd->sub_class.name = new_str(hs.sub_class.name);
-  }
-
-  if((hs.value & (1 << he_progif_id))) {
-    hd->prog_if.id = hs.prog_if.id;
-  }
-
-  if((hs.value & (1 << he_progif_name))) {
-    if(!hd->ref) free_mem(hd->prog_if.name);
-    hd->prog_if.name = new_str(hs.prog_if.name);
-  }
-
-  if((hs.value & (1 << he_requires))) {
-    if(!hd->ref) hd->requires = free_str_list(hd->requires);
-    hd->requires = hd_split('|', hs.requires);
-  }
-
-  if((hs.value & (1 << he_vendor_id))) {
-    hd->vendor.id = hs.vendor.id;
-  }
-
-  if((hs.value & (1 << he_vendor_name))) {
-    if(!hd->ref) free_mem(hd->vendor.name);
-    hd->vendor.name = new_str(hs.vendor.name);
-  }
-
-  if((hs.value & (1 << he_device_id))) {
-    hd->device.id = hs.device.id;
-  }
-
-  if((hs.value & (1 << he_device_name))) {
-    if(!hd->ref) free_mem(hd->device.name);
-    hd->device.name = new_str(hs.device.name);
-  }
-
-  if((hs.value & (1 << he_subvendor_id))) {
-    hd->sub_vendor.id = hs.sub_vendor.id;
-  }
-
-  if((hs.value & (1 << he_subvendor_name))) {
-    if(!hd->ref) free_mem(hd->sub_vendor.name);
-    hd->sub_vendor.name = new_str(hs.sub_vendor.name);
-  }
-
-  if((hs.value & (1 << he_subdevice_id))) {
-    hd->sub_device.id = hs.sub_device.id;
-  }
-
-  if((hs.value & (1 << he_subdevice_name))) {
-    if(!hd->ref) free_mem(hd->sub_device.name);
-    hd->sub_device.name = new_str(hs.sub_device.name);
-  }
-
-  if((hs.value & (1 << he_detail_ccw_data_cu_model))) {
-    if(hd->detail && hd->detail->ccw.data)
-      hd->detail->ccw.data->cu_model=hs.cu_model.id;
-  }
-
-  /* look for sub vendor again */
-
-  if(!hd->sub_vendor.name && hd->sub_vendor.id) {
-    hddb_search_t hs2 = {};
-
-    hs2.vendor.id = hd->sub_vendor.id;
-    hs2.key |= 1 << he_vendor_id;
-
-    hddb_search(hd_data, &hs2, 1);
-
-    if((hs2.value & (1 << he_vendor_name))) {
-      hd->sub_vendor.name = new_str(hs2.vendor.name);
-    }
-  }
-
-  /* look for compat device name */
-  if(
-    hd->compat_vendor.id &&
-    hd->compat_device.id &&
-    !hd->compat_vendor.name &&
-    !hd->compat_device.name
-  ) {
-    hddb_search_t hs2 = {};
-
-    hs2.vendor.id = hd->compat_vendor.id;
-    hs2.key |= 1 << he_vendor_id;
-
-    hs2.device.id = hd->compat_device.id;
-    hs2.key |= 1 << he_device_id;
-
-    hddb_search(hd_data, &hs2, 1);
-
-    if((hs2.value & (1 << he_vendor_name))) {
-      hd->compat_vendor.name = new_str(hs2.vendor.name);
-    }
-
-    if((hs2.value & (1 << he_device_name))) {
-      hd->compat_device.name = new_str(hs2.device.name);
-    }
-  }
-
-  /* get package info for compat device id */
-
-  if(!hd->requires) {
-    hddb_search_t hs2 = {};
-
-    hs2.vendor.id = hd->compat_vendor.id;
-    hs2.key |= 1 << he_vendor_id;
-
-    hs2.device.id = hd->compat_device.id;
-    hs2.key |= 1 << he_device_id;
-
-    hddb_search(hd_data, &hs2, 1);
-
-    if((hs2.value & (1 << he_requires))) {
-      hd->requires = hd_split('|', hs2.requires);
-    }
-  }
-
-  /* get driver info */
-
-#if WITH_ISDN
-  if((cic = get_isdn_info(hd))) {
-    new_driver_info = isdn_driver(hd_data, hd, cic);
-    if(!hd->model && cic->lname && *cic->lname) {
-      hd->model = new_str(cic->lname);
-    }
-    free_mem(cic);
-  }
-  if (!new_driver_info && ((cic = get_dsl_info(hd)))) {
-    new_driver_info = dsl_driver(hd_data, hd, cic);
-    if(!hd->model && cic->lname && *cic->lname) {
-      hd->model = new_str(cic->lname);
-    }
-    free_mem(cic);
-  }
-#endif
-
-  if(!new_driver_info) {
-    new_driver_info = hd_pcidb(hd_data, hd_data->hddb_pci_hm, hd, new_driver_info);
-  }
-
-  if(!new_driver_info && (hs.value & (1 << he_driver))) {
-    new_driver_info = hddb_to_device_driver(hd_data, &hs);
-  }
-
-  if(!new_driver_info && (hd->compat_vendor.id || hd->compat_device.id)) {
-    memset(&hs, 0, sizeof hs);
-
-    if(hd->compat_vendor.id) {
-      hs.vendor.id = hd->compat_vendor.id;
-      hs.key |= 1 << he_vendor_id;
-    }
-    if(hd->compat_device.id) {
-      hs.device.id = hd->compat_device.id;
-      hs.key |= 1 << he_device_id;
-    }
-
-    hddb_search(hd_data, &hs, 1);
-
-    if((hs.value & (1 << he_driver))) {
-      new_driver_info =  hddb_to_device_driver(hd_data, &hs);
-    }
-  }
-
-  if(!new_driver_info && hd->base_class.id == bc_keyboard) {
-    new_driver_info = kbd_driver(hd_data, hd);
-  }
-
-  if(!new_driver_info && hd->base_class.id == bc_monitor) {
-    new_driver_info = monitor_driver(hd_data, hd);
-  }
-
-  new_driver_info = hd_pcidb(hd_data, hd_data->hddb_pci, hd, new_driver_info);
-
-  if(new_driver_info) {
-    if(!hd->ref) {
-      hd->driver_info = free_driver_info(hd->driver_info);
-    }
-    hd->driver_info = new_driver_info;
-    expand_driver_info(hd_data, hd);
-  }
-
-  free_str_list(hs.driver);
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-driver_info_t *hddb_to_device_driver(hd_data_t *hd_data, hddb_search_t *hs)
-{
-  char *s, *t, *t0;
-  driver_info_t *di = NULL, *di0 = NULL;
-  str_list_t *sl;
-
-  for(sl = hs->driver; sl; sl = sl->next) {
-    if(!sl->str || !*sl->str || sl->str[1] != '\t') return NULL;
-
-    if(di && (*sl->str == 'M' || *sl->str == 'X')) {
-      add_str_list(&di->any.hddb1, sl->str + 2);
-      continue;
-    }
-
-    if(di)
-      di = di->next = new_mem(sizeof *di);
-    else
-      di = di0 = new_mem(sizeof *di);
-
-    switch(*sl->str) {
-      case 'd':
-        di->any.type = di_display;
-        break;
-
-      case 'm':
-        di->module.modprobe = 1;
-      case 'i':
-        di->any.type = di_module;
-        break;
-
-      case 'p':
-        di->any.type = di_mouse;
-        break;
-
-      case 'x':
-        di->any.type = di_x11;
-        break;
-
-      default:
-        di->any.type = di_any;
-    }
-
-    s = new_str(sl->str + 2);
-    for(t0 = s; (t = strsep(&t0, "|")); ) {
-      add_str_list(&di->any.hddb0, t);
-    }
-    free_mem(s);
-  }
-
-  return di0;
-}
-
-
-driver_info_t *kbd_driver(hd_data_t *hd_data, hd_t *hd)
-{
-  driver_info_t *di;
-  driver_info_kbd_t *ki;
-  int arch = hd_cpu_arch(hd_data);
-  unsigned u;
-  char *s1, *s2;
-  hd_t *hd_tmp;
-  usb_t *usb;
-
-  /* country codes
-     1 Arabic
-     2 Belgian
-     3 Canadian-Bilingual
-     4 Canadian-French
-     5 Czech Republic
-     6 Danish
-     7 Finnish
-     8 French
-     9 German
-    10 Greek
-    11 Hebrew
-    12 Hungary
-    13 International (ISO)
-    14 Italian
-    15 Japan (Katakana)
-    16 Korean
-    17 Latin American
-    18 Netherlands/Dutch
-    19 Norwegian
-    20 Persian (Farsi)
-    21 Poland
-    22 Portuguese
-    23 Russia
-    24 Slovakia
-    25 Spanish
-    26 Swedish 
-    27 Swiss/French
-    28 Swiss/German
-    29 Switzerland
-    30 Taiwan
-    31 Turkish
-    32 UK
-    33 US
-    34 Yugoslavia
-  */
-  static struct {
-    unsigned country;
-    char *layout;
-    char *keymap;
-  } country_code[] = {
-    {  5, "cs", "cz-us-qwertz" },
-    {  8, "fr", "fr-latin1" },
-    {  9, "de", "de-latin1-nodeadkeys" },
-    { 10, "gr", "gr" },
-    { 14, "it", "it" },
-    { 18, "nl", "us" },
-    { 23, "ru", "ru1" },
-    { 25, "es", "es" },
-    { 32, "uk", "uk" },
-    { 33, "us", "us" }
-  };
-
-  if(hd->sub_class.id == sc_keyboard_console) return NULL;
-
-  di = new_mem(sizeof *di);
-  di->kbd.type = di_kbd;
-  ki = &(di->kbd);
-
-  switch(arch) {
-    case arch_intel:
-    case arch_x86_64:
-    case arch_alpha:
-      ki->XkbRules = new_str("xfree86");
-      ki->XkbModel = new_str("pc104");
-      break;
-
-    case arch_ppc:
-    case arch_ppc64:
-      ki->XkbRules = new_str("xfree86");
-      ki->XkbModel = new_str("macintosh");
-      for(hd_tmp = hd_data->hd; hd_tmp; hd_tmp = hd_tmp->next) {
-        if(
-          hd_tmp->base_class.id == bc_internal &&
-          hd_tmp->sub_class.id == sc_int_cpu &&
-          hd_tmp->detail &&
-          hd_tmp->detail->type == hd_detail_cpu &&
-          hd_tmp->detail->cpu.data
-        ) {
-          s1 = hd_tmp->detail->cpu.data->vend_name;
-          if(s1 && (strstr(s1, "CHRP ") == s1 || strstr(s1, "PReP ") == s1)) {
-            free_mem(ki->XkbModel);
-            ki->XkbModel = new_str("pc104");
-          }
-        }
-      }
-      break;
-
-    case arch_sparc:
-    case arch_sparc64:
-      if(hd->vendor.id == MAKE_ID(TAG_SPECIAL, 0x0202)) {
-        ki->XkbRules = new_str("sun");
-        u = ID_VALUE(hd->device.id);
-        if(u == 4) ki->XkbModel = new_str("type4");
-        if(u == 5) {
-          ki->XkbModel = new_str(ID_VALUE(hd->sub_device.id) == 2 ? "type5_euro" : "type5");
-        }
-        s1 = s2 = NULL;
-
-        switch(hd->prog_if.id) {
-          case  0: case  1: case 33: case 34: case 80: case 81:
-          default:
-            s1 = "us"; s2 = "sunkeymap";
-            break;
-
-          case  2:
-            s1 = "fr"; s2 = "sunt5-fr-latin1"; // fr_BE?
-            break;
-
-          case  3:
-            s1 = "ca";
-            break;
-
-          case  4: case 36: case 83:
-            s1 = "dk";
-            break;
-
-          case  5: case 37: case 84:
-            s1 = "de"; s2 = "sunt5-de-latin1";
-            break;
-
-          case  6: case 38: case 85:
-            s1 = "it";
-            break;
-
-          case  7: case 39: case 86:
-            s1 = "nl";
-            break;
-
-          case  8: case 40: case 87:
-            s1 = "no";
-            if(u == 4) s2 = "sunt4-no-latin1";
-            break;
-
-          case  9: case 41: case 88:
-            s1 = "pt";
-            break;
-
-          case 10: case 42: case 89:
-            s1 = "es";
-            s2 = u == 4 ? "sunt4-es" : "sunt5-es";
-            break;
-
-          case 11: case 43: case 90:
-            s1 = "se"; s2 = "sunt5-fi-latin1"; // se is swedish, not fi
-            break;
-
-          case 12: case 44: case 91:
-            s1 = "fr"; s2 = "sunt5-fr-latin1"; // fr_CH
-            break;
-
-          case 13: case 45: case 92:
-            s1 = "de"; s2 = "sunt5-de-latin1";  // de_CH
-            break;
-
-          case 14: case 46: case 93:
-            s1 = "gb"; s2 = "sunt5-uk";
-            break;
-
-          case 16: case 47: case 94:
-            s1 = "ko";
-            break;
-
-          case 17: case 48: case 95:
-            s1 = "tw";
-            break;
-
-          case 32: case 49: case 96:
-            s1 = "jp";
-            break;
-
-          case 50: case 97:
-            s1 = "fr"; s2 = "sunt5-fr-latin1"; // fr_CA
-            break;
-
-          case 51:
-            s1 = "hu";
-            break;
-
-          case 52:
-            s1 = "pl"; s2 = "sun-pl";
-            break;
-
-          case 53:
-            s1 = "cs";
-            break;
-
-          case 54:
-            s1 = "ru"; s2 = "sunt5-ru";
-            break;
-        }
-        ki->XkbLayout = new_str(s1);
-        ki->keymap = new_str(s2);
-      }
-      else {
-        ki->XkbRules = new_str("xfree86");
-        ki->XkbModel = new_str("pc104");
-      }
-      break;
-
-    default:
-      ki->XkbRules = new_str("xfree86");
-  }
-
-  if(
-    hd->bus.id == bus_usb &&
-    hd->detail &&
-    hd->detail->type == hd_detail_usb &&
-    (usb = hd->detail->usb.data) &&
-    usb->country
-  ) {
-    for(u = 0; u < sizeof country_code / sizeof *country_code; u++) {
-      if(country_code[u].country == usb->country) {
-        if(!ki->XkbLayout) ki->XkbLayout = new_str(country_code[u].layout);
-        if(!ki->keymap) ki->keymap = new_str(country_code[u].keymap);
-        break;
-      }
-    }
-  }
-
-  return di;
-}
-
-
-driver_info_t *monitor_driver(hd_data_t *hd_data, hd_t *hd)
-{
-  driver_info_t *di = NULL;
-  driver_info_display_t *ddi;
-  monitor_info_t *mi;
-  hd_res_t *res;
-  unsigned width = 640, height = 480;
-
-  if(
-    hd->detail &&
-    hd->detail->type == hd_detail_monitor &&
-    (mi = hd->detail->monitor.data) &&
-    mi->min_hsync
-  ) {
-    di = new_mem(sizeof *di);
-    di->display.type = di_display;
-    ddi = &(di->display);
-
-    ddi->min_vsync = mi->min_vsync;
-    ddi->max_vsync = mi->max_vsync;
-    ddi->min_hsync = mi->min_hsync;
-    ddi->max_hsync = mi->max_hsync;
-
-    for(res = hd->res; res; res = res->next) {
-      if(res->any.type == res_monitor) {
-        if(res->monitor.width * res->monitor.height > width * height ) {
-          width = res->monitor.width;
-          height = res->monitor.height;
-        }
-      }
-    }
-
-    ddi->width = width;
-    ddi->height = height;
-  }
-
-  return di;
-}
-
-
-#if WITH_ISDN
-
-#if 0
-int chk_free_biosmem(hd_data_t *hd_data, unsigned addr, unsigned len)
-{
-  unsigned u;
-  unsigned char c;
-
-  addr -= hd_data->bios_rom.start;
-  if(
-    !hd_data->bios_rom.data ||
-    addr >= hd_data->bios_rom.size ||
-    addr + len > hd_data->bios_rom.size
-  ) return 0;
-
-  for(c = 0xff, u = addr; u < addr + len; u++) {
-    c &= hd_data->bios_rom.data[u];
-  }
-
-  return c == 0xff ? 1 : 0;
-}
-
-isdn_parm_t *new_isdn_parm(isdn_parm_t **ip)
-{
-  while(*ip) ip = &(*ip)->next;
-
-  return *ip = new_mem(sizeof **ip);
-}
-#endif
-
-driver_info_t *isdn_driver(hd_data_t *hd_data, hd_t *hd, cdb_isdn_card *cic)
-{
-  driver_info_t *di0, *di;
-  cdb_isdn_vario *civ;
-/*  hd_res_t *res;
-  uint64_t i, irqs, irqs2;
-  int irq_val, pnr;
-*/
-  int drv;
-  str_list_t *sl, *sl0;
-
-  if(!cic) return NULL;
-
-  di0 = new_mem(sizeof *di0);
-
-  drv = cic->vario;
-  di = NULL;
-
-  while((civ = hd_cdbisdn_get_vario(drv))) {
-    drv = civ->next_vario;
-    if (di) {
-      di->next = new_mem(sizeof *di);
-      di = di->next;
-    } else {
-      di = di0;
-    }
-    di->isdn.type = di_isdn;
-    di->isdn.i4l_type = civ->typ;
-    di->isdn.i4l_subtype = civ->subtyp;
-    di->isdn.i4l_name = new_str(cic->lname);
-
-    if(civ->need_pkg && *civ->need_pkg) {
-      sl0 = hd_split(',', (char *) civ->need_pkg);
-      for(sl = sl0; sl; sl = sl->next) {
-        if(!search_str_list(hd->requires, sl->str)) {
-          add_str_list(&hd->requires, sl->str);
-        }
-      }
-      free_str_list(sl0);
-    }
-
-    if(hd->bus.id == bus_pci) continue;
-#if 0
-    pnr = 1;
-    civ = hd_cdbisdn_get_vario(cic->vario);
-    if (!civ) continue;
-    if (civ->irq && civ->irq[0]) {
-       ip = new_isdn_parm(&di->isdn.params);
-       ip->name = new_str("IRQ");
-       ip->type = CDBISDN_P_IRQ;
-    }
-    if (civ->io && civ->io[0]) {
-       ip = new_isdn_parm(&di->isdn.params);
-       ip->name = new_str("IO");
-       ip->type = CDBISDN_P_IO;
-    }
-    if (civ->membase && civ->membase[0]) {
-       ip = new_isdn_parm(&di->isdn.params);
-       ip->name = new_str("MEMBASE");
-       ip->type = CDBISDN_P_MEM;
-    }
-    while((ipi = hd_ihw_get_parameter(ici->handle, pnr++))) {
-      ip = new_isdn_parm(&di->isdn.params);
-      ip->name = new_str(ipi->name);
-      ip->type = ipi->type & P_TYPE_MASK;
-      ip->flags = ipi->flags & P_PROPERTY_MASK;
-      ip->def_value = ipi->def_value;
-      if(ipi->list) ip->alt_values = *ipi->list;
-      ip->alt_value = new_mem(ip->alt_values * sizeof *ip->alt_value);
-      for(i = 0; i < ip->alt_values; i++) {
-        ip->alt_value[i] = ipi->list[i + 1];
-      }
-      ip->valid = 1;
-
-      if((ip->flags & P_SOFTSET)) {
-        switch(ip->type) {
-          case P_IRQ:
-            update_irq_usage(hd_data);
-            irqs = 0;
-            for(i = 0; i < ip->alt_values; i++) {
-              irqs |= 1ull << ip->alt_value[i];
-            }
-            irqs &= ~(hd_data->used_irqs | hd_data->assigned_irqs);
-#ifdef __i386__
-            irqs &= 0xffffull; /* max. 16 on intel */
-            /*
-             * The point is, that this is relevant for isa boards only
-             * and those have irq values < 16 anyway. So it really
-             * doesn't matter if we mask with 0xffff or not.
-             */
-#endif
-            if(!irqs) {
-              ip->conflict = 1;
-              ip->valid = 0;
-            }
-            else {
-              irqs2 = irqs & ~0xc018ull;
-              /* see if we can avoid irqs 3,4,14,15 */
-              if(irqs2) irqs = irqs2;
-              irq_val = -1;
-              /* try default value first */
-              if(ip->def_value && (irqs & (1ull << ip->def_value))) {
-                irq_val = ip->def_value;
-              }
-              else {
-                for(i = 0; i < 64 && irqs; i++, irqs >>= 1) {
-                  if((irqs & 1)) irq_val = i;
-                }
-              }
-              if(irq_val >= 0) {
-                ip->value = irq_val;
-                hd_data->assigned_irqs |= 1ull << irq_val;
-              }
-              else {
-                ip->valid = 0;
-              }
-            }
-            break;
-          case P_MEM:
-            if(!hd_data->bios_rom.data) {
-              if(ip->def_value) {
-                ip->value = ip->def_value;
-              }
-            }
-            else {
-              /* ###### 0x2000 is just guessing -> should be provided by libihw */
-              if(ip->def_value && chk_free_biosmem(hd_data, ip->def_value, 0x2000)) {
-                ip->value = ip->def_value;
-              }
-              else {
-                for(i = ip->alt_values - 1; i >= 0; i--) {
-                  if(chk_free_biosmem(hd_data, ip->alt_value[i], 0x2000)) {
-                    ip->value = ip->alt_value[i];
-                    break;
-                  }
-                }
-              }
-            }
-            if(!ip->value) ip->conflict = 1;
-            break;
-          default:
-            ip->valid = 0;
-        }
-      }
-      else if((ip->flags & P_DEFINE)) {
-        res = NULL;
-        switch(ip->type) {
-          case P_IRQ:
-            res = get_res(hd, res_irq, 0);
-            if(res) ip->value = res->irq.base;
-            break;
-          case P_MEM:
-            res = get_res(hd, res_mem, 0);
-            if(res) ip->value = res->mem.base;
-            break;
-          case P_IO:
-            res = get_res(hd, res_io, 0);
-            if(res) ip->value = res->io.base;
-            break;
-          case P_IO0:
-          case P_IO1:
-          case P_IO2:
-            res = get_res(hd, res_io, ip->type - P_IO0);
-            if(res) ip->value = res->io.base;
-            break;
-          // ##### might break for 64bit pci entries?
-          case P_BASE0:
-          case P_BASE1:
-          case P_BASE2:
-          case P_BASE3:
-          case P_BASE4:
-          case P_BASE5:
-            res = get_res(hd, res_mem, ip->type - P_BASE0);
-            if(res) ip->value = res->mem.base;
-            break;
-          default:
-            ip->valid = 0;
-        }
-        if(!res) ip->valid = 0;
-      }
-    }
-#endif
-  }
-  if(!di) di0 = free_mem(di0);
-
-  return di0;
-}
-
-driver_info_t *dsl_driver(hd_data_t *hd_data, hd_t *hd, cdb_isdn_card *cic)
-{
-  driver_info_t *di0, *di;
-  cdb_isdn_vario *civ;
-  int drv;
-  str_list_t *sl, *sl0;
-
-  if(!cic) return NULL;
-
-  di0 = new_mem(sizeof *di0);
-
-  drv = cic->vario;
-  di = NULL;
-
-  while((civ = hd_cdbisdn_get_vario(drv))) {
-    drv = civ->next_vario;
-    if (di) {
-      di->next = new_mem(sizeof *di);
-      di = di->next;
-    } else {
-      di = di0;
-    }
-    di->dsl.type = di_dsl;
-    if(civ->interface && *civ->interface) {
-      if (!strcmp(civ->interface, "CAPI20")) {
-        di->dsl.mode = new_str("capiadsl");
-        if(civ->mod_name && *civ->mod_name)
-          di->dsl.name = new_str(civ->mod_name);
-        else
-          di->dsl.name = new_str("unknown");
-      } else if (!strcmp(civ->interface, "pppoe")) {
-        di->dsl.mode = new_str("pppoe");
-        if(civ->mod_name && *civ->mod_name)
-          di->dsl.name = new_str(civ->mod_name);
-        else
-          di->dsl.name = new_str("none");
-      } else {
-        di->dsl.mode = new_str("unknown");
-        di->dsl.name = new_str("unknown");
-      }
-    } else {
-      di->dsl.mode = new_str("unknown");
-      di->dsl.name = new_str("unknown");
-    }
-
-    if(civ->need_pkg && *civ->need_pkg) {
-      sl0 = hd_split(',', (char *) civ->need_pkg);
-      for(sl = sl0; sl; sl = sl->next) {
-        if(!search_str_list(hd->requires, sl->str)) {
-          add_str_list(&hd->requires, sl->str);
-        }
-      }
-      free_str_list(sl0);
-    }
-
-    if(hd->bus.id == bus_pci) continue;
-  }
-  if(!di) di0 = free_mem(di0);
-
-  return di0;
-}
-
-#endif         /* WITH_ISDN */
-
-
-hd_res_t *get_res(hd_t *hd, enum resource_types t, unsigned index)
-{
-  hd_res_t *res;
-
-  for(res = hd->res; res; res = res->next) {
-    if(res->any.type == t) {
-      if(!index) return res;
-      index--;
-    }
-  }
-
-  return NULL;
-}
-
-
-driver_info_t *reorder_x11(driver_info_t *di0, char *info)
-{
-  driver_info_t *di, *di_new, **di_list;
-  int i, dis, found;
-
-  for(dis = 0, di = di0; di; di = di->next) dis++;
-
-  di_list = new_mem(dis * sizeof *di_list);
-
-  for(i = 0, di = di0; di; di = di->next) {
-    di_list[i++] = di;
-  }
-
-  di = di_new = NULL;
-  for(i = found = 0; i < dis; i++) {
-    if(
-      !strcmp(di_list[i]->x11.xf86_ver, info) ||
-      !strcmp(di_list[i]->x11.server, info)
-    ) {
-      found = 1;
-      if(di) {
-        di = di->next = di_list[i];
-      }
-      else {
-        di = di_new = di_list[i];
-      }
-      di->next = NULL;
-      di_list[i] = NULL;
-    }
-  }
-
-  for(i = 0; i < dis; i++) {
-    if(di_list[i]) {
-      if(di) {
-        di = di->next = di_list[i];
-      }
-      else {
-        di = di_new = di_list[i];
-      }
-      di->next = NULL;
-      di_list[i] = NULL;
-    }
-  }
-
-  free_mem(di_list);
-
-  if(!found && strlen(info) > 1) {
-    free_driver_info(di_new);
-    di_new = new_mem(sizeof *di_new);
-    di_new->any.type = di_x11;
-    di_new->x11.server = new_str(info);
-    di_new->x11.xf86_ver = new_str(*info >= 'A' && *info <= 'Z' ? "3" : "4");
-  }
-
-  return di_new;
-}
-
-
-void expand_driver_info(hd_data_t *hd_data, hd_t *hd)
-{
-  int i;
-  unsigned u1, u2;
-  char *s, *t, *t0;
-  driver_info_t *di;
-  str_list_t *sl, *sl1, *sl2, *cmd;
-
-  if(!hd || !hd->driver_info) return;
-
-  for(di = hd->driver_info; di; di = di->next) {
-    switch(di->any.type) {
-      case di_display:
-        for(i = 0, sl = di->display.hddb0; sl; sl = sl->next, i++) {
-          if(i == 0 && sscanf(sl->str, "%ux%u", &u1, &u2) == 2) {
-            di->display.width = u1;
-            di->display.height = u2;
-          }
-          else if(i == 1 && sscanf(sl->str, "%u-%u", &u1, &u2) == 2) {
-            di->display.min_vsync = u1;
-            di->display.max_vsync = u2;
-          }
-          else if(i == 2 && sscanf(sl->str, "%u-%u", &u1, &u2) == 2) {
-            di->display.min_hsync = u1;
-            di->display.max_hsync = u2;
-          }
-          else if(i == 3 && sscanf(sl->str, "%u", &u1) == 1) {
-            di->display.bandwidth = u1;
-          }
-        }
-        break;
-
-      case di_module:
-        for(di->module.active = 1, sl = di->module.hddb0; sl; sl = sl->next) {
-          t0 = s = new_str(sl->str);
-
-          t = strsep(&t0, " ");
-
-          add_str_list(&di->module.names, t);
-          di->module.active &= (
-            hd_module_is_active(hd_data, t) |
-            (search_str_list(hd->drivers, t) ? 1 : 0)
-          );
-
-          if(t0) {
-            add_str_list(&di->module.mod_args, module_cmd(hd, t0));
-          }
-          else {
-            add_str_list(&di->module.mod_args, NULL);
-          }
-
-          free_mem(s);
-        }
-        for(sl = di->module.hddb1; sl; sl = sl->next) {
-          s = module_cmd(hd, sl->str);
-          if(s) str_printf(&di->module.conf, -1, "%s\n", s);
-        }
-        break;
-
-      case di_mouse:
-        di->mouse.buttons = di->mouse.wheels = -1;
-        u1 = 0;
-        if(
-          hd->compat_vendor.id == MAKE_ID(TAG_SPECIAL, 0x0210) &&
-          ID_TAG(hd->compat_device.id) == TAG_SPECIAL
-        ) {
-          u1 = hd->compat_device.id;
-        }
-        if(
-          hd->vendor.id == MAKE_ID(TAG_SPECIAL, 0x0210) &&
-          ID_TAG(hd->device.id) == TAG_SPECIAL
-        ) {
-          u1 = hd->device.id;
-        }
-        if(u1) {
-          di->mouse.wheels = ID_VALUE(u1) >> 4;
-          di->mouse.buttons = ID_VALUE(u1) & 15;
-        }
-        for(i = 0, sl = di->mouse.hddb0; sl; sl = sl->next, i++) {
-          if(i == 0) {
-            di->mouse.xf86 = new_str(sl->str);
-          }
-          else if(i == 1) {
-            di->mouse.gpm = new_str(sl->str);
-          }
-          else if(i == 2 && *sl->str) {
-            di->mouse.buttons = strtol(sl->str, NULL, 10);
-          }
-          else if(i == 3 && *sl->str) {
-            di->mouse.wheels = strtol(sl->str, NULL, 10);
-          }
-        }
-        break;
-
-      case di_x11:
-        for(i = 0, sl = di->x11.hddb0; sl; sl = sl->next, i++) {
-          if(i == 0) {
-            di->x11.xf86_ver = new_str(sl->str);
-          }
-          else if(i == 1) {
-            di->x11.server = new_str(sl->str);
-          }
-          else if(i == 2) {
-            if(!strcmp(sl->str, "3d")) di->x11.x3d = 1;
-          }
-#if 0
-          else if(i == 3) {
-            s = new_str(sl->str);
-            for(t0 = s; (t = strsep(&t0, ",")); ) {
-              add_str_list(&di->x11.packages, t);
-            }
-            free_mem(s);
-          }
-#endif
-          else if(i == 4) {
-            s = new_str(sl->str);
-            for(t0 = s; (t = strsep(&t0, ",")); ) {
-              add_str_list(&di->x11.extensions, t);
-            }
-            free_mem(s);
-          }
-          else if(i == 5) {
-            s = new_str(sl->str);
-            for(t0 = s; (t = strsep(&t0, ",")); ) {
-              add_str_list(&di->x11.options, t);
-            }
-            free_mem(s);
-          }
-          else if(i == 6) {
-            for(sl2 = sl1 = hd_split(',', sl->str); sl2; sl2 = sl2->next) {
-              u1 = strtoul(sl2->str, NULL, 0);
-              switch(u1) {
-                case 8:
-                  di->x11.colors.c8 = 1;
-                  di->x11.colors.all |= (1 << 0);
-                  break;
-
-                case 15:
-                  di->x11.colors.c15 = 1;
-                  di->x11.colors.all |= (1 << 1);
-                  break;
-
-                case 16:
-                  di->x11.colors.c16 = 1;
-                  di->x11.colors.all |= (1 << 2);
-                  break;
-
-                case 24:
-                  di->x11.colors.c24 = 1;
-                  di->x11.colors.all |= (1 << 3);
-                  break;
-
-                case 32:
-                  di->x11.colors.c32 = 1;
-                  di->x11.colors.all |= (1 << 4);
-                  break;
-              }
-            }
-            free_str_list(sl1);
-          }
-          else if(i == 7) {
-            di->x11.dacspeed = strtol(sl->str, NULL, 10);
-          }
-          else if(i == 8) {
-            di->x11.script = new_str(sl->str);
-          }
-        }
-        for(i = 0, sl = di->x11.hddb1; sl; sl = sl->next, i++) {
-          add_str_list(&di->x11.raw, sl->str);
-        }
-#if 0
-        // ######## for compatibility
-        for(sl = hd->requires; sl; sl = sl->next) {
-          add_str_list(&di->x11.packages, sl->str);
-        }
-#endif
-        break;
-
-      default:
-        break;
-    }
-  }
-
-  di = hd->driver_info;
-  if(di && di->any.type == di_x11 && !hd_probe_feature(hd_data, pr_ignx11)) {
-    cmd = get_cmdline(hd_data, "x11");
-    if(cmd && *cmd->str) {
-      hd->driver_info = reorder_x11(di, cmd->str);
-    }
-    free_str_list(cmd);
-  }
-}
-
-
-char *module_cmd(hd_t *hd, char *cmd)
-{
-  static char buf[256];
-  char *s = buf;
-  int idx, ofs;
-  hd_res_t *res;
-
-  // skip inactive PnP cards
-  // ##### Really necessary here?
-  if(
-    hd->is.isapnp &&
-    hd->detail &&
-    hd->detail->isapnp.data &&
-    !(hd->detail->isapnp.data->flags & (1 << isapnp_flag_act))
-  ) return NULL;
-
-  *buf = 0;
-  while(*cmd) {
-    if(sscanf(cmd, "<io%u>%n", &idx, &ofs) >= 1) {
-      if((res = get_res(hd, res_io, idx))) {
-        s += sprintf(s, "0x%02"PRIx64, res->io.base);
-        cmd += ofs;
-      }
-      else {
-        return NULL;
-      }
-    }
-    else if(sscanf(cmd, "<irq%u>%n", &idx, &ofs) >= 1) {
-      if((res = get_res(hd, res_irq, idx))) {
-        s += sprintf(s, "%u", res->irq.base);
-        cmd += ofs;
-      }
-      else {
-        return NULL;
-      }
-    }
-    else {
-      *s++ = *cmd++;
-    }
-
-    if(s - buf > (int) sizeof buf - 20) return NULL;
-  }
-
-  *s = 0;
-  return buf;
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-char *hid_tag_name(int tag)
-{
-  return (unsigned) tag < sizeof hid_tag_names / sizeof *hid_tag_names ? hid_tag_names[tag] : "";
-}
-
-char *hid_tag_name2(int tag)
-{
-  return (unsigned) tag < sizeof hid_tag_names2 / sizeof *hid_tag_names2 ? hid_tag_names2[tag] : "";
-}
-
diff --git a/src/hwinfo/src/hd/hddb.h b/src/hwinfo/src/hd/hddb.h
deleted file mode 100644 (file)
index f8d8956..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-void hddb_init(hd_data_t *hd_data);
-
-unsigned device_class(hd_data_t *hd_data, unsigned vendor, unsigned device);
-unsigned sub_device_class(hd_data_t *hd_data, unsigned vendor, unsigned device, unsigned sub_vendor, unsigned sub_device);
-
-char *hid_tag_name(int tag);
-char *hid_tag_name2(int tag);
diff --git a/src/hwinfo/src/hd/hddb_int.h b/src/hwinfo/src/hd/hddb_int.h
deleted file mode 100644 (file)
index 2636b68..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *
- * type defs for internal data base
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-#define DATA_VALUE(a)  ((a) & ~(-1 << 28))
-#define DATA_FLAG(a)   (((a) >> 28) & 0xf)
-#define MAKE_DATA(a, b)        ((a << 28) | (b))
-
-#define FLAG_ID                0
-#define FLAG_RANGE     1
-#define FLAG_MASK      2
-#define FLAG_STRING    3
-#define FLAG_REGEXP    4
-/* 5 - 7 reserved */
-#define FLAG_CONT      8       /* bit mask, _must_ be bit 31 */
-
-
-typedef enum hddb_entry_e {
-  he_other, he_bus_id, he_baseclass_id, he_subclass_id, he_progif_id,
-  he_vendor_id, he_device_id, he_subvendor_id, he_subdevice_id, he_rev_id,
-  he_bus_name, he_baseclass_name, he_subclass_name, he_progif_name,
-  he_vendor_name, he_device_name, he_subvendor_name, he_subdevice_name,
-  he_rev_name, he_serial, he_driver, he_requires /* 21 */,
-
-  he_detail_ccw_data_cu_model,
-  /* add new entries _here_! */
-
-  he_nomask,
-
-  /* if he_nomask exceeds 31, adjust entry_mask_t & hddb_entry_mask_t */
-
-  he_class_id = he_nomask, he_driver_module_insmod, he_driver_module_modprobe,
-  he_driver_module_config, he_driver_xfree, he_driver_xfree_config,
-  he_driver_mouse, he_driver_display, he_driver_any
-} hddb_entry_t;
-
-static hddb_entry_t hddb_is_numeric[] = {
-  he_bus_id, he_baseclass_id, he_subclass_id, he_progif_id, he_vendor_id,
-  he_device_id, he_subvendor_id, he_subdevice_id, he_rev_id, he_detail_ccw_data_cu_model
-};
-
-static char *hddb_entry_strings[] = {
-  "other", "bus.id", "baseclass.id", "subclass.id", "progif.id",
-  "vendor.id", "device.id", "subvendor.id", "subdevice.id", "rev.id",
-  "bus.name", "baseclass.name", "subclass.name", "progif.name",
-  "vendor.name", "device.name", "subvendor.name", "subdevice.name",
-  "rev.name", "serial", "driver", "requires",
-  "detail.ccw.data.cu_model",
-  "class.id", "driver.module.insmod", "driver.module.modprobe",
-  "driver.module.config", "driver.xfree", "driver.xfree.config",
-  "driver.mouse", "driver.display", "driver.any"
-};
-
diff --git a/src/hwinfo/src/hd/hdp.c b/src/hwinfo/src/hd/hdp.c
deleted file mode 100644 (file)
index 65dffef..0000000
+++ /dev/null
@@ -1,1262 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdarg.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "hdp.h"
-#include "hddb.h"
-#include "smbios.h"
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * This module provides a function that prints a hardware entry. 
- * This is useful for debugging or to provide the user with some fancy info.
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#ifndef LIBHD_TINY
-
-#define dump_line(x0, x1...) fprintf(f, "%*s" x0, ind, "", x1)
-#define dump_line_str(x0...) fprintf(f, "%*s%s", ind, "", x0)
-#define dump_line0(x0...) fprintf(f, x0)
-
-static int ind = 0;            /* output indentation */
-
-static void dump_normal(hd_data_t *, hd_t *, FILE *);
-static void dump_cpu(hd_data_t *, hd_t *, FILE *);
-static void dump_bios(hd_data_t *, hd_t *, FILE *);
-static void dump_prom(hd_data_t *, hd_t *, FILE *);
-static void dump_sys(hd_data_t *, hd_t *, FILE *);
-
-static char *dump_hid(hd_data_t *hd_data, hd_id_t *hid, int format, char *buf, int buf_size);
-static char *dump_hid2(hd_data_t *hd_data, hd_id_t *hid1, hd_id_t *hid2, char *buf, int buf_size);
-static char *print_dev_num(hd_dev_num_t *d);
-
-/*
- * Dump a hardware entry to FILE *f.
- */
-void hd_dump_entry(hd_data_t *hd_data, hd_t *h, FILE *f)
-{
-  char *s, *a0, *a1, *a2, *s1, *s2;
-  char buf1[32], buf2[32];
-  hd_t *hd_tmp;
-  int i, j;
-  str_list_t *sl;
-
-#ifdef LIBHD_MEMCHECK
-  {
-    if(libhd_log)
-      fprintf(libhd_log, "; %s\t%p\t%p\n", __FUNCTION__, CALLED_FROM(hd_dump_entry, hd_data), hd_data);
-  }
-#endif
-
-  if(!h) return;
-
-  s = "";
-  if(h->is.agp) s = "(AGP)";
-  //  pci_flag_pm: dump_line0(", supports PM");
-  if(h->is.isapnp) s = "(PnP)";
-
-  a0 = h->bus.name;
-  a2 = NULL;
-  a1 = h->sub_class.name ?: h->base_class.name;
-  if(a1 && h->prog_if.name) {
-    str_printf(&a2, 0, "%s (%s)", a1, h->prog_if.name);
-  }
-  else {
-    a2 = new_str(a1 ?: "?");
-  }
-  dump_line(
-    "%02d: %s%s %02x.%x: %02x%02x %s\n",
-    h->idx, a0 ? a0 : "?", s, h->slot, h->func,
-    h->base_class.id, h->sub_class.id, a2
-  );
-
-  ind += 2;
-
-  if((hd_data->debug & HD_DEB_CREATION)) {
-    s = mod_name_by_idx(h->module);
-    if(!s) sprintf(s = buf1, "%u", h->module);
-    if(h->count)
-      sprintf(buf2, ".%u", h->count);
-    else
-      *buf2 = 0;
-    dump_line("[Created at %s.%u%s]\n", s, h->line, buf2);
-  }
-
-  if(hd_data->flags.dformat == 1) {
-    dump_line("ClassName: \"%s\"\n", a2);
-    dump_line("Bus: %d\n", h->slot >> 8);
-    dump_line("Slot: %d\n", h->slot & 0xff);
-    dump_line("Function: %d\n", h->func);
-  }
-
-  a2 = free_mem(a2);
-
-  if((hd_data->debug & HD_DEB_CREATION) && h->unique_id) {
-    dump_line("Unique ID: %s\n", h->unique_id);
-  }
-
-  if(hd_data->debug == -1u && h->old_unique_id) {
-    dump_line("Old Unique ID: %s\n", h->old_unique_id);
-  }
-
-  if((hd_data->debug & HD_DEB_CREATION) && h->parent_id) {
-    dump_line("Parent ID: %s\n", h->parent_id);
-  }
-
-  if(hd_data->debug == -1u && h->child_ids) {
-    s = hd_join(", ", h->child_ids);
-    dump_line("Child IDs: %s\n", s);
-    s = free_mem(s);
-  }
-
-  if(h->sysfs_id) {
-    dump_line("SysFS ID: %s\n", h->sysfs_id);
-  }
-
-  if(h->sysfs_bus_id) {
-    dump_line("SysFS BusID: %s\n", h->sysfs_bus_id);
-  }
-
-  if(h->sysfs_device_link) {
-    dump_line("SysFS Device Link: %s\n", h->sysfs_device_link);
-  }
-
-  if(h->hw_class && (s = hd_hw_item_name(h->hw_class))) {
-    dump_line("Hardware Class: %s\n", s);
-  }
-
-  if(hd_data->debug == -1u) {
-    for(i = j = 0; i < (int) hw_all; i++) {
-      if(i != hw_unknown && hd_is_hw_class(h, i) && (s = hd_hw_item_name(i))) {
-        if(!j) {
-          dump_line("HW Class List: %s", s);
-        }
-        else {
-          dump_line0(", %s", s);
-        }
-        j = 1;
-      }
-    }
-    if(j) dump_line0("\n");
-  }
-
-  if(h->base_class.id == bc_internal && h->sub_class.id == sc_int_cpu) {
-    dump_cpu(hd_data, h, f);
-  }
-  else if(h->base_class.id == bc_internal && h->sub_class.id == sc_int_bios) {
-    dump_bios(hd_data, h, f);
-  }
-  else if(h->base_class.id == bc_internal && h->sub_class.id == sc_int_prom) {
-    dump_prom(hd_data, h, f);
-  }
-  else {
-    dump_normal(hd_data, h, f);
-  }
-
-  s1 = s2 = NULL;
-  if(h->is.notready) {
-    if(h->base_class.id == bc_storage_device) {
-      s1 = "no medium";
-    }
-    else {
-      s1 = "not configured";
-    }
-  }
-  if(h->is.softraiddisk) s2 = "soft raid";
-  if(!s1) { s1 = s2; s2 = NULL; }
-
-  if(s1) {
-    dump_line("Drive status: %s%s%s\n", s1, s2 ? ", " : "", s2 ?: "");
-  }
-
-  if(h->extra_info) {
-    dump_line_str("Extra Info: ");
-    for(i = 0, sl = h->extra_info; sl; sl = sl->next) {
-      dump_line0("%s%s", i ? ", " : "", sl->str);
-      i = 1;
-    }
-    dump_line0("\n");
-  }
-
-  if(
-    hd_data->debug && (
-      h->status.configured ||
-      h->status.available ||
-      h->status.needed ||
-      h->status.active ||
-      h->status.invalid ||
-      h->is.manual
-    )
-  ) {
-    dump_line_str("Config Status: ");
-    i = 0;
-
-    if(h->status.invalid) {
-      dump_line0("invalid");
-      i++;
-    }
-
-    if(h->is.manual) {
-      dump_line0("%smanual", i ? ", " : "");
-      i++;
-    }
-
-    if(h->status.configured && (s = hd_status_value_name(h->status.configured))) {
-      dump_line0("%scfg=%s", i ? ", " : "", s);
-      i++;
-    }
-
-    if(h->status.available && (s = hd_status_value_name(h->status.available))) {
-      dump_line0("%savail=%s", i ? ", " : "", s);
-      i++;
-    }
-
-    if(h->status.needed && (s = hd_status_value_name(h->status.needed))) {
-      dump_line0("%sneed=%s", i ? ", " : "", s);
-      i++;
-    }
-
-    if(h->status.active && (s = hd_status_value_name(h->status.active))) {
-      dump_line0("%sactive=%s", i ? ", " : "", s);
-      i++;
-    }
-
-    dump_line0("\n");
-  }
-
-  if(hd_data->debug == -1u && h->config_string) {
-    dump_line("Configured as: \"%s\"\n", h->config_string);
-  }
-
-  if(
-    h->attached_to &&
-    (hd_tmp = hd_get_device_by_idx(hd_data, h->attached_to))
-  ) {
-    s = hd_tmp->sub_class.name ?: hd_tmp->base_class.name;
-    dump_line("Attached to: #%u (%s)\n", h->attached_to, s ?: "?");
-  }
-
-  if(h->detail && h->detail->ccw.type==hd_detail_ccw)
-  {
-         dump_line("LCSS: %x.%x\n",h->detail->ccw.data->lcss >> 8, h->detail->ccw.data->lcss & 0xf);
-         dump_line("CU Model: 0x%x\n",h->detail->ccw.data->cu_model);
-         dump_line("Device Model: 0x%x\n",h->detail->ccw.data->dev_model);
-  }
-
-#if defined(__s390__) || defined(__s390x__)
-  if(h->detail && h->detail->scsi.type==hd_detail_scsi)
-  {
-    if(h->detail->scsi.data->wwpn != (uint64_t)-1)
-      dump_line("WWPN: 0x%llx\n",(unsigned long long)h->detail->scsi.data->wwpn);
-    if(h->detail->scsi.data->wwpn != (uint64_t)-1)
-      dump_line("FCP LUN: 0x%llx\n",(unsigned long long)h->detail->scsi.data->fcp_lun);
-    dump_line("SCSI Host CCW ID: %s\n",h->detail->scsi.data->controller_id);
-  }
-#endif
-
-  if(
-    h->base_class.id == bc_storage_device &&
-    h->sub_class.id == sc_sdev_cdrom &&
-    h->detail &&
-    h->detail->type == hd_detail_cdrom &&
-    h->detail->cdrom.data
-  ) {
-    cdrom_info_t *ci = h->detail->cdrom.data;
-
-    if(ci->speed) {
-      dump_line("Drive Speed: %u\n", ci->speed);
-    }
-
-    if(ci->iso9660.ok) {
-      if(ci->iso9660.volume) dump_line("Volume ID: \"%s\"\n", ci->iso9660.volume);
-      if(ci->iso9660.application) dump_line("Application: \"%s\"\n", ci->iso9660.application);
-      if(ci->iso9660.publisher) dump_line("Publisher: \"%s\"\n", ci->iso9660.publisher);
-      if(ci->iso9660.preparer) dump_line("Preparer: \"%s\"\n", ci->iso9660.preparer);
-      if(ci->iso9660.creation_date) dump_line("Creation date: \"%s\"\n", ci->iso9660.creation_date);
-    }
-#if 0
-    else {
-      if(ci->cdrom) {
-        dump_line_str("Drive status: non-ISO9660 cdrom\n");
-      }
-      else {
-        dump_line_str("Drive status: no cdrom found\n");
-      }
-    }
-#endif
-    if(ci->el_torito.ok) {
-      dump_line(
-        "El Torito info: platform %u, %sbootable\n",
-        ci->el_torito.platform,
-        ci->el_torito.bootable ? "" : "not "
-      );
-      dump_line("  Boot Catalog: at sector 0x%04x\n", ci->el_torito.catalog);
-      if(ci->el_torito.id_string) dump_line("  Id String: \"%s\"\n",  ci->el_torito.id_string);
-      if(ci->el_torito.label) dump_line("  Volume Label: \"%s\"\n",  ci->el_torito.label);
-      {
-        static char *media[] = {
-          "none", "1.2MB Floppy", "1.44MB Floppy", "2.88MB Floppy", "Hard Disk"
-        };
-        dump_line(
-          "  Media: %s starting at sector 0x%04x\n",
-          media[ci->el_torito.media_type < sizeof media / sizeof *media ? ci->el_torito.media_type : 0],
-          ci->el_torito.start
-        );
-      }
-      if(ci->el_torito.geo.size) dump_line(
-        "  Geometry (CHS): %u/%u/%u (%u blocks)\n",
-        ci->el_torito.geo.c, ci->el_torito.geo.h, ci->el_torito.geo.s, ci->el_torito.geo.size
-      );
-      dump_line("  Load: %u bytes", ci->el_torito.load_count * 0x200);
-      if(ci->el_torito.load_address) {
-        dump_line0(" at 0x%04x\n", ci->el_torito.load_address);
-      }
-      else {
-        dump_line0("\n");
-      }
-    }
-  }
-
-#if 0
-  if(
-    h->base_class.id == bc_storage_device &&
-    h->sub_class.id == sc_sdev_floppy &&
-    h->detail &&
-    h->detail->type == hd_detail_floppy
-  ) {
-    floppy_info_t *fi = h->detail->floppy.data;
-
-    if(fi) {
-      dump_line_str("Drive status: floppy found\n");
-    }
-    else {
-      dump_line_str("Drive status: no floppy found\n");
-    }
-  }
-#endif
-
-  ind -= 2;
-
-  if(h->next) dump_line_str("\n");
-}
-
-
-/*
- * print 'normal' hardware entries
- */
-void dump_normal(hd_data_t *hd_data, hd_t *h, FILE *f)
-{
-  int i, j;
-  char *s;
-  uint64_t u64;
-  hd_res_t *res;
-  char buf[256], c0, c1;
-  driver_info_t *di;
-  str_list_t *sl, *sl1, *sl2;
-  isdn_parm_t *ip;
-  static char *geo_type_str[] = { "Physical", "Logical", "BIOS EDD", "BIOS Legacy" };
-
-  if(h->model) dump_line("Model: \"%s\"\n", h->model);
-
-  s = NULL;
-  switch(h->hotplug) {
-    case hp_none:
-      break;
-    case hp_pcmcia:
-      s = "PCMCIA";
-      break;
-    case hp_cardbus:
-      s = "CardBus";
-      break;
-    case hp_pci:
-      s = "PCI";
-      break;
-    case hp_usb:
-      s = "USB";
-      break;
-    case hp_ieee1394:
-      s = "IEEE1394 (FireWire)";
-      break;
-  }
-
-  if(s) {
-    dump_line("Hotplug: %s\n", s);
-  }
-
-  if(
-    (h->hotplug == hp_pcmcia || h->hotplug == hp_cardbus) &&
-    h->hotplug_slot
-  ) {
-    dump_line("Socket: %u\n", h->hotplug_slot - 1);
-  }
-
-  if(h->vendor.id || h->vendor.name || h->device.id || h->device.name) {
-    if(h->vendor.id || h->vendor.name) {
-      dump_line("Vendor: %s\n", dump_hid(hd_data, &h->vendor, 1, buf, sizeof buf));
-    }
-    dump_line("Device: %s\n", dump_hid(hd_data, &h->device, 0, buf, sizeof buf));
-  }
-
-  if(h->sub_vendor.id || h->sub_device.id || h->sub_device.name || h->sub_vendor.name) {
-    if(h->sub_vendor.id || h->sub_vendor.name || h->sub_device.id) {
-      dump_line("SubVendor: %s\n", dump_hid(hd_data, &h->sub_vendor, 1, buf, sizeof buf));
-    }
-    dump_line("SubDevice: %s\n", dump_hid(hd_data, &h->sub_device, 0, buf, sizeof buf));
-  }
-
-  if(h->revision.name) {
-    dump_line("Revision: \"%s\"\n", h->revision.name);
-  }
-  else if(h->revision.id) {
-    dump_line("Revision: 0x%02x\n", h->revision.id);
-  }
-
-  if(h->serial) {
-    dump_line("Serial ID: \"%s\"\n", h->serial);
-  }
-
-  if(h->usb_guid) {
-    dump_line("USB GUID: %s\n", h->usb_guid);
-  }
-
-  if(h->compat_vendor.id || h->compat_device.id) {
-    dump_line(
-      "Compatible to: %s\n",
-      dump_hid2(hd_data, &h->compat_vendor, &h->compat_device, buf, sizeof buf)
-    );
-  }
-
-  if(h->base_class.id == bc_internal && h->sub_class.id == sc_int_sys) {
-    dump_sys(hd_data, h, f);
-  }
-
-  if(h->drivers) {
-    s = hd_join("\", \"", h->drivers);
-    dump_line("Driver: \"%s\"\n", s);
-    s = free_mem(s);
-  }
-
-  if(h->broken) {
-    dump_line_str("Warning: might be broken\n");
-  }
-
-  if(hd_data->flags.dformat == 1) {
-    if(h->unix_dev_name) {
-      dump_line("Device File: %s\n", h->unix_dev_name);
-    }
-    if(h->unix_dev_name2) {
-      dump_line("Alternative Device File: %s\n", h->unix_dev_name2);
-    }
-  }
-  else {
-    s = h->unix_dev_name;
-    if(!s) s = h->unix_dev_name2;
-    if(s) {
-      dump_line("Device File: %s", s);
-      if(h->unix_dev_name2) {
-        dump_line0(" (%s)", h->unix_dev_name2);
-      }
-      dump_line0("\n");
-    }
-
-  }
-
-  /* only if there are more than one */
-  if(h->unix_dev_names && h->unix_dev_names->next) {
-    s = hd_join(", ", h->unix_dev_names);
-    dump_line("Device Files: %s\n", s);
-    s = free_mem(s);
-  }
-
-  if(h->unix_dev_num.type) {
-    dump_line("Device Number: %s", print_dev_num(&h->unix_dev_num));
-    if(h->unix_dev_num2.type) {
-      dump_line0(" (%s)", print_dev_num(&h->unix_dev_num2));
-    }
-    dump_line0("\n");
-  }
-
-  if(h->rom_id) {
-#if defined(__i386__) || defined (__x86_64__)
-    dump_line("BIOS id: %s\n", h->rom_id);
-#endif
-#if defined(__PPC__) || defined(__sparc__)
-    dump_line("PROM id: %s\n", h->rom_id);
-#endif
-#if defined(__s390__) || defined(__s390x__)
-    dump_line("IUCV user: %s\n", h->rom_id);
-#endif
-  }
-
-  if(h->tag.ser_skip) {
-    dump_line_str("Tags: ser_skip\n");
-  }
-
-  if(
-    h->is.zip ||
-    h->is.cdr || h->is.cdrw || h->is.dvd ||
-    h->is.dvdr || h->is.dvdram || h->is.pppoe || h->is.wlan
-  ) {
-    dump_line_str("Features:");
-    i = 0;
-    if(h->is.zip) dump_line0("%s ZIP", i++ ? "," : "");
-    if(h->is.cdr) dump_line0("%s CD-R", i++ ? "," : "");
-    if(h->is.cdrw) dump_line0("%s CD-RW", i++ ? "," : "");
-    if(h->is.dvd) dump_line0("%s DVD", i++ ? "," : "");
-    if(h->is.dvdr) dump_line0("%s DVD-R", i++ ? "," : "");
-    if(h->is.dvdram) dump_line0("%s DVDRAM", i++ ? "," : "");
-    if(h->is.pppoe) dump_line0("%s PPPOE", i++ ? "," : "");
-    if(h->is.wlan) dump_line0("%s WLAN", i++ ? "," : "");
-    dump_line0("\n");
-  }
-
-  for(res = h->res; res; res = res->next) {
-    switch(res->any.type) {
-      case res_phys_mem:
-        u64 = res->phys_mem.range >> 10;
-        c0 = 'M'; c1 = 'k';
-        if(u64 >> 20) {
-          u64 >>= 10;
-          c0 = 'G'; c1 = 'M';
-        }
-        if((u64 & 0x3ff)) {
-          dump_line("Memory Size: %"PRId64" %cB + %"PRId64" %cB\n", u64 >> 10, c0, u64 & 0x3ff, c1);
-        }
-        else {
-          dump_line("Memory Size: %"PRId64" %cB\n", u64 >> 10, c0);
-        }
-        break;
-
-      case res_mem:
-        *(s = buf) = 0;
-        strcat(buf, res->mem.access == acc_rw ? "rw" : res->mem.access == acc_ro ? "ro" : "wo");
-        strcat(buf, res->mem.prefetch == flag_yes ? ",prefetchable" : res->mem.prefetch == flag_no ? ",non-prefetchable" : "");
-        if(!res->mem.enabled) strcat(buf, ",disabled");
-        if(*s == ',') s++;
-        if(res->mem.range) {
-          dump_line(
-            "Memory Range: 0x%08"PRIx64"-0x%08"PRIx64" (%s)\n",
-            res->mem.base, res->mem.base + res->mem.range - 1, s
-          );
-        }
-        else {
-          dump_line("Memory Range: 0x%08"PRIx64"-??? (%s)\n", res->mem.base, s);
-        }
-        break;
-
-      case res_io:
-        *(s = buf) = 0;
-        strcat(buf, res->io.access == acc_rw ? "rw" : res->io.access == acc_ro ? "ro" : "wo");
-        if(!res->io.enabled) strcat(buf, ",disabled");
-        if(*s == ',') s++;
-        if(res->io.range == 0) {
-          dump_line("I/O Ports: 0x%02"PRIx64"-??? (%s)\n", res->io.base, s);
-        }
-        else if(res->io.range == 1) {
-          dump_line("I/O Port: 0x%02"PRIx64" (%s)\n", res->io.base, s);
-        }
-        else {
-          dump_line("I/O Ports: 0x%02"PRIx64"-0x%02"PRIx64" (%s)\n", res->io.base, res->io.base + res->io.range -1, s);
-        }
-        break;
-
-      case res_irq:
-        *(s = buf) = 0;
-        switch(res->irq.triggered) {
-          case 0:
-            strcpy(s, "no events");
-            break;
-
-          case 1:
-            strcpy(s, "1 event");
-            break;
-
-          default:
-            sprintf(s, "%u events", res->irq.triggered);
-        }
-        if(!res->irq.enabled) {
-          if(res->irq.triggered)
-            strcat(s, ",");
-          else
-            *s = 0;
-          strcat(s, "disabled");
-        }
-        dump_line("IRQ: %u (%s)\n", res->irq.base, s);
-        break;
-
-      case res_dma:
-        *(s = buf) = 0;
-        if(!res->dma.enabled) strcpy(buf, " (disabled)");
-        dump_line("DMA: %u%s\n", res->dma.base, s);
-        break;
-
-      case res_monitor:
-        dump_line(
-          "Resolution: %ux%u@%uHz%s\n",
-          res->monitor.width, res->monitor.height, res->monitor.vfreq,
-          res->monitor.interlaced ? " (interlaced)" : ""
-        );
-        break;
-
-      case res_size:
-        {
-          char *s, b0[64], b1[64];
-
-          switch(res->size.unit) {
-            case size_unit_cinch:
-              s = "''";
-              snprintf(b0, sizeof b0 - 1, "%s", float2str(res->size.val1, 2));
-              snprintf(b1, sizeof b1 - 1, "%s", float2str(res->size.val2, 2));
-              break;
-
-            default:
-              switch(res->size.unit) {
-                case size_unit_cm:
-                  s = "cm";
-                  break;
-                case size_unit_sectors:
-                  s = "sectors";
-                  break;
-                case size_unit_kbyte:
-                  s = "kByte";
-                  break;
-                default:
-                  s = "some unit";
-              }
-              snprintf(b0, sizeof b0 - 1, "%"PRIu64, res->size.val1);
-              snprintf(b1, sizeof b1 - 1, "%"PRIu64, res->size.val2);
-          }
-          if(!res->size.val2)
-            dump_line("Size: %s %s\n", b0, s);
-          else if(res->size.unit == size_unit_sectors)
-            dump_line("Size: %s %s a %s bytes\n", b0, s, b1);
-          else
-            dump_line("Size: %sx%s %s\n", b0, b1, s);
-        }
-        break;
-
-      case res_disk_geo:
-        s = res->disk_geo.geotype < sizeof geo_type_str / sizeof *geo_type_str ?
-          geo_type_str[res->disk_geo.geotype] : "";
-        dump_line(
-          "Geometry (%s): CHS %u/%u/%u\n", s,
-          res->disk_geo.cyls, res->disk_geo.heads, res->disk_geo.sectors
-        );
-        if(res->disk_geo.size) {
-          dump_line("Size (%s): %"PRIu64" sectors\n", s, res->disk_geo.size);
-        }
-        break;
-
-      case res_cache:
-        dump_line("Cache: %u kb\n", res->cache.size);
-        break;
-
-      case res_baud:
-        if(res->baud.speed == 0 || res->baud.speed % 100) {
-          dump_line("Speed: %u bps\n", res->baud.speed);
-        }
-        else if(res->baud.speed % 100000) {
-          dump_line("Speed: %s kbps\n", float2str(res->baud.speed, 3));
-        }
-        else {
-          dump_line("Speed: %s Mbps\n", float2str(res->baud.speed, 6));
-        }
-        if(res->baud.bits || res->baud.stopbits || res->baud.parity || res->baud.handshake) {
-          int i = 0;
-
-          dump_line_str("Config: ");
-          if(res->baud.bits) {
-            dump_line0("%u bits", res->baud.bits);
-            i++;
-          }
-          if(res->baud.parity) {
-            dump_line0("%sparity %c", i++ ? ", " : "", res->baud.parity);
-          }
-          if(res->baud.stopbits) {
-            dump_line0("%s%u stopbits", i++ ? ", " : "", res->baud.stopbits);
-          }
-          if(res->baud.handshake) {
-            dump_line0("%shandshake %c", i++ ? ", " : "", res->baud.handshake);
-          }
-          dump_line0("\n");
-        }
-        break;
-
-      case res_init_strings:
-       if(res->init_strings.init1) dump_line("Init1: %s\n", res->init_strings.init1);
-       if(res->init_strings.init2) dump_line("Init2: %s\n", res->init_strings.init2);
-        break;
-
-      case res_pppd_option:
-       dump_line("PPPD Option: %s\n", res->pppd_option.option);
-        break;
-
-      case res_framebuffer:
-        dump_line("Mode 0x%04x: %ux%u (+%u), %u bits\n",
-          res->framebuffer.mode,
-          res->framebuffer.width,
-          res->framebuffer.height,
-          res->framebuffer.bytes_p_line,
-          res->framebuffer.colorbits
-        );
-        break;
-
-      case res_hwaddr:
-       dump_line("HW Address: %s\n", res->hwaddr.addr);
-        break;
-
-      case res_link:
-       dump_line("Link detected: %s\n", res->link.state ? "yes" : "no");
-        break;
-
-      case res_wlan:
-       if(res->wlan.channels) {
-               str_list_t *ptr = res->wlan.channels;
-               dump_line("WLAN channels: %s", ptr->str);
-               while((ptr=ptr->next)) dump_line0(" %s", ptr->str);
-               dump_line0("\n");
-       }
-       if(res->wlan.frequencies) {
-               str_list_t *ptr = res->wlan.frequencies;
-               dump_line("WLAN frequencies: %s", ptr->str);
-               while((ptr=ptr->next)) dump_line0(" %s", ptr->str);
-               dump_line0("\n");
-       }
-       if(res->wlan.bitrates) {
-               str_list_t *ptr = res->wlan.bitrates;
-               dump_line("WLAN bitrates: %s", ptr->str);
-               while((ptr=ptr->next)) dump_line0(" %s", ptr->str);
-               dump_line0("\n");
-       }
-       if(res->wlan.enc_modes) {
-               str_list_t *ptr = res->wlan.enc_modes;
-               dump_line("WLAN encryption modes: %s", ptr->str);
-               while((ptr=ptr->next)) dump_line0(" %s", ptr->str);
-               dump_line0("\n");
-       }
-        if(res->wlan.auth_modes) {
-               str_list_t *ptr = res->wlan.auth_modes;
-               dump_line("WLAN authentication modes: %s", ptr->str);
-               while((ptr=ptr->next)) dump_line0(" %s", ptr->str);
-               dump_line0("\n");
-       }
-        break;
-
-
-      default:
-        dump_line("Unknown resource type %d\n", res->any.type);
-    }
-  }
-
-  if((sl = h->requires)) {
-    dump_line("Requires: %s", sl->str);
-    for(sl = sl->next; sl; sl = sl->next) {
-      dump_line0(", %s", sl->str);
-    }
-    dump_line0("\n");
-  }
-
-  for(di = h->driver_info, i = 0; di; di = di->next, i++) {
-    dump_line("Driver Info #%d:\n", i);
-    ind += 2;
-    switch(di->any.type) {
-      case di_any:
-        dump_line_str("Driver Info:");
-        for(sl = di->any.hddb0, j = 0; sl; sl = sl->next, j++) {
-          dump_line0("%c%s", j ? ',' : ' ', sl->str);
-        }
-        dump_line0("\n");
-        break;
-
-      case di_display:
-        if(di->display.width)
-          dump_line("Max. Resolution: %ux%u\n", di->display.width, di->display.height);
-        if(di->display.min_vsync)
-           dump_line("Vert. Sync Range: %u-%u Hz\n", di->display.min_vsync, di->display.max_vsync);
-        if(di->display.min_hsync)
-           dump_line("Hor. Sync Range: %u-%u kHz\n", di->display.min_hsync, di->display.max_hsync);
-        if(di->display.bandwidth)
-           dump_line("Bandwidth: %u MHz\n", di->display.bandwidth);
-        break;
-
-      case di_module:
-        dump_line_str("Driver Status: ");
-        for(sl1 = di->module.names; sl1; sl1 = sl1->next) {
-          dump_line0("%s%c", sl1->str, sl1->next ? ',' : ' ');
-        }
-        dump_line0("%s %sactive\n",
-          di->module.names->next ? "are" : "is",
-          di->module.active ? "" : "not "
-        );
-
-        dump_line_str("Driver Activation Cmd: \"");
-        for(sl1 = di->module.names, sl2 = di->module.mod_args; sl1 && sl2; sl1 = sl1->next, sl2 = sl2->next) {
-          dump_line0("%s %s%s%s%s",
-            di->module.modprobe ? "modprobe" : "insmod",
-            sl1->str,
-            sl2->str ? " " : "",
-            sl2->str ? sl2->str : "",
-            (sl1->next && sl2->next) ? "; " : ""
-          );
-        }
-
-        dump_line0("\"\n");
-
-        if(di->module.conf) {
-          char *s = di->module.conf;
-
-          dump_line_str("Driver \"modules.conf\" Entry: \"");
-          for(; *s; s++) {
-            if(isprint(*s)) {
-              dump_line0("%c", *s);
-            }
-            else {
-              switch(*s) {
-                case '\n': dump_line0("\\n"); break;
-                case '\r': dump_line0("\\r"); break;
-                case '\t': dump_line0("\t"); break;    /* *no* typo! */
-                default: dump_line0("\\%03o", *s); 
-              }
-            }
-          }
-          dump_line0("\"\n");
-        }
-      break;
-
-      case di_mouse:
-        if(di->mouse.buttons >= 0) dump_line("Buttons: %d\n", di->mouse.buttons);
-        if(di->mouse.wheels >= 0) dump_line("Wheels: %d\n", di->mouse.wheels);
-        if(di->mouse.xf86) dump_line("XFree86 Protocol: %s\n", di->mouse.xf86);
-        if(di->mouse.gpm) dump_line("GPM Protocol: %s\n", di->mouse.gpm);
-        break;
-
-      case di_x11:
-        if(di->x11.server) {
-          dump_line(
-            "XFree86 v%s Server%s: %s\n",
-            di->x11.xf86_ver, strcmp(di->x11.xf86_ver, "4") ? "" : " Module", di->x11.server
-          );
-        }
-        if(di->x11.x3d) dump_line_str("3D Support: yes\n");
-        if(di->x11.script) dump_line("3D Script: %s\n", di->x11.script);
-        if(di->x11.colors.all) {
-          dump_line_str("Color Depths: ");
-          j = 0;
-          if(di->x11.colors.c8) { dump_line0("8"); j++; }
-          if(di->x11.colors.c15) { if(j) dump_line0(", "); dump_line0("15"); j++; }
-          if(di->x11.colors.c16) { if(j) dump_line0(", "); dump_line0("16"); j++; }
-          if(di->x11.colors.c24) { if(j) dump_line0(", "); dump_line0("24"); j++; }
-          if(di->x11.colors.c32) { if(j) dump_line0(", "); dump_line0("32"); j++; }
-          dump_line0("\n");
-        }
-        if(di->x11.dacspeed) dump_line("Max. DAC Clock: %u MHz\n", di->x11.dacspeed);
-        if(di->x11.extensions) {
-          dump_line("Extensions: %s", di->x11.extensions->str);
-          for(sl = di->x11.extensions->next; sl; sl = sl->next) {
-            dump_line0(", %s", sl->str);
-          }
-          dump_line0("\n");
-        }
-        if(di->x11.options) {
-          dump_line("Options: %s", di->x11.options->str);
-          for(sl = di->x11.options->next; sl; sl = sl->next) {
-            dump_line0(", %s", sl->str);
-          }
-          dump_line0("\n");
-        }
-        if(di->x11.raw) {
-          dump_line("XF86Config Entry: %s", di->x11.raw->str);
-          for(sl = di->x11.raw->next; sl; sl = sl->next) {
-            dump_line0("\\n%s", sl->str);
-          }
-          dump_line0("\n");
-        }
-        break;
-
-      case di_isdn:
-        dump_line(
-          "I4L Type: %d/%d [%s]\n",
-          di->isdn.i4l_type, di->isdn.i4l_subtype, di->isdn.i4l_name
-        );
-        if((ip = di->isdn.params)) {
-          int k, l;
-
-          dump_line_str("Parameter:\n");
-          for(k = 0; ip; ip = ip->next, k++) {
-            dump_line(
-              "  %d%s: (0x%x/%02x): %s = 0x%"PRIx64,
-              k, ip->conflict ? "(conflict)" : ip->valid ? "" : "(invalid)",
-              ip->type, ip->flags >> 8, ip->name, ip->value
-            );
-            if(ip->alt_values) {
-              for(l = 0; l < ip->alt_values; l++) {
-                dump_line0(
-                  "%s%s0x%x", l ? "," : " [",
-                  ip->alt_value[l] == ip->def_value ? "*" : "",
-                  ip->alt_value[l]
-                );
-              }
-              dump_line0("]");
-            }
-            dump_line0("\n");
-          }
-        }
-        break;
-
-      case di_dsl:
-        dump_line(
-          "DSL Mode: %s\n",
-          di->dsl.mode
-        );
-        dump_line(
-          "Driver: %s\n",
-          di->dsl.name
-        );
-        break;
-
-      case di_kbd:
-        if(di->kbd.XkbRules) dump_line("XkbRules: %s\n", di->kbd.XkbRules);
-        if(di->kbd.XkbModel) dump_line("XkbModel: %s\n", di->kbd.XkbModel);
-        if(di->kbd.XkbLayout) dump_line("XkbLayout: %s\n", di->kbd.XkbLayout);
-        if(di->kbd.keymap) dump_line("keymap: %s\n", di->kbd.keymap);
-        break;
-
-      default:
-        dump_line_str("Driver Status: unknown driver info format\n");
-    }
-
-    if((hd_data->debug & HD_DEB_DRIVER_INFO)) {
-      for(sl = di->any.hddb0, j = 0; sl; sl = sl->next, j++) {
-        if(j) {
-          dump_line0("|%s", sl->str);
-        }
-        else {
-          dump_line("Driver DB0: %d, %s", di->any.type, sl->str);
-        }
-      }
-      if(di->any.hddb0) dump_line0("\n");
-
-      for(sl = di->any.hddb1, j = 0; sl; sl = sl->next, j++) {
-        if(!j) dump_line_str("Driver DB1: \"");
-        dump_line0("%s\\n", sl->str);
-      }
-      if(di->any.hddb1) dump_line0("\"\n");
-    }
-
-    ind -= 2;
-  }
-}
-
-/*
- * print CPU entries
- */
-void dump_cpu(hd_data_t *hd_data, hd_t *hd, FILE *f)
-{
-  cpu_info_t *ct;
-  str_list_t *sl;
-
-  if(!hd->detail || hd->detail->type != hd_detail_cpu) return;
-  if(!(ct = hd->detail->cpu.data)) return;
-
-  dump_line0 ("  Arch: ");
-  switch (ct->architecture) {
-      case arch_intel:
-       dump_line0 ("Intel\n");
-       break;
-      case arch_alpha:
-       dump_line0 ("Alpha\n");
-       break;
-      case arch_sparc:
-       dump_line0 ("Sparc (32)\n");
-       break;
-      case arch_sparc64:
-       dump_line0 ("UltraSparc (64)\n");
-       break;
-      case arch_ppc:
-       dump_line0 ("PowerPC\n");
-       break;
-      case arch_ppc64:
-       dump_line0 ("PowerPC (64)\n");
-       break;
-      case arch_68k:
-       dump_line0 ("68k\n");
-       break;
-      case arch_ia64:
-       dump_line0 ("IA-64\n");
-       break;
-      case arch_s390:
-       dump_line0 ("S390\n");
-       break;
-      case arch_s390x:
-       dump_line0 ("S390x\n");
-       break;
-      case arch_arm:
-       dump_line0 ("ARM\n");
-       break;
-      case arch_mips:
-       dump_line0 ("MIPS\n");
-       break;
-      case arch_x86_64:
-       dump_line0 ("X86-64\n");
-       break;
-      default:
-       dump_line0 ("**UNKNWON**\n");
-       break;
-  }
-
-  if(ct->vend_name) dump_line("Vendor: \"%s\"\n", ct->vend_name);
-  if(ct->model_name)
-    dump_line(
-      "Model: %u.%u.%u \"%s\"\n",
-      ct->family, ct->model, ct->stepping, ct->model_name
-    );
-
-  if(ct->platform) dump_line("Platform: \"%s\"\n", ct->platform);
-
-  if(ct->features) {
-    dump_line("Features: %s", ct->features->str);
-    for(sl = ct->features->next; sl; sl = sl->next) {
-      dump_line0(",%s", sl->str);
-    }
-    dump_line0("\n");
-  }
-
-  if(ct->clock) dump_line("Clock: %u MHz\n", ct->clock);
-
-  if(ct->cache) dump_line("Cache: %u kb\n", ct->cache);
-  if(ct->units) dump_line("Units/Processor: %u\n", ct->units);
-}
-
-
-/*
- * print BIOS entries
- */
-void dump_bios(hd_data_t *hd_data, hd_t *hd, FILE *f)
-{
-  bios_info_t *bt;
-
-  if(!hd->detail || hd->detail->type != hd_detail_bios) return;
-  if(!(bt = hd->detail->bios.data)) return;
-
-  if(bt->vbe_ver) {
-    dump_line("VESA BIOS Version: %u.%u\n", bt->vbe_ver >> 8, bt->vbe_ver & 0xff);
-  }
-
-  if(bt->vbe_video_mem) {
-    dump_line("Video Memory: %u kb\n", bt->vbe_video_mem >> 10);
-  }
-
-  if(bt->vbe.ok && bt->vbe.current_mode) {
-    dump_line("Current VESA Mode: 0x%04x\n", bt->vbe.current_mode);
-  }
-
-  if(bt->apm_supported) {
-    dump_line("APM Version: %u.%u\n", bt->apm_ver, bt->apm_subver);
-    dump_line("APM Status: %s\n", bt->apm_enabled ? "on" : "off");
-    dump_line("APM BIOS Flags: 0x%x\n", bt->apm_bios_flags);
-  }
-
-  if(bt->led.ok) {
-    dump_line_str("BIOS Keyboard LED Status:\n");
-    dump_line("  Scroll Lock: %s\n", bt->led.scroll_lock ? "on" : "off");
-    dump_line("  Num Lock: %s\n", bt->led.num_lock ? "on" : "off");
-    dump_line("  Caps Lock: %s\n", bt->led.caps_lock ? "on" : "off");
-  }
-
-  if(bt->ser_port0) dump_line("Serial Port 0: 0x%x\n", bt->ser_port0);
-  if(bt->ser_port1) dump_line("Serial Port 1: 0x%x\n", bt->ser_port1);
-  if(bt->ser_port2) dump_line("Serial Port 2: 0x%x\n", bt->ser_port2);
-  if(bt->ser_port3) dump_line("Serial Port 3: 0x%x\n", bt->ser_port3);
-
-  if(bt->par_port0) dump_line("Parallel Port 0: 0x%x\n", bt->par_port0);
-  if(bt->par_port1) dump_line("Parallel Port 1: 0x%x\n", bt->par_port1);
-  if(bt->par_port2) dump_line("Parallel Port 2: 0x%x\n", bt->par_port2);
-
-  if(bt->low_mem_size) dump_line("Base Memory: %u kB\n", bt->low_mem_size >> 10);
-
-  if(bt->is_pnp_bios) {
-    char *s = isa_id2str(bt->pnp_id);
-    dump_line("PnP BIOS: %s\n", s);
-    free_mem(s);
-  }
-
-  if(bt->lba_support) {
-    dump_line_str("BIOS: extended read supported\n");
-  }
-
-  if(bt->smp.ok) {
-    dump_line("MP spec rev 1.%u info:\n", bt->smp.rev);
-    dump_line("  OEM id: \"%s\"\n",  bt->smp.oem_id);
-    dump_line("  Product id: \"%s\"\n",  bt->smp.prod_id);
-    dump_line("  %u CPUs (%u disabled)\n",  bt->smp.cpus, bt->smp.cpus - bt->smp.cpus_en);
-  }
-
-  if(bt->bios32.ok) {
-    dump_line("BIOS32 Service Directory Entry: 0x%05x\n", bt->bios32.entry);
-  }
-
-  if(bt->smbios_ver) {
-    dump_line("SMBIOS Version: %u.%u\n", bt->smbios_ver >> 8, bt->smbios_ver & 0xff);
-  }
-
-  smbios_dump(hd_data, f);
-}
-
-
-/*
- * print PROM entries
- */
-void dump_prom(hd_data_t *hd_data, hd_t *hd, FILE *f)
-{
-  prom_info_t *pt;
-  char *s;
-
-  if(!hd->detail || hd->detail->type != hd_detail_prom) return;
-  if(!(pt = hd->detail->prom.data)) return;
-
-  if(pt->has_color) {
-    // ###########################
-    // s = hd_device_name(hd_data, MAKE_ID(TAG_SPECIAL, 0x0300), MAKE_ID(TAG_SPECIAL, pt->color));
-    s = NULL;
-    if(s)
-      dump_line("Color: %s (0x%02x)\n", s, pt->color);
-    else
-      dump_line("Color: 0x%02x\n", pt->color);
-  }
-}
-
-
-/*
- * print System entries
- */
-void dump_sys(hd_data_t *hd_data, hd_t *hd, FILE *f)
-{
-  sys_info_t *st;
-
-  if(!hd->detail || hd->detail->type != hd_detail_sys) return;
-  if(!(st = hd->detail->sys.data)) return;
-
-  if(st->system_type) {
-    dump_line("SystemType: \"%s\"\n", st->system_type);
-  }
-  if(st->generation) {
-    dump_line("Generation: \"%s\"\n", st->generation);
-  }
-
-  if(st->lang) {
-    dump_line("Language: \"%s\"\n", st->lang);
-  }
-}
-
-
-char *dump_hid(hd_data_t *hd_data, hd_id_t *hid, int format, char *buf, int buf_size)
-{
-  char *s;
-  int i;
-  unsigned t, id;
-
-  *buf = 0;
-
-  if(hid->id) {
-    t = ID_TAG(hid->id);
-    id = ID_VALUE(hid->id);
-
-    if(format && t == TAG_EISA) {
-      snprintf(buf, buf_size - 1, "%s", eisa_vendor_str(id));
-    }
-    else {
-      snprintf(buf, buf_size - 1, "%s0x%04x", hid_tag_name2(t), id);
-    }
-  }
-
-  i = strlen(buf);
-  if(i) {
-    buf[i++] = ' ';
-    buf[i] = 0;
-  }
-  s = buf + i;
-  buf_size -= i;
-
-  if(!buf_size) return buf;
-
-  if(hid->name) {
-    snprintf(s, buf_size - 1, "\"%s\"", hid->name);
-  }
-
-  return buf;
-}
-
-char *dump_hid2(hd_data_t *hd_data, hd_id_t *hid1, hd_id_t *hid2, char *buf, int buf_size)
-{
-  char *s;
-  int i;
-  unsigned t, id1, id2;
-
-  *buf = 0;
-
-  t = 0;
-  if(hid1->id) t = ID_TAG(hid1->id);
-  if(hid2->id) t = ID_TAG(hid2->id);
-
-  id1 = ID_VALUE(hid1->id);
-  id2 = ID_VALUE(hid2->id);
-
-  if(hid1->id || hid2->id) {
-    if(t == TAG_EISA) {
-      snprintf(buf, buf_size - 1, "%s 0x%04x", eisa_vendor_str(id1), id2);
-    }
-    else {
-      snprintf(buf, buf_size - 1, "%s0x%04x 0x%04x", hid_tag_name2(t), id1, id2);
-    }
-  }
-
-  i = strlen(buf);
-  s = buf + i;
-  buf_size -= i;
-
-  if(!buf_size) return buf;
-
-  if(hid2->name) {
-    snprintf(s, buf_size - 1, " \"%s\"", hid2->name);
-  }
-
-  return buf;
-}
-
-
-char *print_dev_num(hd_dev_num_t *d)
-{
-  static char *buf = NULL;
-
-  if(d->type) {
-    str_printf(&buf, 0, "%s %u:%u",
-      d->type == 'b' ? "block" : "char",
-      d->major, d->minor
-    );
-    if(d->range > 1) {
-      str_printf(&buf, -1, "-%u:%u",
-        d->major, d->minor + d->range - 1
-      );
-    }
-  }
-  else {
-    str_printf(&buf, 0, "%s", "");
-  }
-
-  return buf;
-}
-
-
-#else  /* ifndef LIBHD_TINY */
-
-void hd_dump_entry(hd_data_t *hd_data, hd_t *h, FILE *f) { }
-
-#endif /* ifndef LIBHD_TINY */
-
diff --git a/src/hwinfo/src/hd/hdp.h b/src/hwinfo/src/hd/hdp.h
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/hwinfo/src/hd/ibm-notebooks.h b/src/hwinfo/src/hd/ibm-notebooks.h
deleted file mode 100644 (file)
index b47d50c..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-  { 1024,  768, "IBM", "18305CU", NULL },
-  { 1024,  768, "IBM", "1830BLU", NULL },
-  { 1024,  768, "IBM", "1830H3U", NULL },
-  { 1024,  768, "IBM", "1830PVU", NULL },
-  { 1024,  768, "IBM", "18344AU", NULL },
-  { 1024,  768, "IBM", "18344EU", NULL },
-  { 1024,  768, "IBM", "183456U", NULL },
-  { 1024,  768, "IBM", "18345BU", NULL },
-  { 1024,  768, "IBM", "1834E7U", NULL },
-  { 1024,  768, "IBM", "1834ELU", NULL },
-  { 1024,  768, "IBM", "1834FKU", NULL },
-  { 1024,  768, "IBM", "1834NEU", NULL },
-  { 1024,  768, "IBM", "1836BAU", NULL },
-  { 1024,  768, "IBM", "1836H7U", NULL },
-  { 1024,  768, "IBM", "1836Q4U", NULL },
-  { 1024,  768, "IBM", "18422QU", NULL },
-  { 1024,  768, "IBM", "18422RU", NULL },
-  { 1024,  768, "IBM", "1842G3U", NULL },
-  { 1024,  768, "IBM", "1842G7U", NULL },
-  { 1024,  768, "IBM", "1842GDU", NULL },
-  { 1024,  768, "IBM", "1842GQU", NULL },
-  { 1024,  768, "IBM", "1842GRU", NULL },
-  { 1024,  768, "IBM", "1842HRU", NULL },
-  { 1024,  768, "IBM", "1842PPU", NULL },
-  { 1024,  768, "IBM", "185928U", NULL },
-  { 1024,  768, "IBM", "18594YU", NULL },
-  { 1024,  768, "IBM", "18595RU", NULL },
-  { 1024,  768, "IBM", "23711CU", NULL },
-  { 1024,  768, "IBM", "23716EU", NULL },
-  { 1024,  768, "IBM", "23716FU", NULL },
-  { 1024,  768, "IBM", "23716GU", NULL },
-  { 1024,  768, "IBM", "23717GU", NULL },
-  { 1024,  768, "IBM", "23718EU", NULL },
-  { 1024,  768, "IBM", "237197U", NULL },
-  { 1024,  768, "IBM", "2371A9U", NULL },
-  { 1024,  768, "IBM", "2371GHU", NULL },
-  { 1024,  768, "IBM", "23731FU", NULL },
-  { 1024,  768, "IBM", "23731HU", NULL },
-  { 1024,  768, "IBM", "23731WU", NULL },
-  { 1024,  768, "IBM", "23734YU", NULL },
-  { 1024,  768, "IBM", "23735TU", NULL },
-  { 1024,  768, "IBM", "23736VU", NULL },
-  { 1024,  768, "IBM", "23736YU", NULL },
-  { 1024,  768, "IBM", "23737FU", NULL },
-  { 1024,  768, "IBM", "2373J4U", NULL },
-  { 1024,  768, "IBM", "2373JTU", NULL },
-  { 1024,  768, "IBM", "2373K1U", NULL },
-  { 1024,  768, "IBM", "2373L1U", NULL },
-  { 1024,  768, "IBM", "23785UU", NULL },
-  { 1024,  768, "IBM", "2378DGU", NULL },
-  { 1024,  768, "IBM", "2378DHU", NULL },
-  { 1024,  768, "IBM", "2378DTU", NULL },
-  { 1024,  768, "IBM", "2378DUU", NULL },
-  { 1024,  768, "IBM", "2378DWU", NULL },
-  { 1024,  768, "IBM", "2378FTU", NULL },
-  { 1024,  768, "IBM", "2378FZU", NULL },
-  { 1024,  768, "IBM", "2378R1U", NULL },
-  { 1024,  768, "IBM", "2378R4U", NULL },
-  { 1024,  768, "IBM", "2378R8U", NULL },
-  { 1024,  768, "IBM", "23795VU", NULL },
-  { 1024,  768, "IBM", "2379DKU", NULL },
-  { 1024,  768, "IBM", "2379DWU", NULL },
-  { 1024,  768, "IBM", "2379R1U", NULL },
-  { 1024,  768, "IBM", "2379R6U", NULL },
-  { 1024,  768, "IBM", "2379R8U", NULL },
-  { 1024,  768, "IBM", "23826UU", NULL },
-  { 1024,  768, "IBM", "2382ECU", NULL },
-  { 1024,  768, "IBM", "2382HCU", NULL },
-  { 1024,  768, "IBM", "2384A9U", NULL },
-  { 1024,  768, "IBM", "2384ATU", NULL },
-  { 1024,  768, "IBM", "2384B9U", NULL },
-  { 1024,  768, "IBM", "2384DLU", NULL },
-  { 1024,  768, "IBM", "2384DWU", NULL },
-  { 1024,  768, "IBM", "2384ECU", NULL },
-  { 1024,  768, "IBM", "2384EHU", NULL },
-  { 1024,  768, "IBM", "2384JCU", NULL },
-  { 1024,  768, "IBM", "238613U", NULL },
-  { 1024,  768, "IBM", "23861CU", NULL },
-  { 1024,  768, "IBM", "23861ZU", NULL },
-  { 1024,  768, "IBM", "23865FU", NULL },
-  { 1024,  768, "IBM", "23866GU", NULL },
-  { 1024,  768, "IBM", "23866RU", NULL },
-  { 1024,  768, "IBM", "23866UU", NULL },
-  { 1024,  768, "IBM", "23868EU", NULL },
-  { 1024,  768, "IBM", "23868WU", NULL },
-  { 1024,  768, "IBM", "2386A4U", NULL },
-  { 1024,  768, "IBM", "2386E9U", NULL },
-  { 1024,  768, "IBM", "23884QU", NULL },
-  { 1024,  768, "IBM", "238852U", NULL },
-  { 1024,  768, "IBM", "2388DGU", NULL },
-  { 1024,  768, "IBM", "2388DMU", NULL },
-  { 1024,  768, "IBM", "2388EJU", NULL },
-  { 1024,  768, "IBM", "2388ENU", NULL },
-  { 1024,  768, "IBM", "2388F4U", NULL },
-  { 1024,  768, "IBM", "2388HBU", NULL },
-  { 1024,  768, "IBM", "2388JBU", NULL },
-  { 1024,  768, "IBM", "2389DHU", NULL },
-  { 1024,  768, "IBM", "26284UG", NULL },
-  { 1024,  768, "IBM", "26446AG", NULL },
-  { 1024,  768, "IBM", "26455BG", NULL },
-  { 1024,  768, "IBM", "264721G", NULL },
-  { 1024,  768, "IBM", "26725KU", NULL },
-  { 1024,  768, "IBM", "2672REU", NULL },
-  { 1024,  768, "IBM", "2672RHU", NULL },
-  { 1024,  768, "IBM", "267358U", NULL },
-  { 1024,  768, "IBM", "26735KU", NULL },
-  { 1024,  768, "IBM", "26817FU", NULL },
-  { 1024,  768, "IBM", "2682PAU", NULL },
-  { 1024,  768, "IBM", "2684FU4", NULL },
-  { 1024,  768, "IBM", "2684KJU", NULL },
-  { 1024,  768, "IBM", "2684QBU", NULL },
-  { 1024,  768, "IBM", "27225JU", NULL },
-  { 1024,  768, "IBM", "27233XU", NULL },
-  { 1024,  768, "IBM", "288122U", NULL },
-  { 1024,  768, "IBM", "288136U", NULL },
-  { 1024,  768, "IBM", "288157U", NULL },
-  { 1024,  768, "IBM", "28832ZU", NULL },
-  { 1024,  768, "IBM", "28838QU", NULL },
-  { 1024,  768, "IBM", "2883ARU", NULL },
-  { 1024,  768, "IBM", "2883ELU", NULL },
-  { 1024,  768, "IBM", "2883GKU", NULL },
-  { 1024,  768, "IBM", "28854WU", NULL },
-  { 1024,  768, "IBM", "2885PWU", NULL },
-  { 1024,  768, "IBM", "28865TU", NULL },
-  { 1024,  768, "IBM", "288692U", NULL },
-  { 1024,  768, "IBM", "28872KU", NULL },
-  { 1024,  768, "IBM", "288745U", NULL },
-  { 1024,  768, "IBM", "288767U", NULL },
-  { 1024,  768, "IBM", "28878PU", NULL },
-  { 1024,  768, "IBM", "28885RU", NULL },
-  { 1024,  768, "IBM", "2888M9U", NULL },
-  { 1400, 1050, "IBM", "1830BQU", NULL },
-  { 1400, 1050, "IBM", "18363SU", NULL },
-  { 1400, 1050, "IBM", "1836H8U", NULL },
-  { 1400, 1050, "IBM", "1836H9U", NULL },
-  { 1400, 1050, "IBM", "1836HAU", NULL },
-  { 1400, 1050, "IBM", "1836Q6U", NULL },
-  { 1400, 1050, "IBM", "1836Q7U", NULL },
-  { 1400, 1050, "IBM", "18594AU", NULL },
-  { 1400, 1050, "IBM", "237394U", NULL },
-  { 1400, 1050, "IBM", "23739FU", NULL },
-  { 1400, 1050, "IBM", "2373G1U", NULL },
-  { 1400, 1050, "IBM", "2373G3U", NULL },
-  { 1400, 1050, "IBM", "2373GEU", NULL },
-  { 1400, 1050, "IBM", "2373GGU", NULL },
-  { 1400, 1050, "IBM", "2373GHG", NULL },
-  { 1400, 1050, "IBM", "2373KTU", NULL },
-  { 1400, 1050, "IBM", "2373KUU", NULL },
-  { 1400, 1050, "IBM", "2373L4U", NULL },
-  { 1400, 1050, "IBM", "2374GGG", NULL },
-  { 1400, 1050, "IBM", "2378DXU", NULL },
-  { 1400, 1050, "IBM", "2378FVU", NULL },
-  { 1400, 1050, "IBM", "2379DJU", NULL },
-  { 1400, 1050, "IBM", "2379DXU", NULL },
-  { 1400, 1050, "IBM", "2379R9U", NULL },
-  { 1400, 1050, "IBM", "23885DU", NULL },
-  { 1400, 1050, "IBM", "2388F5U", NULL },
-  { 1400, 1050, "IBM", "288678U", NULL },
-  { 1400, 1050, "IBM", "288679U", NULL },
-  { 1400, 1050, "IBM", "288693U", NULL },
-  { 1600, 1200, "IBM", "183222U", NULL },
-  { 1600, 1200, "IBM", "183223U", NULL },
-  { 1600, 1200, "IBM", "2373HTU", NULL },
-  { 1600, 1200, "IBM", "2373HVU", NULL },
-  { 1600, 1200, "IBM", "2373KXU", NULL },
-  { 1600, 1200, "IBM", "2373KYU", NULL },
-  { 1600, 1200, "IBM", "2373Q1U", NULL },
-  { 1600, 1200, "IBM", "2378DYU", NULL },
-  { 1600, 1200, "IBM", "2379DYU", NULL },
diff --git a/src/hwinfo/src/hd/input.c b/src/hwinfo/src/hd/input.c
deleted file mode 100644 (file)
index 790d090..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <linux/input.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "hddb.h"
-#include "input.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * input devs
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-static void get_input_devices(hd_data_t *hd_data);
-static char *all_bits(char *str);
-static int test_bit(char *str, unsigned bit);
-
-void hd_scan_input(hd_data_t *hd_data)
-{
-  if(!hd_probe_feature(hd_data, pr_input)) return;
-
-  hd_data->module = mod_input;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "joydev mod");
-  load_module(hd_data, "joydev");
-
-  PROGRESS(1, 1, "evdev mod");
-  load_module(hd_data, "evdev");
-
-  PROGRESS(2, 0, "input");
-
-  get_input_devices(hd_data);
-}
-
-
-#define INP_NAME       "N: Name="
-#define INP_HANDLERS   "H: Handlers="
-#define INP_KEY                "B: KEY="
-#define INP_REL                "B: REL="
-
-void get_input_devices(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  str_list_t *input, *sl, *sl1;
-  char *s;
-  unsigned ok, u;
-  unsigned bus, vendor, product, version;
-  unsigned mouse_buttons, mouse_wheels;
-  char *name = NULL, *handlers = NULL, *key = NULL, *rel = NULL;
-  size_t len;
-  str_list_t *handler_list;
-  hd_dev_num_t dev_num = { type: 'c', range: 1 };
-
-  input = read_file("/proc/bus/input/devices", 0, 0);
-
-  ADD2LOG("----- /proc/bus/input/devices -----\n");
-  for(sl = input; sl; sl = sl->next) {
-    ADD2LOG("  %s", sl->str);
-  }
-  ADD2LOG("----- /proc/bus/input/devices end -----\n");
-
-  for(ok = 0, sl = input; sl; sl = sl->next) {
-    if(*sl->str == '\n') {
-      ADD2LOG("bus = %u, name = %s\n", bus, name);
-      if(handlers) ADD2LOG("  handlers = %s\n", handlers);
-      if(key) ADD2LOG("  key = %s\n", key);
-      if(rel) ADD2LOG("  rel = %s\n", rel);
-
-      mouse_buttons = 0;
-      if(key) {
-        for(u = BTN_MOUSE; u < BTN_MOUSE + 8; u++) {
-          if(test_bit(key, u)) mouse_buttons++;
-        }
-      }
-      ADD2LOG("  mouse buttons = %u\n", mouse_buttons);
-
-      mouse_wheels = 0;
-      if(rel) {
-        for(u = REL_HWHEEL; u <= REL_MAX; u++) {
-          if(test_bit(rel, u)) mouse_wheels++;
-        }
-      }
-      ADD2LOG("  mouse wheels = %u\n", mouse_wheels);
-
-      if(ok && handlers) {
-        handler_list = hd_split(' ', handlers);
-
-        if(bus == BUS_USB) {
-          s = NULL;
-          for(sl1 = handler_list; sl1; sl1 = sl1->next) {
-            if(sscanf(sl1->str, "mouse%u", &u) == 1) {
-              str_printf(&s, 0, "/dev/input/mouse%u", u);
-              break;
-            }
-          }
-          
-          if(s) {
-            for(hd = hd_data->hd; hd; hd = hd->next) {
-              if(hd->unix_dev_name2 && !strcmp(hd->unix_dev_name2, s)) {
-                hd->compat_vendor.id = MAKE_ID(TAG_SPECIAL, 0x0210);
-                hd->compat_device.id = MAKE_ID(TAG_SPECIAL, (mouse_wheels << 4) + mouse_buttons);
-              }
-            }
-          }
-
-          s = free_mem(s);
-        }
-        else {
-          if(search_str_list(handler_list, "kbd") && test_bit(key, KEY_1)) {
-            hd = add_hd_entry(hd_data, __LINE__, 0);
-            hd->base_class.id = bc_keyboard;
-            hd->sub_class.id = sc_keyboard_kbd;
-            hd->bus.id = bus_ps2;
-
-            hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0211);
-            hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0001);
-            hd->device.name = new_str(name);
-
-            for(sl1 = handler_list; sl1; sl1 = sl1->next) {
-              if(sscanf(sl1->str, "event%u", &u) == 1) {
-                str_printf(&hd->unix_dev_name, 0, "/dev/input/event%u", u);
-                dev_num.major = 13;
-                dev_num.minor = 64 + u;
-                hd->unix_dev_num = dev_num;
-                break;
-              }
-            }
-          }
-          else if(strstr(handlers, "mouse")) {
-            hd = add_hd_entry(hd_data, __LINE__, 0);
-            hd->base_class.id = bc_mouse;
-            hd->sub_class.id = sc_mou_ps2;
-            hd->bus.id = bus_ps2;
-
-            hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0210);
-            hd->device.id = MAKE_ID(TAG_SPECIAL, (mouse_wheels << 4) + mouse_buttons);
-            hd->device.name = new_str(name);
-
-            /* Synaptics/Alps TouchPad */
-            if(vendor == 2 && (product == 7 || product == 8)) {
-              hd->compat_vendor.id = hd->vendor.id;
-              hd->compat_device.id = hd->device.id;
-              hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0212);
-              hd->device.id = MAKE_ID(TAG_SPECIAL, product - 6);
-            }
-
-            hd->unix_dev_name = new_str(DEV_MICE);
-            dev_num.major = 13;
-            dev_num.minor = 63;
-            hd->unix_dev_num = dev_num;
-
-            for(sl1 = handler_list; sl1; sl1 = sl1->next) {
-              if(sscanf(sl1->str, "mouse%u", &u) == 1) {
-                str_printf(&hd->unix_dev_name2, 0, "/dev/input/mouse%u", u);
-                dev_num.major = 13;
-                dev_num.minor = 32 + u;
-                hd->unix_dev_num2 = dev_num;
-                break;
-              }
-            }
-
-          }
-        }
-
-        handler_list = free_str_list(handler_list);
-      }
-
-      ok = 0;
-
-      name = free_mem(name);
-      handlers = free_mem(handlers);
-      key = free_mem(key);
-      rel = free_mem(rel);
-    }
-
-    if(sscanf(sl->str, "I: Bus=%04x Vendor=%04x Product=%04x Version=%04x", &bus, &vendor, &product, &version) == 4) {
-      ok = 1;
-      continue;
-    }
-
-    if(!strncmp(sl->str, INP_NAME, sizeof INP_NAME - 1)) {
-      s = sl->str + sizeof INP_NAME;
-      len = strlen(s);
-      if(len > 2) {
-        name = canon_str(s, len - 2);
-      }
-      continue;
-    }
-
-    if(!strncmp(sl->str, INP_HANDLERS, sizeof INP_HANDLERS - 1)) {
-      s = sl->str + sizeof INP_HANDLERS - 1;
-      handlers = canon_str(s, strlen(s));
-      continue;
-    }
-
-    if(!strncmp(sl->str, INP_KEY, sizeof INP_KEY - 1)) {
-      s = sl->str + sizeof INP_KEY - 1;
-      key = canon_str(s, strlen(s));
-      key = all_bits(key);
-      continue;
-    }
-
-    if(!strncmp(sl->str, INP_REL, sizeof INP_REL - 1)) {
-      s = sl->str + sizeof INP_REL - 1;
-      rel = canon_str(s, strlen(s));
-      rel = all_bits(rel);
-      continue;
-    }
-  }
-
-  free_str_list(input);
-
-}
-
-
-char *all_bits(char *str)
-{
-  str_list_t *sl, *sl0;
-  char *s = NULL;
-  unsigned u;
-
-  if(!str) return NULL;
-
-  sl = sl0 = hd_split(' ', str);
-  for(; sl; sl = sl->next) {
-    u = strtoul(sl->str, NULL, 16);
-    str_printf(&s, -1, "%08x", u);
-  }
-  free_str_list(sl0);
-  free_mem(str);
-
-  return s;
-}
-
-
-int test_bit(char *str, unsigned bit)
-{
-  size_t len, ofs;
-  unsigned u, mask;
-
-  if(!str) return 0;
-
-  len = strlen(str);
-
-  ofs = bit >> 2;
-  mask = 1 << (bit & 3);
-
-  if(ofs >= len) return 0;
-
-  ofs = len - ofs - 1;
-
-  u = str[ofs] >= 'a' ? str[ofs] - 'a' + 10 : str[ofs] - '0';
-
-  return (u & mask) ? 1 : 0;
-}
-
-
diff --git a/src/hwinfo/src/hd/input.h b/src/hwinfo/src/hd/input.h
deleted file mode 100644 (file)
index 1329c27..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_input(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/int.c b/src/hwinfo/src/hd/int.c
deleted file mode 100644 (file)
index 36d43cc..0000000
+++ /dev/null
@@ -1,1147 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-typedef unsigned long kernel_ulong_t;
-#include <linux/types.h>
-#ifdef __UCLIBC__
-#include <linux/pci.h>
-#else
-#include <sys/pci.h>
-#endif
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "int.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * internal things
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-static void int_hotplug(hd_data_t *hd_data);
-static void int_cdrom(hd_data_t *hd_data);
-#if defined(__i386__) || defined (__x86_64__)
-static int set_bios_id(hd_data_t *hd_data, hd_t *hd_ref, int bios_id);
-static int bios_ctrl_order(hd_data_t *hd_data, unsigned *sctrl, int sctrl_len);
-static void int_bios(hd_data_t *hd_data);
-#endif
-static void int_media_check(hd_data_t *hd_data);
-static int contains_word(char *str, char *str2);
-static int is_zip(hd_t *hd);
-static void int_floppy(hd_data_t *hd_data);
-static void int_fix_usb_scsi(hd_data_t *hd_data);
-static void int_mouse(hd_data_t *hd_data);
-static void new_id(hd_data_t *hd_data, hd_t *hd);
-static void int_modem(hd_data_t *hd_data);
-static void int_wlan(hd_data_t *hd_data);
-static void int_udev(hd_data_t *hd_data);
-static void int_devicenames(hd_data_t *hd_data);
-#if defined(__i386__) || defined (__x86_64__)
-static void int_softraid(hd_data_t *hd_data);
-#endif
-#if defined(__i386__) || defined (__x86_64__)
-static void int_system(hd_data_t *hd_data);
-static void int_legacy_geo(hd_data_t *hd_data);
-#endif
-
-void hd_scan_int(hd_data_t *hd_data)
-{
-  hd_t *hd;
-
-  if(!hd_probe_feature(hd_data, pr_int)) return;
-
-  hd_data->module = mod_int;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(2, 0, "cdrom");
-  int_cdrom(hd_data);
-
-  PROGRESS(3, 0, "media");
-  int_media_check(hd_data);
-
-  PROGRESS(4, 0, "floppy");
-  int_floppy(hd_data);
-
-#if defined(__i386__) || defined (__x86_64__)
-  PROGRESS(5, 0, "bios");
-  int_bios(hd_data);
-#endif
-
-  PROGRESS(6, 0, "mouse");
-  int_mouse(hd_data);
-
-#if defined(__i386__) || defined (__x86_64__)
-  PROGRESS(15, 0, "system info");
-  int_system(hd_data);
-#endif
-
-  PROGRESS(7, 0, "hdb");
-  hd_data->flags.keep_kmods = 1;
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    hddb_add_info(hd_data, hd);
-  }
-  hd_data->flags.keep_kmods = 0;
-
-  PROGRESS(8, 0, "usbscsi");
-  int_fix_usb_scsi(hd_data);
-
-  PROGRESS(9, 0, "hotplug");
-  int_hotplug(hd_data);
-
-  PROGRESS(10, 0, "modem");
-  int_modem(hd_data);
-
-  PROGRESS(11, 0, "wlan");
-  int_wlan(hd_data);
-
-  PROGRESS(12, 0, "udev");
-  int_udev(hd_data);
-
-  PROGRESS(13, 0, "device names");
-  int_devicenames(hd_data);
-
-#if defined(__i386__) || defined (__x86_64__)
-  PROGRESS(14, 0, "soft raid");
-  int_softraid(hd_data);
-
-  PROGRESS(15, 0, "geo");
-  int_legacy_geo(hd_data);
-#endif
-
-}
-
-/*
- * Identify hotpluggable devices.
- */
-void int_hotplug(hd_data_t *hd_data)
-{
-  hd_t *hd;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->bus.id == bus_usb || hd->usb_guid) {
-      hd->hotplug = hp_usb;
-    }
-  }
-}
-
-/*
- * Add more info to CDROM entries.
- */
-void int_cdrom(hd_data_t *hd_data)
-{
-  hd_t *hd;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_storage_device &&
-      hd->sub_class.id == sc_sdev_cdrom &&
-      !hd->prog_if.id
-    ) {
-      if(hd->device.name && strstr(hd->device.name, "DVD")) {
-        hd->prog_if.id = 3;
-      }
-    }
-  }
-}
-
-#if defined(__i386__) || defined (__x86_64__)
-
-int set_bios_id(hd_data_t *hd_data, hd_t *hd_ref, int bios_id)
-{
-  int found = 0;
-  hd_t *hd;
-
-  if(!hd_ref || !hd_ref->unix_dev_name) return 0;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_storage_device &&
-      hd->sub_class.id == sc_sdev_disk &&
-      hd->unix_dev_name &&
-      !strcmp(hd->unix_dev_name, hd_ref->unix_dev_name)
-    ) {
-      str_printf(&hd->rom_id, 0, "0x%02x", bios_id);
-      found = 1;
-    }
-  }
-
-  return found;
-}
-
-
-int bios_ctrl_order(hd_data_t *hd_data, unsigned *sctrl, int sctrl_len)
-{
-  hd_t *hd;
-  bios_info_t *bt;
-  int i, j, k, sctrl2_len = 0;
-  unsigned pci_slot, pci_func;
-  unsigned *sctrl2 = NULL, *sctrl3 = NULL;
-  int order_info = 0;
-
-  for(bt = NULL, hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_internal &&
-      hd->sub_class.id == sc_int_bios &&
-      hd->detail &&
-      hd->detail->type == hd_detail_bios &&
-      (bt = hd->detail->bios.data)
-    ) {
-      break;
-    }
-  }
-
-  if(!bt || !bt->bios32.ok || !bt->bios32.compaq) return 0;
-
-  sctrl2 = new_mem((sizeof bt->bios32.cpq_ctrl / sizeof *bt->bios32.cpq_ctrl) * sizeof *sctrl2);
-
-  for(i = 0; (unsigned) i < sizeof bt->bios32.cpq_ctrl / sizeof *bt->bios32.cpq_ctrl; i++) {
-    if(
-      bt->bios32.cpq_ctrl[i].id &&
-      !(bt->bios32.cpq_ctrl[i].misc & 0x40)    /* bios support ??????? */
-    ) {
-      pci_slot = PCI_SLOT(bt->bios32.cpq_ctrl[i].devfn) + (bt->bios32.cpq_ctrl[i].bus << 8);
-      pci_func = PCI_FUNC(bt->bios32.cpq_ctrl[i].devfn);
-      for(hd = hd_data->hd; hd; hd = hd->next) {
-        if(hd->bus.id == bus_pci && hd->slot == pci_slot && hd->func == pci_func) {
-          sctrl2[sctrl2_len++] = hd->idx;
-          break;
-        }
-      }
-    }
-  }
-
-  if(sctrl2_len) order_info = 1;
-
-  for(i = 0; i < sctrl2_len; i++) {
-    ADD2LOG("  bios ord %d: %d\n", i, sctrl2[i]);
-  }
-
-  /* sort list */
-
-  sctrl3 = new_mem(sctrl_len * sizeof *sctrl3);
-
-  k = 0 ;
-  for(i = 0; i < sctrl2_len; i++) {
-    for(j = 0; j < sctrl_len; j++) {
-      if(sctrl[j] == sctrl2[i]) {
-        sctrl3[k++] = sctrl[j];
-        sctrl[j] = 0;
-        break;
-      }
-    }
-  }
-
-  for(i = 0; i < sctrl_len; i++) {
-    if(sctrl[i] && k < sctrl_len) sctrl3[k++] = sctrl[i];
-  }
-
-  memcpy(sctrl, sctrl3, sctrl_len * sizeof *sctrl);
-
-  free_mem(sctrl2);
-  free_mem(sctrl3);
-
-  return order_info;
-}
-
-
-void int_bios(hd_data_t *hd_data)
-{
-  hd_t *hd, *hd_boot;
-  unsigned *sctrl, *sctrl2;
-  int sctrl_len, i, j;
-  int bios_id, list_sorted;
-
-  /* don't do anything if there is useful edd info */
-  if(hd_data->flags.edd_used) return;
-
-  for(i = 0, hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_storage_device &&
-      hd->sub_class.id == sc_sdev_disk
-    ) {
-      i++;
-    }
-  }
-
-  if(!i) return;
-
-  sctrl = new_mem(i * sizeof *sctrl);
-
-  /* sctrl: list of storage controllers with disks */
-
-  for(sctrl_len = 0, hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_storage_device &&
-      hd->sub_class.id == sc_sdev_disk
-    ) {
-      for(i = 0; i < sctrl_len; i++) {
-        if(sctrl[i] == hd->attached_to) break;
-      }
-      if(i == sctrl_len) sctrl[sctrl_len++] = hd->attached_to;
-    }
-  }
-
-  /* sort list, if possible */
-
-  list_sorted = bios_ctrl_order(hd_data, sctrl, sctrl_len);
-
-  hd_boot = hd_get_device_by_idx(hd_data, hd_boot_disk(hd_data, &i));
-
-  /* if we know the boot device, make this controller the first */
-
-  if(hd_boot && hd_boot->attached_to && i == 1) {
-    for(i = 0; i < sctrl_len; i++) {
-      if(sctrl[i] == hd_boot->attached_to) break;
-    }
-    if(i < sctrl_len) {
-      sctrl2 = new_mem(sctrl_len * sizeof *sctrl2);
-      *sctrl2 = hd_boot->attached_to;
-      for(i = 0, j = 1; i < sctrl_len; i++) {
-        if(sctrl[i] != hd_boot->attached_to) sctrl2[j++] = sctrl[i];
-      }
-      free_mem(sctrl);
-      sctrl = sctrl2;
-    }
-  }
-  else {
-    hd_boot = NULL;
-  }
-
-  if(hd_boot) ADD2LOG("  bios boot dev: %d\n", hd_boot->idx);
-  for(i = 0; i < sctrl_len; i++) {
-    ADD2LOG("  bios ctrl %d: %d\n", i, sctrl[i]);
-  }
-
-  /* remove existing entries */
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_storage_device &&
-      hd->sub_class.id == sc_sdev_disk
-    ) {
-      hd->rom_id = free_mem(hd->rom_id);
-    }
-  }
-
-  if(!list_sorted && !hd_boot && sctrl_len > 1) {
-    /* we have no info at all */
-    sctrl_len = 0;
-  }
-  else if(!list_sorted && hd_boot && sctrl_len > 2) {
-    /* we know which controller has the boot device */
-    sctrl_len = 1;
-  }
-
-  bios_id = 0x80;
-
-  /* rely on it */
-
-  if(hd_boot) {
-    bios_id += set_bios_id(hd_data, hd_boot, bios_id);
-  }
-
-  /* assign all the others */
-
-  for(i = 0; i < sctrl_len; i++) {
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(
-        hd->base_class.id == bc_storage_device &&
-        hd->sub_class.id == sc_sdev_disk &&
-        hd->attached_to == sctrl[i] &&
-        !hd->rom_id
-      ) {
-        bios_id += set_bios_id(hd_data, hd, bios_id);
-      }
-    }
-  }
-
-  free_mem(sctrl);
-}
-
-
-#if 0
-void int_bios(hd_data_t *hd_data)
-{
-  hd_t *hd, *hd_boot;
-  int i, start, bios = 0x80;
-  int ide_1st;
-  char ide_name[] = "/dev/hda";
-  char scsi_name[] = "/dev/sda";
-  char *s;
-
-  hd_boot = hd_get_device_by_idx(hd_data, hd_boot_disk(hd_data, &i));
-
-  if(hd_boot) {
-    free_mem(hd_boot->rom_id);
-    hd_boot->rom_id = new_str("0x80");
-  }
-
-  if(!hd_boot || i != 1) return;
-
-  if(strstr(hd_boot->unix_dev_name, "/dev/sd") == hd_boot->unix_dev_name) {
-    ide_1st = 0;
-    start = hd_boot->unix_dev_name[sizeof "/dev/sd" - 1] - 'a';
-  }
-  else if(strstr(hd_boot->unix_dev_name, "/dev/hd") == hd_boot->unix_dev_name) {
-    ide_1st = 1;
-    start = hd_boot->unix_dev_name[sizeof "/dev/hd" - 1] - 'a';
-  }
-  else {
-    return;
-  }
-
-  if(start < 0) return;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_storage_device &&
-      hd->sub_class.id == sc_sdev_disk
-    ) {
-      hd->rom_id = free_mem(hd->rom_id);
-    }
-  }
-
-  s = ide_1st ? ide_name : scsi_name;
-
-  for(i = start; i < 26; i++) {
-    s[strlen(s) - 1] = 'a' + i;
-    bios += set_bios_id(hd_data, s, bios);
-  }
-
-  for(i = 0; i < start; i++) {
-    s[strlen(s) - 1] = 'a' + i;
-    bios += set_bios_id(hd_data, s, bios);
-  }
-
-  s = ide_1st ? scsi_name : ide_name;
-
-  for(i = 0; i < 26; i++) {
-    s[strlen(s) - 1] = 'a' + i;
-    bios += set_bios_id(hd_data, s, bios);
-  }
-}
-#endif /* 0 */
-#endif /* defined(__i386__) || defined (__x86_64__) */
-
-/*
- * Try to read block 0 for block devices.
- */
-void int_media_check(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  int i, j = 0;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(!hd_report_this(hd_data, hd)) continue;
-    if(
-      hd->base_class.id == bc_storage_device &&
-      (
-        /* hd->sub_class.id == sc_sdev_cdrom || */ /* cf. cdrom.c */
-        hd->sub_class.id == sc_sdev_disk ||
-        hd->sub_class.id == sc_sdev_floppy
-      ) &&
-      hd->unix_dev_name &&
-      !hd->block0 &&
-      !hd->is.notready &&
-      hd->status.available != status_no
-    ) {
-      i = 5;
-      PROGRESS(4, ++j, hd->unix_dev_name);
-      hd->block0 = read_block0(hd_data, hd->unix_dev_name, &i);
-      hd->is.notready = hd->block0 ? 0 : 1;
-    }
-  }
-}
-
-
-/*
- * Check if str has str2 in it.
- */
-int contains_word(char *str, char *str2)
-{
-  int i, len, len2, found = 0;
-  char *s;
-
-  if(!str2 || !*str2 || !str || !*str) return 0;
-
-  str = new_str(str);
-
-  len = strlen(str);
-  len2 = strlen(str2);
-
-  for(i = 0; i < len; i++) {
-    if(str[i] >= 'a' && str[i] <= 'z') str[i] -= 'a' - 'A';
-  }
-
-  for(s = str; (s = strstr(s, str2)); s++) {
-    if(
-      (s == str || s[-1] < 'A' || s[-1] > 'Z') &&
-      (s[len2] < 'A' || s[len2] > 'Z')
-    ) {
-      found = 1;
-      break;
-    }
-  }
-
-  free_mem(str);
-
-  return found;
-}
-
-
-/*
- * Check for zip drive.
- */
-int is_zip(hd_t *hd)
-{
-  if(
-    hd->base_class.id == bc_storage_device &&
-    (
-      hd->sub_class.id == sc_sdev_disk ||
-      hd->sub_class.id == sc_sdev_floppy
-    )
-  ) {
-    if(
-      (
-        contains_word(hd->vendor.name, "IOMEGA") ||
-        contains_word(hd->sub_vendor.name, "IOMEGA") ||
-        contains_word(hd->device.name, "IOMEGA") ||
-        contains_word(hd->sub_device.name, "IOMEGA")
-      ) && (
-        contains_word(hd->device.name, "ZIP") ||
-        contains_word(hd->sub_device.name, "ZIP")
-      )
-    ) {
-      return 1;
-    }
-  }
-
-  return 0;
-}
-
-
-/*
- * Turn some drives into floppies.
- */
-void int_floppy(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  hd_res_t *res;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(is_zip(hd)) hd->is.zip = 1;
-    if(
-      hd->base_class.id == bc_storage_device &&
-      hd->sub_class.id == sc_sdev_disk
-    ) {
-      if(hd->is.zip) {
-        hd->sub_class.id = sc_sdev_floppy;
-        new_id(hd_data, hd);
-      }
-      else {
-        /* make everything a floppy that is 1440k */
-        for(res = hd->res; res; res = res->next) {
-          if(
-            res->any.type == res_size &&
-            res->size.unit == size_unit_sectors &&
-            res->size.val1 == 2880 &&
-            res->size.val2 == 512
-          ) {
-            hd->sub_class.id = sc_sdev_floppy;
-            new_id(hd_data, hd);
-            break;
-          }
-        }
-      }
-    }
-  }
-}
-
-
-#define COPY_ENTRY(a) if(hd_scsi->a) { free_mem(hd_usb->a); hd_usb->a = new_str(hd_scsi->a); }
-/*
- * Remove usb entries that are handled by usb-storage.
- */
-void int_fix_usb_scsi(hd_data_t *hd_data)
-{
-  hd_t *hd_scsi, *hd_usb;
-
-  for(hd_usb = hd_data->hd; hd_usb; hd_usb= hd_usb->next) {
-    if(
-      hd_usb->bus.id == bus_usb &&
-      hd_usb->sysfs_id &&
-      search_str_list(hd_usb->drivers, "usb-storage")
-    ) {
-      for(hd_scsi = hd_data->hd; hd_scsi; hd_scsi = hd_scsi->next) {
-        if(
-          hd_scsi->bus.id == bus_scsi &&
-          hd_scsi->sysfs_device_link &&
-          search_str_list(hd_scsi->drivers, "usb-storage")
-        ) {
-          if(!strncmp(hd_scsi->sysfs_device_link, hd_usb->sysfs_id, strlen(hd_usb->sysfs_id))) {
-            hd_set_hw_class(hd_scsi, hw_usb);
-
-            free_mem(hd_scsi->unique_id);
-            hd_scsi->unique_id = hd_usb->unique_id;
-            hd_usb->unique_id = NULL;
-
-            add_res_entry(&hd_scsi->res, hd_usb->res);
-            hd_usb->res = NULL;
-
-            new_id(hd_data, hd_scsi);
-
-            hd_usb->tag.remove = 1;
-          }
-        }
-      }
-    }
-
-  }
-
-
-
-#if 0
-  for(hd_scsi = hd_data->hd; hd_scsi; hd_scsi = hd_scsi->next) {
-    if(
-      hd_scsi->bus.id == bus_scsi &&
-      hd_scsi->usb_guid &&
-      search_str_list(hd_scsi->drivers, "usb-storage")
-    ) {
-      for(hd_usb = hd_data->hd; hd_usb ; hd_usb = hd_usb->next) {
-        if(
-          hd_usb->bus.id == bus_usb &&
-          hd_usb->usb_guid &&
-          !hd_usb->tag.remove &&
-          !strcmp(hd_usb->usb_guid, hd_scsi->usb_guid) &&
-          hd_usb->detail &&
-          hd_usb->detail->type == hd_detail_usb &&
-          (usb = hd_usb->detail->usb.data) &&
-          usb->driver &&
-          !strcmp(usb->driver, "usb-storage")
-        ) {
-          hd_scsi->tag.remove = 1;
-
-          /* join usb & scsi info */
-          hd_usb->bus.id = hd_scsi->bus.id;
-          COPY_ENTRY(bus.name);
-          hd_usb->base_class.id = hd_scsi->base_class.id;
-          COPY_ENTRY(base_class.name);
-          hd_usb->sub_class.id = hd_scsi->sub_class.id;
-          COPY_ENTRY(sub_class.name);
-          hd_usb->prog_if.id = hd_scsi->prog_if.id;
-          COPY_ENTRY(prog_if.name);
-          COPY_ENTRY(unix_dev_name);
-          COPY_ENTRY(model);
-          // ###### FIXME?: COPY_ENTRY(driver)
-
-          hd_usb->vendor.id = hd_scsi->vendor.id;
-          COPY_ENTRY(vendor.name);
-          hd_usb->device.id = hd_scsi->device.id;
-          COPY_ENTRY(device.name);
-          hd_usb->sub_vendor.name = free_mem(hd_usb->sub_vendor.name);
-          COPY_ENTRY(sub_vendor.name);
-          hd_usb->sub_device.name = free_mem(hd_usb->sub_device.name);
-          COPY_ENTRY(sub_device.name);
-          COPY_ENTRY(revision.name);
-          COPY_ENTRY(serial);
-
-          hd_usb->is.notready = hd_scsi->is.notready;
-          if(hd_usb->block0) free_mem(hd_usb->block0);
-          hd_usb->block0 = hd_scsi->block0;
-          hd_scsi->block0 = NULL;
-          add_res_entry(&hd_usb->res, hd_scsi->res);
-          hd_scsi->res = NULL;
-
-          new_id(hd_data, hd_usb);
-        }
-      }
-    }
-  }
-#endif
-
-
-
-  remove_tagged_hd_entries(hd_data);
-}
-#undef COPY_ENTRY
-
-
-/*
- * Improve mouse info.
- */
-void int_mouse(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  bios_info_t *bt = NULL;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->detail &&
-      hd->detail->type == hd_detail_bios &&
-      (bt = hd->detail->bios.data) &&
-      bt->mouse.type
-    ) break;
-  }
-
-  if(!bt) return;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_mouse &&
-      hd->sub_class.id == sc_mou_ps2 &&
-      hd->bus.id == bt->mouse.bus &&
-      hd->vendor.id == MAKE_ID(TAG_SPECIAL, 0x0200) &&
-      hd->device.id == MAKE_ID(TAG_SPECIAL, 0x0002)
-    ) {
-      hd->vendor.name = free_mem(hd->vendor.name);
-      hd->device.name = free_mem(hd->device.name);
-      hd->vendor.id = hd->device.id = 0;
-#if 0
-      hd->vendor.id = bt->mouse.compat_vend;
-      hd->device.id = bt->mouse.compat_dev;
-#else
-      hd->vendor.name = new_str(bt->mouse.vendor);
-      hd->device.name = new_str(bt->mouse.type);
-      hd->compat_vendor.id = bt->mouse.compat_vend;
-      hd->compat_device.id = bt->mouse.compat_dev;
-#endif
-      new_id(hd_data, hd);
-    }
-  }
-}
-
-
-void new_id(hd_data_t *hd_data, hd_t *hd)
-{
-#if 0
-  hd->unique_id = free_mem(hd->unique_id);
-  hd->unique_id1 = free_mem(hd->unique_id1);
-  hd->old_unique_id = free_mem(hd->old_unique_id);
-  hd_add_id(hd_data, hd);
-#endif
-}
-
-/*
- * Assign device names to (win-)modems.
- */
-void int_modem(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  char *s;
-  hd_dev_num_t dev_num = { type: 'c', range: 1 };
-  unsigned cnt4 = 0;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_modem
-    ) {
-      s = NULL;
-      switch(hd->sub_class.id) {
-        case sc_mod_win1:
-          s = new_str("/dev/ham");
-          dev_num.major = 240;
-          dev_num.minor = 1;
-          break;
-        case sc_mod_win2:
-          s = new_str("/dev/536ep0");
-          dev_num.major = 240;
-          dev_num.minor = 1;
-          break;
-        case sc_mod_win3:
-          s = new_str("/dev/ttyLT0");
-          dev_num.major = 62;
-          dev_num.minor = 64;
-          break;
-        case sc_mod_win4:
-          if(cnt4 < 4) {
-            str_printf(&s, 0, "/dev/ttySL%u", cnt4);
-            dev_num.major = 212;
-            dev_num.minor = cnt4++;
-          }
-          break;
-      }
-      if(s) {
-        free_mem(hd->unix_dev_name);
-        hd->unix_dev_name = s;
-        s = NULL;
-        hd->unix_dev_num = dev_num;
-      }
-    }
-  }
-}
-
-
-/*
- * Look for WLAN cards by checking module info.
- */
-void int_wlan(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  driver_info_t *di;
-  str_list_t *sl;
-  unsigned u, found;
-  static char *wlan_mods[] = {
-    "acx_pci",
-    "airo",
-    "airo_cs",
-    "aironet4500_card",
-    "aironet4500_cs",
-    "airport",
-    "adm8211",
-    "arlan",
-    "at76c503",
-    "at76c503-i3861",
-    "at76c503-i3863",
-    "at76c503-rfmd",
-    "at76c503-rfmd-acc",
-    "at76c505-rfmd",
-    "at76c505-rfmd2958",
-    "ath_hal",
-    "ath_pci",
-    "atmel",
-    "atmel_cs",
-    "atmel_pci",
-    "hermes",
-    "hostap",
-    "hostap_pci",
-    "hostap_plx",
-    "ipw2100",
-    "ipw2200",
-    "netwave_cs",
-    "orinoco_cs",
-    "orinoco_pci",
-    "orinoco_plx",
-    "p80211",
-    "prism2_cs",
-    "prism2_pci",
-    "prism2_plx",
-    "prism2_usb",
-    "prism54",
-    "ray_cs",
-    "rt2400",
-    "rt2500",
-    "usbdfu",
-    "wavelan",
-    "wavelan_cs",
-    "wl3501_cs"
-  };
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    for(found = 0, di = hd->driver_info; di && !found; di = di->next) {
-      if(di->any.type == di_module) {
-        for(sl = di->module.names; sl && !found; sl = sl->next) {
-          for(u = 0; u < sizeof wlan_mods / sizeof *wlan_mods; u++) {
-            if(!strcmp(sl->str, wlan_mods[u])) {
-              found = 1;
-              break;
-            }
-          }
-        }
-      }
-    }
-    if(found) {
-      hd->is.wlan = 1;
-      hd->base_class.id = bc_network;
-      hd->sub_class.id = 0x82;                 /* wlan */
-      hddb_add_info(hd_data, hd);
-    }
-  }
-}
-
-
-/*
- * Add udev info.
- */
-void int_udev(hd_data_t *hd_data)
-{
-  hd_udevinfo_t *ui;
-  hd_t *hd;
-  char *s = NULL;
-  str_list_t *sl;
-
-  if(!hd_data->udevinfo) read_udevinfo(hd_data);
-
-  if(!hd_data->udevinfo) return;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(!hd->sysfs_id) continue;
-
-    for(ui = hd_data->udevinfo; ui; ui = ui->next) {
-      if(ui->name && !strcmp(ui->sysfs, hd->sysfs_id)) {
-        hd->unix_dev_names = free_str_list(hd->unix_dev_names);
-        hd->unix_dev_name = free_mem(hd->unix_dev_name);
-        str_printf(&s, 0, "%s%s", ui->type == 'n' ? "" : "/dev/", ui->name);
-        add_str_list(&hd->unix_dev_names, s);
-        for(sl = ui->links; sl; sl = sl->next) {
-          str_printf(&s, 0, "%s%s", ui->type == 'n' ? "" : "/dev/", sl->str);
-          add_str_list(&hd->unix_dev_names, s);
-        }
-        s = free_mem(s);
-
-        sl = hd->unix_dev_names;
-
-        if(hd_data->flags.udev) {
-          /* use first link as canonical device name */
-          if(ui->links) sl = sl->next;
-        }
-
-        hd->unix_dev_name = new_str(sl->str);
-
-        break;
-      }
-    }
-  }
-}
-
-
-/*
- * If hd->unix_dev_name is not in hd->unix_dev_names, add it.
- */
-void int_devicenames(hd_data_t *hd_data)
-{
-  hd_t *hd;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->unix_dev_name &&
-      !search_str_list(hd->unix_dev_names, hd->unix_dev_name)
-    ) {
-      add_str_list(&hd->unix_dev_names, hd->unix_dev_name);
-    }
-  }
-}
-
-
-#if defined(__i386__) || defined (__x86_64__)
-/*
- * Tag ide soft raid disks.
- */
-void int_softraid(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  str_list_t *raid, *sl, *raid_sysfs = NULL, *sl1;
-  size_t len;
-  char *s;
-
-  if(hd_data->flags.fast) return;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_storage_device &&
-      hd->status.available != status_no
-    ) break;
-  }
-
-  /* no disks -> no check necessary */
-  if(!hd) return;
-  
-  raid = read_file("| /sbin/dmraid -rc 2>/dev/null", 0, 0);
-
-  for(sl = raid; sl; sl = sl->next) {
-    s = *sl->str ? strchr(sl->str + 1, '/') : NULL;
-    if(s) {
-      sl1 = add_str_list(&raid_sysfs, NULL);
-      str_printf(&sl1->str, 0, "/block%s", s);
-      len = strlen(sl1->str);
-      if(len) sl1->str[len - 1] = 0;
-    }
-  }
-
-  free_str_list(raid);
-
-  ADD2LOG("----- soft raid devices -----\n");
-  for(sl = raid_sysfs; sl; sl = sl->next) {
-    ADD2LOG("  %s\n", sl->str);
-  }
-  ADD2LOG("----- soft raid devices end -----\n");
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(search_str_list(raid_sysfs, hd->sysfs_id)) {
-      hd->is.softraiddisk = 1;
-    }
-  }
-
-  free_str_list(raid_sysfs);
-
-}
-
-
-/*
- *
- */
-void int_system(hd_data_t *hd_data)
-{
-  hd_t *hd_sys;
-  hd_smbios_t *sm;
-  struct {
-    unsigned notebook:1;
-    unsigned acpi_mods:1;      /*  *** evil hack *** */
-    enum { v_none = 0, v_ibm = 1, v_toshiba, v_sony } vendor;
-  } is = { };
-  char *s;
-
-  for(hd_sys = hd_data->hd; hd_sys; hd_sys = hd_sys->next) {
-    if(
-      hd_sys->base_class.id == bc_internal &&
-      hd_sys->sub_class.id == sc_int_sys
-    ) break;
-  }
-
-  if(!hd_sys) return;
-
-  if(
-    hd_sys->vendor.name &&
-    !strncasecmp(hd_sys->vendor.name, "sony", sizeof "sony" - 1)
-  ) {
-    is.vendor = v_sony;
-  }
-
-  if(
-    hd_sys->device.name &&
-    !strncmp(hd_sys->device.name, "PCG-", sizeof "PCG-" - 1)
-  ) {
-    is.notebook = 1;
-  }
-
-  for(sm = hd_data->smbios; sm; sm = sm->next) {
-    if(
-      sm->any.type == sm_sysinfo &&
-      sm->sysinfo.manuf &&
-      sm->sysinfo.product &&
-      !strcasecmp(sm->sysinfo.manuf, "Hewlett-Packard") &&
-      !strcasecmp(sm->sysinfo.product, "HP Compaq nc6220")
-    ) {
-      is.acpi_mods = 1;
-    }
-
-    if(
-      sm->any.type == sm_sysinfo &&
-      sm->sysinfo.manuf &&
-      !strcasecmp(sm->sysinfo.manuf, "ibm")
-    ) {
-      is.vendor = v_ibm;
-    }
-
-    if(
-      sm->any.type == sm_sysinfo &&
-      sm->sysinfo.manuf &&
-      !strcasecmp(sm->sysinfo.manuf, "toshiba")
-    ) {
-      is.vendor = v_toshiba;
-
-      if(!hd_sys->device.name && !hd_sys->device.id && sm->sysinfo.product) {
-        hd_sys->device.name = new_str(sm->sysinfo.product);
-      }
-      if(!hd_sys->vendor.name && !hd_sys->vendor.id) {
-        hd_sys->vendor.name = new_str("Toshiba");
-      }
-    }
-
-    if(
-      sm->any.type == sm_sysinfo &&
-      sm->sysinfo.manuf &&
-      !strncasecmp(sm->sysinfo.manuf, "sony", sizeof "sony" - 1)
-    ) {
-      is.vendor = v_sony;
-
-      if(!hd_sys->device.name && !hd_sys->device.id && sm->sysinfo.product) {
-        hd_sys->device.name = new_str(sm->sysinfo.product);
-        if(
-          (s = strchr(hd_sys->device.name, '(')) &&
-          hd_sys->device.name[strlen(hd_sys->device.name) - 1] == ')'
-        ) {
-          *s = 0;
-        }
-      }
-      if(!hd_sys->vendor.name && !hd_sys->vendor.id) {
-        hd_sys->vendor.name = new_str("Sony");
-      }
-    }
-
-    if(
-      sm->any.type == sm_chassis &&
-      (
-        (sm->chassis.ch_type.id >= 8 && sm->chassis.ch_type.id <= 11) ||
-        sm->chassis.ch_type.id == 14
-      )
-    ) {
-      is.notebook = 1;
-    }
-  }
-
-  ADD2LOG(
-    "  system type:%s%s\n",
-    is.vendor == v_ibm ? " ibm" :
-      is.vendor == v_toshiba ? " toshiba" :
-      is.vendor == v_sony ? " sony" :
-      "",
-    is.notebook ? " notebook" : ""
-  );
-
-  if(is.notebook && is.vendor) {
-    hd_sys->compat_vendor.id = MAKE_ID(TAG_SPECIAL, 0xf001);
-    hd_sys->compat_device.id = MAKE_ID(TAG_SPECIAL, is.vendor);
-  }
-  else if(is.acpi_mods) {
-    hd_sys->compat_vendor.id = MAKE_ID(TAG_SPECIAL, 0xf001);
-    hd_sys->compat_device.id = MAKE_ID(TAG_SPECIAL, 4);
-  }
-}
-
-
-void int_legacy_geo(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  hd_res_t *res;
-  int id;
-  char *s;
-  edd_info_t *ei;
-
-  if(!hd_data->edd) return;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_storage_device &&
-      hd->sub_class.id == sc_sdev_disk &&
-      hd->rom_id
-    ) {
-      id = strtol(hd->rom_id, &s, 0) - 0x80;
-      if(*s || id < 0 || id >= sizeof hd_data->edd / sizeof *hd_data->edd) continue;
-
-      ei = hd_data->edd + id;
-
-      if(ei->edd.cyls) {
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->disk_geo.type = res_disk_geo;
-        res->disk_geo.cyls = ei->edd.cyls;
-        res->disk_geo.heads = ei->edd.heads;
-        res->disk_geo.sectors = ei->edd.sectors;
-        res->disk_geo.size = ei->sectors;
-        res->disk_geo.geotype = geo_bios_edd;
-      }
-
-      if(ei->legacy.cyls) {
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->disk_geo.type = res_disk_geo;
-        res->disk_geo.cyls = ei->legacy.cyls;
-        res->disk_geo.heads = ei->legacy.heads;
-        res->disk_geo.sectors = ei->legacy.sectors;
-        res->disk_geo.geotype = geo_bios_legacy;
-      }
-
-    }
-  }
-
-
-}
-
-#endif
-
-
diff --git a/src/hwinfo/src/hd/int.h b/src/hwinfo/src/hd/int.h
deleted file mode 100644 (file)
index 5ef4825..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_int(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/isa.c b/src/hwinfo/src/hd/isa.c
deleted file mode 100644 (file)
index 3b5d6d0..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "isa.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * isa cards
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#if defined(__i386__)
-
-static void scan_isa_isdn(hd_data_t *hd_data);
-static isa_isdn_t *free_isa_isdn(isa_isdn_t *ii);
-
-static void dump_isa_isdn_data(hd_data_t *hd_data, isa_isdn_t *ii);
-
-void hd_scan_isa(hd_data_t *hd_data)
-{
-  if(!hd_probe_feature(hd_data, pr_isa)) return;
-
-  hd_data->module = mod_isa;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-  // hd_data->isa = NULL;
-
-  if(hd_probe_feature(hd_data, pr_isa_isdn)) {
-    scan_isa_isdn(hd_data);
-  }
-
-}
-
-void scan_isa_isdn(hd_data_t *hd_data)
-{
-  isa_isdn_t *ii0, *ii;
-  hd_t *hd;
-  hd_res_t *res;
-
-  PROGRESS(1, 0, "isdn");
-
-  ii0 = isdn_detect();
-
-  dump_isa_isdn_data(hd_data, ii0);
-
-  PROGRESS(1, 1, "isdn");
-
-  for(ii = ii0; ii; ii = ii->next) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->bus.id = bus_isa;
-    hd->base_class.id = bc_isdn;
-    hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x3000 + ii->type);
-    hd->device.id = MAKE_ID(TAG_SPECIAL, ((ii->type << 8) + (ii->subtype & 0xff)) & 0xffff);
-
-    if(ii->has_io) {
-      res = add_res_entry(&hd->res, new_mem(sizeof *res));
-      res->io.type = res_io;
-      res->io.enabled = 1;
-      res->io.base = ii->io;
-      res->io.access = acc_rw;
-    }
-
-    if(ii->has_irq) {
-      res = add_res_entry(&hd->res, new_mem(sizeof *res));
-      res->irq.type = res_irq;
-      res->irq.enabled = 1;
-      res->irq.base = ii->irq;
-    }
-
-    // #### ask libihw? -> isdn.c
-
-  }
-
-  free_isa_isdn(ii0);
-}
-
-isa_isdn_t *new_isa_isdn(isa_isdn_t **ii)
-{
-  while(*ii) ii = &(*ii)->next;
-
-  return *ii = new_mem(sizeof **ii);
-}
-
-isa_isdn_t *free_isa_isdn(isa_isdn_t *ii)
-{
-  isa_isdn_t *l;
-
-  for(; ii; ii = (l = ii)->next, free_mem(l));
-
-  return NULL;
-}
-
-void dump_isa_isdn_data(hd_data_t *hd_data, isa_isdn_t *ii)
-{
-  ADD2LOG("---------- ISA ISDN raw data ----------\n");
-
-  for(; ii; ii = ii->next) {
-    ADD2LOG("  type %d, subtype %d", ii->type, ii->subtype);
-    if(ii->has_mem) ADD2LOG(", mem 0x%04x", ii->mem);
-    if(ii->has_io) ADD2LOG(", io 0x%04x", ii->io);
-    if(ii->has_irq) ADD2LOG(", irq %d", ii->irq);
-    ADD2LOG("\n");
-  }
-
-  ADD2LOG("---------- ISA ISDN raw data end ----------\n");
-}
-
-
-#endif /* defined(__i386__) */
-
diff --git a/src/hwinfo/src/hd/isa.h b/src/hwinfo/src/hd/isa.h
deleted file mode 100644 (file)
index cda4c3c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-
-typedef struct isa_isdn_s {
-  struct isa_isdn_s *next;
-  unsigned has_mem:1, has_io:1, has_irq:1;
-  unsigned type, subtype, mem, io, irq;
-} isa_isdn_t;
-
-isa_isdn_t *new_isa_isdn(isa_isdn_t **ii);
-
-void hd_scan_isa(hd_data_t *hd_data);
-
-isa_isdn_t *isdn_detect(void);
diff --git a/src/hwinfo/src/hd/isapnp.c b/src/hwinfo/src/hd/isapnp.c
deleted file mode 100644 (file)
index 28fbdde..0000000
+++ /dev/null
@@ -1,438 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "hddb.h"
-#include "isapnp.h"
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * isapnp stuff
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#if defined(__i386__) || defined(__alpha__)
-
-static void get_pnp_devs(hd_data_t *hd_data);
-
-#if 0
-static void get_read_port(hd_data_t *hd_data, isapnp_t *);
-static void build_list(hd_data_t *hd_data, str_list_t *isapnp_list);
-#endif
-
-void hd_scan_isapnp(hd_data_t *hd_data)
-{
-#if 0
-  hd_t *hd;
-  hd_res_t *res;
-  int isapnp_ok;
-  str_list_t *isapnp_list = NULL, *sl;
-#endif
-  
-  if(!hd_probe_feature(hd_data, pr_isapnp)) return;
-
-  hd_data->module = mod_isapnp;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "pnp devices");
-
-  get_pnp_devs(hd_data);
-
-#if 0
-  PROGRESS(1, 0, "read port");
-
-  if(!hd_data->isapnp) {
-    hd_data->isapnp = new_mem(sizeof *hd_data->isapnp);
-  }
-  else {
-    hd_data->isapnp->cards = 0;
-    /* just in case... */
-    hd_data->isapnp->card = free_mem(hd_data->isapnp->card);
-    /* keep the port */
-  }
-
-  if(!hd_data->isapnp->read_port) get_read_port(hd_data, hd_data->isapnp);
-
-  PROGRESS(3, 0, "get pnp data");
-
-  isapnp_list = read_file(PROC_ISAPNP, 0, 0);
-
-  if((hd_data->debug & HD_DEB_ISAPNP)) {
-    ADD2LOG("----- %s -----\n", PROC_ISAPNP);
-    for(sl = isapnp_list; sl; sl = sl->next) {
-      ADD2LOG("  %s", sl->str);
-    }
-    ADD2LOG("----- %s end -----\n", PROC_ISAPNP);
-  }
-
-  isapnp_ok = isapnp_list && hd_data->isapnp->read_port ? 1 : 1;
-
-  PROGRESS(4, 0, "build list");
-
-  if(isapnp_ok) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->bus.id = bus_isa;
-    hd->base_class.id = bc_internal;
-    hd->sub_class.id = sc_int_isapnp_if;
-
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->io.type = res_io;
-    res->io.enabled = 1;
-    res->io.base = ISAPNP_ADDR_PORT;
-    res->io.range = 1;
-    res->io.access = acc_wo;
-
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->io.type = res_io;
-    res->io.enabled = 1;
-    res->io.base = ISAPNP_DATA_PORT;
-    res->io.range = 1;
-    res->io.access = acc_wo;
-
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->io.type = res_io;
-    res->io.enabled = 1;
-    res->io.base = hd_data->isapnp->read_port;
-    res->io.range = 1;
-    res->io.access = acc_ro;
-  }
-
-  build_list(hd_data, isapnp_list);
-
-  free_str_list(isapnp_list);
-#endif
-
-}
-
-
-void get_pnp_devs(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  char *s, *t, buf[4];
-  unsigned u1, u2, u3;
-
-  struct sysfs_bus *sf_bus;
-  struct dlist *sf_dev_list;
-  struct sysfs_device *sf_dev;
-  struct sysfs_device *sf_dev_2;
-
-  sf_bus = sysfs_open_bus("pnp");
-
-  if(!sf_bus) {
-    ADD2LOG("sysfs: no such bus: pnp\n");
-    return;
-  }
-
-  sf_dev_list = sysfs_get_bus_devices(sf_bus);
-
-
-  if(sf_dev_list) dlist_for_each_data(sf_dev_list, sf_dev, struct sysfs_device) {
-    ADD2LOG(
-      "  pnp device: name = %s, bus_id = %s, bus = %s\n    path = %s\n",
-      sf_dev->name,
-      sf_dev->bus_id,
-      sf_dev->bus,
-      hd_sysfs_id(sf_dev->path)
-    );
-
-    if((s = hd_attr_str(sysfs_get_device_attr(sf_dev, "id")))) {
-      if(sscanf(s, "%3s%4x", buf, &u1) == 2 && (u2 = name2eisa_id(buf))) {
-        ADD2LOG("    id = %s %04x\n", eisa_vendor_str(u2), u1);
-
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-
-        hd->sysfs_id = new_str(hd_sysfs_id(sf_dev->path));
-        hd->sysfs_bus_id = new_str(sf_dev->bus_id);
-
-        hd->bus.id = bus_isa;
-        hd->is.isapnp = 1;
-
-        hd->sub_vendor.id = u2;
-        hd->sub_device.id = MAKE_ID(TAG_EISA, u1);
-
-        if(sscanf(hd->sysfs_bus_id, "%2x:%2x.%2x", &u1, &u2, &u3) == 3) {
-          hd->slot = u2;
-          hd->func = u3;
-        }
-
-        s = new_str(sf_dev->path);
-        if((t = strrchr(s, '/'))) *t = 0;
-
-        sf_dev_2 = sysfs_open_device_path(s);
-        if(sf_dev_2) {
-          if((t = hd_attr_str(sysfs_get_device_attr(sf_dev_2, "card_id")))) {
-            if(sscanf(t, "%3s%4x", buf, &u1) == 2 && (u2 = name2eisa_id(buf))) {
-              ADD2LOG("    card id = %s %04x\n", eisa_vendor_str(u2), u1);
-
-              hd->vendor.id = u2;
-              hd->device.id = MAKE_ID(TAG_EISA, u1);
-            }
-          }
-          if((t = hd_attr_str(sysfs_get_device_attr(sf_dev_2, "name")))) {
-             hd->device.name = canon_str(t, strlen(t));
-             if(!strcasecmp(hd->device.name, "unknown")) {
-               hd->device.name = free_mem(hd->device.name);
-             }
-          }
-
-          sysfs_close_device(sf_dev_2);
-        }
-
-
-        free_mem(s);
-
-
-        if(hd->sub_vendor.id == hd->vendor.id && hd->sub_device.id == hd->device.id) {
-          hd->sub_vendor.id = hd->sub_device.id = 0;
-        }
-
-      }
-    }
-
-  }
-
-
-  sysfs_close_bus(sf_bus);
-
-}
-
-
-#if 0
-unsigned char *add_isapnp_card_res(isapnp_card_t *ic, int len, int type)
-{
-  ic->res = add_mem(ic->res, sizeof *ic->res, ic->res_len);
-
-  ic->res[ic->res_len].len = len;
-  ic->res[ic->res_len].type = type;
-  ic->res[ic->res_len].data = new_mem(len);
-
-  if(type == RES_LOG_DEV_ID) { /* logical device id */
-    ic->log_devs++;
-  }
-
-  return ic->res[ic->res_len++].data;
-}
-
-
-isapnp_card_t *add_isapnp_card(isapnp_t *ip, int csn)
-{
-  isapnp_card_t *c;
-
-  ip->card = add_mem(ip->card, sizeof *ip->card, ip->cards);
-  c = ip->card + ip->cards++;
-
-  c->csn = csn;
-  c->serial = new_mem(sizeof *c->serial * 8);
-  c->card_regs = new_mem(sizeof *c->card_regs * 0x30);
-
-  return c;
-}
-
-
-void get_read_port(hd_data_t *hd_data, isapnp_t *p)
-{
-  hd_res_t *res;
-
-  p->read_port = 0;
-
-  res = NULL;
-  gather_resources(hd_data->misc, &res, "ISAPnP", W_IO);
-  if(res && res->any.type == res_io) p->read_port = res->io.base;
-  free_res_list(res);
-}
-
-
-void build_list(hd_data_t *hd_data, str_list_t *isapnp_list)
-{
-  hd_t *hd = NULL;
-  str_list_t *sl;
-  char s1[4], s2[100];
-  int card, ldev, cdev_id, ldev_active = 0;
-  char *dev_name = NULL, *ldev_name = NULL;
-  unsigned dev_id = 0, vend_id = 0, base_class = 0, sub_class = 0, ldev_id;
-  unsigned u, ux[5];
-  int i, j;
-  hd_res_t *res;
-
-  for(sl = isapnp_list; sl; sl = sl->next) {
-
-    if(sscanf(sl->str, "Card %d '%3s%4x:%99[^']", &card, s1, &dev_id, s2) == 4) {
-//      ADD2LOG("\n\n** card %d >%s< %04x >%s<**\n", card, s1, dev_id, s2);
-
-      dev_name = free_mem(dev_name);
-      if(strcmp(s2, "Unknown")) dev_name = new_str(s2);
-
-      dev_id = MAKE_ID(TAG_EISA, dev_id);
-      vend_id = name2eisa_id(s1);
-
-      base_class  = sub_class = 0;
-      if((u = device_class(hd_data, vend_id, dev_id))) {
-        base_class = u >> 8;
-        sub_class = u & 0xff;
-      }
-      
-#if 0
-// ########## FIXME
-      if(
-        (ID_VALUE(vend_id) || ID_VALUE(dev_id)) &&
-        !((db_name = hd_device_name(hd_data, vend_id, dev_id)) && *db_name)
-      ) {
-        if(dev_name) {
-          add_device_name(hd_data, vend_id, dev_id, dev_name);
-        }
-      }
-#endif
-
-      continue;
-    }
-
-    if(sscanf(sl->str, " Logical device %d '%3s%4x:%99[^']", &ldev, s1, &ldev_id, s2) == 4) {
-//      ADD2LOG("\n\n** ldev %d >%s< %04x >%s<**\n", ldev, s1, ldev_id, s2);
-
-      ldev_name = free_mem(ldev_name);
-      if(strcmp(s2, "Unknown")) ldev_name = new_str(s2);
-
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-
-      hd->bus.id = bus_isa;
-      hd->is.isapnp = 1;
-      hd->slot = card;
-      hd->func = ldev;
-
-      hd->vendor.id = vend_id;
-      hd->device.id = dev_id;
-
-      hd->base_class.id = base_class;
-      hd->sub_class.id = sub_class;
-
-      hd->sub_device.id = MAKE_ID(TAG_EISA, ldev_id);
-      hd->sub_vendor.id = name2eisa_id(s1);
-
-      if(hd->sub_vendor.id == hd->vendor.id && hd->sub_device.id == hd->device.id) {
-        hd->sub_vendor.id = hd->sub_device.id = 0;
-      }
-
-      if((u = sub_device_class(hd_data, hd->vendor.id, hd->device.id, hd->sub_vendor.id, hd->sub_device.id))) {
-        hd->base_class.id = u >> 8;
-        hd->sub_class.id = u & 0xff;
-      }
-
-#if 0
-# ############# FIXME
-      if(
-        (ID_VALUE(hd->sub_vendor.id) || ID_VALUE(hd->sub_device.id)) &&
-        !hd_sub_device_name(hd_data, hd->vend, hd->dev, hd->sub_vend, hd->sub_device.id)
-      ) {
-        if(ldev_name) {
-          add_sub_device_name(hd_data, hd->vend, hd->dev, hd->sub_vend, hd->sub_device.id, ldev_name);
-        }
-      }
-#endif
-
-      continue;
-    }
-
-    if(strstr(sl->str, "Device is not active")) {
-      ldev_active = 0;
-      continue;
-    }
-
-    if(strstr(sl->str, "Device is active")) {
-      ldev_active = 1;
-      continue;
-    }
-
-    if(hd && sscanf(sl->str, " Compatible device %3s%4x", s1, &cdev_id) == 2) {
-//      ADD2LOG("\n\n** cdev >%s< %04x **\n", s1, cdev_id);
-
-      hd->compat_device.id = MAKE_ID(TAG_EISA, cdev_id);
-      hd->compat_vendor.id = name2eisa_id(s1);
-
-      if(!(hd->base_class.id || hd->sub_class.id)) {
-        if((u = device_class(hd_data, hd->compat_vendor.id, hd->compat_device.id))) {
-          hd->base_class.id = u >> 8;
-          hd->sub_class.id = u & 0xff;
-        }
-        else if(hd->compat_vendor.id == MAKE_ID(TAG_EISA, 0x41d0)) {
-          /* 0x41d0 is 'PNP' */
-          switch((hd->compat_device.id >> 12) & 0xf) {
-            case   8:
-              hd->base_class.id = bc_network;
-              hd->sub_class.id = 0x80;
-              break;
-            case 0xa:
-              hd->base_class.id = bc_storage;
-              hd->sub_class.id = 0x80;
-              break;
-            case 0xb:
-              hd->base_class.id = bc_multimedia;
-              hd->sub_class.id = 0x80;
-              break;
-            case 0xc:
-            case 0xd:
-              hd->base_class.id = bc_modem;
-              break;
-          }
-        }
-      }
-
-      continue;
-    }
-
-    if(
-      hd &&
-      (j = sscanf(sl->str,
-        " Active port %x, %x, %x, %x, %x, %x",
-        ux, ux + 1, ux + 2, ux + 3, ux + 4, ux + 5
-      )) >= 1
-    ) {
-
-      for(i = 0; i < j; i++) {
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->io.type = res_io;
-        res->io.enabled = ldev_active ? 1 : 0;
-        res->io.base = ux[i];
-        res->io.access = acc_rw;
-      }
-
-      continue;
-    }
-
-    if(hd && (j = sscanf(sl->str, " Active IRQ %d [%x], %d [%x]", ux, ux + 1, ux + 2, ux + 3)) >= 1) {
-      for(i = 0; i < j; i += 2) {
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->irq.type = res_irq;
-        res->irq.enabled = ldev_active ? 1 : 0;
-        res->irq.base = ux[i];
-      }
-
-      continue;
-    }
-
-    if(hd && (j = sscanf(sl->str, " Active DMA %d, %d", ux, ux + 1)) >= 1) {
-      for(i = 0; i < j; i++) {
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->dma.type = res_dma;
-        res->dma.enabled = ldev_active ? 1 : 0;
-        res->dma.base = ux[i];
-      }
-
-      continue;
-    }
-
-
-  }
-
-  free_mem(dev_name);
-  free_mem(ldev_name);
-}
-#endif
-
-
-#endif /* defined(__i386__) || defined(__alpha__) */
-
diff --git a/src/hwinfo/src/hd/isapnp.h b/src/hwinfo/src/hd/isapnp.h
deleted file mode 100644 (file)
index b593726..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * These are fixed and write only. Reads are done from a port with a
- * relocatable address...
- */
-#define ISAPNP_ADDR_PORT       0x279
-#define ISAPNP_DATA_PORT       0xa79
-
-
-/*
- * ISA PnP resource types
- */
-#define RES_PNP_VERSION                0x01
-#define RES_LOG_DEV_ID         0x02
-#define RES_COMPAT_DEV_ID      0x03
-#define RES_IRQ                        0x04
-#define RES_DMA                        0x05
-#define RES_START_DEP          0x06
-#define RES_END_DEP            0x07
-#define RES_IO                 0x08
-#define RES_FIXED_IO           0x09
-#define RES_VENDOR_SMALL       0x0e
-#define RES_END                        0x0f
-
-#define RES_MEM_RANGE          0x81
-#define RES_ANSI_NAME          0x82
-#define RES_UNICODE_NAME       0x83
-#define RES_VENDOR_LARGE       0x84
-#define RES_MEM32_RANGE                0x85
-#define RES_FIXED_MEM32_RANGE  0x86
-
-
-/*
- * ISA PnP configuration regs
- */
-#define CFG_MEM24              0x40
-#define CFG_MEM32_0            0x76
-#define CFG_MEM32_1            0x80
-#define CFG_MEM32_2            0x90
-#define CFG_MEM32_3            0xa0
-#define CFG_IO_HI_BASE         0x60
-#define CFG_IO_LO_BASE         0x61
-#define CFG_IRQ                        0x70
-#define CFG_IRQ_TYPE           0x71
-#define CFG_DMA                        0x74
-
-
-/* gather ISA-PnP info */
-void hd_scan_isapnp(hd_data_t *hd_data);
-
-
-/*
- * Interface functions to the pnpdump lib.
- */
-int pnpdump(hd_data_t *hd_data, int read_boards);
-unsigned char *add_isapnp_card_res(isapnp_card_t *, int, int);
-isapnp_card_t *add_isapnp_card(isapnp_t *, int);
-
diff --git a/src/hwinfo/src/hd/isdn.c b/src/hwinfo/src/hd/isdn.c
deleted file mode 100644 (file)
index 63ed839..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "isdn.h"
-
-#undef ISDN_TEST
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * identify isdn cards
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#ifndef LIBHD_TINY
-
-#if !defined(__s390__) && !defined(__s390x__) && !defined(__alpha__)
-
-void hd_scan_isdn(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  cdb_isdn_card *cic;
-
-  if(!hd_probe_feature(hd_data, pr_isdn)) return;
-
-  hd_data->module = mod_isdn;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "list");
-
-#ifdef ISDN_TEST
-  {
-    hd_res_t *res;
-
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->bus.id = bus_isa;
-    hd->base_class.id = bc_isdn;
-    hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x3005);
-    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0500);      // type, subtype
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->io.type = res_io;
-    res->io.enabled = 1;
-    res->io.base = 0x0300;
-    res->io.access = acc_rw;
-
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->bus.id = bus_isa;
-    hd->base_class.id = bc_isdn;
-    hd->vendor.id = MAKE_ID(TAG_EISA, 0x1593);
-    hd->device.id = MAKE_ID(TAG_EISA, 0x0133); // type, subtype
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->io.type = res_io;
-    res->io.enabled = 1;
-    res->io.base = 0x0240;
-    res->io.access = acc_rw;
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->irq.type = res_irq;
-    res->irq.enabled = 1;
-    res->irq.base = 99;
-
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->bus.id = bus_isa;
-    hd->base_class.id = bc_isdn;
-    hd->vendor.id = MAKE_ID(TAG_EISA, 0x0e98);
-    hd->device.id = MAKE_ID(TAG_EISA, 0x0000); // type, subtype
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->io.type = res_io;
-    res->io.enabled = 1;
-    res->io.base = 0x0180;
-    res->io.access = acc_rw;
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->io.type = res_io;
-    res->io.enabled = 1;
-    res->io.base = 0x0540;
-    res->io.access = acc_rw;
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->irq.type = res_irq;
-    res->irq.enabled = 1;
-    res->irq.base = 77;
-
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->bus.id = bus_pci;
-    hd->base_class.id = bc_isdn;
-    hd->vendor.id = MAKE_ID(TAG_PCI, 0x1244);
-    hd->device.id = MAKE_ID(TAG_PCI, 0x0a00);  // type, subtype
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->io.type = res_io;
-    res->io.enabled = 1;
-    res->io.base = 0xe000;
-    res->io.access = acc_rw;
-
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->bus.id = bus_isa;
-    hd->base_class.id = bc_isdn;
-    hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x3001);
-    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0100);      // type, subtype
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->io.type = res_io;
-    res->io.enabled = 1;
-    res->io.base = 0xe80;
-    res->io.access = acc_rw;
-
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->bus.id = bus_isa;
-    hd->base_class.id = bc_isdn;
-    hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x3000);
-    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x1a00);      // type, subtype
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->io.type = res_io;
-    res->io.enabled = 1;
-    res->io.base = 0x400;
-    res->io.access = acc_rw;
-
-
-  }
-#endif
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if((cic = get_isdn_info(hd))) {
-      hd->base_class.id = bc_isdn;
-      hd->sub_class.id = 0;
-      free_mem(cic);
-    }
-  }
-
-
-}
-
-cdb_isdn_card *get_isdn_info(hd_t *hd)
-{
-  cdb_isdn_card *cic0, *cic;
-  unsigned u0, u1;
-
-  if(hd->bus.id == bus_pci ||
-    hd->bus.id == bus_isa ||
-    hd->bus.id == bus_usb ||
-    hd->bus.id == bus_pcmcia ||
-    hd->bus.id == bus_cardbus) {
-
-    cic = NULL;
-    u0 = ID_VALUE(hd->vendor.id);
-    if(
-      hd->bus.id == bus_isa &&
-      ID_TAG(hd->vendor.id) == TAG_SPECIAL &&
-      u0 >= 0x3000 && u0 <= 0x3006 &&
-      ID_TAG(hd->device.id) == TAG_SPECIAL
-    ) {
-      u0 = ID_VALUE(hd->device.id);
-      cic = hd_cdbisdn_get_card_from_type(u0 >> 8, u0 & 0xff);
-    }
-
-    if(
-      hd->bus.id == bus_isa &&
-      ID_TAG(hd->vendor.id) == TAG_EISA &&
-      ID_TAG(hd->device.id) == TAG_EISA
-    ) {
-      u0 = ID_VALUE(hd->vendor.id);
-      u1 = ID_VALUE(hd->device.id);
-      cic = hd_cdbisdn_get_card_from_id(((u0 & 0xff) << 8) + ((u0 >> 8) & 0xff),
-                                   ((u1 & 0xff) << 8) + ((u1 >> 8) & 0xff),
-                                   0xffff,0xffff);
-    }
-
-    if(hd->bus.id == bus_pci) {
-      cic = hd_cdbisdn_get_card_from_id(ID_VALUE(hd->vendor.id), ID_VALUE(hd->device.id),
-                                 ID_VALUE(hd->sub_vendor.id), ID_VALUE(hd->sub_device.id));
-    }
-
-    if(hd->bus.id == bus_usb &&
-       ID_TAG(hd->vendor.id) == TAG_USB &&
-       ID_TAG(hd->device.id) == TAG_USB) {
-      
-      if (hd->revision.id == 0 && hd->revision.name) {
-        /* the revision is usually saved as string (1.00) */
-       sscanf(hd->revision.name, "%x.%x", &u1, &u0);
-       u0 = u0 | u1 << 8;
-      } else
-       u0 = ID_VALUE(hd->revision.id);
-
-      cic = hd_cdbisdn_get_card_from_id(ID_VALUE(hd->vendor.id), ID_VALUE(hd->device.id),
-                                 u0, 0xffff);
-      if (!cic) /* to get cards without revision info in database */
-       cic = hd_cdbisdn_get_card_from_id(ID_VALUE(hd->vendor.id), ID_VALUE(hd->device.id),
-                               0xffff, 0xffff);
-    }
-    
-    if((hd->bus.id == bus_pcmcia || hd->bus.id == bus_cardbus) &&
-       (hd->base_class.id == bc_network || hd->base_class.id == bc_isdn)) {
-       if (hd->drivers && hd->drivers->str) {
-               if (0 == strcmp(hd->drivers->str, "teles_cs")) {
-                       cic = hd_cdbisdn_get_card_from_type(8, 0);
-               } else if (0 == strcmp(hd->drivers->str, "sedlbauer_cs")) {
-                       cic = hd_cdbisdn_get_card_from_type(22, 2);
-               } else if (0 == strcmp(hd->drivers->str, "avma1_cs")) {
-                       cic = hd_cdbisdn_get_card_from_type(26, 0);
-               } else if (0 == strcmp(hd->drivers->str, "fcpcmcia_cs")) {
-                       cic = hd_cdbisdn_get_card_from_type(8002, 5);
-               } else if (0 == strcmp(hd->drivers->str, "elsa_cs")) {
-                       cic = hd_cdbisdn_get_card_from_type(10, 11);
-               } else if (0 == strcmp(hd->drivers->str, "avm_cs")) {
-                       cic = hd_cdbisdn_get_card_from_type(8001, 2);
-               }
-        }
-    }
-
-    if (cic && cic->Class && strcmp(cic->Class, "DSL")) {
-      cic0 = new_mem(sizeof *cic0);
-      memcpy(cic0, cic, sizeof *cic0);
-      return cic0;
-    }
-  }
-  return NULL;
-}
-
-void hd_scan_dsl(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  cdb_isdn_card *cic;
-
-  if(!hd_probe_feature(hd_data, pr_isdn)) return;
-
-  hd_data->module = mod_dsl;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "list");
-
-#ifdef DSL_TEST
-  {
-    hd_res_t *res;
-
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->bus.id = bus_pci;
-    hd->base_class.id = bc_dsl;
-    hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x1244);
-    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x2700);      // type, subtype
-
-  }
-#endif
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if((cic = get_dsl_info(hd))) {
-      free_mem(cic);
-    }
-  }
-
-
-}
-
-cdb_isdn_card *get_dsl_info(hd_t *hd)
-{
-  cdb_isdn_card *cic0, *cic;
-  cdb_isdn_vario *civ;
-  unsigned u0, u1;
-
-  if(hd->bus.id == bus_pci ||
-    hd->bus.id == bus_usb) {
-
-    cic = NULL;
-
-    if(hd->bus.id == bus_pci) {
-      cic = hd_cdbisdn_get_card_from_id(ID_VALUE(hd->vendor.id), ID_VALUE(hd->device.id),
-                                 ID_VALUE(hd->sub_vendor.id), ID_VALUE(hd->sub_device.id));
-    }
-
-    if(hd->bus.id == bus_usb &&
-       ID_TAG(hd->vendor.id) == TAG_USB &&
-       ID_TAG(hd->device.id) == TAG_USB) {
-      
-      if (hd->revision.id == 0 && hd->revision.name) {
-        /* the revision is usually saved as string (1.00) */
-       sscanf(hd->revision.name, "%x.%x", &u1, &u0);
-       u0 = u0 | u1 << 8;
-      } else
-       u0 = ID_VALUE(hd->revision.id);
-
-      cic = hd_cdbisdn_get_card_from_id(ID_VALUE(hd->vendor.id), ID_VALUE(hd->device.id),
-                                 u0, 0xffff);
-      if (!cic) /* to get cards without revision info in database */
-       cic = hd_cdbisdn_get_card_from_id(ID_VALUE(hd->vendor.id), ID_VALUE(hd->device.id),
-                               0xffff, 0xffff);
-    }
-
-    if (cic && cic->Class && !strcmp(cic->Class, "DSL")) {
-      hd->base_class.id = bc_dsl;
-      hd->sub_class.id = sc_dsl_unknown;
-      civ = hd_cdbisdn_get_vario(cic->vario);
-      if (civ && civ->interface) {
-        if (0 == strncmp(civ->interface, "CAPI20", 6)) {
-          hd->sub_class.id = sc_dsl_capi;
-        } else if (0 == strncmp(civ->interface, "pppoe", 5)) {
-          hd->sub_class.id = sc_dsl_pppoe;
-        }
-      }
-      cic0 = new_mem(sizeof *cic0);
-      memcpy(cic0, cic, sizeof *cic0);
-      return cic0;
-    }
-  }
-  return NULL;
-}
-
-#endif         /* !defined(__s390__) && !defined(__s390x__) && !defined(__alpha__) */
-
-#endif         /* !defined(LIBHD_TINY) */
-
diff --git a/src/hwinfo/src/hd/isdn.h b/src/hwinfo/src/hd/isdn.h
deleted file mode 100644 (file)
index 3e5cc42..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-void hd_scan_isdn(hd_data_t *hd_data);
-void hd_scan_dsl(hd_data_t *hd_data);
-cdb_isdn_card *get_isdn_info(hd_t *hd);
-cdb_isdn_card *get_dsl_info(hd_t *hd);
diff --git a/src/hwinfo/src/hd/kbd.c b/src/hwinfo/src/hd/kbd.c
deleted file mode 100644 (file)
index 58384e7..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <termios.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/ioctl.h>
-#include <linux/serial.h>
-
-#ifdef __sparc__
-
-struct serial_struct {
-  int     type;
-  int     line;
-  unsigned long   port;
-  int     irq;
-  int     flags;
-  int     xmit_fifo_size;
-  int     custom_divisor;
-  int     baud_base;
-  unsigned short  close_delay;
-  char    io_type;
-  char    reserved_char[1];
-  int     hub6;
-  unsigned short  closing_wait; /* time to wait before closing */
-  unsigned short  closing_wait2; /* no longer used... */
-  unsigned char   *iomem_base;
-  unsigned short  iomem_reg_shift;
-  int     reserved[2];
-};
-
-#ifdef DIET
-typedef unsigned int u_int;
-#endif
-
-#include <asm/kbio.h>
-#include <asm/openpromio.h>
-#endif
-
-#include "hd.h"
-#include "hd_int.h"
-#include "kbd.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *
- * Look for keyboards not covered by kernel input device driver, mainly
- * some sort of serial consoles.
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#ifdef __sparc__
-static void add_sun_console(hd_data_t *hd_data);
-#else
-static void add_serial_console(hd_data_t *hd_data);
-#endif
-
-
-void hd_scan_kbd(hd_data_t *hd_data)
-{
-  hd_t *hd;
-
-  if(!hd_probe_feature(hd_data, pr_kbd)) return;
-
-  hd_data->module = mod_kbd;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(2, 0, "uml");
-
-  if(hd_is_uml(hd_data)) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->base_class.id = bc_keyboard;
-    hd->sub_class.id = sc_keyboard_kbd;
-    hd->bus.id = bus_none;
-    hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0201);
-    hd->device.id = MAKE_ID(TAG_SPECIAL, 2);
-  }
-
-  PROGRESS(3, 0, "serial console");
-
-#ifdef __sparc__
-  add_sun_console(hd_data);
-#else
-  add_serial_console(hd_data);
-#endif
-}
-
-
-#ifndef __sparc__
-
-void add_serial_console(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  hd_res_t *res = NULL;
-  int fd, i;
-  str_list_t *cmd, *cmd0, *sl;
-  unsigned u, u1;
-  struct serial_struct ser_info;
-  unsigned tty_major = 0, tty_minor = 0;
-  char c, *dev = NULL, *s;
-
-  /* first, try console= option */
-  cmd = cmd0 = get_cmdline(hd_data, "console");
-
-  /* use last console entry */
-  if(cmd) while(cmd->next) cmd = cmd->next;
-
-  if(
-    cmd &&
-    (
-      /* everything != "ttyN" */
-      strncmp(cmd->str, "tty", 3) ||
-      !(cmd->str[3] == 0 || (cmd->str[3] >= '0' && cmd->str[3] <= '9'))
-    )
-  ) {
-    sl = hd_split(',', cmd->str);
-    s = sl->str;
-    if(!strncmp(s, "/dev/", sizeof "/dev/" - 1)) s += sizeof "/dev/" - 1;
-    dev = new_str(s);
-    if(sl->next && (i = sscanf(sl->next->str, "%u%c%u", &u, &c, &u1)) >= 1) {
-      res = add_res_entry(&res, new_mem(sizeof *res));
-      res->baud.type = res_baud;
-      res->baud.speed = u;
-      if(i >= 2) res->baud.parity = c;
-      if(i >= 3) res->baud.bits = u1;
-    }
-    free_str_list(sl);
-  }
-
-#ifdef __UCLIBC__
-  if(!dev && (fd = open(DEV_CONSOLE, O_RDWR | O_NONBLOCK | O_NOCTTY)) >= 0) {
-/*
-    if(ioctl(fd, TIOCGDEV, &u) != -1) {
-      tty_major = (u >> 8) & 0xfff;
-      tty_minor = (u & 0xff) | ((u >> 12) & 0xfff00);
-      ADD2LOG(DEV_CONSOLE ": major %u, minor %u\n", tty_major, tty_minor);
-    }
-*/
-
-    if(tty_major == 229 /* iseries hvc */) {
-      if (tty_minor >= 128) {
-        str_printf(&dev, 0, "hvsi%u", tty_minor-128);
-      } else {
-        str_printf(&dev, 0, "hvc%u", tty_minor);
-      }
-    }
-    else if(!ioctl(fd, TIOCGSERIAL, &ser_info)) {
-      ADD2LOG("serial console at line %d\n", ser_info.line);
-      str_printf(&dev, 0, "ttyS%d", ser_info.line);
-    }
-    close(fd);
-  }
-#endif
-
-  if(dev) {
-
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->base_class.id = bc_keyboard;
-    hd->sub_class.id = sc_keyboard_console;
-    hd->bus.id = bus_serial;
-    hd->device.name = new_str("serial console");
-
-    if(*dev) str_printf(&hd->unix_dev_name, 0, "/dev/%s", dev);
-
-    hd->res = res;
-
-    free_mem(dev);
-  }
-
-  free_str_list(cmd0);
-}
-
-
-#else  /* defined(__sparc__) */
-
-
-void add_sun_console(hd_data_t *hd_data)
-{
-  int fd, kid, kid2, klay, ser_cons, i;
-  unsigned u, u1, u2;
-  char c1, c2;
-  struct serial_struct ser_info;
-  unsigned char buf[OPROMMAXPARAM];
-  struct openpromio *opio = (struct openpromio *) buf;
-  hd_t *hd;
-  hd_res_t *res;
-
-  if((fd = open(DEV_CONSOLE, O_RDWR | O_NONBLOCK | O_NOCTTY)) >= 0)
-    {
-      if(ioctl(fd, TIOCGSERIAL, &ser_info))
-       {
-         ser_cons = -1;
-       }
-      else
-       {
-         ser_cons = ser_info.line;
-         ADD2LOG("serial console at line %d\n", ser_cons);
-       }
-      close(fd);
-
-      if(ser_cons >= 0 && (fd = open(DEV_OPENPROM, O_RDWR | O_NONBLOCK)) >= 0)
-       {
-         sprintf(opio->oprom_array, "tty%c-mode", (ser_cons & 1) + 'a');
-         opio->oprom_size = sizeof buf - 0x100;
-         if(!ioctl(fd, OPROMGETOPT, opio))
-           {
-             if(opio->oprom_size < 0x100)
-               {
-                 opio->oprom_array[opio->oprom_size] = 0;
-                 ADD2LOG(
-                         "prom(tty%c-mode) = \"%s\" (%d bytes)\n",
-                         (ser_cons & 1) + 'a', opio->oprom_array,
-                         opio->oprom_size
-                         );
-                 hd = add_hd_entry(hd_data, __LINE__, 0);
-                 hd->base_class.id = bc_keyboard;
-                 hd->sub_class.id = sc_keyboard_console;
-                 hd->bus.id = bus_serial;
-                 hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0203);
-                 hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0000);
-                 str_printf(&hd->unix_dev_name, 0, "/dev/ttyS%d", ser_cons);
-                 if((i = sscanf(opio->oprom_array, "%u,%u,%c,%u,%c",
-                                &u, &u1, &c1, &u2, &c2)) >= 1)
-                   {
-                     res = add_res_entry(&hd->res, new_mem(sizeof *res));
-                     res->baud.type = res_baud;
-                     res->baud.speed = u;
-                     if(i >= 2) res->baud.bits = u1;
-                     if(i >= 3) res->baud.parity = c1;
-                     if(i >= 4) res->baud.stopbits = u2;
-                     if(i >= 5) res->baud.handshake = c2;
-                   }
-               }
-           }
-         close(fd);
-         /* We have a serial console, so don't test for keyboard. Else
-            we will always find a PS/2 keyboard */
-         return;
-       }
-    }
-
-  PROGRESS(1, 0, "sun kbd");
-
-  if((fd = open(DEV_KBD, O_RDWR | O_NONBLOCK | O_NOCTTY)) >= 0)
-    {
-      if(ioctl(fd, KIOCTYPE, &kid)) kid = -1;
-      if(ioctl(fd, KIOCLAYOUT, &klay)) klay = -1;
-      close(fd);
-
-      if(kid != -1)
-       {
-         ADD2LOG("sun keyboard: type %d, layout %d\n", kid, klay);
-
-         hd = add_hd_entry(hd_data, __LINE__, 0);
-         hd->base_class.id = bc_keyboard;
-         hd->sub_class.id = sc_keyboard_kbd;
-         hd->bus.id = bus_serial;
-         if(kid == 4 && klay >= 0)
-           hd->prog_if.id = klay;
-
-         hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0202);
-         kid2 = kid;
-         if(kid == 4 && klay > 0x20)
-           kid2 = 5;
-         hd->device.id = MAKE_ID(TAG_SPECIAL, kid2);
-         if(kid2 == 5) {
-           if(klay == 0x22 || klay == 0x51)
-             {
-               hd->sub_vendor.id = MAKE_ID(TAG_SPECIAL, 0x0202);
-               hd->sub_device.id = MAKE_ID(TAG_SPECIAL, 0x0001);
-             }
-           else if(!(
-                     klay == 0x21 || (klay >= 0x2f && klay <= 0x31) ||
-                     klay == 0x50 || (klay >= 0x5e && klay <= 0x60)
-                     ))
-             {
-               hd->sub_vendor.id = MAKE_ID(TAG_SPECIAL, 0x0202);
-               hd->sub_device.id = MAKE_ID(TAG_SPECIAL, 0x0002);
-             }
-         }
-       }
-    }
-  else
-    {
-      for(hd = hd_data->hd; hd; hd = hd->next) {
-        if(hd->base_class.id == bc_keyboard) break;
-      }
-      if(!hd) {
-        /* We must have a PS/2 Keyboard */
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->base_class.id = bc_keyboard;
-        hd->sub_class.id = sc_keyboard_kbd;
-        hd->bus.id = bus_ps2;
-        hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0201);
-        hd->device.id = MAKE_ID(TAG_SPECIAL, 1);
-      }
-    }
-}
-
-#endif /* __sparc__ */
-
-
diff --git a/src/hwinfo/src/hd/kbd.h b/src/hwinfo/src/hd/kbd.h
deleted file mode 100644 (file)
index 8fe8447..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_kbd(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/klog.c b/src/hwinfo/src/hd/klog.c
deleted file mode 100644 (file)
index 4f7ec2f..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/klog.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "klog.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * kernel log info
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-static int str_ok(str_list_t *sl);
-static int str_list_cmp(str_list_t *sl1, str_list_t *sl2);
-
-
-/*
- * Check if a string starts with '<[0-9]>'.
- */
-int str_ok(str_list_t *sl)
-{
-  return sl->str[0] == '<' && sl->str[2] == '>' && sl->str[1] >= '0' && sl->str[1] <= '9';
-}
-
-/*
- * Check if sl1 is idential to sl2; sl1 may be shorter as sl2.
- *
- * Returns 0/1 if they are equal/not equal. If sl1 is NULL, 0 is returned.
- */
-int str_list_cmp(str_list_t *sl1, str_list_t *sl2)
-{
-  for(; sl1; sl1 = sl1->next, sl2 = sl2->next) {
-    if(!sl2 || strcmp(sl1->str, sl2->str)) return 1;
-  }
-
-  return 0;
-}
-
-/*
- * Read kernel log info. Combine with /var/log/boot.msg.
- */
-void read_klog(hd_data_t *hd_data)
-{
-  char buf[0x2000 + 1], *s;
-  int i, j, len, n;
-  str_list_t *sl, *sl1, *sl2, *sl_last, **ssl, *sl_next;
-
-  /* some clean-up */
-  hd_data->klog = free_str_list(hd_data->klog);
-
-  sl1 = read_file(KLOG_BOOT, 0, 0);
-  sl2 = NULL;
-
-  /*
-   * remove non-canonical lines (not starting with <[0-9]>) at the start and
-   * at the end
-   */
-
-  /* note: the implementations assumes that at least *one* line is ok */
-  for(sl_last = NULL, sl = sl1; sl; sl = (sl_last = sl)->next) {
-    if(str_ok(sl)) {
-      if(sl_last) {
-        sl_last->next = NULL;
-        free_str_list(sl1);
-        sl1 = sl;
-      }
-      break;
-    }
-  }
-
-  for(sl_last = NULL, sl = sl1; sl; sl = (sl_last = sl)->next) {
-    if(!str_ok(sl)) {
-      if(sl_last) {
-        sl_last->next = NULL;
-        free_str_list(sl);
-      }
-      break;
-    }
-  }
-
-  n = klogctl(3, buf, sizeof buf - 1);
-  if(n <= 0) {
-    hd_data->klog = sl1;
-    return;
-  }
-
-  if(n > (int) sizeof buf - 1) n = sizeof buf - 1;
-  buf[n] = 0;
-  for(i = j = 0; i < n; i++) {
-    if(buf[i] == '\n') {
-      len = i - j + 1;
-      s = new_mem(len + 1);
-      memcpy(s, buf + j, len);
-      add_str_list(&sl2, s);
-      s = free_mem(s);
-      j = i + 1;
-    }
-  }
-
-  /* the 1st line may be incomplete */
-  if(sl2 && !str_ok(sl2)) {
-    sl_next = sl2->next;
-    sl2->next = NULL;
-    free_str_list(sl2);
-    sl2 = sl_next;
-  }
-
-  if(!sl1) {
-    hd_data->klog = sl2;
-    return;
-  }
-
-  if(sl1 && !sl2) {
-    hd_data->klog = sl1;
-    return;
-  }
-
-  /* now, try to join sl1 & sl2 */
-  for(sl_last = NULL, sl = sl1; sl; sl = (sl_last = sl)->next) {
-    if(!str_list_cmp(sl, sl2)) {
-      free_str_list(sl);
-      if(sl_last)
-        sl_last->next = NULL;
-      else
-        sl1 = NULL;
-      break;
-    }
-  }
-
-  /* append sl2 to sl1 */
-  for(ssl = &sl1; *ssl; ssl = &(*ssl)->next);
-  *ssl = sl2;
-
-  hd_data->klog = sl1;
-}
-
-
-/*
- * Add some klog data to the global log.
- */
-void dump_klog(hd_data_t *hd_data)
-{
-  str_list_t *sl;
-
-  ADD2LOG("----- kernel log -----\n");
-  for(sl = hd_data->klog; sl; sl = sl->next) {
-    ADD2LOG("  %s", sl->str);
-  }
-  ADD2LOG("----- kernel log end -----\n");
-}
diff --git a/src/hwinfo/src/hd/klog.h b/src/hwinfo/src/hd/klog.h
deleted file mode 100644 (file)
index 3119b10..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-void read_klog(hd_data_t *hd_data);
-void dump_klog(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/manual.c b/src/hwinfo/src/hd/manual.c
deleted file mode 100644 (file)
index c8b9afa..0000000
+++ /dev/null
@@ -1,1549 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <dirent.h>
-#include <ctype.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "manual.h"
-#include "hddb.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *
- * hardware in /var/lib/hardware/
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-typedef struct {
-  int key;
-  char *value;
-} hash_t;
-
-/* corresponds to hd_status_value_t */
-static hash_t status_names[] = {
-  { status_no,      "no"      },
-  { status_yes,     "yes"     },
-  { status_unknown, "unknown" },
-  { status_new,     "new"     },
-  { 0,              NULL      }
-};
-
-/* corresponds to hd_hw_item_t */
-static hash_t hw_items[] = {
-  { hw_sys,           "system"              },
-  { hw_cpu,           "cpu"                 },
-  { hw_keyboard,      "keyboard"            },
-  { hw_braille,       "braille"             },
-  { hw_mouse,         "mouse"               },
-  { hw_joystick,      "joystick"            },
-  { hw_printer,       "printer"             },
-  { hw_scanner,       "scanner"             },
-  { hw_chipcard,      "chipcard"            },
-  { hw_monitor,       "monitor"             },
-  { hw_tv,            "tv card"             },
-  { hw_display,       "graphics card"       },
-  { hw_framebuffer,   "framebuffer"         },
-  { hw_camera,        "camera"              },
-  { hw_sound,         "sound"               },
-  { hw_storage_ctrl,  "storage"             },
-  { hw_network_ctrl,  "network"             },
-  { hw_isdn,          "isdn adapter"        },
-  { hw_modem,         "modem"               },
-  { hw_network,       "network interface"   },
-  { hw_disk,          "disk"                },
-  { hw_partition,     "partition"           },
-  { hw_cdrom,         "cdrom"               },
-  { hw_floppy,        "floppy"              },
-  { hw_manual,        "manual"              },
-  { hw_usb_ctrl,      "usb controller"      },
-  { hw_usb,           "usb"                 },
-  { hw_bios,          "bios"                },
-  { hw_pci,           "pci"                 },
-  { hw_isapnp,        "isapnp"              },
-  { hw_bridge,        "bridge"              },
-  { hw_hub,           "hub"                 },
-  { hw_scsi,          "scsi"                },
-  { hw_ide,           "ide"                 },
-  { hw_memory,        "memory"              },
-  { hw_dvb,           "dvb card"            },
-  { hw_pcmcia,        "pcmcia"              },
-  { hw_pcmcia_ctrl,   "pcmcia controller"   },
-  { hw_ieee1394,      "firewire"            },
-  { hw_ieee1394_ctrl, "firewire controller" },
-  { hw_hotplug,       "hotplug"             },
-  { hw_hotplug_ctrl,  "hotplug controller"  },
-  { hw_zip,           "zip"                 },
-  { hw_pppoe,         "pppoe"               },
-  { hw_wlan,          "wlan card"           },
-  { hw_dsl,           "DSL adapter"         },
-  { hw_block,         "block device"        },
-  { hw_tape,          "tape"                },
-  { hw_vbe,           "vesa bios"           },
-  { hw_bluetooth,     "bluetooth"           },
-  { hw_unknown,       "unknown"             },
-  { 0,                NULL                  }
-};
-
-typedef enum {
-  hw_id_unique = 1, hw_id_parent, hw_id_child, hw_id_hwclass, hw_id_model,
-  hw_id_configured, hw_id_available, hw_id_needed, hw_id_cfgstring, hw_id_active
-} hw_id_t;
-
-#ifndef LIBHD_TINY
-
-#define MAN_SECT_GENERAL       "General"
-#define MAN_SECT_STATUS                "Status"
-#define MAN_SECT_HARDWARE      "Hardware"
-
-static hash_t hw_ids_general[] = {
-  { hw_id_unique,     "UniqueID"   },
-  { hw_id_parent,     "ParentID"   },
-  { hw_id_child,      "ChildIDs"   },
-  { hw_id_hwclass,    "HWClass"    },
-  { hw_id_model,      "Model"      },
-  { 0,                NULL         }
-};
-
-static hash_t hw_ids_status[] = {
-  { hw_id_configured, "Configured"   },
-  { hw_id_available,  "Available"    },
-  { hw_id_needed,     "Needed"       },
-  { hw_id_cfgstring,  "ConfigString" },
-  { hw_id_active,     "Active"       },
-  { 0,                NULL           }
-};
-
-/* structure elements from hd_t */
-typedef enum {
-  hwdi_bus = 1, hwdi_slot, hwdi_func, hwdi_base_class, hwdi_sub_class,
-  hwdi_prog_if, hwdi_dev, hwdi_vend, hwdi_sub_dev, hwdi_sub_vend, hwdi_rev,
-  hwdi_compat_dev, hwdi_compat_vend, hwdi_dev_name, hwdi_vend_name,
-  hwdi_sub_dev_name, hwdi_sub_vend_name, hwdi_rev_name, hwdi_serial,
-  hwdi_unix_dev_name, hwdi_unix_dev_name2, hwdi_unix_dev_names, hwdi_rom_id,
-  hwdi_broken, hwdi_usb_guid, hwdi_res_mem, hwdi_res_phys_mem, hwdi_res_io,
-  hwdi_res_irq, hwdi_res_dma, hwdi_res_size, hwdi_res_baud, hwdi_res_cache,
-  hwdi_res_disk_geo, hwdi_res_monitor, hwdi_res_framebuffer, hwdi_features,
-  hwdi_hotplug, hwdi_class_list, hwdi_drivers, hwdi_sysfs_id,
-  hwdi_sysfs_busid, hwdi_sysfs_link
-} hw_hd_items_t;
-
-static hash_t hw_ids_hd_items[] = {
-  { hwdi_bus,             "Bus"              },
-  { hwdi_slot,            "Slot"             },
-  { hwdi_func,            "Function"         },
-  { hwdi_base_class,      "BaseClass"        },
-  { hwdi_sub_class,       "SubClass"         },
-  { hwdi_prog_if,         "ProgIF"           },
-  { hwdi_dev,             "DeviceID"         },
-  { hwdi_vend,            "VendorID"         },
-  { hwdi_sub_dev,         "SubDeviceID"      },
-  { hwdi_sub_vend,        "SubVendorID"      },
-  { hwdi_rev,             "RevisionID"       },
-  { hwdi_compat_dev,      "CompatDeviceID"   },
-  { hwdi_compat_vend,     "CompatVendorID"   },
-  { hwdi_dev_name,        "DeviceName"       },
-  { hwdi_vend_name,       "VendorName"       },
-  { hwdi_sub_dev_name,    "SubDeviceName"    },
-  { hwdi_sub_vend_name,   "SubVendorName"    },
-  { hwdi_rev_name,        "RevisionName"     },
-  { hwdi_serial,          "Serial"           },
-  { hwdi_unix_dev_name,   "UnixDevice"       },
-  { hwdi_unix_dev_name2,  "UnixDeviceAlt"    },
-  { hwdi_unix_dev_names,  "UnixDeviceList"   },
-  { hwdi_rom_id,          "ROMID"            },
-  { hwdi_broken,          "Broken"           },
-  { hwdi_usb_guid,        "USBGUID"          },
-  { hwdi_res_phys_mem,    "Res.PhysMemory"   },
-  { hwdi_res_mem,         "Res.Memory"       },
-  { hwdi_res_io,          "Res.IO"           },
-  { hwdi_res_irq,         "Res.Interrupts"   },
-  { hwdi_res_dma,         "Res.DMA"          },
-  { hwdi_res_size,        "Res.Size"         },
-  { hwdi_res_baud,        "Res.Baud"         },
-  { hwdi_res_cache,       "Res.Cache"        },
-  { hwdi_res_disk_geo,    "Res.DiskGeometry" },
-  { hwdi_res_monitor,     "Res.Monitor"      },
-  { hwdi_res_framebuffer, "Res.Framebuffer"  },
-  { hwdi_features,        "Features"         },
-  { hwdi_hotplug,         "Hotplug"          },
-  { hwdi_class_list,      "HWClassList"      },
-  { hwdi_drivers,         "Drivers"          },
-  { hwdi_sysfs_id,        "SysfsID"          },
-  { hwdi_sysfs_busid,     "SysfsBusID"       },
-  { hwdi_sysfs_link,      "SysfsLink"        },
-  { 0,                    NULL               }
-};
-#endif
-
-static char *key2value(hash_t *hash, int id);
-
-#ifndef LIBHD_TINY
-
-static int value2key(hash_t *hash, char *str);
-static void dump_manual(hd_data_t *hd_data);
-static unsigned str2id(char *str);
-static void manual2hd(hd_data_t *hd_data, hd_manual_t *entry, hd_t *hd);
-static void hd2manual(hd_t *hd, hd_manual_t *entry);
-
-void hd_scan_manual(hd_data_t *hd_data)
-{
-  DIR *dir;
-  struct dirent *de;
-  hd_manual_t *entry, **entry_next;
-  int i;
-  hd_t *hd, *hd1;
-
-  if(!hd_probe_feature(hd_data, pr_manual)) return;
-
-  hd_data->module = mod_manual;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  hd_data->manual = hd_free_manual(hd_data->manual);
-  entry_next = &hd_data->manual;
-
-  if((dir = opendir(HARDWARE_UNIQUE_KEYS))) {
-    i = 0;
-    while((de = readdir(dir))) {
-      if(*de->d_name == '.') continue;
-      PROGRESS(1, ++i, "read");
-      if((entry = hd_manual_read_entry(hd_data, de->d_name))) {
-        ADD2LOG("  got %s\n", entry->unique_id);
-        *entry_next = entry;
-        entry_next = &entry->next;
-      }
-    }
-    closedir(dir);
-  }
-
-  /* for compatibility: read old files, too */
-  if((dir = opendir(HARDWARE_DIR))) {
-    i = 0;
-    while((de = readdir(dir))) {
-      if(*de->d_name == '.') continue;
-      for(entry = hd_data->manual; entry; entry = entry->next) {
-        if(entry->unique_id && !strcmp(entry->unique_id, de->d_name)) break;
-      }
-      if(entry) continue;
-      PROGRESS(2, ++i, "read");
-      if((entry = hd_manual_read_entry(hd_data, de->d_name))) {
-        ADD2LOG("  got %s\n", entry->unique_id);
-        *entry_next = entry;
-        entry_next = &entry->next;
-      }
-    }
-    closedir(dir);
-  }
-
-  if(hd_data->debug) dump_manual(hd_data);
-
-  /* initialize some useful status value */
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      !hd->status.configured &&
-      !hd->status.available &&
-      !hd->status.needed &&
-      !hd->status.active &&
-      !hd->status.invalid
-    ) {
-      hd->status.configured = status_new;
-      hd->status.available = hd->module == mod_manual ? status_unknown : status_yes;
-      hd->status.needed = status_no;
-      hd->status.active = status_unknown;
-    }
-  }
-
-  hd_data->flags.keep_kmods = 1;
-  for(entry = hd_data->manual; entry; entry = entry->next) {
-
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(hd->unique_id && !strcmp(hd->unique_id, entry->unique_id)) break;
-    }
-
-    if(hd) {
-      /* just update config status */
-      hd->status = entry->status;
-      hd->status.available = status_yes;
-
-      hd->config_string = new_str(entry->config_string);
-    }
-    else {
-      /* add new entry */
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-
-      manual2hd(hd_data, entry, hd);
-
-      if(hd->status.available != status_unknown) hd->status.available = status_no;
-
-      if(hd->parent_id) {
-        for(hd1 = hd_data->hd; hd1; hd1 = hd1->next) {
-          if(hd1->unique_id && !strcmp(hd1->unique_id, hd->parent_id)) {
-            hd->attached_to = hd1->idx;
-            break;
-          }
-        }
-      }
-    }
-  }
-  hd_data->flags.keep_kmods = 0;
-
-}
-
-
-void hd_scan_manual2(hd_data_t *hd_data)
-{
-  hd_t *hd, *hd1;
-
-  /* check if it's necessary to reconfigure this hardware */
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    hd->status.reconfig = status_no;
-
-    if(hd->status.needed != status_yes) continue;
-
-    if(hd->status.available == status_no) {
-      hd->status.reconfig = status_yes;
-      continue;
-    }
-
-    if(hd->status.available != status_unknown) continue;
-
-    for(hd1 = hd_data->hd; hd1; hd1 = hd1->next) {
-      if(hd1 == hd) continue;
-
-      if(
-        hd1->hw_class == hd->hw_class &&
-        hd1->status.configured == status_new &&
-        hd1->status.available == status_yes
-      ) break;
-    }
-
-    if(hd1) hd->status.reconfig = status_yes;
-  }
-}
-
-
-int value2key(hash_t *hash, char *str)
-{
-  for(; hash->value; hash++) {
-    if(!strcmp(hash->value, str)) break;
-  }
-
-  return hash->key;
-}
-
-#endif
-
-char *key2value(hash_t *hash, int id)
-{
-  for(; hash->value; hash++) {
-    if(hash->key == id) break;
-  }
-
-  return hash->value;
-}
-
-char *hd_hw_item_name(hd_hw_item_t item)
-{
-  return key2value(hw_items, item);
-}
-
-
-#ifndef LIBHD_TINY
-
-char *hd_status_value_name(hd_status_value_t status)
-{
-  return key2value(status_names, status);
-}
-
-/*
- * read an entry
- */
-hd_manual_t *hd_manual_read_entry(hd_data_t *hd_data, const char *id)
-{
-  char path[PATH_MAX];
-  int i, j, line;
-  str_list_t *sl, *sl0;
-  hd_manual_t *entry;
-  hash_t *sect;
-  char *s, *s1, *s2;
-  int err = 0;
-
-  snprintf(path, sizeof path, "%s/%s", HARDWARE_UNIQUE_KEYS, id);
-
-  if(!(sl0 = read_file(path, 0, 0))) {
-    /* try old location, too */
-    snprintf(path, sizeof path, "%s/%s", HARDWARE_DIR, id);
-    if(!(sl0 = read_file(path, 0, 0))) return NULL;
-  }
-
-  entry = new_mem(sizeof *entry);
-
-  // default list: no valid entries
-  sect = hw_ids_general + sizeof hw_ids_general / sizeof *hw_ids_general - 1;
-
-  for(line = 1, sl = sl0; sl; sl = sl->next, line++) {
-    s = sl->str;
-    while(isspace(*s)) s++;
-    if(!*s || *s == '#' || *s == ';') continue;        /* empty lines & comments */
-
-    s2 = s;
-    s1 = strsep(&s2, "=");
-
-    if(!s2 && *s == '[') {
-      s2 = s + 1;
-      s1 = strsep(&s2, "]");
-      if(s1) {
-        if(!strcmp(s1, MAN_SECT_GENERAL)) {
-          sect = hw_ids_general;
-          continue;
-        }
-        if(!strcmp(s1, MAN_SECT_STATUS)) {
-          sect = hw_ids_status;
-          continue;
-        }
-        if(!strcmp(s1, MAN_SECT_HARDWARE)) {
-          sect = NULL;
-          continue;
-        }
-      }
-      s2 = NULL;
-    }
-
-    if(!s2) {
-      ADD2LOG("  %s: invalid line %d\n", id, line);
-      err = 1;
-      break;
-    }
-
-    if(sect) {
-      i = value2key(sect, s1);
-      if(!i) {
-        ADD2LOG("  %s: invalid line %d\n", id, line);
-        err = 1;
-        break;
-      }
-      s = canon_str(s2, strlen(s2));
-      switch(i) {
-        case hw_id_unique:
-          entry->unique_id = s;
-          s = NULL;
-          break;
-
-        case hw_id_parent:
-          entry->parent_id = s;
-          s = NULL;
-          break;
-
-        case hw_id_child:
-          entry->child_ids = s;
-          s = NULL;
-          break;
-
-        case hw_id_hwclass:
-          j = value2key(hw_items, s);
-          entry->hw_class = j;
-          if(!j) err = 1;
-          break;
-
-        case hw_id_model:
-          entry->model = s;
-          s = NULL;
-          break;
-
-        case hw_id_configured:
-          j = value2key(status_names, s);
-          entry->status.configured = j;
-          if(!j) err = 1;
-          break;
-
-        case hw_id_available:
-          j = value2key(status_names, s);
-          entry->status.available_orig =
-          entry->status.available = j;
-          if(!j) err = 1;
-          break;
-
-        case hw_id_needed:
-          j = value2key(status_names, s);
-          entry->status.needed = j;
-          if(!j) err = 1;
-          break;
-
-        case hw_id_active:
-          j = value2key(status_names, s);
-          entry->status.active = j;
-          if(!j) err = 1;
-          break;
-
-        case hw_id_cfgstring:
-          entry->config_string = s;
-          s = NULL;
-          break;
-
-        default:
-          err = 1;
-      }
-
-      free_mem(s);
-
-      if(err) {
-        ADD2LOG("  %s: invalid line %d\n", id, line);
-        break;
-      }
-    }
-    else {
-      add_str_list(&entry->key, s1);
-      s = canon_str(s2, strlen(s2));
-      add_str_list(&entry->value, s);
-      free_mem(s);
-    }
-  }
-
-  free_str_list(sl0);
-
-  /*
-   * do some basic consistency checks
-   */
-
-  if(!entry->unique_id || strcmp(entry->unique_id, id)) {
-    ADD2LOG("  %s: unique id does not match file name\n", id);
-    err = 1;
-  }
-
-  /*
-   * if the status info is completely missing, fake some:
-   * new hardware, not autodetectable, not needed
-   */
-  if(
-    !entry->status.configured &&
-    !entry->status.available &&
-    !entry->status.needed &&
-    !entry->status.invalid
-  ) {
-    entry->status.configured = status_new;
-    entry->status.available = status_unknown;
-    entry->status.needed = status_no;
-  }
-
-  if(!entry->status.active) entry->status.active = status_unknown;
-
-  if(
-    !entry->status.configured ||
-    !entry->status.available ||
-    !entry->status.needed ||
-    !entry->status.active
-  ) {
-    ADD2LOG("  %s: incomplete status\n", id);
-    err = 1;
-  }
-
-  if(!entry->hw_class) {
-    ADD2LOG("  %s: no class\n", id);
-    err = 1;
-  }
-
-  if(!entry->model) {
-    ADD2LOG("  %s: no model\n", id);
-    err = 1;
-  }
-
-  if(err) {
-    entry = hd_free_manual(entry);
-  }
-
-  return entry;
-}
-
-
-/*
- * write an entry
- */
-
-int hd_manual_write_entry(hd_data_t *hd_data, hd_manual_t *entry)
-{
-  FILE *f;
-  char path[PATH_MAX];
-  int error = 0;
-  struct stat sbuf;
-  str_list_t *sl1, *sl2;
-
-  if(!entry) return 0;
-  if(!entry->unique_id || entry->status.invalid) return 1;
-
-  snprintf(path, sizeof path, "%s/%s", HARDWARE_UNIQUE_KEYS, entry->unique_id);
-
-  if(!(f = fopen(path, "w"))) {
-    /* maybe we have to create the HARDWARE_UNIQUE_KEYS directory first... */
-
-    if(lstat(HARDWARE_DIR, &sbuf)) {
-      mkdir(HARDWARE_DIR, 0755);
-    }
-
-    if(lstat(HARDWARE_UNIQUE_KEYS, &sbuf)) {
-      mkdir(HARDWARE_UNIQUE_KEYS, 0755);
-    }
-
-    if(!(f = fopen(path, "w"))) return 2;
-  }
-
-  fprintf(f, "[%s]\n", MAN_SECT_GENERAL);
-
-  if(
-    !fprintf(f, "%s=%s\n",
-      key2value(hw_ids_general, hw_id_unique),
-      entry->unique_id
-    )
-  ) error = 3;
-
-  if(
-    entry->parent_id &&
-    !fprintf(f, "%s=%s\n",
-      key2value(hw_ids_general, hw_id_parent),
-      entry->parent_id
-    )
-  ) error = 3;
-
-  if(
-    entry->child_ids &&
-    !fprintf(f, "%s=%s\n",
-      key2value(hw_ids_general, hw_id_child),
-      entry->child_ids
-    )
-  ) error = 3;
-
-  if(
-    (entry->hw_class && key2value(hw_items, entry->hw_class)) &&
-    !fprintf(f, "%s=%s\n",
-      key2value(hw_ids_general, hw_id_hwclass),
-      key2value(hw_items, entry->hw_class)
-    )
-  ) error = 3;
-
-  if(
-    entry->model &&
-    !fprintf(f, "%s=%s\n",
-      key2value(hw_ids_general, hw_id_model),
-      entry->model
-    )
-  ) error = 3;
-
-  fprintf(f, "\n[%s]\n", MAN_SECT_STATUS);
-
-  if(
-    (entry->status.configured && key2value(status_names, entry->status.configured)) &&
-    !fprintf(f, "%s=%s\n",
-      key2value(hw_ids_status, hw_id_configured),
-      key2value(status_names, entry->status.configured)
-    )
-  ) error = 4;
-
-  if(
-    (entry->status.available && key2value(status_names, entry->status.available)) &&
-    !fprintf(f, "%s=%s\n",
-      key2value(hw_ids_status, hw_id_available),
-      key2value(status_names, entry->status.available)
-    )
-  ) error = 4;
-
-  if(
-    (entry->status.needed && key2value(status_names, entry->status.needed)) &&
-    !fprintf(f, "%s=%s\n",
-      key2value(hw_ids_status, hw_id_needed),
-      key2value(status_names, entry->status.needed)
-    )
-  ) error = 4;
-
-  if(
-    (entry->status.active && key2value(status_names, entry->status.active)) &&
-    !fprintf(f, "%s=%s\n",
-      key2value(hw_ids_status, hw_id_active),
-      key2value(status_names, entry->status.active)
-    )
-  ) error = 4;
-
-  if(
-    entry->config_string &&
-    !fprintf(f, "%s=%s\n",
-      key2value(hw_ids_status, hw_id_cfgstring),
-      entry->config_string
-    )
-  ) error = 4;
-
-  fprintf(f, "\n[%s]\n", MAN_SECT_HARDWARE);
-
-  for(
-    sl1 = entry->key, sl2 = entry->value;
-    sl1 && sl2;
-    sl1 = sl1->next, sl2 = sl2->next
-  ) {
-    if(!fprintf(f, "%s=%s\n", sl1->str, sl2->str)) {
-      error = 5;
-      break;
-    }
-  }
-
-  fputs("\n", f);
-
-  fclose(f);
-
-  /* remove old file */
-  if(!error) {
-    snprintf(path, sizeof path, "%s/%s", HARDWARE_DIR, entry->unique_id);
-    unlink(path);
-  }
-
-  return error;
-}
-
-
-void dump_manual(hd_data_t *hd_data)
-{
-  hd_manual_t *entry;
-  static const char *txt = "manually configured hardware";
-  str_list_t *sl1, *sl2;
-
-  if(!hd_data->manual) return;
-
-  ADD2LOG("----- %s -----\n", txt);
-  for(entry = hd_data->manual; entry; entry = entry->next) {
-    ADD2LOG("  %s=%s\n",
-      key2value(hw_ids_general, hw_id_unique),
-      entry->unique_id
-    );
-    if(entry->parent_id)
-      ADD2LOG("    %s=%s\n",
-        key2value(hw_ids_general, hw_id_parent),
-        entry->parent_id
-      );
-    if(entry->child_ids)
-      ADD2LOG("    %s=%s\n",
-        key2value(hw_ids_general, hw_id_child),
-        entry->child_ids
-      );
-    ADD2LOG("    %s=%s\n",
-      key2value(hw_ids_general, hw_id_hwclass),
-      key2value(hw_items, entry->hw_class)
-    );
-    ADD2LOG("    %s=%s\n",
-      key2value(hw_ids_general, hw_id_model),
-      entry->model
-    );
-    ADD2LOG("    %s=%s\n",
-      key2value(hw_ids_status, hw_id_configured),
-      key2value(status_names, entry->status.configured)
-    );
-    ADD2LOG("    %s=%s\n",
-      key2value(hw_ids_status, hw_id_available),
-      key2value(status_names, entry->status.available)
-    );
-    ADD2LOG("    %s=%s\n",
-      key2value(hw_ids_status, hw_id_needed),
-      key2value(status_names, entry->status.needed)
-    );
-    ADD2LOG("    %s=%s\n",
-      key2value(hw_ids_status, hw_id_active),
-      key2value(status_names, entry->status.active)
-    );
-    if(entry->config_string)
-      ADD2LOG("    %s=%s\n",
-        key2value(hw_ids_status, hw_id_cfgstring),
-        entry->config_string
-      );
-    for(
-      sl1 = entry->key, sl2 = entry->value;
-      sl1 && sl2;
-      sl1 = sl1->next, sl2 = sl2->next
-    ) {
-      ADD2LOG("    %s=%s\n", sl1->str, sl2->str);
-    }
-  }
-  ADD2LOG("----- %s end -----\n", txt);
-}
-
-
-unsigned str2id(char *str)
-{
-  unsigned id;
-  unsigned tag = 0;
-
-  if(strlen(str) == 3) return name2eisa_id(str);
-
-  switch(*str) {
-    case 'p':
-      tag = TAG_PCI; str++; break;
-
-    case 'r':
-      str++; break;
-
-    case 'u':
-      tag = TAG_USB; str++; break;
-
-    case 's':
-      tag = TAG_SPECIAL; str++; break;
-
-    case 'P':
-      tag = TAG_PCMCIA; str++; break;
-
-  }
-
-  id = strtoul(str, &str, 16);
-  if(*str) return 0;
-
-  return MAKE_ID(tag, ID_VALUE(id));
-}
-
-
-/*
- * move info from hd_manual_t to hd_t
- */
-void manual2hd(hd_data_t *hd_data, hd_manual_t *entry, hd_t *hd)
-{
-  str_list_t *sl1, *sl2;
-  hw_hd_items_t item;
-  unsigned tag, u0, u1, u2, u3, u4;
-  hd_res_t *res;
-  uint64_t u64_0, u64_1;
-  char *s;
-  int i;
-
-  if(!hd || !entry) return;
-
-  hd->unique_id = new_str(entry->unique_id);
-  hd->parent_id = new_str(entry->parent_id);
-  hd->child_ids = hd_split(',', entry->child_ids);
-  hd->model = new_str(entry->model);
-  hd->hw_class = entry->hw_class;
-
-  hd->config_string = new_str(entry->config_string);
-
-  hd->status = entry->status;
-
-  for(
-    sl1 = entry->key, sl2 = entry->value;
-    sl1 && sl2;
-    sl1 = sl1->next, sl2 = sl2->next
-  ) {
-    switch(item = value2key(hw_ids_hd_items, sl1->str)) {
-      case hwdi_bus:
-        hd->bus.id = strtoul(sl2->str, NULL, 0);
-        break;
-
-      case hwdi_slot:
-        hd->slot = strtoul(sl2->str, NULL, 0);
-        break;
-
-      case hwdi_func:
-        hd->func = strtoul(sl2->str, NULL, 0);
-        break;
-
-      case hwdi_base_class:
-        hd->base_class.id = strtoul(sl2->str, NULL, 0);
-        break;
-
-      case hwdi_sub_class:
-        hd->sub_class.id = strtoul(sl2->str, NULL, 0);
-        break;
-
-      case hwdi_prog_if:
-        hd->prog_if.id = strtoul(sl2->str, NULL, 0);
-        break;
-
-      case hwdi_dev:
-        hd->device.id = str2id(sl2->str);
-        break;
-
-      case hwdi_vend:
-        hd->vendor.id = str2id(sl2->str);
-        break;
-
-      case hwdi_sub_dev:
-        hd->sub_device.id = str2id(sl2->str);
-        break;
-
-      case hwdi_sub_vend:
-        hd->sub_vendor.id = str2id(sl2->str);
-        break;
-
-      case hwdi_rev:
-        hd->revision.id = strtoul(sl2->str, NULL, 0);
-        break;
-
-      case hwdi_compat_dev:
-        hd->compat_device.id = str2id(sl2->str);
-        break;
-
-      case hwdi_compat_vend:
-        hd->compat_vendor.id = str2id(sl2->str);
-        break;
-
-      case hwdi_dev_name:
-        hd->device.name = new_str(sl2->str);
-        break;
-
-      case hwdi_vend_name:
-        hd->vendor.name = new_str(sl2->str);
-        break;
-
-      case hwdi_sub_dev_name:
-        hd->sub_device.name = new_str(sl2->str);
-        break;
-
-      case hwdi_sub_vend_name:
-        hd->sub_vendor.name = new_str(sl2->str);
-        break;
-
-      case hwdi_rev_name:
-        hd->revision.name = new_str(sl2->str);
-        break;
-
-      case hwdi_serial:
-        hd->serial = new_str(sl2->str);
-        break;
-
-      case hwdi_unix_dev_name:
-        hd->unix_dev_name = new_str(sl2->str);
-        break;
-
-      case hwdi_unix_dev_name2:
-        hd->unix_dev_name2 = new_str(sl2->str);
-        break;
-
-      case hwdi_unix_dev_names:
-        hd->unix_dev_names = hd_split(' ', sl2->str);
-        break;
-
-      case hwdi_drivers:
-        hd->drivers = hd_split('|', sl2->str);
-        break;
-
-      case hwdi_sysfs_id:
-        hd->sysfs_id = new_str(sl2->str);
-        break;
-
-      case hwdi_sysfs_busid:
-        hd->sysfs_bus_id = new_str(sl2->str);
-        break;
-
-      case hwdi_sysfs_link:
-        hd->sysfs_device_link = new_str(sl2->str);
-        break;
-
-      case hwdi_rom_id:
-        hd->rom_id = new_str(sl2->str);
-        break;
-
-      case hwdi_broken:
-        hd->broken = strtoul(sl2->str, NULL, 0);
-        break;
-
-      case hwdi_usb_guid:
-        hd->usb_guid = new_str(sl2->str);
-        break;
-
-      case hwdi_hotplug:
-        hd->hotplug = strtol(sl2->str, NULL, 0);
-        break;
-
-      case hwdi_class_list:
-        for(
-          u0 = 0, s = sl2->str;
-          u0 < sizeof hd->hw_class_list / sizeof *hd->hw_class_list;
-          u0++
-        ) {
-          if(*s && s[1] && (i = hex(s, 2)) >= 0) {
-            hd->hw_class_list[u0] = i;
-            s += 2;
-          }
-          else {
-            break;
-          }
-        }
-        break;
-
-      case hwdi_res_mem:
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->any.type = res_mem;
-        if(sscanf(sl2->str, "0x%"SCNx64",0x%"SCNx64",%u,%u,%u", &u64_0, &u64_1, &u0, &u1, &u2) == 5) {
-          res->mem.base = u64_0;
-          res->mem.range = u64_1;
-          res->mem.enabled = u0;
-          res->mem.access = u1;
-          res->mem.prefetch = u2;
-        }
-        break;
-
-      case hwdi_res_phys_mem:
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->any.type = res_phys_mem;
-        if(sscanf(sl2->str, "0x%"SCNx64"", &u64_0) == 1) {
-          res->phys_mem.range = u64_0;
-        }
-        break;
-
-      case hwdi_res_io:
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->any.type = res_io;
-        if(sscanf(sl2->str, "0x%"SCNx64",0x%"SCNx64",%u,%u", &u64_0, &u64_1, &u0, &u1) == 4) {
-          res->io.base = u64_0;
-          res->io.range = u64_1;
-          res->io.enabled = u0;
-          res->io.access = u1;
-        }
-        break;
-
-      case hwdi_res_irq:
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->any.type = res_irq;
-        if(sscanf(sl2->str, "%u,%u,%u", &u0, &u1, &u2) == 3) {
-          res->irq.base = u0;
-          res->irq.triggered = u1;
-          res->irq.enabled = u2;
-        }
-        break;
-
-      case hwdi_res_dma:
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->any.type = res_dma;
-        if(sscanf(sl2->str, "%u,%u", &u0, &u1) == 2) {
-          res->dma.base = u0;
-          res->dma.enabled = u1;
-        }
-        break;
-
-      case hwdi_res_size:
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->any.type = res_size;
-        if(sscanf(sl2->str, "%u,%u,%u", &u0, &u1, &u2) == 3) {
-          res->size.unit = u0;
-          res->size.val1 = u1;
-          res->size.val2 = u2;
-        }
-        break;
-
-      case hwdi_res_baud:
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->any.type = res_baud;
-        if(sscanf(sl2->str, "%u,%u,%u,%u,%u", &u0, &u1, &u2, &u3, &u4) == 5) {
-          res->baud.speed = u0;
-          res->baud.bits = u1;
-          res->baud.stopbits = u2;
-          res->baud.parity = (char) u3;
-          res->baud.handshake = (char) u4;
-        }
-        break;
-
-      case hwdi_res_cache:
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->any.type = res_cache;
-        if(sscanf(sl2->str, "%u", &u0) == 1) {
-          res->cache.size = u0;
-        }
-        break;
-
-      case hwdi_res_disk_geo:
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->any.type = res_disk_geo;
-        if(sscanf(sl2->str, "%u,%u,%u,%u", &u0, &u1, &u2, &u3) == 4) {
-          res->disk_geo.cyls = u0;
-          res->disk_geo.heads = u1;
-          res->disk_geo.sectors = u2;
-          res->disk_geo.geotype = u3;
-        }
-        break;
-
-      case hwdi_res_monitor:
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->any.type = res_monitor;
-        if(sscanf(sl2->str, "%u,%u,%u,%u", &u0, &u1, &u2, &u3) == 4) {
-          res->monitor.width = u0;
-          res->monitor.height = u1;
-          res->monitor.vfreq = u2;
-          res->monitor.interlaced = u3;
-        }
-        break;
-
-      case hwdi_res_framebuffer:
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->any.type = res_framebuffer;
-        if(sscanf(sl2->str, "%u,%u,%u,%u,%u", &u0, &u1, &u2, &u3, &u4) == 5) {
-          res->framebuffer.width = u0;
-          res->framebuffer.height = u1;
-          res->framebuffer.bytes_p_line = u2;
-          res->framebuffer.colorbits = u3;
-          res->framebuffer.mode = u4;
-        }
-        break;
-
-      case hwdi_features:
-        u0 = strtoul(sl2->str, NULL, 0);
-        if(u0 & (1 << 0)) hd->is.agp = 1;
-        if(u0 & (1 << 1)) hd->is.isapnp = 1;
-        if(u0 & (1 << 2)) hd->is.softraiddisk = 1;
-        if(u0 & (1 << 3)) hd->is.zip = 1;
-        if(u0 & (1 << 4)) hd->is.cdr = 1;
-        if(u0 & (1 << 5)) hd->is.cdrw = 1;
-        if(u0 & (1 << 6)) hd->is.dvd = 1;
-        if(u0 & (1 << 7)) hd->is.dvdr = 1;
-        if(u0 & (1 << 8)) hd->is.dvdram = 1;
-        if(u0 & (1 << 9)) hd->is.pppoe = 1;
-        if(u0 & (1 << 10)) hd->is.wlan = 1;
-        break;
-    }
-  }
-
-  if(hd->device.id || hd->vendor.id) {
-    tag = ID_TAG(hd->device.id);
-    tag = tag ? tag : ID_TAG(hd->vendor.id);
-    tag = tag ? tag : TAG_PCI;
-    hd->device.id = MAKE_ID(tag, ID_VALUE(hd->device.id));
-    hd->vendor.id = MAKE_ID(tag, ID_VALUE(hd->vendor.id));
-  }
-
-  if(hd->sub_device.id || hd->sub_vendor.id) {
-    tag = ID_TAG(hd->sub_device.id);
-    tag = tag ? tag : ID_TAG(hd->sub_vendor.id);
-    tag = tag ? tag : TAG_PCI;
-    hd->sub_device.id = MAKE_ID(tag, ID_VALUE(hd->sub_device.id));
-    hd->sub_vendor.id = MAKE_ID(tag, ID_VALUE(hd->sub_vendor.id));
-  }
-
-  if(hd->compat_device.id || hd->compat_vendor.id) {
-    tag = ID_TAG(hd->compat_device.id);
-    tag = tag ? tag : ID_TAG(hd->compat_vendor.id);
-    tag = tag ? tag : TAG_PCI;
-    hd->compat_device.id = MAKE_ID(tag, ID_VALUE(hd->compat_device.id));
-    hd->compat_vendor.id = MAKE_ID(tag, ID_VALUE(hd->compat_vendor.id));
-  }
-
-  if(hd->status.available == status_unknown) hd->is.manual = 1;
-
-  /* create some entries, if missing */
-
-  if(!hd->device.id && !hd->vendor.id && !hd->device.name) {
-    hd->device.name = new_str(hd->model);
-  }
-
-  if(hd->hw_class && !hd->base_class.id) {
-    switch(hd->hw_class) {
-      case hw_cdrom:
-        hd->base_class.id = bc_storage_device;
-        hd->sub_class.id = sc_sdev_cdrom;
-        break;
-
-      case hw_mouse:
-        hd->base_class.id = bc_mouse;
-        hd->sub_class.id = sc_mou_other;
-        break;
-
-      default:
-       break;
-    }
-  }
-
-  hddb_add_info(hd_data, hd);
-}
-
-
-void hd2manual(hd_t *hd, hd_manual_t *entry)
-{
-  char *s, *t;
-  hd_res_t *res;
-  str_list_t *sl;
-  unsigned u;
-
-  if(!hd || !entry) return;
-
-  entry->unique_id = new_str(hd->unique_id);
-  entry->parent_id = new_str(hd->parent_id);
-  entry->child_ids = hd_join(",", hd->child_ids);
-  entry->model = new_str(hd->model);
-  entry->hw_class = hd->hw_class;
-
-  entry->config_string = new_str(hd->config_string);
-
-  entry->status = hd->status;
-
-  if(
-    !entry->status.configured &&
-    !entry->status.available &&
-    !entry->status.needed &&
-    !entry->status.active &&
-    !entry->status.invalid
-  ) {
-    entry->status.configured = status_new;
-    entry->status.available = hd->module == mod_manual ? status_unknown : status_yes;
-    entry->status.needed = status_no;
-    entry->status.active = status_unknown;
-  }
-
-  s = NULL;
-
-  if(hd->broken) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_broken));
-    str_printf(&s, 0, "0x%x", hd->broken);
-    add_str_list(&entry->value, s);
-  }
-
-  if(hd->bus.id) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_bus));
-    str_printf(&s, 0, "0x%x", hd->bus.id);
-    add_str_list(&entry->value, s);
-  }
-
-  if(hd->slot) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_slot));
-    str_printf(&s, 0, "0x%x", hd->slot);
-    add_str_list(&entry->value, s);
-  }
-
-  if(hd->func) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_func));
-    str_printf(&s, 0, "0x%x", hd->func);
-    add_str_list(&entry->value, s);
-  }
-
-  if(hd->base_class.id) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_base_class));
-    str_printf(&s, 0, "0x%x", hd->base_class.id);
-    add_str_list(&entry->value, s);
-  }
-
-  if(hd->sub_class.id) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_sub_class));
-    str_printf(&s, 0, "0x%x", hd->sub_class.id);
-    add_str_list(&entry->value, s);
-  }
-
-  if(hd->prog_if.id) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_prog_if));
-    str_printf(&s, 0, "0x%x", hd->prog_if.id);
-    add_str_list(&entry->value, s);
-  }
-
-  if(hd->device.id || hd->vendor.id) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_vend));
-    add_str_list(&entry->value, vend_id2str(hd->vendor.id));
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_dev));
-    str_printf(&s, 0, "%04x", ID_VALUE(hd->device.id));
-    add_str_list(&entry->value, s);
-  }
-
-  if(hd->sub_device.id || hd->sub_vendor.id) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_sub_vend));
-    add_str_list(&entry->value, vend_id2str(hd->sub_vendor.id));
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_sub_dev));
-    str_printf(&s, 0, "%04x", ID_VALUE(hd->sub_device.id));
-    add_str_list(&entry->value, s);
-  }
-
-  if(hd->revision.id) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_rev));
-    str_printf(&s, 0, "0x%x", hd->revision.id);
-    add_str_list(&entry->value, s);
-  }
-
-  if(hd->compat_device.id || hd->compat_vendor.id) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_compat_vend));
-    add_str_list(&entry->value, vend_id2str(hd->compat_vendor.id));
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_compat_dev));
-    str_printf(&s, 0, "%04x", ID_VALUE(hd->compat_device.id));
-    add_str_list(&entry->value, s);
-  }
-
-  if(hd->device.name) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_dev_name));
-    add_str_list(&entry->value, hd->device.name);
-  }
-
-  if(hd->vendor.name) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_vend_name));
-    add_str_list(&entry->value, hd->vendor.name);
-  }
-
-  if(hd->sub_device.name) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_sub_dev_name));
-    add_str_list(&entry->value, hd->sub_device.name);
-  }
-
-  if(hd->sub_vendor.name) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_sub_vend_name));
-    add_str_list(&entry->value, hd->sub_vendor.name);
-  }
-
-  if(hd->revision.name) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_rev_name));
-    add_str_list(&entry->value, hd->revision.name);
-  }
-
-  if(hd->serial) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_serial));
-    add_str_list(&entry->value, hd->serial);
-  }
-
-  if(hd->unix_dev_name) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_unix_dev_name));
-    add_str_list(&entry->value, hd->unix_dev_name);
-  }
-
-  if(hd->unix_dev_name2) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_unix_dev_name2));
-    add_str_list(&entry->value, hd->unix_dev_name2);
-  }
-
-  if(hd->unix_dev_names) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_unix_dev_names));
-    s = free_mem(s);
-    s = hd_join(" ", hd->unix_dev_names);
-    add_str_list(&entry->value, s);
-  }
-
-  if(hd->drivers) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_drivers));
-    s = free_mem(s);
-    s = hd_join("|", hd->drivers);
-    add_str_list(&entry->value, s);
-  }
-
-  if(hd->sysfs_id) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_sysfs_id));
-    add_str_list(&entry->value, hd->sysfs_id);
-  }
-
-  if(hd->sysfs_bus_id) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_sysfs_busid));
-    add_str_list(&entry->value, hd->sysfs_bus_id);
-  }
-
-  if(hd->sysfs_device_link) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_sysfs_link));
-    add_str_list(&entry->value, hd->sysfs_device_link);
-  }
-
-  if(hd->rom_id) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_rom_id));
-    add_str_list(&entry->value, hd->rom_id);
-  }
-
-  if(hd->usb_guid) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_usb_guid));
-    add_str_list(&entry->value, hd->usb_guid);
-  }
-
-  if(hd->hotplug) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_hotplug));
-    str_printf(&s, 0, "%d", hd->hotplug);
-    add_str_list(&entry->value, s);
-  }
-
-  s = free_mem(s);
-  for(u = 0; u < sizeof hd->hw_class_list / sizeof *hd->hw_class_list; u++) {
-    str_printf(&s, -1, "%02x", hd->hw_class_list[u]);
-  }
-  add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_class_list));
-  add_str_list(&entry->value, s);
-
-  u = 0;
-  if(hd->is.agp)          u |= 1 << 0;
-  if(hd->is.isapnp)       u |= 1 << 1;
-  if(hd->is.softraiddisk) u |= 1 << 2;
-  if(hd->is.zip)          u |= 1 << 3;
-  if(hd->is.cdr)          u |= 1 << 4;
-  if(hd->is.cdrw)         u |= 1 << 5;
-  if(hd->is.dvd)          u |= 1 << 6;
-  if(hd->is.dvdr)         u |= 1 << 7;
-  if(hd->is.dvdram)       u |= 1 << 8;
-  if(hd->is.pppoe)        u |= 1 << 9;
-  if(hd->is.wlan)         u |= 1 << 10;
-  
-  if(u) {
-    add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_features));
-    str_printf(&s, 0, "0x%x", u);
-    add_str_list(&entry->value, s);
-  }
-
-  for(res = hd->res; res; res = res->next) {
-    sl = NULL;
-    switch(res->any.type) {
-      case res_mem:
-        add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_res_mem));
-        str_printf(&s, 0, "0x%"PRIx64"", res->mem.base);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "0x%"PRIx64"", res->mem.range);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->mem.enabled);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->mem.access);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->mem.prefetch);
-        add_str_list(&sl, s);
-        break;
-
-      case res_phys_mem:
-        add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_res_phys_mem));
-        str_printf(&s, 0, "0x%"PRIx64"", res->phys_mem.range);
-        add_str_list(&sl, s);
-        break;
-
-      case res_io:
-        add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_res_io));
-        str_printf(&s, 0, "0x%"PRIx64"", res->io.base);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "0x%"PRIx64"", res->io.range);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->io.enabled);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->io.access);
-        add_str_list(&sl, s);
-        break;
-
-      case res_irq:
-        add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_res_irq));
-        str_printf(&s, 0, "%u", res->irq.base);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->irq.triggered);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->irq.enabled);
-        add_str_list(&sl, s);
-        break;
-
-      case res_dma:
-        add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_res_dma));
-        str_printf(&s, 0, "%u", res->dma.base);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->dma.enabled);
-        add_str_list(&sl, s);
-        break;
-
-      case res_size:
-        add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_res_size));
-        str_printf(&s, 0, "%u", res->size.unit);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%"PRIu64, res->size.val1);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%"PRIu64, res->size.val2);
-        add_str_list(&sl, s);
-        break;
-
-      case res_baud:
-        add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_res_baud));
-        str_printf(&s, 0, "%u", res->baud.speed);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->baud.bits);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->baud.stopbits);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "0x%02x", (unsigned) res->baud.parity);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "0x%02x", (unsigned) res->baud.handshake);
-        add_str_list(&sl, s);
-        break;
-
-      case res_cache:
-        add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_res_cache));
-        str_printf(&s, 0, "%u", res->cache.size);
-        add_str_list(&sl, s);
-        break;
-
-      case res_disk_geo:
-        add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_res_disk_geo));
-        str_printf(&s, 0, "%u", res->disk_geo.cyls);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->disk_geo.heads);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->disk_geo.sectors);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->disk_geo.geotype);
-        add_str_list(&sl, s);
-        break;
-
-      case res_monitor:
-        add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_res_monitor));
-        str_printf(&s, 0, "%u", res->monitor.width);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->monitor.height);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->monitor.vfreq);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->monitor.interlaced);
-        add_str_list(&sl, s);
-        break;
-
-      case res_framebuffer:
-        add_str_list(&entry->key, key2value(hw_ids_hd_items, hwdi_res_framebuffer));
-        str_printf(&s, 0, "%u", res->framebuffer.width);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->framebuffer.height);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->framebuffer.bytes_p_line);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->framebuffer.colorbits);
-        add_str_list(&sl, s);
-        str_printf(&s, 0, "%u", res->framebuffer.mode);
-        add_str_list(&sl, s);
-        break;
-
-      default:
-        break;
-    }
-    /* keep entry->key & entry->value symmetrical! */
-    if(sl) {
-      t = hd_join(",", sl);
-      add_str_list(&entry->value, t);
-      free_mem(t);
-      free_str_list(sl);
-    }
-  }
-
-  free_mem(s);
-}
-
-
-hd_t *hd_read_config(hd_data_t *hd_data, const char *id)
-{
-  hd_t *hd = NULL;
-  hd_manual_t *entry;
-
-  hddb_init(hd_data);
-
-  entry = hd_manual_read_entry(hd_data, id);
-
-  if(entry) {
-    hd = new_mem(sizeof *hd);
-    hd->module = hd_data->module;
-    hd->line = __LINE__;
-    hd->tag.freeit = 1;                /* make it a 'stand alone' entry */
-    manual2hd(hd_data, entry, hd);
-    hd_free_manual(entry);
-  }
-
-  return hd;
-}
-
-
-int hd_write_config(hd_data_t *hd_data, hd_t *hd)
-{
-  int err = 0;
-  hd_manual_t *entry;
-
-  if(!hd_report_this(hd_data, hd)) return 0;
-
-  entry = new_mem(sizeof *entry);
-
-  hd2manual(hd, entry);
-
-  err = entry->unique_id ? hd_manual_write_entry(hd_data, entry) : 5;
-
-  hd_free_manual(entry);
-
-  return err;
-}
-
-
-#endif /* LIBHD_TINY */
-
diff --git a/src/hwinfo/src/hd/manual.h b/src/hwinfo/src/hd/manual.h
deleted file mode 100644 (file)
index a08e642..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-void hd_scan_manual(hd_data_t *hd_data);
-void hd_scan_manual2(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/memory.c b/src/hwinfo/src/hd/memory.c
deleted file mode 100644 (file)
index d2f3948..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/stat.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "memory.h"
-#include "klog.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * memory stuff
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-uint64_t kcore_mem(hd_data_t *hd_data);
-uint64_t klog_mem(hd_data_t *hd_data, uint64_t *alt);
-uint64_t klog_mem2(hd_data_t *hd_data);
-uint64_t meminfo_mem(hd_data_t *hd_data);
-
-void hd_scan_memory(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  uint64_t kcore, klog, klog_alt, klog2, meminfo, msize0, msize1, u;
-  hd_res_t *res;
-  int i;
-  int exact;
-
-  if(!hd_probe_feature(hd_data, pr_memory)) return;
-
-  hd_data->module = mod_memory;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "main memory size");
-
-  kcore = kcore_mem(hd_data);
-  klog = klog_mem(hd_data, &klog_alt);
-  klog2 = klog_mem2(hd_data);
-  if(klog2 > klog) klog = klog2;
-  meminfo = meminfo_mem(hd_data);
-
-  msize0 = meminfo > klog ? meminfo : klog;
-  if(!msize0) msize0 = kcore;
-
-  exact = 0;
-  if(msize0 && kcore >= msize0 && ((kcore - msize0) << 4) / msize0 == 0) {
-    /* trust kcore value if it's approx. msize0 */
-    msize0 = kcore;
-    exact = 1;
-  }
-  msize1 = msize0;
-  if(meminfo > msize1) { msize1 = meminfo; exact = 0; }
-  if(klog_alt > msize0) msize0 = klog_alt;
-
-  hd = add_hd_entry(hd_data, __LINE__, 0);
-  hd->base_class.id = bc_internal;
-  hd->sub_class.id = sc_int_main_mem;
-
-  res = add_res_entry(&hd->res, new_mem(sizeof *res));
-  res->mem.type = res_mem;
-  res->mem.range = msize0;
-  res->mem.access = acc_rw;
-  res->mem.enabled = 1;
-
-  /* round it somewhat */
-  for(i = 0, u = msize1; u; i++) {
-    u >>= 1;
-  }
-  if(i > 10) { /* We *do* have at least 1k memory, do we? */
-    msize1 >>= i - (exact ? 8 : 5);
-    msize1++;
-    msize1 >>= 1;
-    msize1 <<= i - (exact ? 7 : 4);
-  }
-
-  res = add_res_entry(&hd->res, new_mem(sizeof *res));
-  res->phys_mem.type = res_phys_mem;
-  res->phys_mem.range = msize1;
-}
-
-uint64_t kcore_mem(hd_data_t *hd_data)
-{
-  uint64_t u = 0;
-  size_t ps = getpagesize();
-  struct stat sb;
-
-  if(!stat(PROC_KCORE, &sb)) {
-    u = sb.st_size;
-    if(u > ps) u -= ps;
-
-#if 0
-    /* we'll assume no mem modules with less than 256k */
-    u += 1 << 17;
-    u &= -1 << 18;
-#endif
-  }
-
-  ADD2LOG("  kcore mem:  0x%"PRIx64"\n", u);
-
-  return u;
-}
-
-
-uint64_t klog_mem(hd_data_t *hd_data, uint64_t *alt)
-{
-  uint64_t u = 0, u0, u1, u2, u3, mem0 = 0, mem1 = 0;
-  str_list_t *sl;
-  char *s;
-  int i;
-
-  if(!hd_data->klog) read_klog(hd_data);
-
-  for(sl = hd_data->klog; sl; sl = sl->next) {
-    if(strstr(sl->str, "<6>Memory: ") == sl->str) {
-      if(sscanf(sl->str, "<6>Memory: %"SCNu64"k/%"SCNu64"k", &u0, &u1) == 2) {
-        mem0 = u1 << 10;
-      }
-      if(
-        (i = sscanf(sl->str, "<6>Memory: %"SCNu64"k available (%"SCNu64"k kernel code, %"SCNu64"k data, %"SCNu64"k", &u0, &u1, &u2, &u3))  == 4 || i == 1
-      ) {
-        mem0 = (i == 1 ? u0 : u0 + u1 + u2 + u3) << 10;
-      }
-      if(
-        (s = strstr(sl->str, "[")) &&
-        sscanf(s, "[%"SCNx64",%"SCNx64"]", &u0, &u1) == 2 &&
-        u1 > u0
-      ) {
-        mem1 = u1 - u0;
-      }
-      break;
-    }
-  }
-
-  u = mem0 ? mem0 : mem1;
-
-#if 0
-  /* round it somewhat */
-  for(i = 0, u0 = u; u0; i++) {
-    u0 >>= 1;
-  }
-  if(i > 10) { /* We *do* have at least 1k memory, do we? */
-    u >>= i - 6;
-    u++;
-    u >>= 1;
-    u <<= i - 5;
-  }
-#endif
-
-  ADD2LOG("  klog mem 0: 0x%"PRIx64"\n", mem0);
-  ADD2LOG("  klog mem 1: 0x%"PRIx64"\n", mem1);
-  ADD2LOG("  klog mem:   0x%"PRIx64"\n", u);
-
-  *alt = mem1;
-
-  return u;
-}
-
-uint64_t klog_mem2(hd_data_t *hd_data)
-{
-  uint64_t u0, u1, mem = 0;
-  str_list_t *sl;
-  char buf[64];
-
-  if(!hd_data->klog) read_klog(hd_data);
-
-  for(sl = hd_data->klog; sl; sl = sl->next) {
-    if(strstr(sl->str, "<6>BIOS-provided physical RAM map:") == sl->str) {
-      for(sl = sl->next ; sl; sl = sl->next) {
-        ADD2LOG(" -- %s", sl->str);
-        if(sscanf(sl->str, "<4> BIOS-e820: %"SCNx64" - %"SCNx64" (%63s", &u0, &u1, buf) != 3) break;
-        if(strcmp(buf, "usable)")) continue;
-        if(u1 < u0) break;
-        mem += u1 - u0;
-      }
-      break;
-    }
-  }
-
-  ADD2LOG("  bios mem:   0x%"PRIx64"\n", mem);
-
-  return mem;
-}
-
-uint64_t meminfo_mem(hd_data_t *hd_data)
-{
-  uint64_t u = 0, u0;
-  str_list_t *sl;
-
-  sl = read_file(PROC_MEMINFO, 0, 1);
-
-  if(sl && sscanf(sl->str, "MemTotal: %"SCNu64"", &u0) == 1) {
-    u = u0 << 10;
-  }
-
-  free_str_list(sl);
-
-  ADD2LOG("  meminfo:    0x%"PRIx64"\n", u);
-
-  return u;
-}
-
-
diff --git a/src/hwinfo/src/hd/memory.h b/src/hwinfo/src/hd/memory.h
deleted file mode 100644 (file)
index f76aa78..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_memory(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/misc.c b/src/hwinfo/src/hd/misc.c
deleted file mode 100644 (file)
index 1780ccd..0000000
+++ /dev/null
@@ -1,742 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-
-#include <linux/hdreg.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "misc.h"
-#include "klog.h"
-
-static void read_ioports(misc_t *m);
-static void read_dmas(misc_t *m);
-static void read_irqs(misc_t *m);
-static int active_vga_card(hd_t *);
-
-static void dump_misc_proc_data(hd_data_t *hd_data);
-static void dump_misc_data(hd_data_t *hd_data);
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * misc info
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-void hd_scan_misc(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  hd_res_t *res;
-  int fd, i;
-  char *s = NULL;
-  bios_info_t *bt = NULL;
-  char par[] = "parport0";
-  int fd_ser0, fd_ser1;
-
-  if(!hd_probe_feature(hd_data, pr_misc)) return;
-
-  hd_data->module = mod_misc;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-  hd_data->misc = free_misc(hd_data->misc);
-
-  PROGRESS(9, 0, "kernel log");
-  read_klog(hd_data);
-  if((hd_data->debug & HD_DEB_MISC)) dump_klog(hd_data);
-
-  PROGRESS(1, 0, "misc data");
-  hd_data->misc = new_mem(sizeof *hd_data->misc);
-
-  /* this is enough to load the module */
-  fd_ser0 = fd_ser1 = -1;
-
-#if !defined(__sparc__)
-  /* On sparc, the close needs too long */
-  if(hd_probe_feature(hd_data, pr_misc_serial)) {
-    PROGRESS(1, 1, "open serial");
-    fd_ser0 = open("/dev/ttyS0", O_RDONLY | O_NONBLOCK);
-    fd_ser1 = open("/dev/ttyS1", O_RDONLY | O_NONBLOCK);
-    /* keep the devices open until the resources have been read */
-  }
-#endif
-
-  /* this is enough to load the module */
-  if(!hd_data->flags.no_parport && hd_probe_feature(hd_data, pr_misc_par)) {
-    PROGRESS(1, 2, "open parallel");
-    /* what can the BIOS tell us? */
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(
-        hd->base_class.id == bc_internal &&
-        hd->sub_class.id == sc_int_bios &&
-        hd->detail &&
-        hd->detail->type == hd_detail_bios &&
-        hd->detail->bios.data
-      ) break;
-    }
-    if(hd) {
-      bt = hd->detail->bios.data;
-      if(bt->par_port0) {
-        str_printf(&s, 0, "io=0x%x", bt->par_port0);
-        if(bt->par_port1) {
-          str_printf(&s, -1, ",0x%x", bt->par_port1);
-          if(bt->par_port2) str_printf(&s, -1, ",0x%x", bt->par_port2);
-        }
-       str_printf(&s, -1, " irq=none,none,none");
-      }
-      unload_module(hd_data, "parport_probe");
-      unload_module(hd_data, "lp");
-      unload_module(hd_data, "parport_pc");
-      unload_module(hd_data, "parport");
-
-      /* now load it with the right io */
-      load_module(hd_data, "parport");
-      load_module_with_params(hd_data, "parport_pc", s);
-      free_mem(s);
-    }
-    /* now load the rest of the modules */
-    fd = open("/dev/lp0", O_RDONLY | O_NONBLOCK);
-    if(fd >= 0) close(fd);
-  }
-
-  /*
-   * floppy driver resources are allocated only temporarily,
-   * so we access it just before we read the resources
-   */
-  if(hd_probe_feature(hd_data, pr_misc_floppy)) {
-    /* look for a floppy *device* entry... */
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(
-        hd->base_class.id == bc_storage_device &&
-        hd->sub_class.id == sc_sdev_floppy &&
-        hd->unix_dev_name &&
-        !strncmp(hd->unix_dev_name, "/dev/fd", sizeof "/dev/fd" - 1)
-      ) {
-
-        PROGRESS(1, 3, "read floppy");
-        i = 5;
-        hd->block0 = read_block0(hd_data, hd->unix_dev_name, &i);
-        hd->is.notready = hd->block0 ? 0 : 1;
-        if(i < 0) {
-          hd->tag.remove = 1;
-          ADD2LOG("misc.floppy: removing floppy entry %u (timed out)\n", hd->idx);
-        }
-
-        if(!hd->is.notready) {
-          struct hd_geometry geo;
-          int fd;
-          unsigned size, blk_size = 0x200;
-
-          fd = open(hd->unix_dev_name, O_RDONLY | O_NONBLOCK);
-          if(fd >= 0) {
-            if(!ioctl(fd, HDIO_GETGEO, &geo)) {
-              ADD2LOG("floppy ioctl(geo) ok\n");
-              res = add_res_entry(&hd->res, new_mem(sizeof *res));
-              res->disk_geo.type = res_disk_geo;
-              res->disk_geo.cyls = geo.cylinders;
-              res->disk_geo.heads = geo.heads;
-              res->disk_geo.sectors = geo.sectors;
-              res->disk_geo.geotype = geo_logical;
-              size = geo.cylinders * geo.heads * geo.sectors;
-              for(res = hd->res; res; res = res->next) {
-                if(res->any.type == res_size && res->size.unit == size_unit_sectors) {
-                  res->size.val1 = size; res->size.val2 = blk_size;
-                  break;
-                }
-              }
-              if(!res) {
-                res = add_res_entry(&hd->res, new_mem(sizeof *res));
-                res->size.type = res_size;
-                res->size.unit = size_unit_sectors;
-                res->size.val1 = size; res->size.val2 = blk_size;
-              }
-            }
-            close(fd);
-          }
-        }
-
-        break;
-      }
-    }
-    remove_tagged_hd_entries(hd_data);
-  }
-
-  PROGRESS(2, 1, "io");
-  read_ioports(hd_data->misc);
-
-  PROGRESS(2, 2, "dma");
-  read_dmas(hd_data->misc);
-
-  PROGRESS(2, 3, "irq");
-  read_irqs(hd_data->misc);
-
-  if((hd_data->debug & HD_DEB_MISC)) dump_misc_proc_data(hd_data);
-
-  if(fd_ser0 >= 0) close(fd_ser0);
-  if(fd_ser1 >= 0) close(fd_ser1);
-
-  /* now create some system generic entries */
-
-  /* FPU */
-  PROGRESS(3, 0, "FPU");
-  res = NULL;
-  gather_resources(hd_data->misc, &res, "fpu", 0);
-  if(res) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->base_class.id = bc_internal;
-    hd->sub_class.id = sc_int_fpu;
-    hd->res = res;
-  }
-
-  /* DMA */
-  PROGRESS(3, 1, "DMA");
-  res = NULL;
-  gather_resources(hd_data->misc, &res, "dma1", 0);
-  gather_resources(hd_data->misc, &res, "dma2", 0);
-  gather_resources(hd_data->misc, &res, "dma page reg", 0);
-  gather_resources(hd_data->misc, &res, "cascade", W_DMA);
-  if(res) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->base_class.id = bc_system;
-    hd->sub_class.id = sc_sys_dma;
-    hd->res = res;
-  }
-
-  /* PIC */
-  PROGRESS(3, 2, "PIC");
-  res = NULL;
-  gather_resources(hd_data->misc, &res, "pic1", 0);
-  gather_resources(hd_data->misc, &res, "pic2", 0);
-  gather_resources(hd_data->misc, &res, "cascade", W_IRQ);
-  if(res) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->base_class.id = bc_system;
-    hd->sub_class.id = sc_sys_pic;
-    hd->res = res;
-  }
-
-  /* timer */
-  PROGRESS(3, 3, "timer");
-  res = NULL;
-  gather_resources(hd_data->misc, &res, "timer", 0);
-  if(res) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->base_class.id = bc_system;
-    hd->sub_class.id = sc_sys_timer;
-    hd->res = res;
-  }
-
-  /* real time clock */
-  PROGRESS(3, 4, "RTC");
-  res = NULL;
-  gather_resources(hd_data->misc, &res, "rtc", 0);
-  if(res) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->base_class.id = bc_system;
-    hd->sub_class.id = sc_sys_rtc;
-    hd->res = res;
-  }
-
-  /* keyboard */
-  res = NULL;
-  gather_resources(hd_data->misc, &res, "keyboard", 0);
-  if(res) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->base_class.id = bc_input;
-    hd->sub_class.id = sc_inp_keyb;
-    hd->res = res;
-  }
-
-  /* parallel ports */
-  for(i = 0; i < 1; i++, par[sizeof par - 2]++) {
-    res = NULL;
-    gather_resources(hd_data->misc, &res, par, 0);
-    if(res) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_comm;
-      hd->sub_class.id = sc_com_par;
-      str_printf(&hd->unix_dev_name, 0, "/dev/lp%d", i);
-      hd->res = res;
-    }
-  }
-
-  /* floppy controller */
-  res = NULL;
-  gather_resources(hd_data->misc, &res, "floppy", 0);
-  gather_resources(hd_data->misc, &res, "floppy DIR", 0);
-  if(res) {
-    /* look for an existing entry */
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(hd->base_class.id == bc_storage && hd->sub_class.id == sc_sto_floppy) break;
-    }
-
-    /* missing, so create one */
-    if(!hd) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_storage;
-      hd->sub_class.id = sc_sto_floppy;
-    }
-
-    hd->res = res;
-  }
-
-  /*
-   * look for PS/2 port
-   *
-   * The catch is, that sometimes /dev/psaux is accessible only for root,
-   * so the open() may fail but there are irq events registered.
-   *
-   */
-  fd = open(DEV_PSAUX, O_RDONLY | O_NONBLOCK);
-  if(fd >= 0) close(fd);
-
-  res = NULL;
-  gather_resources(hd_data->misc, &res, "PS/2 Mouse", 0);
-
-  if(res || fd >= 0) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->base_class.id = bc_ps2;
-
-    if(res) {
-      hd->res = res;
-    }
-  }
-}
-
-
-void hd_scan_misc2(hd_data_t *hd_data)
-{
-  hd_t *hd, *hd1;
-  misc_t *m;
-  hd_res_t *res, *res1, *res2;
-  int i;
-
-  if(!hd_probe_feature(hd_data, pr_misc)) return;
-
-  hd_data->module = mod_misc;
-
-  PROGRESS(5, 0, "misc data");
-
-  /* create some more system generic entries */
-
-  /* IDE */
-
-// ###### add special ide detail to hd_t!!!
-  res = NULL;
-  gather_resources(hd_data->misc, &res, "ide0", 0);
-  gather_resources(hd_data->misc, &res, "ide1", 0);
-  gather_resources(hd_data->misc, &res, "ide2", 0);
-  gather_resources(hd_data->misc, &res, "ide3", 0);
-  if(res) {
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(
-        hd->base_class.id == bc_storage &&
-        hd->sub_class.id == sc_sto_ide &&
-        have_common_res(hd->res, res)
-      ) break;
-    }
-    if(!hd) {
-      /* eg. non-PCI IDE controller */
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_storage;
-      hd->sub_class.id = sc_sto_ide;
-      /* use join_res to join the i/o ranges of ide0/1 */
-      join_res_io(&hd->res, res);
-      join_res_irq(&hd->res, res);
-      join_res_dma(&hd->res, res);
-      free_res_list(res);
-    }
-    else {
-      /* eg. PCI IDE controller, add resources */
-      join_res_io(&hd->res, res);
-      join_res_irq(&hd->res, res);
-      join_res_dma(&hd->res, res);
-      free_res_list(res);
-    }
-  }
-
-  /* VGA */
-  res = NULL;
-  gather_resources(hd_data->misc, &res, "vga+", 0);
-  gather_resources(hd_data->misc, &res, "vesafb", 0);
-  if(res) {
-    for(i = 0, hd1 = NULL, hd = hd_data->hd; hd; hd = hd->next) {
-      if(hd->base_class.id == bc_display && hd->sub_class.id == sc_dis_vga) {
-        i++;
-        hd1 = hd;
-      }
-    }
-    if(i == 0) {
-      /* non-PCI VGA card ??? - really, we shouldn't care... */
-      /* FIX THIS !!! ############### */
-#ifdef __alpha__
-      free_res_list(res);
-#else
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_display;
-      hd->sub_class.id = sc_dis_vga;
-      hd->res = res;
-#endif
-    }
-    else if(i == 1) {
-      /* 1 PCI vga card, add resources */
-      join_res_io(&hd1->res, res);
-      join_res_irq(&hd1->res, res);
-      join_res_dma(&hd1->res, res);
-      free_res_list(res);
-      hd_data->display = hd1->idx;
-    }
-    else {
-      /* more than 1: look again, now only 'active' cards */
-      for(i = 0, hd1 = NULL, hd = hd_data->hd; hd; hd = hd->next) {
-        if(
-          hd->base_class.id == bc_display &&
-          hd->sub_class.id == sc_dis_vga &&
-          active_vga_card(hd)
-        ) {
-          i++;
-          hd1 = hd;
-        }
-      }
-      if(i == 1) {
-        /* 'the' active PCI vga card, add resources */
-        join_res_io(&hd1->res, res);
-        join_res_irq(&hd1->res, res);
-        join_res_dma(&hd1->res, res);
-        hd_data->display = hd1->idx;
-      }
-      else {
-       /* now, what??? */
-       ADD2LOG("Oopy, could not figure out *the* active display adapter!\n");
-      }
-      free_res_list(res);
-    }
-  }
-
-  /* serial ports */
-  res = NULL;
-  gather_resources(hd_data->misc, &res, "serial(auto)", 0);
-  gather_resources(hd_data->misc, &res, "serial(set)", 0);
-  gather_resources(hd_data->misc, &res, "serial", 0);
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->base_class.id == bc_comm && hd->sub_class.id == sc_com_ser) {
-      for(res1 = hd->res; res1; res1 = res1->next) {
-        for(res2 = res; res2; res2 = res2->next) {
-          if(res1->any.type == res2->any.type) {
-            switch(res1->any.type) {
-              case res_irq:
-                if(res1->irq.base == res2->irq.base) {
-                  res2->any.type = res_any;
-                }
-                break;
-              case res_io:
-                if(
-                  res1->io.base == res2->io.base &&
-                  (!res1->io.range || res1->io.range == res2->io.range)
-                ) {
-                  res1->io.range = res2->io.range;
-                  res2->any.type = res_any;
-                }
-                break;
-              default:         /* gcc -Wall */
-               break;
-            }
-          }
-        }
-      }
-    }
-  }
-
-  /* if any of the serial resources are unaccounted for, make an extra entry */
-  for(res2 = res; res2; res2 = res2->next) {
-    if(res2->any.type != res_any) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_comm;
-      hd->sub_class.id = sc_com_ser;
-      hd->prog_if.id = 0x80;
-      for(; res2; res2 = res2->next) {
-        if(res2->any.type != res_any) {
-          res1 = add_res_entry(&hd->res, new_mem(sizeof *res));
-          *res1 = *res2;
-          res1->next = NULL;
-        }
-      }
-      break;
-    }
-  }
-  free_res_list(res);
-
-  /* go through our list and assign event counts to irq entries */
-  m = hd_data->misc;
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    for(res = hd->res; res; res = res->next) {
-      if(res->irq.type == res_irq) {
-        for(i = 0; (unsigned) i < m->irq_len; i++) {
-          if(res->irq.base == m->irq[i].irq) {
-            res->irq.triggered = m->irq[i].events;
-            break;
-          }
-        }
-      }
-    }
-  }
-
-  /* look for entries with matching start address */
-  m = hd_data->misc;
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    for(res = hd->res; res; res = res->next) {
-      if(res->io.type == res_io) {
-        for(i = 0; (unsigned) i < m->io_len; i++) {
-          if(res->io.base == m->io[i].addr && res->io.range < m->io[i].size) {
-            res->io.range = m->io[i].size;
-            break;
-          }
-        }
-      }
-    }
-  }
-
-  if((hd_data->debug & HD_DEB_MISC)) dump_misc_data(hd_data);
-}
-
-
-/*
- * read /proc/ioports
- */
-void read_ioports(misc_t *m)
-{
-  char buf[100];
-  misc_io_t *r;
-  uint64_t u, v;
-  str_list_t *sl;
-
-  if(!(m->proc_io = read_file(PROC_IOPORTS, 0, 0))) return;
-
-  for(sl = m->proc_io; sl; sl = sl->next) {
-    if(sscanf(sl->str, " %"PRIx64" - %"PRIx64" : %99[^\n]", &u, &v, buf) == 3) {
-      m->io = add_mem(m->io, sizeof *m->io, m->io_len);
-      r = m->io + m->io_len++;
-      r->addr = u;
-      r->size = v >= u ? v - u + 1 : 0;
-      r->dev = new_str(buf);
-    }
-  }
-}
-
-/*
- * read /proc/dma
- */
-void read_dmas(misc_t *m)
-{
-  char buf[100];
-  misc_dma_t *d;
-  unsigned u;
-  str_list_t *sl;
-
-  if(!(m->proc_dma = read_file(PROC_DMA, 0, 0))) return;
-
-  for(sl = m->proc_dma; sl; sl = sl->next) {
-    if(sscanf(sl->str, " %u : %99[^\n]", &u, buf) == 2) {
-      m->dma = add_mem(m->dma, sizeof *m->dma, m->dma_len);
-      d = m->dma + m->dma_len++;
-      d->channel = u;
-      d->dev = new_str(buf);
-    }
-  }
-}
-
-
-/*
- * read /proc/interrupts
- *
- * This is somewhat more tricky, as the irq event counts are done separately
- * per cpu *and* there may be irq sharing.
- */
-void read_irqs(misc_t *m)
-{
-  char buf[100], buf2[100], *s;
-  misc_irq_t *ir;
-  int i, j;
-  unsigned u, v, k;
-  str_list_t *sl;
-
-  if(!(m->proc_irq = read_file(PROC_INTERRUPTS, 1, 0))) return;
-
-  for(sl = m->proc_irq; sl; sl = sl->next) {
-    /* irq */
-    i = 0;
-    if(sscanf(sl->str, " %u: %n", &u, &i) < 1) continue;
-    v = 0;
-    j = i;
-    /* add up all event counters */
-    while(j < (int) strlen(sl->str) && sscanf(sl->str + j, " %u %n", &k, &i) >= 1) {
-      if(!i) break;
-      v += k;
-      j += i;
-    }
-    /* device driver name string */
-#if defined(__PPC__)
-    if(
-      sscanf(sl->str + j, " %*s Edge %99[^\n]", buf) == 1 ||
-      sscanf(sl->str + j, " %*s Level %99[^\n]", buf) == 1 ||
-      sscanf(sl->str + j, " %*s %99[^\n]", buf) == 1
-    ) {
-#else
-#if defined(__alpha__) || defined(__sparc__)
-    if(sscanf(sl->str + j, " %99[^\n]", buf) == 1) {
-#else  /* __i386__ || __x86_64__ || __ia64__ */
-    if(sscanf(sl->str + j, " %*s %99[^\n]", buf) == 1) {
-#endif
-#endif
-      m->irq = add_mem(m->irq, sizeof *m->irq, m->irq_len);
-      ir = m->irq + m->irq_len++;
-      ir->irq = u;
-      ir->events = v;
-
-      /* split device driver names (separated by ',') */
-      s = buf;
-      while(*s && sscanf(s, " %99[^,] %n", buf2, &j) >= 1) {
-        ir->dev = add_mem(ir->dev, sizeof *ir->dev, ir->devs);
-        ir->dev[ir->devs++] = new_str(buf2);
-        s += j;
-        if(*s) s++;    /* skip ',' */
-      }
-    }
-  }
-}
-
-void gather_resources(misc_t *m, hd_res_t **r, char *name, unsigned which)
-{
-  int i, j;
-  hd_res_t *res;
-
-  if(!m) return;
-
-  if(!which) which = W_IO | W_DMA | W_IRQ;
-
-  if((which & W_IO)) for(i = 0; (unsigned) i < m->io_len; i++) {
-    if(!strcmp(name, m->io[i].dev)) {
-      res = add_res_entry(r, new_mem(sizeof **r));
-      res->io.type = res_io;
-      res->io.enabled = 1;
-      res->io.base = m->io[i].addr;
-      res->io.range = m->io[i].size;
-      res->io.access = acc_rw;
-      m->io[i].tag++;
-    }
-  }
-
-  if((which & W_DMA)) for(i = 0; (unsigned) i < m->dma_len; i++) {
-    if(!strcmp(name, m->dma[i].dev)) {
-      res = add_res_entry(r, new_mem(sizeof **r));
-      res->dma.type = res_dma;
-      res->dma.enabled = 1;
-      res->dma.base = m->dma[i].channel;
-      m->dma[i].tag++;
-    }
-  }
-
-  if((which & W_IRQ)) for(i = 0; (unsigned) i < m->irq_len; i++) {
-    for(j = 0; j <  m->irq[i].devs; j++) {
-      if(!strcmp(name, m->irq[i].dev[j])) {
-        res = add_res_entry(r, new_mem(sizeof **r));
-        res->irq.type = res_irq;
-        res->irq.enabled = 1;
-        res->irq.base = m->irq[i].irq;
-        res->irq.triggered = m->irq[i].events;
-        m->irq[i].tag++;
-      }
-    }
-  }
-}
-
-
-int active_vga_card(hd_t *hd)
-{
-  hd_res_t *res;
-
-  if(hd->bus.id != bus_pci) return 1;
-
-  for(res = hd->res; res; res = res->next) {
-    if(
-      (res->mem.type == res_mem && res->mem.enabled) ||
-      (res->io.type == res_io && res->io.enabled)
-    ) return 1;
-  }
-
-  return 0;
-}
-
-
-/*
- * Add some proc info to the global log.
- */
-void dump_misc_proc_data(hd_data_t *hd_data)
-{
-  str_list_t *sl;
-
-  ADD2LOG("----- /proc/ioports -----\n");
-  for(sl = hd_data->misc->proc_io; sl; sl = sl->next) {
-    ADD2LOG("  %s", sl->str);
-  }
-  ADD2LOG("----- /proc/ioports end -----\n");
-
-  ADD2LOG("----- /proc/interrupts -----\n");
-  for(sl = hd_data->misc->proc_irq; sl; sl = sl->next) {
-    ADD2LOG("  %s", sl->str);
-  }
-  ADD2LOG("----- /proc/interrupts end -----\n");
-
-  ADD2LOG("----- /proc/dma -----\n");
-  for(sl = hd_data->misc->proc_dma; sl; sl = sl->next) {
-    ADD2LOG("  %s", sl->str);
-  }
-  ADD2LOG("----- /proc/dma end -----\n");
-
-}
-
-
-/*
- * Add the resource usage to the global log.
- */
-void dump_misc_data(hd_data_t *hd_data)
-{
-  misc_t *m = hd_data->misc;
-  int i, j;
-
-  ADD2LOG("----- misc resources -----\n");
-
-  for(i = 0; (unsigned) i < m->io_len; i++) {
-    ADD2LOG(
-      "i/o:%u 0x%04"PRIx64" - 0x%04"PRIx64" (0x%02"PRIx64") \"%s\"\n",
-      m->io[i].tag,
-      m->io[i].addr, m->io[i].addr + m->io[i].size - 1,
-      m->io[i].size, m->io[i].dev
-    );
-  }
-
-  for(i = 0; (unsigned) i < m->irq_len; i++) {
-    ADD2LOG(
-      "irq:%u %2u (%9u)",
-      m->irq[i].tag, m->irq[i].irq, m->irq[i].events
-    );
-    for(j = 0; j <  m->irq[i].devs; j++) {
-      ADD2LOG(" \"%s\"", m->irq[i].dev[j]);
-    }
-    ADD2LOG("\n");
-  }
-
-  for(i = 0; (unsigned) i < m->dma_len; i++) {
-    ADD2LOG(
-      "dma:%u %u \"%s\"\n",
-      m->dma[i].tag, m->dma[i].channel, m->dma[i].dev
-    );
-  }
-
-  ADD2LOG("----- misc resources end -----\n");
-}
diff --git a/src/hwinfo/src/hd/misc.h b/src/hwinfo/src/hd/misc.h
deleted file mode 100644 (file)
index 10b1ef0..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-void hd_scan_misc(hd_data_t *hd_data);
-void hd_scan_misc2(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/modem.c b/src/hwinfo/src/hd/modem.c
deleted file mode 100644 (file)
index e6f8aab..0000000
+++ /dev/null
@@ -1,1083 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <termios.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/ioctl.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "hddb.h"
-#include "modem.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * modem info
- *
- *
- * Note: what about modem speed?
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#ifndef LIBHD_TINY
-
-static struct speeds_s {
-  unsigned baud;
-  speed_t mask;
-} speeds[] = {
-  {    1200, B1200    },
-  {    1800, B1800    },
-  {    2400, B2400    },
-  {    4800, B4800    },
-  {    9600, B9600    },
-  {   19200, B19200   },
-  {   38400, B38400   },
-  {   57600, B57600   },
-  {  115200, B115200  }
-#if !defined(__sparc__)
-  ,{  230400, B230400  }
-  ,{  460800, B460800  }
-  ,{  500000, B500000  }
-  ,{ 1000000, B1000000 }
-  ,{ 2000000, B2000000 }
-  ,{ 4000000, B4000000 }
-#endif
-};
-
-#define MAX_SPEED      (sizeof speeds / sizeof *speeds)
-
-static char *init_strings[] = {
-  "Q0 V1 E1",
-  "S0=0",
-  "&C1",
-  "&D2",
-  "+FCLASS=0"
-};
-
-#define MAX_INIT_STRING        (sizeof init_strings / sizeof *init_strings)
-
-static void get_serial_modem(hd_data_t* hd_data);
-static void add_serial_modem(hd_data_t* hd_data);
-static int dev_name_duplicate(hd_data_t *hd_data, char *dev_name);
-static void guess_modem_name(hd_data_t *hd_data, ser_device_t *sm);
-static void at_cmd(hd_data_t *hd_data, char *at, int raw, int log_it);
-static void write_modem(hd_data_t *hd_data, char *msg);
-static void read_modem(hd_data_t *hd_data);
-static ser_device_t *add_ser_modem_entry(ser_device_t **sm, ser_device_t *new_sm);
-static int set_modem_speed(ser_device_t *sm, unsigned baud);    
-static int init_modem(ser_device_t *mi);
-static unsigned chk4id(ser_device_t *mi);
-static void dump_ser_modem_data(hd_data_t *hd_data);
-
-void hd_scan_modem(hd_data_t *hd_data)
-{
-  ser_device_t *sm, *sm_next;
-
-  if(!hd_probe_feature(hd_data, pr_modem)) return;
-
-  hd_data->module = mod_modem;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-  hd_data->ser_modem = NULL;
-
-  PROGRESS(1, 0, "serial");
-
-  hd_fork(hd_data, 15, 120);
-
-  if(hd_data->flags.forked) {
-    get_serial_modem(hd_data);
-    hd_move_to_shm(hd_data);
-    if((hd_data->debug & HD_DEB_MODEM)) dump_ser_modem_data(hd_data);
-  }
-  else {
-    /* take data from shm */
-    hd_data->ser_modem = ((hd_data_t *) (hd_data->shm.data))->ser_modem;
-    if((hd_data->debug & HD_DEB_MODEM)) dump_ser_modem_data(hd_data);
-  }
-
-  hd_fork_done(hd_data);
-
-  add_serial_modem(hd_data);
-
-  hd_shm_clean(hd_data);
-
-  for(sm = hd_data->ser_modem; sm; sm = sm_next) {
-    sm_next = sm->next;
-
-    free_str_list(sm->at_resp);
-
-    free_mem(sm->dev_name);
-    free_mem(sm->serial);
-    free_mem(sm->class_name);
-    free_mem(sm->dev_id);
-    free_mem(sm->user_name);
-    free_mem(sm->vend);
-    free_mem(sm->init_string1);
-    free_mem(sm->init_string2);
-
-    free_mem(sm);
-  }
-  hd_data->ser_modem = NULL;
-
-}
-
-int check_for_responce(str_list_t *str_list, char *str, int len)
-{
-  for(; str_list != NULL; str_list = str_list->next) {
-    if(!strncmp(str_list->str, str, len)) return 1;
-  }
-
-  return 0;
-}
-
-str_list_t *str_list_dup(str_list_t *orig)
-{
-  str_list_t *dup = NULL;
-
-  for(; orig != NULL; orig = orig->next) {
-    add_str_list(&dup, orig->str);
-  }
-
-  return dup;
-}
-
-void get_serial_modem(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  int i, j, fd;
-  unsigned modem_info, baud;
-  char *command;
-  ser_device_t *sm;
-  int chk_usb = hd_probe_feature(hd_data, pr_modem_usb);
-
-  /* serial modems & usb modems */
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      (
-        (
-          hd->base_class.id == bc_comm &&
-          hd->sub_class.id == sc_com_ser &&
-          !hd->tag.ser_skip &&
-          hd->tag.ser_device != 2 &&           /* cf. serial.c */
-          !has_something_attached(hd_data, hd)
-        ) ||
-        (
-          chk_usb &&
-          hd->bus.id == bus_usb &&
-          hd->base_class.id == bc_modem
-        )
-      ) && hd->unix_dev_name
-    ) {
-      if(dev_name_duplicate(hd_data, hd->unix_dev_name)) continue;
-      if((fd = open(hd->unix_dev_name, O_RDWR | O_NONBLOCK)) >= 0) {
-        sm = add_ser_modem_entry(&hd_data->ser_modem, new_mem(sizeof *sm));
-        sm->dev_name = new_str(hd->unix_dev_name);
-        sm->fd = fd;
-        sm->hd_idx = hd->idx;
-        sm->do_io = 1;
-        init_modem(sm);
-      }
-    }
-  }
-
-  if(!hd_data->ser_modem) return;
-
-  PROGRESS(2, 0, "init");
-
-  usleep(300000);              /* PnP protocol; 200ms seems to be too fast  */
-  
-  for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-    modem_info = TIOCM_DTR | TIOCM_RTS;
-    ioctl(sm->fd, TIOCMBIS, &modem_info);
-    ioctl(sm->fd, TIOCMGET, &modem_info);
-    if(!(modem_info & (TIOCM_DSR | TIOCM_CD))) {
-      sm->do_io = 0;
-    }
-  }
-
-  /* just a quick test if we get a response to an AT command */
-
-  for(i = 0; i < 4; i++) {
-    PROGRESS(3, i + 1, "at test");
-
-    for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-      if(!sm->is_modem)
-        set_modem_speed(sm, i == 0 ? 115200 : i == 1 ? 38400 : i == 2 ? 9600 : 1200);
-    }
-
-    at_cmd(hd_data, "AT\r", 1, 1);
-
-    for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-      if(strstr(sm->buf, "OK") || strstr(sm->buf, "0")) {
-        sm->is_modem = 1;
-        sm->do_io = 0;
-      }
-      sm->buf_len = 0;         /* clear buffer */
-    }
-  }
-
-  for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-    if((sm->do_io = sm->is_modem)) {
-      sm->max_baud = sm->cur_baud;
-    }
-  }
-
-  /* check for init string */
-  PROGRESS(4, 0, "init string");
-
-  command = NULL;
-  for(i = 0; (unsigned) i < MAX_INIT_STRING; i++) {
-    str_printf(&command, 0, "AT %s\r", init_strings[i]);
-    at_cmd(hd_data, command, 1, 1);
-
-    for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-      if(strstr(sm->buf, "OK") || strstr(sm->buf, "0")) {
-        str_printf(&sm->init_string2, -1,
-          "%s %s", sm->init_string2 ? "" : "AT", init_strings[i]
-        );
-      }
-    }
-  }
-  command = free_mem(command);
-
-  for(sm = hd_data->ser_modem; sm; sm = sm->next)
-    if(sm->is_modem)
-      str_printf(&sm->init_string1, -1, "ATZ");
-
-  {
-    int cmds[] = { 1, 3, 4, 5, 6 };
-    char at[10];
-    int i, j, ModemsCount = 0;
-    str_list_t **responces = NULL;
-    for(sm = hd_data->ser_modem; sm; sm = sm->next)
-      if(sm->is_modem)
-       ModemsCount++;
-    responces = new_mem(ModemsCount * sizeof *responces);
-    
-    at_cmd(hd_data, "ATI\r", 0, 1);
-    for(j = 0, sm = hd_data->ser_modem; sm; sm = sm->next) {
-      if(sm->is_modem)
-       responces[j++] = str_list_dup(sm->at_resp);
-    }
-
-    for(i = 0; (unsigned) i < sizeof cmds / sizeof *cmds; i++) {
-      int atx = cmds[i];
-      sprintf(at, "ATI%d\r", atx);
-      at_cmd(hd_data, at, 0, 1);
-      for(j = 0, sm = hd_data->ser_modem; sm; sm = sm->next) {
-       if(sm->is_modem) {
-         if(atx == 1 && check_for_responce(responces[j], "Hagenuk", 7) &&
-            (check_for_responce(sm->at_resp, "Speed Dragon", 12) ||
-             check_for_responce(sm->at_resp, "Power Dragon", 12))) {
-           free_mem(sm->init_string1);
-           free_mem(sm->init_string2);
-           sm->init_string1 = new_str("AT&F");
-           sm->init_string2 = new_str("ATB8");
-         }
-         if(atx == 3 && check_for_responce(responces[j], "346900", 6) &&
-            check_for_responce(sm->at_resp, "3Com U.S. Robotics ISDN", 23)) {
-           free_mem(sm->init_string1);
-           free_mem(sm->init_string2);
-           sm->init_string1 = new_str("AT&F");
-           sm->init_string2 = new_str("AT*PPP=1");
-         }
-         if(atx == 4 && check_for_responce(responces[j], "SP ISDN", 7) &&
-            check_for_responce(sm->at_resp, "Sportster ISDN TA", 17)) {
-           free_mem(sm->init_string1);
-           free_mem(sm->init_string2);
-           sm->init_string1 = new_str("AT&F");
-           sm->init_string2 = new_str("ATB3");
-         }
-         if(atx == 6 && check_for_responce(responces[j], "644", 3) &&
-            check_for_responce(sm->at_resp, "ELSA MicroLink ISDN", 19)) {
-           free_mem(sm->init_string1);
-           free_mem(sm->init_string2);
-           sm->init_string1 = new_str("AT&F");
-           sm->init_string2 = new_str("AT$IBP=HDLCP");
-           free_mem(sm->pppd_option);
-           sm->pppd_option = new_str("default-asyncmap");
-         }
-         if(atx == 6 && check_for_responce(responces[j], "643", 3) &&
-            check_for_responce(sm->at_resp, "MicroLink ISDN/TLV.34", 21)) {
-           free_mem(sm->init_string1);
-           free_mem(sm->init_string2);
-           sm->init_string1 = new_str("AT&F");
-           sm->init_string2 = new_str("AT\\N10%P1");
-         }
-         if(atx == 5 && check_for_responce(responces[j], "ISDN TA", 6) &&
-            check_for_responce(sm->at_resp, "ISDN TA;ASU", 4)) {
-           free_mem(sm->vend);
-           sm->vend = new_str("ASUS");
-           free_mem(sm->user_name);
-           sm->user_name = new_str("ISDNLink TA");
-           free_mem(sm->init_string1);
-           free_mem(sm->init_string2);
-           sm->init_string1 = new_str("AT&F");
-           sm->init_string2 = new_str("ATB40");
-         }
-         if(atx==3 && check_for_responce(responces[j], "128000", 6) &&
-            check_for_responce(sm->at_resp, "Lasat Speed", 11)) {
-           free_mem(sm->init_string1);
-           free_mem(sm->init_string2);
-           sm->init_string1 = new_str("AT&F");
-           sm->init_string2 = new_str("AT\\P1&B2X3");
-         }
-         if(atx == 1 &&
-            (check_for_responce(responces[j], "28642", 5) ||
-             check_for_responce(responces[j], "1281", 4) ||
-             check_for_responce(responces[j], "1282", 4) ||
-             check_for_responce(responces[j], "1283", 4) ||
-             check_for_responce(responces[j], "1291", 4) ||
-             check_for_responce(responces[j], "1292", 4) ||
-             check_for_responce(responces[j], "1293", 4)) &&
-            (check_for_responce(sm->at_resp, "Elite 2864I", 11) ||
-             check_for_responce(sm->at_resp, "ZyXEL omni", 10))) {
-           free_mem(sm->init_string1);
-           free_mem(sm->init_string2);
-           sm->init_string1 = new_str("AT&F");
-           sm->init_string2 = new_str("AT&O2B40");
-         }
-         j++;
-       }
-      }
-    }
-
-    for(i = 0; i < ModemsCount; i++) free_str_list(responces[i]);
-    free_mem(responces);
-  }
-
-  /* now, go for the maximum speed... */
-  PROGRESS(5, 0, "speed");
-
-  for(i = MAX_SPEED - 1; i >= 0; i--) {
-    baud = speeds[i].baud;
-    for(j = 0, sm = hd_data->ser_modem; sm; sm = sm->next) {
-      if(sm->is_modem) {
-        if(baud > sm->max_baud) {
-          sm->do_io = set_modem_speed(sm, baud) ? 0 : 1;
-          if(sm->do_io) j++;
-        }
-      }
-    }
-
-    /* no modems */
-    if(!j) continue;
-
-    at_cmd(hd_data, "AT\r", 1, 0);
-
-    for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-      if(strstr(sm->buf, "OK") || strstr(sm->buf, "0")) {
-        sm->max_baud = sm->cur_baud;
-      }
-      else {
-        sm->do_io = 0;
-      }
-      sm->buf_len = 0;         /* clear buffer */
-    }
-  }
-
-  /* now, fix it all up... */
-  for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-    if(sm->is_modem) {
-      set_modem_speed(sm, sm->max_baud);
-      sm->do_io = 1;
-    }
-  }
-
-#if 0
-  /* just for testing */
-  if((hd_data->debug & HD_DEB_MODEM)) {
-    int i;
-    int cmds[] = { 0, 1, 2, 3, 6 };
-    char at[10];
-
-    PROGRESS(8, 0, "testing");
-
-    at_cmd(hd_data, "ATI\r", 0, 1);
-    for(i = 0; (unsigned) i < sizeof cmds / sizeof *cmds; i++) {
-      sprintf(at, "ATI%d\r", cmds[i]);
-      at_cmd(hd_data, at, 0, 1);
-    }
-    at_cmd(hd_data, "AT\r", 0, 1);
-  }
-#endif
-
-  PROGRESS(5, 0, "pnp id");
-
-  at_cmd(hd_data, "ATI9\r", 1, 1);
-
-  for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-    if(sm->is_modem) {
-      chk4id(sm);
-
-      if(!sm->user_name) guess_modem_name(hd_data, sm);
-    }
-
-    /* reset serial lines */
-    tcflush(sm->fd, TCIOFLUSH);
-    tcsetattr(sm->fd, TCSAFLUSH, &sm->tio);
-    close(sm->fd);
-  }
-}
-
-
-void add_serial_modem(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  char buf[4];
-  ser_device_t *sm;
-  hd_res_t *res;
-
-  for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-    if(!sm->is_modem) continue;
-
-    hd = hd_get_device_by_idx(hd_data, sm->hd_idx);
-    if(hd && hd->base_class.id == bc_modem) {
-      /* just *add* info */
-
-    }
-    else {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_modem;
-      hd->bus.id = bus_serial;
-      hd->unix_dev_name = new_str(sm->dev_name);
-      hd->attached_to = sm->hd_idx;
-      res = add_res_entry(&hd->res, new_mem(sizeof *res));
-      res->baud.type = res_baud;
-      res->baud.speed = sm->max_baud;
-      if(sm->pppd_option) {
-       res = add_res_entry(&hd->res, new_mem(sizeof *res));
-       res->pppd_option.type = res_pppd_option;
-       res->pppd_option.option = new_str(sm->pppd_option);
-      }
-      if(*sm->pnp_id) {
-        strncpy(buf, sm->pnp_id, 3);
-        buf[3] = 0;
-        hd->vendor.id = name2eisa_id(buf);
-        hd->device.id = MAKE_ID(TAG_EISA, strtol(sm->pnp_id + 3, NULL, 16));
-      }
-      hd->serial = new_str(sm->serial);
-      if(sm->user_name) hd->device.name = new_str(sm->user_name);
-      if(sm->vend) hd->vendor.name = new_str(sm->vend);
-
-      if(sm->dev_id && strlen(sm->dev_id) >= 7) {
-        char buf[5], *s;
-        unsigned u1, u2;
-
-        u1 = name2eisa_id(sm->dev_id);
-        if(u1) {
-          strncpy(buf, sm->dev_id + 3, 4);
-          buf[4] = 0;
-          u2 = strtol(sm->dev_id + 3, &s, 16);
-          if(!*s) {
-            hd->compat_vendor.id = u1;
-            hd->compat_device.id = MAKE_ID(TAG_EISA, u2);
-          }
-        }
-      }
-
-      if(!(hd->device.id || hd->device.name || hd->vendor.id || hd->vendor.name)) {
-        hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x2000);
-        hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0001);
-      }
-    }
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->init_strings.type = res_init_strings;
-    res->init_strings.init1 = new_str(sm->init_string1);
-    res->init_strings.init2 = new_str(sm->init_string2);
-  }
-}
-
-
-int dev_name_duplicate(hd_data_t *hd_data, char *dev_name)
-{
-  ser_device_t *sm;
-
-  for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-    if(!strcmp(sm->dev_name, dev_name)) return 1;
-  }
-
-  return 0;
-}
-
-void guess_modem_name(hd_data_t *hd_data, ser_device_t *modem)
-{
-  ser_device_t *sm;
-  str_list_t *sl;
-  char *s;
-#ifdef __PPC__
-  char *s1, *s2;
-  unsigned u;
-#endif
-
-  for(sm = hd_data->ser_modem; sm; sm = sm->next) sm->do_io = 0;
-
-  (sm = modem)->do_io = 1;
-
-#ifdef __PPC__
-  at_cmd(hd_data, "ATI0\r", 0, 1);
-  sl = sm->at_resp;
-  if(sl && !strcmp(sl->str, "ATI0")) sl = sl->next;    /* skip AT cmd echo */
-
-  s1 = NULL;
-  if(sl) {
-    if(strstr(sl->str, "PowerBook")) {
-      sm->vend = new_str("Apple");
-      sm->user_name = new_str(sl->str);
-
-      return;
-    }
-    s1 = new_str(sl->str);
-  }
-
-  at_cmd(hd_data, "ATI1\r", 0, 1);
-  sl = sm->at_resp;
-  if(sl && !strcmp(sl->str, "ATI1")) sl = sl->next;    /* skip AT cmd echo */
-
-  if(sl) {
-    if(strstr(sl->str, "APPLE")) {
-      sm->vend = new_str("Apple");
-      str_printf(&sm->user_name, 0, "AT Modem");
-      if(s1) {
-        u = strtoul(s1, &s2, 10);
-        if(u && !*s2 && !(u % 1000)) {
-          str_printf(&sm->user_name, 0, "%uk AT Modem", u / 1000);
-        }
-      }
-      s1 = free_mem(s1);
-
-      return;
-    }
-  }
-  s1 = free_mem(s1);
-
-#endif
-  
-  /* ATI3 command */
-  at_cmd(hd_data, "ATI3\r", 0, 1);
-  sl = sm->at_resp;
-  if(sl && !strcmp(sl->str, "ATI3")) sl = sl->next;    /* skip AT cmd echo */
-
-  if(sl) {
-    if(*sl->str == 'U' && strstr(sl->str, "Robotics ")) {
-      /* looks like an U.S. Robotics... */
-
-      sm->vend = new_str("U.S. Robotics, Inc.");
-      /* strip revision code */
-      if((s = strstr(sl->str, " Rev. "))) *s = 0;
-      sm->user_name = canon_str(sl->str, strlen(sl->str));
-
-      return;
-    }
-
-    if(strstr(sl->str, "3Com U.S. Robotics ") == sl->str) {
-      /* looks like an 3Com U.S. Robotics... */
-
-      sm->vend = new_str("3Com U.S. Robotics, Inc.");
-      sm->user_name = canon_str(sl->str, strlen(sl->str));
-
-      return;
-    }
-
-    if(strstr(sl->str, "-V34_DS -d Z201 2836")) {
-      /* looks like a Zoom V34X */
-
-      sm->vend = new_str("Zoom Telephonics, Inc.");
-      sm->user_name = new_str("Zoom FaxModem V.34X Plus Model 2836");
-
-      return;
-    }
-
-    if(strstr(sl->str, "FM560 VER 3.01 V.90")) {
-      /* looks like a Microcom DeskPorte 56K Voice ... */
-
-      sm->vend = new_str("Microcom");
-      sm->user_name = new_str("TravelCard 56K");
-
-      return;
-    }
-
-    if(strstr(sl->str, "Compaq Microcom 550 56K Modem")) {
-      /* looks like a Microcom DeskPorte Pocket ... */
-
-      sm->vend = new_str("Compaq");
-      sm->user_name = new_str("Microcom 550 56K Modem");
-
-      return;
-    }
-  }
-
-  /* ATI0 command */
-  at_cmd(hd_data, "ATI0\r", 0, 1);
-  sl = sm->at_resp;
-  if(sl && !strcmp(sl->str, "ATI0")) sl = sl->next;    /* skip AT cmd echo */
-
-  if(sl) {
-    if(strstr(sl->str, "DP Pocket")) {
-      /* looks like a Microcom DeskPorte Pocket ... */
-
-      sm->vend = new_str("Microcom");
-      sm->user_name = new_str("DeskPorte Pocket");
-
-      return;
-    }
-  }
-
-  /* ATI6 command */
-  at_cmd(hd_data, "ATI6\r", 0, 1);
-  sl = sm->at_resp;
-  if(sl && !strcmp(sl->str, "ATI6")) sl = sl->next;    /* skip AT cmd echo */
-
-  if(sl) {
-    if(strstr(sl->str, "RCV56DPF-PLL L8571A")) {
-      /* looks like a Microcom DeskPorte 56K Voice ... */
-
-      sm->vend = new_str("Microcom");
-      sm->user_name = new_str("DeskPorte 56K Voice");
-
-      return;
-    }
-  }
-
-  /* ATI2 command */
-  at_cmd(hd_data, "ATI2\r", 0, 1);
-  sl = sm->at_resp;
-  if(sl && !strcmp(sl->str, "ATI2")) sl = sl->next;    /* skip AT cmd echo */
-
-  if(sl) {
-    if(strstr(sl->str, "ZyXEL ")) {
-      /* looks like a ZyXEL... */
-
-      sm->vend = new_str("ZyXEL");
-
-      at_cmd(hd_data, "ATI1\r", 0, 1);
-      sl = sm->at_resp;
-      if(sl && !strcmp(sl->str, "ATI1")) sl = sl->next;
-      
-      if(sl && sl->next) {
-        sl = sl->next;
-        if((s = strstr(sl->str, " V "))) *s = 0;
-        sm->user_name = canon_str(sl->str, strlen(sl->str));
-      }
-
-      return;
-    }
-  }
-
-}
-
-void at_cmd(hd_data_t *hd_data, char *at, int raw, int log_it)
-{
-  static unsigned u = 1;
-  char *s, *s0;
-  ser_device_t *sm;
-  str_list_t *sl;
-  int modems = 0;
-
-  for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-    if(sm->do_io) {
-      sm->buf_len = 0;
-      modems++;
-    }
-  }
-
-  if(modems == 0) return;
-
-  PROGRESS(9, u, "write at cmd");
-  write_modem(hd_data, at);
-  PROGRESS(9, u, "read at resp");
-  usleep (200000);
-  read_modem(hd_data);
-  PROGRESS(9, u, "read ok");
-  u++;
-
-  for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-    if(sm->do_io) {
-      sm->at_resp = free_str_list(sm->at_resp);
-      if(sm->buf_len == 0 || raw) continue;
-      s0 = sm->buf;
-      while((s = strsep(&s0, "\r\n"))) {
-        if(*s) add_str_list(&sm->at_resp, s);
-      }
-    }
-  }
-
-  if(!(hd_data->debug & HD_DEB_MODEM) || !log_it) return;
-
-  for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-    if(sm->do_io) {
-      ADD2LOG("%s@%u: %s\n", sm->dev_name, sm->cur_baud, at);
-      if(raw) {
-        ADD2LOG("  ");
-        hexdump(&hd_data->log, 1, sm->buf_len, sm->buf);
-        ADD2LOG("\n");
-      }
-      else {
-        for(sl = sm->at_resp; sl; sl = sl->next) ADD2LOG("  %s\n", sl->str);
-      }
-    }
-  }
-}
-
-
-void write_modem(hd_data_t *hd_data, char *msg)
-{
-  ser_device_t *sm;
-  int i, len = strlen(msg);
-
-  for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-    if(sm->do_io) {
-      i = write(sm->fd, msg, len);
-      if(i != len) {
-        ADD2LOG("%s write oops: %d/%d (\"%s\")\n", sm->dev_name, i, len, msg);
-      }
-    }
-  }
-}
-
-void read_modem(hd_data_t *hd_data)
-{
-  int i, sel, fd_max = -1;
-  fd_set set, set0;
-  struct timeval to;
-  ser_device_t *sm;
-
-  FD_ZERO(&set0);
-
-  for(i = 0, sm = hd_data->ser_modem; sm; sm = sm->next) {
-    if(sm->do_io) {
-      FD_SET(sm->fd, &set0);
-      if(sm->fd > fd_max) fd_max = sm->fd;
-      i++;
-    }
-  }
-
-  if(!i) return;       /* nothing selected */
-
-  for(;;) {
-    to.tv_sec = 0; to.tv_usec = 1000000;
-    set = set0;
-    if((sel = select(fd_max + 1, &set, NULL, NULL, &to)) > 0) {
-//      fprintf(stderr, "sel: %d\n", sel);
-      for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-        if(FD_ISSET(sm->fd, &set)) {
-          if((i = read(sm->fd, sm->buf + sm->buf_len, sizeof sm->buf - sm->buf_len)) > 0)
-            sm->buf_len += i;
-//          fprintf(stderr, "%s: got %d\n", sm->dev_name, i);
-          if(i <= 0) FD_CLR(sm->fd, &set0);
-        }
-      }
-    }
-    else {
-      break;
-    }
-  }
-
-  /* make the strings \000 terminated */
-  for(sm = hd_data->ser_modem; sm; sm = sm->next) {
-    if(sm->buf_len == sizeof sm->buf) sm->buf_len--;
-    sm->buf[sm->buf_len] = 0;
-  }
-}
-
-int set_modem_speed(ser_device_t *sm, unsigned baud)
-{
-  int i;
-  speed_t st;
-  struct termios tio;
-
-  for(i = 0; (unsigned) i < MAX_SPEED; i++) if(speeds[i].baud == baud) break;
-
-  if(i == MAX_SPEED) return 1;
-
-  if(tcgetattr(sm->fd, &tio)) return errno;
-
-  cfsetospeed(&tio, speeds[i].mask);
-  cfsetispeed(&tio, speeds[i].mask);
-
-  if(tcsetattr(sm->fd, TCSAFLUSH, &tio)) return errno;
-
-  /* tcsetattr() returns ok even if it couldn't set the speed... */
-
-  if(tcgetattr(sm->fd, &tio)) return errno;
-
-  st = cfgetospeed(&tio);
-
-  for(i = 0; (unsigned) i < MAX_SPEED; i++) if(speeds[i].mask == st) break;
-
-  if(i == MAX_SPEED) return 2;
-
-  sm->cur_baud = speeds[i].baud;
-
-  return baud == speeds[i].baud ? 0 : 3;
-}
-
-
-int init_modem(ser_device_t *sm)
-{
-  struct termios tio;
-
-  if(tcgetattr(sm->fd, &tio)) return errno;
-  
-  sm->tio = tio;
-
-  tio.c_iflag = IGNBRK | IGNPAR;
-  tio.c_oflag = 0;
-  tio.c_lflag = 0;
-  tio.c_line = 0;
-  tio.c_cc[VTIME] = 0;
-  tio.c_cc[VMIN] = 1;
-
-  tio.c_cflag = CREAD | CLOCAL | HUPCL | B1200 | CS8;
-
-  if(tcsetattr(sm->fd, TCSAFLUSH, &tio)) return errno;
-
-  return 0;
-}
-
-
-/*
- * Check for a PnP info field starting at ofs;
- * returns either the length of the field or 0 if none was found.
- *
- * the minfo_t struct is updated with the PnP data
- */
-int is_pnpinfo(ser_device_t *mi, int ofs)
-{
-  int i, j, k, l;
-  unsigned char c, *s = mi->buf + ofs, *t;
-  int len = mi->buf_len - ofs;
-  unsigned serial, class_name, dev_id, user_name;
-
-  if(len <= 0) return 0;
-
-  switch(*s) {
-    case 0x08:
-      mi->bits = 6; break;
-    case 0x28:
-      mi->bits = 7; break;
-    default:
-      return 0;
-  }
-
-  if(len < 11) return 0;
-
-  i = 1;
-
-  /* six bit values */
-  if((s[i] & ~0x3f) || (s[i + 1] & ~0x3f)) return 0;
-  mi->pnp_rev = (s[i] << 6) + s[i + 1];
-
-  /* pnp_rev may *optionally* be given as a string!!! (e.g. "1.0")*/
-  if(mi->bits == 7) {
-    j = 0;
-    if(s[i + 2] < 'A') {
-      j++;
-      if(s[i + 3] < 'A') j++;
-    }
-    if(j) {
-      if(s[i] < '0' || s[i] > '9') return 0;
-      if(s[i + 1] != '.') return 0;
-      for(k = 0; k < j; k++)
-        if(s[i + 2 + k] < '0' || s[i + 2 + k] > '9') return 0;
-      mi->pnp_rev = (s[i] - '0') * 100;
-      mi->pnp_rev += s[i + 2] * 10;
-      if(j == 2) mi->pnp_rev += s[i + 3];
-      i += j;
-    }
-  }
-
-  i += 2;
-
-  /* the eisa id */
-  for(j = 0; j < 7; j++) {
-    mi->pnp_id[j] = s[i + j];
-    if(mi->bits == 6) mi->pnp_id[j] += 0x20;
-  }
-  mi->pnp_id[7] = 0;
-
-  i += 7;
-
-  /* now check the id */
-  for(j = 0; j < 3; j++) {
-    if(
-      /* numbers are not really allowed, but... */
-      (mi->pnp_id[j] < '0' || mi->pnp_id[j] > '9') &&
-      (mi->pnp_id[j] < 'A' || mi->pnp_id[j] > 'Z') &&
-      mi->pnp_id[j] != '_'
-    ) return 0;
-  }
-
-  for(j = 3; j < 7; j++) {
-    if(
-      (mi->pnp_id[j] < '0' || mi->pnp_id[j] > '9') &&
-      (mi->pnp_id[j] < 'A' || mi->pnp_id[j] > 'F')
-    ) return 0;
-  }
-
-
-  if((mi->bits == 6 && s[i] == 0x09) || (mi->bits == 7 && s[i] == 0x29)) {
-    return i + 1;
-  }
-
-  if((mi->bits != 6 || s[i] != 0x3c) && (mi->bits != 7 || s[i] != 0x5c)) {
-    return 0;
-  }
-
-  /* parse extended info */
-  serial = class_name = dev_id = user_name = 0;
-  for(j = 0; i < len; i++) {
-    if((mi->bits == 6 && s[i] == 0x09) || (mi->bits == 7 && s[i] == 0x29)) {
-      
-      if(serial) for(k = serial; k < len; k++) {
-        c = s[k];
-        if(mi->bits == 6) c += 0x20;
-        if(c == '\\') break;
-        str_printf(&mi->serial, -1, "%c", c);
-      }
-
-      if(class_name) for(k = class_name; k < len; k++) {
-        c = s[k];
-        if(mi->bits == 6) c += 0x20;
-        if(c == '\\') break;
-        str_printf(&mi->class_name, -1, "%c", c);
-      }
-
-      if(dev_id) for(k = dev_id; k < len; k++) {
-        c = s[k];
-        if(mi->bits == 6) c += 0x20;
-        if(c == '\\') break;
-        str_printf(&mi->dev_id, -1, "%c", c);
-      }
-
-      if(user_name) {
-        for(k = user_name; k < len; k++) {
-          c = s[k];
-          if(mi->bits == 6) c += 0x20;
-          if(c == '\\' || c == ')') break;
-          str_printf(&mi->user_name, -1, "%c", c);
-        }
-        if(mi->user_name && (l = strlen(mi->user_name)) >= 2) {
-          /* skip *optional*(!!!) 2 char checksum */
-          t = mi->user_name + l - 2;
-          if(
-            ((t[0] >= '0' && t[0] <= '9') || (t[0] >= 'A' && t[0] <= 'F')) &&
-            ((t[1] >= '0' && t[1] <= '9') || (t[1] >= 'A' && t[1] <= 'F'))
-          ) {
-            /* OK, *might* be a hex number... */
-            mi->user_name[l - 2] = 0;
-
-            /*
-             * A better check would be to look for the complete name string
-             * in the output from another AT command, e.g AT3, AT6 or AT11.
-             * If it's there -> no checksum field.
-             */
-          }
-        }
-      }
-
-      return i + 1;
-    }
-
-    if(((mi->bits == 6 && s[i] == 0x3c) || (mi->bits == 7 && s[i] == 0x5c)) && i < len - 1) {
-      switch(j) {
-        case 0:
-          serial = i + 1; j++; break;
-        case 1:
-          class_name = i + 1; j++; break;
-        case 2:
-          dev_id = i + 1; j++; break;
-        case 3:
-          user_name = i + 1; j++; break;
-        default:
-          fprintf(stderr, "PnP-ID oops\n");
-      }
-    }
-  }
-
-  /* no end token... */
-
-  return 0;
-}
-
-
-unsigned chk4id(ser_device_t *mi)
-{
-  int i;
-
-  if(!mi->buf_len) return 0;
-
-  for(i = 0; i < mi->buf_len; i++) {
-    if((mi->pnp = is_pnpinfo(mi, i))) break;
-  }
-  if(i == mi->buf_len) return 0;
-
-  mi->garbage = i;
-
-  return 1;
-}
-
-ser_device_t *add_ser_modem_entry(ser_device_t **sm, ser_device_t *new_sm)
-{
-  while(*sm) sm = &(*sm)->next;
-  return *sm = new_sm;
-}
-
-void dump_ser_modem_data(hd_data_t *hd_data)
-{
-  int j;
-  ser_device_t *sm;
-
-  if(!(sm = hd_data->ser_modem)) return;
-
-  ADD2LOG("----- serial modems -----\n");
-
-  for(; sm; sm = sm->next) {
-    ADD2LOG("%s\n", sm->dev_name);
-    if(sm->serial) ADD2LOG("serial: \"%s\"\n", sm->serial);
-    if(sm->class_name) ADD2LOG("class_name: \"%s\"\n", sm->class_name);
-    if(sm->dev_id) ADD2LOG("dev_id: \"%s\"\n", sm->dev_id);
-    if(sm->user_name) ADD2LOG("user_name: \"%s\"\n", sm->user_name);
-
-    if(sm->garbage) {
-      ADD2LOG("  pre_garbage[%u]: ", sm->garbage);
-      hexdump(&hd_data->log, 1, sm->garbage, sm->buf);
-      ADD2LOG("\n");  
-    }
-
-    if(sm->pnp) {
-      ADD2LOG("  pnp[%u]: ", sm->pnp);
-      hexdump(&hd_data->log, 1, sm->pnp, sm->buf + sm->garbage);
-      ADD2LOG("\n");
-    }
-
-    if((j = sm->buf_len - (sm->garbage + sm->pnp))) {
-      ADD2LOG("  post_garbage[%u]: ", j);
-      hexdump(&hd_data->log, 1, j, sm->buf + sm->garbage + sm->pnp);
-      ADD2LOG("\n");
-    }
-
-    if(sm->is_modem)
-      ADD2LOG("  is modem\n");
-    else
-      ADD2LOG("  not a modem\n");
-
-    if(sm->pnp) {
-      ADD2LOG("  bits: %u\n", sm->bits);
-      ADD2LOG("  PnP Rev: %u.%02u\n", sm->pnp_rev / 100, sm->pnp_rev % 100);
-      ADD2LOG("  PnP ID: \"%s\"\n", sm->pnp_id);
-    }
-
-    if(sm->next) ADD2LOG("\n");
-  }
-
-  ADD2LOG("----- serial modems end -----\n");
-}
-
-#endif /* ifndef LIBHD_TINY */
diff --git a/src/hwinfo/src/hd/modem.h b/src/hwinfo/src/hd/modem.h
deleted file mode 100644 (file)
index f19599d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_modem(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/monitor.c b/src/hwinfo/src/hd/monitor.c
deleted file mode 100644 (file)
index 110d897..0000000
+++ /dev/null
@@ -1,600 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "hddb.h"
-#include "monitor.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * monitor info
- *
- * Read the info out of the 'SuSE=' entry in /proc/cmdline. It contains
- * (among others) info from the EDID record got by our syslinux extension.
- *
- * We will try to look up our monitor id in the id file to get additional
- * info.
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#ifdef __PPC__
-static void add_old_mac_monitor(hd_data_t *hd_data);
-static void add_monitor(hd_data_t *hd_data, devtree_t *dt);
-#endif
-static int chk_edid_info(hd_data_t *hd_data, unsigned char *edid);
-#if !defined(__PPC__)
-static void add_lcd_info(hd_data_t *hd_data, hd_t *hd, bios_info_t *bt);
-#endif
-static void add_edid_info(hd_data_t *hd_data, hd_t *hd, unsigned char *edid);
-static void add_monitor_res(hd_t *hd, unsigned x, unsigned y, unsigned hz, unsigned il);
-static void fix_edid_info(hd_data_t *hd_data, unsigned char *edid);
-
-#if !defined(__PPC__)
-void hd_scan_monitor(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  int i, j, k;
-  char *s, *s0, *s1, *se, m[8], *t;
-  unsigned u;
-  hd_res_t *res;
-  monitor_info_t *mi = NULL;
-  bios_info_t *bt;
-
-  if(!hd_probe_feature(hd_data, pr_monitor)) return;
-
-  hd_data->module = mod_monitor;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "ddc");
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->base_class.id == bc_internal && hd->sub_class.id == sc_int_bios) break;
-  }
-
-  /* first, see if we got the full edid record from bios */
-  bt = NULL;
-
-#if 0
-  /* for testing: LIBHD_EDID points to a file with valid edid record */
-  {
-    char *s = getenv("LIBHD_EDID");
-    unsigned char edid[0x80];
-    FILE *f;
-
-    if(s && (f = fopen(s, "r"))) {
-      if(fread(edid, sizeof edid, 1, f) == 1) {
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->base_class.id = bc_monitor;
-        add_edid_info(hd_data, hd, edid);
-      }
-      fclose(f);
-      return;
-    }
-  }
-#endif
-
-  if(
-    hd &&
-    hd->detail &&
-    hd->detail->type == hd_detail_bios &&
-    (bt = hd->detail->bios.data) &&
-    bt->vbe.ok
-  ) {
-    if(chk_edid_info(hd_data, bt->vbe.ddc)) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_monitor;
-
-      hd_set_hw_class(hd, hw_vbe);
-
-      add_edid_info(hd_data, hd, bt->vbe.ddc);
-
-      return;
-    }
-  }
-
-  /* Maybe a LCD panel? */
-  if(bt && bt->lcd.width) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->base_class.id = bc_monitor;
-    hd->sub_class.id = sc_mon_lcd;
-
-    hd_set_hw_class(hd, hw_vbe);
-
-    add_lcd_info(hd_data, hd, bt);
-
-    return;
-  }
-
-  /* Maybe we have hidden edid info here? */
-  if(!(s = s0 = t = get_cmd_param(hd_data, 0))) return;                /* no :-( */
-
-  s = strsep(&t, "^");
-
-  se = s + strlen(s);
-
-  if(se - s < 7 + 2 * 4) {
-    free_mem(s0);
-    return;
-  }
-
-  /* Ok, we've got it. Now we split the fields. */
-
-  memcpy(m, s, 7); m[7] = 0; s += 7;
-
-  hd = add_hd_entry(hd_data, __LINE__, 0);
-
-  hd->base_class.id = bc_monitor;
-  hd->vendor.id = name2eisa_id(m);
-  if(sscanf(m + 3, "%x", &u) == 1) hd->device.id = MAKE_ID(TAG_EISA, u);
-  if((u = device_class(hd_data, hd->vendor.id, hd->device.id))) {
-    if((u >> 8) == bc_monitor) hd->sub_class.id = u & 0xff;
-  }
-
-  i = hex(s, 2); j = hex(s + 2, 2); s += 4;
-  if(i > 0 && j > 0) {
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->size.type = res_size;
-    res->size.unit = size_unit_cm;
-    res->size.val1 = i;                /* width */
-    res->size.val2 = j;                /* height */
-  }
-
-  i = hex(s, 2); s+= 2;
-  if(i & (1 << 7)) add_monitor_res(hd, 720, 400, 70, 0);
-  if(i & (1 << 6)) add_monitor_res(hd, 720, 400, 88, 0);
-  if(i & (1 << 5)) add_monitor_res(hd, 640, 480, 60, 0);
-  if(i & (1 << 4)) add_monitor_res(hd, 640, 480, 67, 0);
-  if(i & (1 << 3)) add_monitor_res(hd, 640, 480, 72, 0);
-  if(i & (1 << 2)) add_monitor_res(hd, 640, 480, 75, 0);
-  if(i & (1 << 1)) add_monitor_res(hd, 800, 600, 56, 0);
-  if(i & (1 << 0)) add_monitor_res(hd, 800, 600, 60, 0);
-
-  i = hex(s, 2); s+= 2;
-  if(i & (1 << 7)) add_monitor_res(hd,  800,  600, 72, 0);
-  if(i & (1 << 6)) add_monitor_res(hd,  800,  600, 75, 0);
-  if(i & (1 << 5)) add_monitor_res(hd,  832,  624, 75, 0);
-  if(i & (1 << 4)) add_monitor_res(hd, 1024,  768, 87, 1);
-  if(i & (1 << 3)) add_monitor_res(hd, 1024,  768, 60, 0);
-  if(i & (1 << 2)) add_monitor_res(hd, 1024,  768, 70, 0);
-  if(i & (1 << 1)) add_monitor_res(hd, 1024,  768, 75, 0);
-  if(i & (1 << 0)) add_monitor_res(hd, 1280, 1024, 75, 0);
-
-  if(((se - s) & 1) || se - s > 8 * 4 + 2) {
-    ADD2LOG("  ddc oops: %d bytes left?\n", (int) (se - s));
-    free_mem(s0);
-    return;
-  }
-
-  while(s + 4 <= se) {
-    i = (hex(s, 2) + 31) * 8; j = hex(s + 2, 2); s += 4;
-    k = 0;
-    switch((j >> 6) & 3) {
-      case 1: k = (i * 3) / 4; break;
-      case 2: k = (i * 4) / 5; break;
-      case 3: k = (i * 9) / 16; break;
-    }
-    if(k) add_monitor_res(hd, i, k, (j & 0x3f) + 60, 0);
-  }
-
-  u = 0;
-  if(se - s == 2) u = hex(s, 2) + 1990;
-
-  if(u || t) {
-    mi = new_mem(sizeof *mi);
-    if(u) mi->manu_year = u;
-    while((s = strsep(&t, "^"))) {
-      for(s1 = s; *s1++; ) if(*s1 == '_') *s1 = ' ';
-      switch(*s) {
-        case '0':
-          if(!mi->name && s[1]) mi->name = canon_str(s + 1, strlen(s + 1));
-          break;
-        case '1':
-          u = 0;
-          if(strlen(s) == 9) {
-            i = hex(s + 1, 2);
-            j = hex(s + 3, 2);
-            if(i > j || !i) u = 1;
-            mi->min_vsync = i;
-            mi->max_vsync = j;
-            i = hex(s + 5, 2);
-            j = hex(s + 7, 2);
-            if(i > j || !i) u = 1;
-            mi->min_hsync = i;
-            mi->max_hsync = j;
-          }
-          else {
-            u = 1;
-          }
-          if(u) {
-            mi->min_vsync = mi->max_vsync = mi->min_hsync = mi->max_hsync = 0;
-            ADD2LOG("  ddc oops: invalid freq data\n");
-          }
-          break;
-        case '2':
-          if(!mi->vendor && s[1]) mi->vendor = canon_str(s + 1, strlen(s + 1));
-          break;
-        case '3':
-          if(!mi->serial && s[1]) mi->serial = canon_str(s + 1, strlen(s + 1));
-          break;
-        default:
-          ADD2LOG("  ddc oops: invalid tag 0x%02x\n", *s);
-      }
-    }
-  }
-
-  if(mi) {
-    hd->detail = new_mem(sizeof *hd->detail);
-    hd->detail->type = hd_detail_monitor;
-    hd->detail->monitor.data = mi;
-
-    hd->serial = new_str(mi->serial);
-
-#if 0
-// ########### FIXME
-    if(
-      mi->vendor &&
-      ID_VALUE(hd->vendor.id) &&
-      !hd_vendor_name(hd_data, hd->vendor.id)
-    ) {
-      add_vendor_name(hd_data, hd->vend, mi->vendor);
-    }
-#endif
-
-#if 0
-// ########### FIXME 
-    if(
-      mi->name &&
-      (ID_VALUE(hd->vendor.id) || ID_VALUE(hd->device.id)) &&
-      !hd_device_name(hd_data, hd->vend, hd->device.id)
-    ) {
-      add_device_name(hd_data, hd->vend, hd->dev, mi->name);
-    }
-#endif
-
-    if(hd_data->debug) {
-      ADD2LOG("----- DDC info -----\n");
-      if(mi->vendor) {
-        ADD2LOG("  vendor: \"%s\"\n", mi->vendor);
-      }
-      if(mi->name) {
-        ADD2LOG("  model: \"%s\"\n", mi->name);
-      }
-      if(mi->serial) {
-        ADD2LOG("  serial: \"%s\"\n", mi->serial);
-      }
-      if(mi->min_hsync) {
-        ADD2LOG("  hsync: %u-%u kHz\n", mi->min_hsync, mi->max_hsync);
-      }
-      if(mi->min_vsync) {
-        ADD2LOG("  vsync: %u-%u Hz\n", mi->min_vsync, mi->max_vsync);
-      }
-      if(mi->manu_year) {
-        ADD2LOG("  manu. year: %u\n", mi->manu_year);
-      }
-      ADD2LOG("----- DDC info end -----\n");
-    }
-  }
-
-  free_mem(s0);
-}
-#endif /* !defined(__PPC__) */
-
-#if defined(__PPC__)
-void hd_scan_monitor(hd_data_t *hd_data)
-{
-  devtree_t *dt;
-  int found;
-
-  if(!hd_probe_feature(hd_data, pr_monitor)) return;
-
-  hd_data->module = mod_monitor;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "prom");
-
-  found = 0;
-  for(dt = hd_data->devtree; dt; dt = dt->next) {
-    if(dt->edid) {
-      add_monitor(hd_data, dt);
-      found = 1;
-    }
-  }
-
-  if(!found) {
-    add_old_mac_monitor(hd_data);
-  }
-}
-
-void add_old_mac_monitor(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  unsigned u1, u2;
-  str_list_t *sl;
-  static struct {
-    unsigned width, height, vfreq, interlaced;
-  } mode_list[20] = {
-    {  512,  384, 60, 1 },
-    {  512,  384, 60, 0 },
-    {  640,  480, 50, 1 },
-    {  640,  480, 60, 1 },
-    {  640,  480, 60, 0 },
-    {  640,  480, 67, 0 },
-    {  640,  870, 75, 0 },
-    {  768,  576, 50, 1 },
-    {  800,  600, 56, 0 },
-    {  800,  600, 60, 0 },
-    {  800,  600, 72, 0 },
-    {  800,  600, 75, 0 },
-    {  832,  624, 75, 0 },
-    { 1024,  768, 60, 0 },
-    { 1024,  768, 70, 0 },
-    { 1024,  768, 75, 0 },
-    { 1024,  768, 75, 0 },
-    { 1152,  870, 75, 0 },
-    { 1280,  960, 75, 0 },
-    { 1280, 1024, 75, 0 }
-  };
-
-  for(sl = hd_data->klog; sl; sl = sl->next) {
-    if(sscanf(sl->str, "<%*d>Monitor sense value = %i, using video mode %i", &u1, &u2) == 2) {
-      u2--;
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_monitor;
-
-      hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0401);
-      hd->device.id = MAKE_ID(TAG_SPECIAL, (u1 & 0xfff) + 0x1000);
-
-      if((u1 = hd_display_adapter(hd_data))) {
-        hd->attached_to = u1;
-      }
-
-      if(u2 < sizeof mode_list / sizeof *mode_list) {
-        add_monitor_res(hd, mode_list[u2].width, mode_list[u2].height, mode_list[u2].vfreq, mode_list[u2].interlaced);
-      }
-
-      break;
-    }
-  }
-
-}
-
-void add_monitor(hd_data_t *hd_data, devtree_t *dt)
-{
-  hd_t *hd, *hd2;
-  unsigned char *edid = dt->edid;
-
-  if(!chk_edid_info(hd_data, edid)) return;
-
-  hd = add_hd_entry(hd_data, __LINE__, 0);
-
-  hd->base_class.id = bc_monitor;
-
-  for(hd2 = hd_data->hd; hd2; hd2 = hd2->next) {
-    if(
-      hd2->detail &&
-      hd2->detail->type == hd_detail_devtree &&
-      hd2->detail->devtree.data == dt
-    ) {
-      hd->attached_to = hd2->idx;
-      break;
-    }
-  }
-
-  add_edid_info(hd_data, hd, edid);
-}
-
-#endif /* defined(__PPC__) */
-
-/* do some checks to ensure we got a reasonable block */
-int chk_edid_info(hd_data_t *hd_data, unsigned char *edid)
-{
-  // no vendor or model info
-  if(!(edid[0x08] || edid[0x09] || edid[0x0a] || edid[0x0b])) return 0;
-
-  // no edid version or revision
-  if(!(edid[0x12] || edid[0x13])) return 0;
-
-  return 1;
-}
-
-#if !defined(__PPC__)
-void add_lcd_info(hd_data_t *hd_data, hd_t *hd, bios_info_t *bt)
-{
-  monitor_info_t *mi = NULL;
-
-  hd->vendor.name = new_str(bt->lcd.vendor);
-  hd->device.name = new_str(bt->lcd.name);
-
-  add_monitor_res(hd, bt->lcd.width, bt->lcd.height, 60, 0);
-
-  mi = new_mem(sizeof *mi);
-  hd->detail = new_mem(sizeof *hd->detail);
-  hd->detail->type = hd_detail_monitor;
-  hd->detail->monitor.data = mi;
-
-  mi->min_vsync = 50;
-  mi->min_hsync = 31;
-  mi->max_vsync = 75;
-  mi->max_hsync = (mi->max_vsync * bt->lcd.height * 12) / 10000;
-}
-#endif
-
-void add_edid_info(hd_data_t *hd_data, hd_t *hd, unsigned char *edid)
-{
-  hd_res_t *res;
-  monitor_info_t *mi = NULL;
-  int i;
-  unsigned u, u1, u2;
-
-  fix_edid_info(hd_data, edid);
-
-  u = (edid[8] << 8) + edid[9];
-  hd->vendor.id = MAKE_ID(TAG_EISA, u);
-  u = (edid[0xb] << 8) + edid[0xa];
-  hd->device.id = MAKE_ID(TAG_EISA, u);
-  if((u = device_class(hd_data, hd->vendor.id, hd->device.id))) {
-    if((u >> 8) == bc_monitor) hd->sub_class.id = u & 0xff;
-  }
-
-  if(edid[0x15] > 0 && edid[0x16] > 0) {
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->size.type = res_size;
-    res->size.unit = size_unit_cm;
-    res->size.val1 = edid[0x15];       /* width */
-    res->size.val2 = edid[0x16];       /* height */
-  }
-
-  u = edid[0x23];
-  if(u & (1 << 7)) add_monitor_res(hd, 720, 400, 70, 0);
-  if(u & (1 << 6)) add_monitor_res(hd, 720, 400, 88, 0);
-  if(u & (1 << 5)) add_monitor_res(hd, 640, 480, 60, 0);
-  if(u & (1 << 4)) add_monitor_res(hd, 640, 480, 67, 0);
-  if(u & (1 << 3)) add_monitor_res(hd, 640, 480, 72, 0);
-  if(u & (1 << 2)) add_monitor_res(hd, 640, 480, 75, 0);
-  if(u & (1 << 1)) add_monitor_res(hd, 800, 600, 56, 0);
-  if(u & (1 << 0)) add_monitor_res(hd, 800, 600, 60, 0);
-
-  u = edid[0x24];
-  if(u & (1 << 7)) add_monitor_res(hd,  800,  600, 72, 0);
-  if(u & (1 << 6)) add_monitor_res(hd,  800,  600, 75, 0);
-  if(u & (1 << 5)) add_monitor_res(hd,  832,  624, 75, 0);
-  if(u & (1 << 4)) add_monitor_res(hd, 1024,  768, 87, 1);
-  if(u & (1 << 3)) add_monitor_res(hd, 1024,  768, 60, 0);
-  if(u & (1 << 2)) add_monitor_res(hd, 1024,  768, 70, 0);
-  if(u & (1 << 1)) add_monitor_res(hd, 1024,  768, 75, 0);
-  if(u & (1 << 0)) add_monitor_res(hd, 1280, 1024, 75, 0);
-
-  for(i = 0; i < 4; i++) {
-    u1 = (edid[0x26 + 2 * i] + 31) * 8;
-    u2 = edid[0x27 + 2 * i];
-    u = 0;
-    switch((u2 >> 6) & 3) {
-      case 1: u = (u1 * 3) / 4; break;
-      case 2: u = (u1 * 4) / 5; break;
-      case 3: u = (u1 * 9) / 16; break;
-    }
-    if(u) add_monitor_res(hd, u1, u, (u2 & 0x3f) + 60, 0);
-  }
-
-  mi = new_mem(sizeof *mi);
-  mi->manu_year = 1990 + edid[0x11];
-
-  for(i = 0x36; i < 0x36 + 4 * 0x12; i += 0x12) {
-    if(!(edid[i] || edid[i + 1] || edid[i + 2])) {
-      switch(edid[i + 3]) {
-        case 0xfc:
-          if(edid[i + 5]) {
-            /* the name entry is splitted some times */
-            str_printf(&mi->name, -1, "%s%s", mi->name ? " " : "", canon_str(edid + i + 5, 0xd));
-          }
-          break;
-
-        case 0xfd:
-          u = 0;
-          u1 = edid[i + 5];
-          u2 = edid[i + 6];
-          if(u1 > u2 || !u1) u = 1;
-          mi->min_vsync = u1;
-          mi->max_vsync = u2;
-          u1 = edid[i + 7];
-          u2 = edid[i + 8];
-          if(u1 > u2 || !u1) u = 1;
-          mi->min_hsync = u1;
-          mi->max_hsync = u2;
-          if(u) {
-            mi->min_vsync = mi->max_vsync = mi->min_hsync = mi->max_hsync = 0;
-            ADD2LOG("  ddc oops: invalid freq data\n");
-          }
-          break;
-
-        case 0xfe:
-          if(!mi->vendor && edid[i + 5]) mi->vendor = canon_str(edid + i + 5, 0xd);
-          break;
-
-        case 0xff:
-          if(!mi->serial && edid[i + 5]) mi->serial = canon_str(edid + i + 5, 0xd);
-          break;
-
-        default:
-          ADD2LOG("  ddc oops: invalid tag 0x%02x\n", edid[i + 3]);
-      }
-    }
-  }
-
-  if(mi) {
-    hd->detail = new_mem(sizeof *hd->detail);
-    hd->detail->type = hd_detail_monitor;
-    hd->detail->monitor.data = mi;
-
-    hd->serial = new_str(mi->serial);
-    hd->vendor.name = new_str(mi->vendor);
-    hd->device.name = new_str(mi->name);
-
-    if(hd_data->debug) {
-      ADD2LOG("----- DDC info -----\n");
-      if(mi->vendor) {
-        ADD2LOG("  vendor: \"%s\"\n", mi->vendor);
-      }
-      if(mi->name) {
-        ADD2LOG("  model: \"%s\"\n", mi->name);
-      }
-      if(mi->serial) {
-        ADD2LOG("  serial: \"%s\"\n", mi->serial);
-      }
-      if(mi->min_hsync) {
-        ADD2LOG("  hsync: %u-%u kHz\n", mi->min_hsync, mi->max_hsync);
-      }
-      if(mi->min_vsync) {
-        ADD2LOG("  vsync: %u-%u Hz\n", mi->min_vsync, mi->max_vsync);
-      }
-      if(mi->manu_year) {
-        ADD2LOG("  manu. year: %u\n", mi->manu_year);
-      }
-      ADD2LOG("----- DDC info end -----\n");
-    }
-  }
-}
-
-void add_monitor_res(hd_t *hd, unsigned width, unsigned height, unsigned vfreq, unsigned il)
-{
-  hd_res_t *res;
-
-  res = add_res_entry(&hd->res, new_mem(sizeof *res));
-  res->monitor.type = res_monitor;
-  res->monitor.width = width;
-  res->monitor.height = height;
-  res->monitor.vfreq = vfreq;
-  res->monitor.interlaced = il;
-}
-
-/*
- * This looks evil, but some Mac displays really lie at us.
- */
-void fix_edid_info(hd_data_t *hd_data, unsigned char *edid)
-{
-  unsigned vend, dev;
-  unsigned timing;
-  int fix = 0;
-
-  vend = (edid[8] << 8) + edid[9];
-  dev = (edid[0xb] << 8) + edid[0xa];
-
-  timing = (edid[0x24] << 8) + edid[0x23];
-
-  /* APP9214: Apple Studio Display */
-  if(vend == 0x0610 && dev == 0x9214 && timing == 0x0800) {
-    timing = 0x1000;
-    fix = 1;
-  }
-
-  if(fix) {
-    edid[0x23] = timing & 0xff;
-    edid[0x24] = (timing >> 8) & 0xff;
-  }
-}
-
diff --git a/src/hwinfo/src/hd/monitor.h b/src/hwinfo/src/hd/monitor.h
deleted file mode 100644 (file)
index a74a0bb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_monitor(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/mouse.c b/src/hwinfo/src/hd/mouse.c
deleted file mode 100644 (file)
index 83a576b..0000000
+++ /dev/null
@@ -1,785 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <termios.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/ioctl.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "mouse.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * mouse info
- *
- * TODO: reset serial lines to old values (cf. modem.c)
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#ifndef LIBHD_TINY
-
-#if 0
-static unsigned read_data(hd_data_t *hd_data, int fd, unsigned char *buf, unsigned buf_size);
-static void get_ps2_mouse(hd_data_t *hd_data);
-static void test_ps2_open(void *arg);
-#endif
-
-static void get_serial_mouse(hd_data_t* hd_data);
-static void add_serial_mouse(hd_data_t* hd_data);
-static int _setspeed(int fd, int old, int new, int needtowrite, unsigned short flags);
-static void setspeed(int fd, int new, int needtowrite, unsigned short flags);
-static unsigned chk4id(ser_device_t *mi);
-static ser_device_t *add_ser_mouse_entry(ser_device_t **sm, ser_device_t *new_sm);
-static void dump_ser_mouse_data(hd_data_t *hd_data);
-#if 0
-static void get_sunmouse(hd_data_t *hd_data);
-#endif
-
-void hd_scan_mouse(hd_data_t *hd_data)
-{
-  ser_device_t *sm, *sm_next;
-
-  if(!hd_probe_feature(hd_data, pr_mouse)) return;
-
-  hd_data->module = mod_mouse;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-  hd_data->ser_mouse = NULL;
-
-#if 0
-  PROGRESS(1, 0, "ps/2");
-
-  get_ps2_mouse(hd_data);
-#endif
-
-  PROGRESS(2, 0, "serial");
-
-  hd_fork(hd_data, 20, 20);
-
-  if(hd_data->flags.forked) {
-    get_serial_mouse(hd_data);
-    hd_move_to_shm(hd_data);
-    if((hd_data->debug & HD_DEB_MOUSE)) dump_ser_mouse_data(hd_data);
-  }
-  else {
-    /* take data from shm */
-    hd_data->ser_mouse = ((hd_data_t *) (hd_data->shm.data))->ser_mouse;
-    if((hd_data->debug & HD_DEB_MOUSE)) dump_ser_mouse_data(hd_data);
-  }
-
-  hd_fork_done(hd_data);
-
-  add_serial_mouse(hd_data);
-
-  hd_shm_clean(hd_data);
-
-  for(sm = hd_data->ser_mouse; sm; sm = sm_next) {
-    sm_next = sm->next;
-
-    free_mem(sm->dev_name);
-    free_mem(sm);
-  }
-  hd_data->ser_mouse = NULL;
-
-#if 0
-  PROGRESS(3, 0, "sunmouse");
-
-  get_sunmouse(hd_data);
-#endif
-}
-
-
-#if 0
-unsigned read_data(hd_data_t *hd_data, int fd, unsigned char *buf, unsigned buf_size)
-{
-  int k, len = 0;
-  unsigned char *bp;
-
-  while(
-    (unsigned) len < buf_size &&
-    (k = read(fd, buf + len, buf_size - len)) >= 0
-  ) len += k;
-
-  bp = buf;
-  if(len && (*bp == 0xfe || *bp == 0xfa)) { bp++; len--; }
-
-  for(k = 0; k < len; k++) buf[k] = bp[k];
-
-  if((hd_data->debug & HD_DEB_MOUSE)) {
-    ADD2LOG("ps/2[%d]: ", len);
-    hexdump(&hd_data->log, 1, len, buf);
-    ADD2LOG("\n");
-  }
-
-  return len;
-}
-
-
-/*
- * How it works:
- *
- * 1. There must exist a PS/2 controller entry (-> there is a PS/2 port).
- * 2. If there are PS/2 mouse irq events, assume a PS/2 mouse is attached.
- * 3. Otherwise:
- *      - open /dev/psaux
- *      - write the "get mouse info" command (0xe9)
- *      - read back the response, which should be either 0xfe "resend data"
- *        or, e.g. (0xfa) 0x20 0x02 0x3c (0xfa = "ACK" (should be swallowed
- *        by the psaux driver, but isn't), the rest are settings)
- *      - ignore the first byte if it is 0xfa or 0xfe
- *      - if there are at least 2 bytes left, assume a mouse is attached.
- *
- * Note1: we could use the command 0xfe "get mouse ID" instead. But that turned
- *        out to be less reliable, as this command returns only one byte, which
- *        is even 0.
- * Note2: step 2 is mainly relevant if the mouse is already in use. In that
- *        case we would have problems reading back the respose of our command.
- *        (Typically the mouse driver will get it (and choke on it).)
- */
-
-static void get_ps2_mouse(hd_data_t *hd_data)
-{
-  hd_t *hd, *hd1;
-  hd_res_t *res;
-  int fd;
-  fd_set set;
-  struct timeval tv;
-  unsigned char cmd_mouse_info = 0xe9; /* read mouse info (3 bytes) */
-  unsigned char cmd_mouse_id = 0xf2;   /* read mouse id (1 byte) */
-  unsigned char buf[100];
-  unsigned mouse_id = -1;
-  static unsigned char intelli_init[] = { 0xf3, 200, 0xf3, 100, 0xf3, 80 };
-  int buf_len = 0;
-#ifdef __PPC__
-  int always_ps2_mouse = 0;
-#endif
-
-  for(hd1 = hd_data->hd; hd1; hd1 = hd1->next) {
-    /* look for a PS/2 controller entry... */
-    if(hd1->base_class.id == bc_ps2) {
-      /* ...and see if there were irq events... */
-      for(res = hd1->res; res; res = res->next) {
-        if(res->irq.type == res_irq && res->irq.triggered) break;
-      }
-
-#ifdef __PPC__
-      /*
-       * On PReP & CHRP, assume a PS/2 mouse to be attached.
-       * There seems to be no way to actually *detect* it.
-       */
-      if(!res) {
-        hd_t *hd;
-        sys_info_t *st;
-
-        if((hd = hd_list(hd_data, hw_sys, 0, NULL))) {
-          if(
-            hd->detail &&
-            hd->detail->type == hd_detail_sys &&
-            (st = hd->detail->sys.data) &&
-            (
-              !strcmp(st->system_type, "PReP") ||
-              strstr(st->system_type, "CHRP") == st->system_type       /* CHRP && CHRP64 */
-            )
-          ) {
-            always_ps2_mouse = 1;
-          }
-        }
-      }
-#endif
-
-      PROGRESS(1, 1, "ps/2");
-
-      /* open the mouse device... */
-      if(hd_timeout(test_ps2_open, NULL, 2) > 0) {
-        ADD2LOG("ps/2: open(%s) timed out\n", DEV_PSAUX);
-        fd = -2;
-      }
-      else {
-        fd = open(DEV_PSAUX, O_RDWR | O_NONBLOCK);
-      }
-
-      PROGRESS(1, 2, "ps/2");
-
-      if(fd >= 0) {
-        /* ...write the id command... */
-
-        PROGRESS(1, 3, "ps/2");
-
-        write(fd, intelli_init, sizeof intelli_init);
-        usleep(25000);
-        read_data(hd_data, fd, buf, sizeof buf);
-
-        if(write(fd, &cmd_mouse_id, 1) == 1) {
-
-          PROGRESS(1, 4, "ps/2");
-          usleep(50000);        /* ...give it a chance to react... */
-
-          /* ...read the response... */
-          buf_len = read_data(hd_data, fd, buf, sizeof buf);
-
-          if(buf_len >= 1) mouse_id = buf[buf_len - 1];
-
-          // if we didn't get any response, try this
-          if(buf_len == 0 || (hd_data->debug & HD_DEB_MOUSE)) {
-            PROGRESS(1, 5, "ps/2");
-            if(write(fd, &cmd_mouse_info, 1) == 1) {
-              usleep(50000);
-              buf_len = read_data(hd_data, fd, buf, sizeof buf);
-              /*
-               * Assume a mouse to be attached if at least 2 bytes are
-               * returned.
-               */
-              if(mouse_id == -1u && buf_len >= 2) mouse_id = 0;
-            }
-          }
-
-          PROGRESS(1, 6, "ps/2");
-        }
-        close(fd);
-
-        PROGRESS(1, 7, "ps/2");
-
-        /*
-         * The following code is apparently necessary on some board/mouse
-         * combinations. Otherwise the PS/2 mouse won't work.
-         */
-        if((fd = open(DEV_PSAUX, O_RDONLY | O_NONBLOCK)) >= 0) {
-          PROGRESS(1, 8, "ps/2");
-
-          FD_ZERO(&set);
-          FD_SET(fd, &set);
-          tv.tv_sec = 0; tv.tv_usec = 1;
-          if(select(fd + 1, &set, NULL, NULL, &tv) == 1) {
-            PROGRESS(1, 9, "ps/2");
-
-            read(fd, buf, sizeof buf);
-
-            PROGRESS(1, 10, "ps/2");
-          }
-          PROGRESS(1, 11, "ps/2");
-
-          close(fd);
-
-          PROGRESS(1, 12, "ps/2");
-        }
-      }
-      else {
-        ADD2LOG("open(" DEV_PSAUX "): %s\n", fd == -1 ? strerror(errno) : "timeout");
-      }
-
-      if(mouse_id == -1u) {
-
-        /*
-         * Assume a PS/2 mouse is attached if the ps/2 controller has
-         * genetrated some events.
-         */
-
-        if(
-          res
-#ifdef __PPC__
-          || always_ps2_mouse
-#endif
-        ) {
-          PROGRESS(1, 13, "ps/2");
-          mouse_id = 0;
-        }
-      }
-
-      if(mouse_id != -1u) {
-        PROGRESS(1, 14, "ps/2");
-
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->base_class.id = bc_mouse;
-        hd->sub_class.id = sc_mou_ps2;
-        hd->bus.id = bus_ps2;
-        hd->unix_dev_name = new_str(DEV_MICE);
-        hd->attached_to = hd1->idx;
-
-        hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0200);
-        switch(mouse_id) {
-          case 3:              /* 3 buttons + wheel */
-            hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0004);
-            break;
-
-          case 4:              /* 5 buttons + wheel */
-            hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0005);
-            break;
-
-          default:     /* 0 */
-            hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0002);
-        }
-      }
-
-      /* there can only be one... */
-      break;
-    }
-  }
-}
-
-void test_ps2_open(void *arg)
-{
-  open(DEV_PSAUX, O_RDWR | O_NONBLOCK);
-}
-#endif
-
-#if 0
-static void get_sunmouse(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  int fd;
-  int found;
-
-  found = 0;
-
-  /* Only search for Sun mouse if we have a Sun keyboard */
-  for(hd = hd_data->hd; hd; hd = hd->next)
-    {
-      if(hd->base_class.id == bc_keyboard &&
-        hd->sub_class.id == sc_keyboard_kbd &&
-        ID_TAG(hd->vendor.id) == TAG_SPECIAL && ID_VALUE(hd->vendor.id) == 0x0202)
-       found = 1;
-    }
-
-  if (found)
-    {
-      if ((fd = open(DEV_SUNMOUSE, O_RDONLY)) != -1)
-       {
-         /* FIXME: Should probably talk to the mouse to see
-            if the connector is not empty. */
-         close (fd);
-
-         PROGRESS(1, 1, "Sun Mouse");
-
-         hd = add_hd_entry (hd_data, __LINE__, 0);
-         hd->base_class.id = bc_mouse;
-         hd->sub_class.id = sc_mou_sun;
-         hd->bus.id = bus_serial;
-         hd->unix_dev_name = new_str(DEV_SUNMOUSE);
-
-         hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0202);
-         hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0000);
-       }
-    }
-}
-#endif
-
-/*
- * Gather serial mouse data and put it into hd_data->ser_mouse.
- */
-void get_serial_mouse(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  int j, fd, fd_max = 0, sel, max_len;
-  unsigned modem_info;
-  fd_set set, set0;
-  struct timeval to;
-  ser_device_t *sm;
-  struct termios tio;
-
-  FD_ZERO(&set);
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_comm &&
-      hd->sub_class.id == sc_com_ser &&
-      hd->unix_dev_name &&
-      !hd->tag.ser_skip &&
-      !has_something_attached(hd_data, hd)
-    ) {
-      if((fd = open(hd->unix_dev_name, O_RDWR | O_NONBLOCK)) >= 0) {
-        if(tcgetattr(fd, &tio)) continue;
-        sm = add_ser_mouse_entry(&hd_data->ser_mouse, new_mem(sizeof *sm));
-        sm->dev_name = new_str(hd->unix_dev_name);
-        sm->fd = fd;
-        sm->tio = tio;
-        sm->hd_idx = hd->idx;
-        if(fd > fd_max) fd_max = fd;
-        FD_SET(fd, &set);
-
-        /*
-         * PnP COM spec black magic...
-         */
-        setspeed(fd, 1200, 1, CS7);
-        modem_info = TIOCM_DTR | TIOCM_RTS;
-        ioctl(fd, TIOCMBIC, &modem_info);
-      }
-    }
-  }
-
-  if(!hd_data->ser_mouse) return;
-
-  /*
-   * 200 ms seems to be too fast for some mice...
-   */
-  usleep(300000);              /* PnP protocol */
-
-  for(sm = hd_data->ser_mouse; sm; sm = sm->next) {
-    modem_info = TIOCM_DTR | TIOCM_RTS;
-    ioctl(sm->fd, TIOCMBIS, &modem_info);
-  }
-
-  /* smaller buffer size, otherwise we might wait really long... */
-  max_len = sizeof sm->buf < 128 ? sizeof sm->buf : 128;
-
-  to.tv_sec = 0; to.tv_usec = 300000;
-
-  set0 = set;
-  for(;;) {
-   to.tv_sec = 0; to.tv_usec = 300000;
-    set = set0;
-    if((sel = select(fd_max + 1, &set, NULL, NULL, &to)) > 0) {
-      for(sm = hd_data->ser_mouse; sm; sm = sm->next) {
-        if(FD_ISSET(sm->fd, &set)) {
-          if((j = read(sm->fd, sm->buf + sm->buf_len, max_len - sm->buf_len)) > 0)
-            sm->buf_len += j;
-          if(j <= 0) FD_CLR(sm->fd, &set0);    // #####
-        }
-      }
-    }
-    else {
-      break;
-    }
-  }
-
-  for(sm = hd_data->ser_mouse; sm; sm = sm->next) {
-    chk4id(sm);
-    /* reset serial lines */
-    tcflush(sm->fd, TCIOFLUSH);
-    tcsetattr(sm->fd, TCSAFLUSH, &sm->tio);
-    close(sm->fd);
-  }
-}
-
-
-/*
- * Go through serial mouse data and add hd entries.
- */
-void add_serial_mouse(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  char buf[4];
-  ser_device_t *sm;
-
-  for(sm = hd_data->ser_mouse; sm; sm = sm->next) {
-    if(sm->is_mouse) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_mouse;
-      hd->sub_class.id = sc_mou_ser;
-      hd->bus.id = bus_serial;
-      hd->unix_dev_name = new_str(sm->dev_name);
-      hd->attached_to = sm->hd_idx;
-      if(*sm->pnp_id) {
-        strncpy(buf, sm->pnp_id, 3);
-        buf[3] = 0;
-        hd->vendor.id = name2eisa_id(buf);
-        if(!hd->vendor.id) {   /* in case it's a really strange one... */
-          hd->vendor.name = new_str(buf);
-        }
-        hd->device.id = MAKE_ID(TAG_EISA, strtol(sm->pnp_id + 3, NULL, 16));
-
-        hd->serial = new_str(sm->serial);
-        if(sm->user_name) hd->device.name = new_str(sm->user_name);
-        if(sm->vend) {
-          free_mem(hd->vendor.name);
-          hd->vendor.name = new_str(sm->vend);
-        }
-
-        if(sm->dev_id && strlen(sm->dev_id) >= 7) {
-          char buf[5], *s;
-          unsigned u1, u2;
-
-          u1 = name2eisa_id(sm->dev_id);
-          if(u1) {
-            strncpy(buf, sm->dev_id + 3, 4);
-            buf[4] = 0;
-            u2 = strtol(sm->dev_id + 3, &s, 16);
-            if(!*s) {
-              hd->compat_vendor.id = u1;
-              hd->compat_device.id = MAKE_ID(TAG_EISA, u2);
-            }
-          }
-        }
-      }
-      else {
-        hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0200);
-        hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0003);
-      }
-    }
-  }
-}
-
-
-/*
- * Baud setting magic taken from gpm.
- */
-
-int _setspeed(int fd, int old, int new, int needtowrite, unsigned short flags)
-{
-  struct termios tty;
-  char *c;
-  int err = 0;
-
-  flags |= CREAD | CLOCAL | HUPCL;
-
-  if(tcgetattr(fd, &tty)) return errno;
-
-  tty.c_iflag = IGNBRK | IGNPAR;
-  tty.c_oflag = 0;
-  tty.c_lflag = 0;
-  tty.c_line = 0;
-  tty.c_cc[VTIME] = 0;
-  tty.c_cc[VMIN] = 1;
-
-  switch (old)
-    {
-    case 9600:  tty.c_cflag = flags | B9600; break;
-    case 4800:  tty.c_cflag = flags | B4800; break;
-    case 2400:  tty.c_cflag = flags | B2400; break;
-    case 1200:
-    default:    tty.c_cflag = flags | B1200; break;
-    }
-
-  if(tcsetattr(fd, TCSAFLUSH, &tty)) return errno;
-
-  switch (new)
-    {
-    case 9600:  c = "*q";  tty.c_cflag = flags | B9600; break;
-    case 4800:  c = "*p";  tty.c_cflag = flags | B4800; break;
-    case 2400:  c = "*o";  tty.c_cflag = flags | B2400; break;
-    case 1200:
-    default:    c = "*n";  tty.c_cflag = flags | B1200; break;
-    }
-
-  if(needtowrite) {
-    err = 2 - write(fd, c, 2);
-  }
-
-  usleep(100000);
-
-  if(tcsetattr(fd, TCSAFLUSH, &tty)) return errno;
-
-  return err;
-}
-
-
-void setspeed(int fd, int new, int needtowrite, unsigned short flags)
-{
-  int i, err;
-
-  for(i = 9600; i >= 1200; i >>= 1) {
-    err = _setspeed(fd, i, new, needtowrite, flags);
-#if 0
-    if(err) {
-      fprintf(stderr, "%d, %d ", i, err);
-      perror("");
-    }
-#endif
-  }
-}
-
-
-#if 0
-/*
- * Check for a PnP info field starting at ofs;
- * returns either the length of the field or 0 if none was found.
- *
- * the minfo_t struct is updated with the PnP data
- */
-int is_pnpinfo(ser_device_t *mi, int ofs)
-{
-  int i;
-  unsigned char *s = mi->buf + ofs;
-  int len = mi->buf_len - ofs;
-
-  if(len <= 0) return 0;
-
-  switch(*s) {
-    case 0x08:
-      mi->bits = 6; break;
-    case 0x28:
-      mi->bits = 7; break;
-    default:
-      return 0;
-  }
-
-  if(len < 11) return 0;
-
-  /* six bit values */
-  if((s[1] & ~0x3f) || (s[2] & ~0x3f)) return 0;
-  mi->pnp_rev = (s[1] << 6) + s[2];
-
-  /* the eisa id */
-  for(i = 0; i < 7; i++) {
-    mi->pnp_id[i] = s[i + 3];
-    if(mi->bits == 6) mi->pnp_id[i] += 0x20;
-  }
-  mi->pnp_id[7] = 0;
-
-  /* now check the id */
-  for(i = 0; i < 3; i++) {
-    if(
-      (mi->pnp_id[i] < 'A' || mi->pnp_id[i] > 'Z') &&
-      mi->pnp_id[i] != '_'
-    ) return 0;
-  }
-
-  for(i = 3; i < 7; i++) {
-    if(
-      (mi->pnp_id[i] < '0' || mi->pnp_id[i] > '9') &&
-      (mi->pnp_id[i] < 'A' || mi->pnp_id[i] > 'F')
-    ) return 0;
-  }
-
-  if(
-    (mi->bits == 6 && s[10] == 0x09) ||
-    (mi->bits == 7 && s[10] == 0x29)
-  ) {
-    return 11;
-  }
-
-  if(
-    (mi->bits != 6 || s[10] != 0x3c) &&
-    (mi->bits != 7 || s[10] != 0x5c)
-  ) {
-    return 0;
-  }
-
-  /* skip extended info */
-  for(i = 11; i < len; i++) {
-    if(
-      (mi->bits == 6 && s[i] == 0x09) ||
-      (mi->bits == 7 && s[i] == 0x29)
-    ) {
-      return i + 1;
-    }
-  }
-
-  /*
-   * some mice have problems providing the extended info -> return ok in
-   * these cases too
-   */
-  if(
-    (mi->bits == 6 && s[10] == 0x3c) ||
-    (mi->bits == 7 && s[10] == 0x5c)
-  ) {
-    return 11;
-  }
-
-  /* no end token... */
-
-  return 0;
-}
-#endif
-
-unsigned chk4id(ser_device_t *mi)
-{
-  int i;
-
-#if 0
-  unsigned char fake[] =
-  {
-    // fake pnp data
-  };
-
-  mi->buf_len = sizeof fake;
-  memcpy(mi->buf, fake, mi->buf_len);
-  // for(i = 0; i < mi->buf_len; i++) mi->buf[i] += ' ';
-#endif
-
-  if(!mi->buf_len) return 0;
-
-  for(i = 0; i < mi->buf_len; i++) {
-    if((mi->pnp = is_pnpinfo(mi, i))) break;
-  }
-  if(i == mi->buf_len) {
-    /* non PnP, but MS compatible */
-    if(*mi->buf == 'M')
-      mi->non_pnp = mi->buf_len - 1;
-    else
-      return 0;
-  }
-
-  mi->garbage = i;
-
-  for(i = 0; i < mi->garbage; i++) {
-    if(mi->buf[i] == 'M') {
-      mi->non_pnp = mi->garbage - i;
-      mi->garbage = i;
-      break;
-    }
-  }
-
-  if(mi->non_pnp || mi->bits == 6) mi->is_mouse = 1;
-
-  return mi->is_mouse;
-}
-
-ser_device_t *add_ser_mouse_entry(ser_device_t **sm, ser_device_t *new_sm)
-{
-  while(*sm) sm = &(*sm)->next;
-  return *sm = new_sm;
-}
-
-
-void dump_ser_mouse_data(hd_data_t *hd_data)
-{
-  int j;
-  ser_device_t *sm;
-
-  if(!(sm = hd_data->ser_mouse)) return;
-
-  ADD2LOG("----- serial mice -----\n");
-
-  for(; sm; sm = sm->next) {
-    ADD2LOG("%s\n", sm->dev_name);
-    if(sm->serial) ADD2LOG("serial: \"%s\"\n", sm->serial);
-    if(sm->class_name) ADD2LOG("class_name: \"%s\"\n", sm->class_name);
-    if(sm->dev_id) ADD2LOG("dev_id: \"%s\"\n", sm->dev_id);
-    if(sm->user_name) ADD2LOG("user_name: \"%s\"\n", sm->user_name);
-
-    if(sm->garbage) {
-      ADD2LOG("  garbage[%u]: ", sm->garbage);
-      hexdump(&hd_data->log, 1, sm->garbage, sm->buf);
-      ADD2LOG("\n");
-    }
-
-    if(sm->non_pnp) {
-      ADD2LOG("  non-pnp[%u]: ", sm->non_pnp);
-      hexdump(&hd_data->log, 1, sm->non_pnp, sm->buf + sm->garbage);
-      ADD2LOG("\n");
-    }
-
-    if(sm->pnp) {
-      ADD2LOG("  pnp[%u]: ", sm->pnp);
-      hexdump(&hd_data->log, 1, sm->pnp, sm->buf + sm->garbage + sm->non_pnp);
-      ADD2LOG("\n");
-    }
-
-    if((j = sm->buf_len - (sm->garbage + sm->non_pnp + sm->pnp))) {
-      ADD2LOG("  moves[%u]: ", j);
-      hexdump(&hd_data->log, 1, j, sm->buf + sm->garbage + sm->non_pnp + sm->pnp);
-      ADD2LOG("\n");
-    }
-
-    if(sm->is_mouse) ADD2LOG("  is mouse\n");
-
-    if(sm->pnp) {
-      ADD2LOG("  bits: %u\n", sm->bits);
-      ADD2LOG("  PnP Rev: %u.%02u\n", sm->pnp_rev / 100, sm->pnp_rev % 100);
-      ADD2LOG("  PnP ID: \"%s\"\n", sm->pnp_id);
-    }
-
-    if(sm->next) ADD2LOG("\n");
-  }
-
-  ADD2LOG("----- serial mice end -----\n");
-}
-
-#endif         /* !defined(LIBHD_TINY) */
diff --git a/src/hwinfo/src/hd/mouse.h b/src/hwinfo/src/hd/mouse.h
deleted file mode 100644 (file)
index 10a038a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_mouse(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/net.c b/src/hwinfo/src/hd/net.c
deleted file mode 100644 (file)
index 955740f..0000000
+++ /dev/null
@@ -1,546 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-
-#define u8 uint8_t
-#define u16 uint16_t
-#define u32 uint32_t
-#define u64 uint64_t
-#include <linux/if.h>
-#include <linux/sockios.h>
-#include <linux/ethtool.h>
-#include <linux/if_arp.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "net.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * gather network interface info
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-static void get_driverinfo(hd_data_t *hd_data, hd_t *hd);
-static void get_linkstate(hd_data_t *hd_data, hd_t *hd);
-static void add_xpnet(hd_data_t *hdata);
-static void add_iseries(hd_data_t *hdata);
-static void add_uml(hd_data_t *hdata);
-
-/*
- * This is independent of the other scans.
- */
-
-void hd_scan_net(hd_data_t *hd_data)
-{
-  unsigned u;
-  int if_type;
-  hd_t *hd, *hd_card;
-  char *s, *hw_addr;
-  hd_res_t *res, *res1;
-  uint64_t ul0;
-
-  struct sysfs_class *sf_class;
-  struct sysfs_class_device *sf_cdev;
-  struct sysfs_device *sf_dev;
-  struct sysfs_driver *sf_drv;
-  struct dlist *sf_cdev_list;
-
-  if(!hd_probe_feature(hd_data, pr_net)) return;
-
-  hd_data->module = mod_net;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-  hd_data->net = free_str_list(hd_data->net);
-
-  PROGRESS(1, 0, "get network data");
-
-  sf_class = sysfs_open_class("net");
-
-  if(!sf_class) {
-    ADD2LOG("sysfs: no such class: net\n");
-    return;
-  }
-
-  sf_cdev_list = sysfs_get_class_devices(sf_class);
-  if(sf_cdev_list) dlist_for_each_data(sf_cdev_list, sf_cdev, struct sysfs_class_device) {
-    hd_card = NULL;
-
-    ADD2LOG(
-      "  net interface: name = %s, classname = %s, path = %s\n",
-      sf_cdev->name,
-      sf_cdev->classname,
-      hd_sysfs_id(sf_cdev->path)
-    );
-
-    if_type = -1;
-    if(hd_attr_uint(sysfs_get_classdev_attr(sf_cdev, "type"), &ul0, 0)) {
-      if_type = ul0;
-      ADD2LOG("    type = %d\n", if_type);
-    }
-
-    hw_addr = NULL;
-    if((s = hd_attr_str(sysfs_get_classdev_attr(sf_cdev, "address")))) {
-      hw_addr = canon_str(s, strlen(s));
-      ADD2LOG("    hw_addr = %s\n", hw_addr);
-    }
-
-    sf_dev = sysfs_get_classdev_device(sf_cdev);
-    if(sf_dev) {
-      ADD2LOG("    net device: path = %s\n", hd_sysfs_id(sf_dev->path));
-    }
-
-    sf_drv = sysfs_get_classdev_driver(sf_cdev);
-    if(sf_drv) {
-      ADD2LOG(
-        "    net driver: name = %s, path = %s\n",
-        sf_drv->name,
-        hd_sysfs_id(sf_drv->path)
-      );
-    }
-
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->base_class.id = bc_network_interface;
-    hd->sub_class.id = sc_nif_other;
-
-    res1 = NULL;
-    if(hw_addr && strspn(hw_addr, "0:") != strlen(hw_addr)) {
-      res1 = new_mem(sizeof *res1);
-      res1->hwaddr.type = res_hwaddr;
-      res1->hwaddr.addr = new_str(hw_addr);
-      add_res_entry(&hd->res, res1);
-    }
-
-    hw_addr = free_mem(hw_addr);
-
-    hd->unix_dev_name = new_str(sf_cdev->name);
-    hd->sysfs_id = new_str(hd_sysfs_id(sf_cdev->path));
-
-    if(sf_drv) {
-      add_str_list(&hd->drivers, sf_drv->name);
-    }
-    else if(hd->res) {
-      get_driverinfo(hd_data, hd);
-    }
-
-    if(sf_dev) {
-      hd->sysfs_device_link = new_str(hd_sysfs_id(sf_dev->path)); 
-
-      hd_card = hd_find_sysfs_id(hd_data, hd_sysfs_id(sf_dev->path));
-      if(hd_card) {
-        hd->attached_to = hd_card->idx;
-
-        /* for cards with strange pci classes */
-        hd_set_hw_class(hd_card, hw_network_ctrl);
-
-        /* add hw addr to network card */
-        if(res1) {
-          u = 0;
-          for(res = hd_card->res; res; res = res->next) {
-            if(
-              res->any.type == res_hwaddr &&
-              !strcmp(res->hwaddr.addr, res1->hwaddr.addr)
-            ) {
-              u = 1;
-              break;
-            }
-          }
-          if(!u) {
-            res = new_mem(sizeof *res);
-            res->hwaddr.type = res_hwaddr;
-            res->hwaddr.addr = new_str(res1->hwaddr.addr);
-            add_res_entry(&hd_card->res, res);
-          }
-        }
-        /* add interface names */
-        if(hd->unix_dev_name) {
-          if(!search_str_list(hd_card->unix_dev_names, hd->unix_dev_name)) {
-            add_str_list(&hd_card->unix_dev_names, hd->unix_dev_name);
-          }
-          if(!hd_card->unix_dev_name) {
-            hd_card->unix_dev_name = new_str(hd->unix_dev_name);
-          }
-        }
-      }
-    }
-
-#if 0
-    "ctc"      sc_nif_ctc
-    "iucv"     sc_nif_iucv
-    "hsi"      sc_nif_hsi
-    "qeth"     sc_nif_qeth
-    "escon"    sc_nif_escon
-    "myri"     sc_nif_myrinet
-    "wlan"     sc_nif_wlan
-    "xp"       sc_nif_xp
-    "usb"      sc_nif_usb
-#endif
-    switch(if_type) {
-      case ARPHRD_ETHER:       /* eth */
-        hd->sub_class.id = sc_nif_ethernet;
-        break;
-      case ARPHRD_LOOPBACK:    /* lo */
-        hd->sub_class.id = sc_nif_loopback;
-        break;
-      case ARPHRD_SIT:         /* sit */
-        hd->sub_class.id = sc_nif_sit;
-        break;
-      case ARPHRD_FDDI:                /* fddi */
-        hd->sub_class.id = sc_nif_fddi;
-        break;
-      case ARPHRD_IEEE802_TR:  /* tr */
-        hd->sub_class.id = sc_nif_tokenring;
-        break;
-#if 0
-      case ARPHRD_IEEE802:     /* fc */
-        hd->sub_class.id = sc_nif_fc;
-        break;
-#endif
-    }
-
-    if(!strcmp(hd->unix_dev_name, "lo")) {
-      hd->sub_class.id = sc_nif_loopback;
-    }
-    else if(sscanf(hd->unix_dev_name, "eth%u", &u) == 1) {
-      hd->sub_class.id = sc_nif_ethernet;
-      hd->slot = u;
-    }
-    else if(sscanf(hd->unix_dev_name, "tr%u", &u) == 1) {
-      hd->sub_class.id = sc_nif_tokenring;
-      hd->slot = u;
-    }
-    else if(sscanf(hd->unix_dev_name, "fddi%u", &u) == 1) {
-      hd->sub_class.id = sc_nif_fddi;
-      hd->slot = u;
-    }
-    else if(sscanf(hd->unix_dev_name, "ctc%u", &u) == 1) {
-      hd->sub_class.id = sc_nif_ctc;
-      hd->slot = u;
-    }
-    else if(sscanf(hd->unix_dev_name, "iucv%u", &u) == 1) {
-      hd->sub_class.id = sc_nif_iucv;
-      hd->slot = u;
-    }
-    else if(sscanf(hd->unix_dev_name, "hsi%u", &u) == 1) {
-      hd->sub_class.id = sc_nif_hsi;
-      hd->slot = u;
-    }
-    else if(sscanf(hd->unix_dev_name, "qeth%u", &u) == 1) {
-      hd->sub_class.id = sc_nif_qeth;
-      hd->slot = u;
-    }
-    else if(sscanf(hd->unix_dev_name, "escon%u", &u) == 1) {
-      hd->sub_class.id = sc_nif_escon;
-      hd->slot = u;
-    }
-    else if(sscanf(hd->unix_dev_name, "myri%u", &u) == 1) {
-      hd->sub_class.id = sc_nif_myrinet;
-      hd->slot = u;
-    }
-    else if(sscanf(hd->unix_dev_name, "sit%u", &u) == 1) {
-      hd->sub_class.id = sc_nif_sit;   /* ipv6 over ipv4 tunnel */
-      hd->slot = u;
-    }
-    else if(sscanf(hd->unix_dev_name, "wlan%u", &u) == 1) {
-      hd->sub_class.id = sc_nif_wlan;
-      hd->slot = u;
-    }
-    else if(sscanf(hd->unix_dev_name, "xp%u", &u) == 1) {
-      hd->sub_class.id = sc_nif_xp;
-      hd->slot = u;
-    }
-    else if(sscanf(hd->unix_dev_name, "usb%u", &u) == 1) {
-      hd->sub_class.id = sc_nif_usb;
-      hd->slot = u;
-    }
-    /* ##### add more interface names here */
-
-    hd->bus.id = bus_none;
-
-    /* fix card type */
-    if(hd_card) {
-      if(
-        (hd_card->base_class.id == 0 && hd_card->sub_class.id == 0) ||
-        (hd_card->base_class.id == bc_network && hd_card->sub_class.id == 0x80)
-      ) {
-        switch(hd->sub_class.id) {
-          case sc_nif_ethernet:
-            hd_card->base_class.id = bc_network;
-            hd_card->sub_class.id = 0;
-            break;
-
-          case sc_nif_usb:
-            hd_card->base_class.id = bc_network;
-            hd_card->sub_class.id = 0x91;
-            break;
-        }
-      }
-    }
-  }
-
-  sysfs_close_class(sf_class);
-
-  if(hd_is_sgi_altix(hd_data)) add_xpnet(hd_data);
-  if(hd_is_iseries(hd_data)) add_iseries(hd_data);
-  add_uml(hd_data);
-
-  /* add link status info */
-  for(hd = hd_data->hd ; hd; hd = hd->next) {
-    if(
-      hd->module == hd_data->module &&
-      hd->base_class.id == bc_network_interface
-    ) {
-      get_linkstate(hd_data, hd);
-
-      if(!(hd_card = hd_get_device_by_idx(hd_data, hd->attached_to))) continue;
-
-      for(res = hd->res; res; res = res->next) {
-        if(res->any.type == res_link) break;
-      }
-
-      if(res) {
-        for(res1 = hd_card->res; res1; res1 = res1->next) {
-          if(res1->any.type == res_link) break;
-        }
-        if(res && !res1) {
-          res1 = new_mem(sizeof *res1);
-          res1->link.type = res_link;
-          res1->link.state = res->link.state;
-          add_res_entry(&hd_card->res, res1);
-        }
-      }
-    }
-  }
-}
-
-
-/*
- * Get it the classical way, for drivers that don't support sysfs (veth).
- */
-void get_driverinfo(hd_data_t *hd_data, hd_t *hd)
-{
-  int fd;
-  struct ethtool_drvinfo drvinfo = { cmd:ETHTOOL_GDRVINFO };
-  struct ifreq ifr;
-
-  if(!hd->unix_dev_name) return;
-
-  if(strlen(hd->unix_dev_name) > sizeof ifr.ifr_name - 1) return;
-
-  if((fd = socket(PF_INET, SOCK_DGRAM, 0)) == -1) return;
-
-  /* get driver info */
-  memset(&ifr, 0, sizeof ifr);
-  strcpy(ifr.ifr_name, hd->unix_dev_name);
-  ifr.ifr_data = (caddr_t) &drvinfo;
-  if(ioctl(fd, SIOCETHTOOL, &ifr) == 0) {
-    ADD2LOG("    ethtool driver: %s\n", drvinfo.driver);
-    ADD2LOG("    ethtool    bus: %s\n", drvinfo.bus_info);
-
-    add_str_list(&hd->drivers, drvinfo.driver);
-  }
-  else {
-    ADD2LOG("    GDRVINFO ethtool error: %s\n", strerror(errno));
-  }
-
-  close(fd);
-}
-
-
-/*
- * Check network link status.
- */
-void get_linkstate(hd_data_t *hd_data, hd_t *hd)
-{
-  int fd;
-  struct ethtool_value linkstatus = { cmd:ETHTOOL_GLINK };
-  struct ifreq ifr;
-  hd_res_t *res;
-
-  if(!hd->unix_dev_name) return;
-
-  if(strlen(hd->unix_dev_name) > sizeof ifr.ifr_name - 1) return;
-
-  if((fd = socket(PF_INET, SOCK_DGRAM, 0)) == -1) return;
-
-  /* get driver info */
-  memset(&ifr, 0, sizeof ifr);
-  strcpy(ifr.ifr_name, hd->unix_dev_name);
-  ifr.ifr_data = (caddr_t) &linkstatus;
-  if(ioctl(fd, SIOCETHTOOL, &ifr) == 0) {
-    ADD2LOG("  %s: ethtool link state: %d\n", hd->unix_dev_name, linkstatus.data);
-    res = new_mem(sizeof *res);
-    res->link.type = res_link;
-    res->link.state = linkstatus.data ? 1 : 0;
-    add_res_entry(&hd->res, res);
-  }
-  else {
-    ADD2LOG("  %s: GLINK ethtool error: %s\n", hd->unix_dev_name, strerror(errno));
-  }
-
-  close(fd);
-}
-
-
-/*
- * SGI Altix cross partition network.
- */
-void add_xpnet(hd_data_t *hd_data)
-{
-  hd_t *hd, *hd_card;
-  hd_res_t *res, *res2;
-
-  hd_card = add_hd_entry(hd_data, __LINE__, 0);
-  hd_card->base_class.id = bc_network;
-  hd_card->sub_class.id = 0x83;
-
-  hd_card->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4002);
-  hd_card->device.id = MAKE_ID(TAG_SPECIAL, 1);
-
-  if(hd_module_is_active(hd_data, "xpnet")) {
-    add_str_list(&hd_card->drivers, "xpnet");
-  }
-
-  for(hd = hd_data->hd ; hd; hd = hd->next) {
-    if(
-      hd->module == hd_data->module &&
-      hd->base_class.id == bc_network_interface &&
-      hd->sub_class.id == sc_nif_xp
-    ) {
-      hd->attached_to = hd_card->idx;
-
-      for(res = hd->res; res; res = res->next) {
-        if(res->any.type == res_hwaddr) break;
-      }
-
-      if(res) {
-        res2 = new_mem(sizeof *res2);
-        res2->hwaddr.type = res_hwaddr;
-        res2->hwaddr.addr = new_str(res->hwaddr.addr);
-        add_res_entry(&hd_card->res, res2);
-      }
-
-      break;
-    }
-  }
-}
-
-
-/*
- * iSeries veth devices.
- */
-void add_iseries(hd_data_t *hd_data)
-{
-  hd_t *hd, *hd_card;
-  hd_res_t *res, *res2;
-  unsigned i, cardmask = 0, card_cnt = 0;
-  str_list_t *sl0, *sl;
-
-  for(hd = hd_data->hd ; hd; hd = hd->next) {
-    if(
-      hd->module == hd_data->module &&
-      hd->base_class.id == bc_network_interface &&
-      search_str_list(hd->drivers, "veth")
-    ) {
-      hd_card = add_hd_entry(hd_data, __LINE__, 0);
-      hd_card->base_class.id = bc_network;
-      hd_card->sub_class.id = 0x00;
-      hd_card->vendor.id = MAKE_ID(TAG_SPECIAL, 0x6001);       // IBM
-      hd_card->device.id = MAKE_ID(TAG_SPECIAL, 0x1000);
-      add_str_list(&hd_card->drivers, "iseries_veth");
-      hd_card->slot = card_cnt++;
-      str_printf(&hd_card->device.name, 0, "Virtual Ethernet card");
-      hd->attached_to = hd_card->idx;
-
-      for(res = hd->res; res; res = res->next) {
-        if(res->any.type == res_hwaddr) break;
-      }
-
-      if(res) {
-        unsigned int slotno;
-
-        res2 = new_mem(sizeof *res2);
-        res2->hwaddr.type = res_hwaddr;
-        res2->hwaddr.addr = new_str(res->hwaddr.addr);
-        add_res_entry(&hd_card->res, res2);
-        if (sscanf(res->hwaddr.addr, "02:01:ff:%x:ff:", &slotno)) {
-          hd_card->slot = slotno;
-          str_printf(&hd_card->device.name, 0, "Virtual Ethernet card %d", hd_card->slot);
-       }
-      }
-    }
-  }
-
-  if(!card_cnt) {
-    sl0 = read_file("/proc/iSeries/config", 0, 0);
-    for(sl = sl0; sl; sl = sl->next) {
-      if(sscanf(sl->str, "AVAILABLE_VETH=%x", &cardmask) == 1)
-        break;
-    }
-    free_str_list(sl0);
-
-    for (i = 0; i < 16; i++) {
-      if ((0x8000 >> i) & cardmask) {
-       hd_card = add_hd_entry(hd_data, __LINE__, 0);
-       hd_card->base_class.id = bc_network;
-       hd_card->sub_class.id = 0x00;
-       hd_card->vendor.id = MAKE_ID(TAG_SPECIAL, 0x6001);      // IBM
-       hd_card->device.id = MAKE_ID(TAG_SPECIAL, 0x1000);
-       hd_card->slot = i;
-       str_printf(&hd_card->device.name, 0, "Virtual Ethernet card %d", i);
-      }
-    }
-  }
-}
-
-
-/*
- * UML veth devices.
- */
-void add_uml(hd_data_t *hd_data)
-{
-  hd_t *hd, *hd_card;
-  hd_res_t *res, *res2;
-  unsigned card_cnt = 0;
-
-  for(hd = hd_data->hd ; hd; hd = hd->next) {
-    if(
-      hd->module == hd_data->module &&
-      hd->base_class.id == bc_network_interface &&
-      search_str_list(hd->drivers, "uml virtual ethernet")
-    ) {
-      hd_card = add_hd_entry(hd_data, __LINE__, 0);
-      hd_card->base_class.id = bc_network;
-      hd_card->sub_class.id = 0x00;
-      hd_card->vendor.id = MAKE_ID(TAG_SPECIAL, 0x6010);       // UML
-      hd_card->device.id = MAKE_ID(TAG_SPECIAL, 0x0001);
-      hd_card->slot = card_cnt++;
-      str_printf(&hd_card->device.name, 0, "Virtual Ethernet card %d", hd_card->slot);
-//      add_str_list(&hd_card->drivers, "veth");
-
-      hd->attached_to = hd_card->idx;
-
-      for(res = hd->res; res; res = res->next) {
-        if(res->any.type == res_hwaddr) break;
-      }
-
-      if(res) {
-        res2 = new_mem(sizeof *res2);
-        res2->hwaddr.type = res_hwaddr;
-        res2->hwaddr.addr = new_str(res->hwaddr.addr);
-        add_res_entry(&hd_card->res, res2);
-      }
-    }
-  }
-}
-
-
diff --git a/src/hwinfo/src/hd/net.h b/src/hwinfo/src/hd/net.h
deleted file mode 100644 (file)
index 3e49379..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_net(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/parallel.c b/src/hwinfo/src/hd/parallel.c
deleted file mode 100644 (file)
index d9b5b32..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "parallel.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * parallel port device info
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#ifndef LIBHD_TINY
-
-static void do_lp(hd_data_t *hd_data);
-static void do_zip(hd_data_t *hd_data);
-static void dump_parallel_data(hd_data_t *hd_data, str_list_t *sl);
-
-void hd_scan_parallel(hd_data_t *hd_data)
-{
-  if(!hd_probe_feature(hd_data, pr_parallel)) return;
-
-  hd_data->module = mod_parallel;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  if(hd_probe_feature(hd_data, pr_parallel_lp)) do_lp(hd_data);
-
-  if(hd_probe_feature(hd_data, pr_parallel_zip)) do_zip(hd_data);
-}
-
-void do_lp(hd_data_t *hd_data)
-{
-  hd_t *hd, *hd_i;
-  str_list_t *sl, *sl0;
-  hd_res_t *res;
-  char *pp = NULL, buf[256], unix_dev[] = "/dev/lp0", *s = NULL;
-  char *base_class, *device, *vendor, *cmd_set;
-  int i, j, port;
-  str_list_t *log = NULL;
-
-  PROGRESS(1, 0, "pp mod");
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->base_class.id == bc_comm && hd->sub_class.id == sc_com_par) break;
-  }
-
-  /* ... if there seems to be a parallel interface, try to load it */
-  if(hd || 1) {                /* always load it */
-    if(hd_data->kernel_version == KERNEL_22) {
-      unload_module(hd_data, "parport_probe");
-      probe_module(hd_data, "parport_probe");
-    } else {
-      unload_module(hd_data, "lp");
-      unload_module(hd_data, "parport_pc");
-      probe_module(hd_data, "parport_pc");
-    }
-  }
-
-  for(i = 0; i < 3; i++, unix_dev[sizeof unix_dev - 2]++) {
-    PROGRESS(2, 1 + i, "lp read info");
-
-    port = 0;
-    // ##### read modes as well? (e.g: SPP,ECP,ECPEPP,ECPPS2)
-    if(hd_data->kernel_version == KERNEL_22)
-      str_printf(&pp, 0, PROC_PARPORT_22 "%d/hardware", i);
-    else
-      str_printf(&pp, 0, PROC_PARPORT_24 "%d/base-addr", i);
-    sl0 = read_file(pp, 0, 0);
-    if(!sl0) continue;         /* file doesn't exist -> no parport entry */
-    str_printf(&s, 0, "%s\n", pp);
-    add_str_list(&log, s);
-    for(sl = sl0; sl; sl = sl->next) {
-      str_printf(&s, 0, "  %s", sl->str);
-      add_str_list(&log, s);
-      if(hd_data->kernel_version == KERNEL_22) {
-        if(sscanf(sl->str, "base: %i", &j) == 1) port = j;
-      } else {
-        if(sscanf(sl->str, "%i", &j) == 1) port = j;
-      }
-    }
-    free_str_list(sl0);
-
-    if(hd_data->kernel_version == KERNEL_22)
-      str_printf(&pp, 0, PROC_PARPORT_22 "%d/autoprobe", i);
-    else
-      str_printf(&pp, 0, PROC_PARPORT_24 "%d/autoprobe", i);
-    sl0 = read_file(pp, 0, 0);
-    str_printf(&s, 0, "%s\n", pp);
-    add_str_list(&log, s);
-    base_class = device = vendor = cmd_set = NULL;
-    for(sl = sl0; sl; sl = sl->next) {
-      str_printf(&s, 0, "  %s", sl->str);
-      add_str_list(&log, s);
-//      fprintf(stderr, "str = \"%s\"\n", sl->str);
-      if(sscanf(sl->str, "CLASS: %255[^\n;]", buf) == 1) base_class = new_str(buf);
-      if(sscanf(sl->str, "MODEL: %255[^\n;]", buf) == 1) device = new_str(buf);
-      if(sscanf(sl->str, "MANUFACTURER: %255[^\n;]", buf) == 1) vendor = new_str(buf);
-      if(sscanf(sl->str, "COMMAND SET: %255[^\n;]", buf) == 1) cmd_set = new_str(buf);
-    }
-    free_str_list(sl0);
-
-    /* default to printer */
-    if(!base_class && vendor && device) base_class = new_str("printer");
-
-    s = free_mem(s);
-
-//    fprintf(stderr, "port <0x%x\n", port);
-//    fprintf(stderr, "class <%s>\n", base_class);
-//    fprintf(stderr, "device <%s>\n", device);
-//    fprintf(stderr, "vendor <%s>\n", vendor);
-//    fprintf(stderr, "cmds <%s>\n", cmd_set);
-
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(
-        hd->base_class.id == bc_comm &&
-        hd->sub_class.id == sc_com_par &&
-        hd->unix_dev_name &&
-        !strcmp(hd->unix_dev_name, unix_dev)
-      ) break;
-    }
-
-    if(!hd) {
-      /* no entry ??? */
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->base_class.id = bc_comm;
-      hd->sub_class.id = sc_com_par;
-      hd->unix_dev_name = new_str(unix_dev);
-      if(port) {
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->io.type = res_io;
-        res->io.enabled = 1;
-        res->io.base = port;
-        res->io.access = acc_rw;
-      }
-    }
-
-    // ##### check if ports match?
-
-    if(
-      base_class ||
-      (device && strcmp(device, "Unknown device")) ||
-      (vendor && strcmp(vendor, "Unknown vendor"))
-    ) {
-      hd_i = hd;
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->attached_to = hd_i->idx;
-      hd->unix_dev_name = new_str(hd_i->unix_dev_name);
-      hd->base_class.id = bc_none;
-      if(base_class && !strcasecmp(base_class, "printer")) hd->base_class.id = bc_printer;
-      hd->bus.id = bus_parallel;
-
-      hd->vendor.name = new_str(vendor);
-      hd->device.name = new_str(device);
-    }
-
-    free_mem(base_class);
-    free_mem(device);
-    free_mem(vendor);
-    free_mem(cmd_set);
-  }
-
-  pp = free_mem(pp);
-
-  if((hd_data->debug & HD_DEB_PARALLEL)) dump_parallel_data(hd_data, log);
-
-  free_str_list(log);
-
-}
-
-void do_zip(hd_data_t *hd_data)
-{
-  hd_t *hd, *hd_i;
-  int i, j, port, is_imm, is_ppa, is_imm0, is_ppa0;
-  char *pp = NULL, *s = NULL, *unix_dev = NULL;
-  str_list_t *log = NULL, *sl, *sl0;
-  int do_imm = hd_probe_feature(hd_data, pr_parallel_imm);
-
-  is_imm = is_imm0 = hd_module_is_active(hd_data, "imm");
-  is_ppa = is_ppa0 = hd_module_is_active(hd_data, "ppa");
-
-  if(!(is_imm || is_ppa)) {
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(hd->base_class.id == bc_comm && hd->sub_class.id == sc_com_par) break;
-    }
-    /* ... if there seems to be a parallel interface, try to load it */
-    if(hd) {
-      if(do_imm) {
-        PROGRESS(5, 0, "imm mod");
-        load_module(hd_data, "imm");
-      }
-      PROGRESS(5, 0, "ppa mod");
-      load_module(hd_data, "ppa");
-      is_imm = hd_module_is_active(hd_data, "imm");
-      is_ppa = hd_module_is_active(hd_data, "ppa");
-      if(do_imm && !is_imm) {
-        int fd;
-        char flush[2] = { 4, 12 };
-
-        fd = open("/dev/lp0", O_NONBLOCK | O_WRONLY);
-        if(fd != -1) {
-          write(fd, flush, sizeof flush);
-          close(fd);
-        }
-      }
-    }
-  }
-
-  if(!(is_imm || is_ppa)) return;
-
-  PROGRESS(6, 0, "zip read info");
-
-  for(i = 0; i < 16; i++) {
-    str_printf(&pp, 0, PROC_SCSI "/%s/%d", (i % 2) ? "ppa" : "imm", i / 2);
-    sl0 = read_file(pp, 0, 0);
-    if(!sl0) continue;
-    str_printf(&s, 0, "%s\n", pp);
-    add_str_list(&log, s);
-    port = -1;
-    for(sl = sl0; sl; sl = sl->next) {
-      str_printf(&s, 0, "  %s", sl->str);
-      add_str_list(&log, s);
-      if(sscanf(sl->str, "Parport : parport%d", &j) == 1) port = j;
-    }
-    free_str_list(sl0);
-    pp = free_mem(pp);
-    s = free_mem(s);
-
-    unix_dev = free_mem(unix_dev);
-    if(port >= 0) {
-      str_printf(&unix_dev, 0, "/dev/lp%d", port);
-    }
-
-    hd = NULL;
-    if(unix_dev) {
-      for(hd = hd_data->hd; hd; hd = hd->next) {
-        if(
-          hd->base_class.id == bc_comm &&
-          hd->sub_class.id == sc_com_par &&
-          hd->unix_dev_name &&
-          !strcmp(hd->unix_dev_name, unix_dev)
-        ) break;
-      }
-
-      if(!hd) {
-        /* no entry ??? */
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->base_class.id = bc_comm;
-        hd->sub_class.id = sc_com_par;
-        hd->unix_dev_name = new_str(unix_dev);
-      }
-    }
-
-    hd_i = hd;
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    if(hd_i) {
-      hd->attached_to = hd_i->idx;
-      hd->unix_dev_name = new_str(hd_i->unix_dev_name);
-    }
-    hd->base_class.id = bc_storage;
-    hd->sub_class.id = sc_sto_scsi;
-    hd->bus.id = bus_parallel;
-    hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x1800);
-    hd->device.id = MAKE_ID(TAG_SPECIAL, (i % 2) ? 2 : 1);
-  }
-
-  if(!is_imm0) unload_module(hd_data, "imm");
-  if(!is_ppa0) unload_module(hd_data, "ppa");
-
-  if((hd_data->debug & HD_DEB_PARALLEL)) dump_parallel_data(hd_data, log);
-
-  free_mem(unix_dev);
-
-  free_str_list(log);
-
-}
-
-void dump_parallel_data(hd_data_t *hd_data, str_list_t *sl)
-{
-  ADD2LOG("----- parallel info -----\n");
-  for(; sl; sl = sl->next) {
-    ADD2LOG("%s", sl->str);
-  }
-  ADD2LOG("----- parallel info end -----\n");
-}
-
-#endif /* ifndef LIBHD_TINY */
-
diff --git a/src/hwinfo/src/hd/parallel.h b/src/hwinfo/src/hd/parallel.h
deleted file mode 100644 (file)
index 7df1f51..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_parallel(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/pci.c b/src/hwinfo/src/hd/pci.c
deleted file mode 100644 (file)
index 0ee6a0b..0000000
+++ /dev/null
@@ -1,604 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <ctype.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-typedef unsigned long kernel_ulong_t;
-#include <linux/types.h>
-#ifdef __UCLIBC__
-#include <linux/pci.h>
-#else
-#include <sys/pci.h>
-#endif
-
-#include "hd.h"
-#include "hd_int.h"
-#include "hddb.h"
-#include "pci.h"
-
-/*
- * linux/ioport.h
- */
-#define IORESOURCE_BITS                0x000000ff
-#define IORESOURCE_IO          0x00000100
-#define IORESOURCE_MEM         0x00000200
-#define IORESOURCE_IRQ         0x00000400
-#define IORESOURCE_DMA         0x00000800
-#define IORESOURCE_PREFETCH    0x00001000
-#define IORESOURCE_READONLY    0x00002000
-#define IORESOURCE_CACHEABLE   0x00004000
-#define IORESOURCE_DISABLED    0x10000000
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * pci stuff
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-static struct sysfs_attribute *hd_read_single_sysfs_attribute(char *path, char *name);
-static void get_pci_data(hd_data_t *hd_data);
-static void add_pci_data(hd_data_t *hd_data);
-static void add_driver_info(hd_data_t *hd_data);
-static pci_t *add_pci_entry(hd_data_t *hd_data, pci_t *new_pci);
-static unsigned char pci_cfg_byte(pci_t *pci, int fd, unsigned idx);
-static void dump_pci_data(hd_data_t *hd_data);
-
-void hd_scan_sysfs_pci(hd_data_t *hd_data)
-{
-  if(!hd_probe_feature(hd_data, pr_pci)) return;
-
-  hd_data->module = mod_pci;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-  hd_data->pci = NULL;
-
-  PROGRESS(1, 0, "sysfs drivers");
-
-  hd_sysfs_driver_list(hd_data);
-
-  PROGRESS(2, 0, "get sysfs pci data");
-
-  get_pci_data(hd_data);
-  if(hd_data->debug) dump_pci_data(hd_data);
-
-  add_pci_data(hd_data);
-}
-
-
-/*
- * sysfs_get_device_attr() reads *all* device attributes, then returns the
- * requested one.
- *
- * This leads to problems where some attribute *must not* be read.
- */
-struct sysfs_attribute *hd_read_single_sysfs_attribute(char *path, char *name)
-{
-  char *attr_path = NULL;
-  struct sysfs_attribute *attr;
-
-  str_printf(&attr_path, 0, "%s/%s", path, name);
-  attr = sysfs_open_attribute(attr_path);
-  free_mem(attr_path);
-
-  sysfs_read_attribute(attr);
-
-  return attr;
-}
-
-
-/*
- * Get the (raw) PCI data, taken from /sys/bus/pci/.
- *
- * Note: non-root users can only read the first 64 bytes (of 256)
- * of the device headers.
- */
-void get_pci_data(hd_data_t *hd_data)
-{
-  uint64_t ul0, ul1, ul2;
-  unsigned u, u0, u1, u2, u3;
-  unsigned char nxt;
-  str_list_t *sl;
-  char *s;
-  pci_t *pci;
-  int fd;
-
-  struct sysfs_bus *sf_bus;
-  struct dlist *sf_dev_list;
-  struct sysfs_device *sf_dev;
-  struct sysfs_attribute *attr;
-
-  sf_bus = sysfs_open_bus("pci");
-
-  if(!sf_bus) {
-    ADD2LOG("sysfs: no such bus: pci\n");
-    return;
-  }
-
-  sf_dev_list = sysfs_get_bus_devices(sf_bus);
-  if(sf_dev_list) dlist_for_each_data(sf_dev_list, sf_dev, struct sysfs_device) {
-    ADD2LOG(
-      "  pci device: name = %s, bus_id = %s, bus = %s\n    path = %s\n",
-      sf_dev->name,
-      sf_dev->bus_id,
-      sf_dev->bus,
-      hd_sysfs_id(sf_dev->path)
-    );
-
-    if(sscanf(sf_dev->bus_id, "%x:%x:%x.%x", &u0, &u1, &u2, &u3) != 4) continue;
-
-    pci = add_pci_entry(hd_data, new_mem(sizeof *pci));
-
-    pci->sysfs_id = new_str(sf_dev->path);
-    pci->sysfs_bus_id = new_str(sf_dev->bus_id);
-
-    pci->bus = (u0 << 8) + u1;
-    pci->slot = u2;
-    pci->func = u3;
-
-    if(hd_attr_uint(attr = hd_read_single_sysfs_attribute(sf_dev->path, "class"), &ul0, 0)) {
-      ADD2LOG("    class = 0x%x\n", (unsigned) ul0);
-      pci->prog_if = ul0 & 0xff;
-      pci->sub_class = (ul0 >> 8) & 0xff;
-      pci->base_class = (ul0 >> 16) & 0xff;
-    }
-    sysfs_close_attribute(attr);
-
-    if(hd_attr_uint(attr = hd_read_single_sysfs_attribute(sf_dev->path, "vendor"), &ul0, 0)) {
-      ADD2LOG("    vendor = 0x%x\n", (unsigned) ul0);
-      pci->vend = ul0 & 0xffff;
-    }
-    sysfs_close_attribute(attr);
-
-    if(hd_attr_uint(attr = hd_read_single_sysfs_attribute(sf_dev->path, "device"), &ul0, 0)) {
-      ADD2LOG("    device = 0x%x\n", (unsigned) ul0);
-      pci->dev = ul0 & 0xffff;
-    }
-    sysfs_close_attribute(attr);
-
-    if(hd_attr_uint(attr = hd_read_single_sysfs_attribute(sf_dev->path, "subsystem_vendor"), &ul0, 0)) {
-      ADD2LOG("    subvendor = 0x%x\n", (unsigned) ul0);
-      pci->sub_vend = ul0 & 0xffff;
-    }
-    sysfs_close_attribute(attr);
-
-    if(hd_attr_uint(attr = hd_read_single_sysfs_attribute(sf_dev->path, "subsystem_device"), &ul0, 0)) {
-      ADD2LOG("    subdevice = 0x%x\n", (unsigned) ul0);
-      pci->sub_dev = ul0 & 0xffff;
-    }
-    sysfs_close_attribute(attr);
-
-    if(hd_attr_uint(attr = hd_read_single_sysfs_attribute(sf_dev->path, "irq"), &ul0, 0)) {
-      ADD2LOG("    irq = %d\n", (unsigned) ul0);
-      pci->irq = ul0;
-    }
-    sysfs_close_attribute(attr);
-
-    sl = hd_attr_list(attr = hd_read_single_sysfs_attribute(sf_dev->path, "resource"));
-    for(u = 0; sl; sl = sl->next, u++) {
-      if(
-        sscanf(sl->str, "0x%"SCNx64" 0x%"SCNx64" 0x%"SCNx64, &ul0, &ul1, &ul2) == 3 &&
-        ul1 &&
-        u < sizeof pci->base_addr / sizeof *pci->base_addr
-      ) {
-        ADD2LOG("    res[%u] = 0x%"PRIx64" 0x%"PRIx64" 0x%"PRIx64"\n", u, ul0, ul1, ul2);
-        pci->base_addr[u] = ul0;
-        pci->base_len[u] = ul1 + 1 - ul0;
-        pci->addr_flags[u] = ul2;
-      }
-    }
-    sysfs_close_attribute(attr);
-
-    s = NULL;
-    str_printf(&s, 0, "%s/config", sf_dev->path);
-    if((fd = open(s, O_RDONLY)) != -1) {
-      pci->data_len = pci->data_ext_len = read(fd, pci->data, 0x40);
-      ADD2LOG("    config[%u]\n", pci->data_len);
-
-      if(pci->data_len >= 0x40) {
-        pci->hdr_type = pci->data[PCI_HEADER_TYPE] & 0x7f;
-        pci->cmd = pci->data[PCI_COMMAND] + (pci->data[PCI_COMMAND + 1] << 8);
-
-        if(pci->hdr_type == 1 || pci->hdr_type == 2) { /* PCI or CB bridge */
-          pci->secondary_bus = pci->data[PCI_SECONDARY_BUS];
-          /* PCI_SECONDARY_BUS == PCI_CB_CARD_BUS */
-        }
-
-        for(u = 0; u < sizeof pci->base_addr / sizeof *pci->base_addr; u++) {
-          if((pci->addr_flags[u] & IORESOURCE_IO)) {
-            if(!(pci->cmd & PCI_COMMAND_IO)) pci->addr_flags[u] |= IORESOURCE_DISABLED;
-          }
-
-          if((pci->addr_flags[u] & IORESOURCE_MEM)) {
-            if(!(pci->cmd & PCI_COMMAND_MEMORY)) pci->addr_flags[u] |= IORESOURCE_DISABLED;
-          }
-        }
-
-        /* let's get through the capability list */
-        if(
-          pci->hdr_type == PCI_HEADER_TYPE_NORMAL &&
-          (nxt = pci->data[PCI_CAPABILITY_LIST])
-        ) {
-          /*
-           * Cut out after 16 capabilities to avoid infinite recursion due
-           * to (potentially) malformed data. 16 is more or less
-           * arbitrary, though (the capabilities are bits in a byte, so 8 entries
-           * should suffice).
-           */
-          for(u = 0; u < 16 && nxt && nxt <= 0xfe; u++) {
-            switch(pci_cfg_byte(pci, fd, nxt)) {
-              case PCI_CAP_ID_PM:
-                pci->flags |= (1 << pci_flag_pm);
-                break;
-
-              case PCI_CAP_ID_AGP:
-                pci->flags |= (1 << pci_flag_agp);
-                break;
-            }
-            nxt = pci_cfg_byte(pci, fd, nxt + 1);
-          }
-        }
-      }
-
-      close(fd);
-    }
-    s = free_mem(s);
-
-    pci->rev = pci->data[PCI_REVISION_ID];
-
-    if((pci->addr_flags[6] & IORESOURCE_MEM)) {
-      if(!(pci->data[PCI_ROM_ADDRESS] & PCI_ROM_ADDRESS_ENABLE)) {
-        pci->addr_flags[6] |= IORESOURCE_DISABLED;
-      }
-    }
-
-    pci->flags |= (1 << pci_flag_ok);
-  }
-
-  sysfs_close_bus(sf_bus);
-}
-
-
-void add_pci_data(hd_data_t *hd_data)
-{
-  hd_t *hd, *hd2;
-  pci_t *pci, *pnext;
-  hd_res_t *res;
-  unsigned u;
-  char *s, *t;
-
-  PROGRESS(4, 0, "build list");
-
-  for(pci = hd_data->pci; pci; pci = pnext) {
-    pnext = pci->next;
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-
-    hd->sysfs_id = new_str(hd_sysfs_id(pci->sysfs_id));
-    s = hd_sysfs_find_driver(hd_data, hd->sysfs_id, 1);
-    if(s) add_str_list(&hd->drivers, s);
-
-    if(pci->sysfs_bus_id && *pci->sysfs_bus_id) {
-      hd->sysfs_bus_id = new_str(pci->sysfs_bus_id);
-    }
-
-    hd->bus.id = bus_pci;
-    hd->slot = pci->slot + (pci->bus << 8);
-    hd->func = pci->func;
-    hd->base_class.id = pci->base_class;
-    hd->sub_class.id = pci->sub_class;
-    hd->prog_if.id = pci->prog_if;
-
-    /* fix up old VGA's entries */
-    if(hd->base_class.id == bc_none && hd->sub_class.id == 0x01) {
-      hd->base_class.id = bc_display;
-      hd->sub_class.id = sc_dis_vga;
-    }
-
-    if(pci->dev || pci->vend) {
-      hd->device.id = MAKE_ID(TAG_PCI, pci->dev);
-      hd->vendor.id = MAKE_ID(TAG_PCI, pci->vend);
-    }
-    if(pci->sub_dev || pci->sub_vend) {
-      hd->sub_device.id = MAKE_ID(TAG_PCI, pci->sub_dev);
-      hd->sub_vendor.id = MAKE_ID(TAG_PCI, pci->sub_vend);
-    }
-    hd->revision.id = pci->rev;
-
-    if((u = device_class(hd_data, hd->vendor.id, hd->device.id))) {
-      hd->base_class.id = u >> 8;
-      hd->sub_class.id = u & 0xff;
-    }
-
-    for(u = 0; u < sizeof pci->base_addr / sizeof *pci->base_addr; u++) {
-      if((pci->addr_flags[u] & IORESOURCE_IO)) {
-        res = new_mem(sizeof *res);
-        res->io.type = res_io;
-        res->io.enabled = pci->addr_flags[u] & IORESOURCE_DISABLED ? 0 : 1;
-        res->io.base = pci->base_addr[u];
-        res->io.range = pci->base_len[u];
-        res->io.access = pci->addr_flags[u] & IORESOURCE_READONLY ? acc_ro : acc_rw;
-        add_res_entry(&hd->res, res);
-      }
-
-      if((pci->addr_flags[u] & IORESOURCE_MEM)) {
-        res = new_mem(sizeof *res);
-        res->mem.type = res_mem;
-        res->mem.enabled = pci->addr_flags[u] & IORESOURCE_DISABLED ? 0 : 1;
-        res->mem.base = pci->base_addr[u];
-        res->mem.range = pci->base_len[u];
-        res->mem.access = pci->addr_flags[u] & IORESOURCE_READONLY ? acc_ro : acc_rw;
-        res->mem.prefetch = pci->addr_flags[u] & IORESOURCE_PREFETCH ? flag_yes : flag_no;
-        add_res_entry(&hd->res, res);
-      }
-    }
-
-    if(pci->irq) {
-      res = new_mem(sizeof *res);
-      res->irq.type = res_irq;
-      res->irq.enabled = 1;
-      res->irq.base = pci->irq;
-      add_res_entry(&hd->res, res);
-    }
-
-    hd->detail = new_mem(sizeof *hd->detail);
-    hd->detail->type = hd_detail_pci;
-    hd->detail->pci.data = pci;
-    if(pci->flags & (1 << pci_flag_agp)) hd->is.agp = 1;
-    pci->next = NULL;
-  }
-  hd_data->pci = NULL;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->bus.id == bus_pci && hd->sysfs_id) {
-      s = new_str(hd->sysfs_id);
-
-      if((t = strrchr(s, '/'))) {
-        *t = 0;
-        if((hd2 = hd_find_sysfs_id(hd_data, s))) {
-          hd->attached_to = hd2->idx;
-        }
-      }
-      free_mem(s);
-    }
-  }
-
-  add_driver_info(hd_data);
-}
-
-
-/*
- * Add driver info in some special cases.
- */
-void add_driver_info(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  hd_res_t *res;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->bus.id != bus_pci) continue;
-
-    if(
-      (
-        hd->base_class.id == bc_serial &&
-        hd->sub_class.id == sc_ser_fire
-      ) ||
-      (
-        hd->base_class.id == bc_serial &&
-        hd->sub_class.id == sc_ser_usb
-      )
-    ) {
-      for(res = hd->res; res; res = res->next) {
-        if(res->any.type == res_irq) break;
-      }
-      if(!res) hd->is.notready = 1;
-      continue;
-    }
-  }
-}
-
-
-#if 1
-/*
- * Store a raw PCI entry; just for convenience.
- */
-pci_t *add_pci_entry(hd_data_t *hd_data, pci_t *new_pci)
-{
-  pci_t **pci = &hd_data->pci;
-
-  while(*pci) pci = &(*pci)->next;
-
-  return *pci = new_pci;
-}
-
-#else
-
-/*
- * Store a raw PCI entry; just for convenience.
- *
- * Reverse order.
- */
-pci_t *add_pci_entry(hd_data_t *hd_data, pci_t *new_pci)
-{
-  new_pci->next = hd_data->pci;
-
-  return hd_data->pci = new_pci;
-}
-#endif
-
-
-/*
- * get a byte from pci config space
- */
-unsigned char pci_cfg_byte(pci_t *pci, int fd, unsigned idx)
-{
-  unsigned char uc;
-
-  if(idx >= sizeof pci->data) return 0;
-  if(idx < pci->data_len) return pci->data[idx];
-  if(idx < pci->data_ext_len && pci->data[idx]) return pci->data[idx];
-  if(lseek(fd, idx, SEEK_SET) != (off_t) idx) return 0;
-  if(read(fd, &uc, 1) != 1) return 0;
-  pci->data[idx] = uc;
-
-  if(idx >= pci->data_ext_len) pci->data_ext_len = idx + 1;
-
-  return uc;
-}
-/*
- * Add a dump of all raw PCI data to the global log.
- */
-void dump_pci_data(hd_data_t *hd_data)
-{
-  pci_t *pci;
-  char *s = NULL;
-  char buf[32];
-  int i, j;
-
-  ADD2LOG("---------- PCI raw data ----------\n");
-
-  for(pci = hd_data->pci; pci; pci = pci->next) {
-
-    if(!(pci->flags & (1 << pci_flag_ok))) str_printf(&s, -1, "oops");
-    if(pci->flags & (1 << pci_flag_pm)) str_printf(&s, -1, ",pm");
-    if(pci->flags & (1 << pci_flag_agp)) str_printf(&s, -1, ",agp");
-    if(!s) str_printf(&s, 0, "%s", "");
-
-    *buf = 0;
-    if(pci->secondary_bus) {
-      sprintf(buf, "->%02x", pci->secondary_bus);
-    }
-
-    ADD2LOG(
-      "bus %02x%s, slot %02x, func %x, vend:dev:s_vend:s_dev:rev %04x:%04x:%04x:%04x:%02x\n",
-      pci->bus, buf, pci->slot, pci->func, pci->vend, pci->dev, pci->sub_vend, pci->sub_dev, pci->rev
-    );
-    ADD2LOG(
-      "class %02x, sub_class %02x prog_if %02x, hdr %x, flags <%s>, irq %u\n",
-      pci->base_class, pci->sub_class, pci->prog_if, pci->hdr_type, *s == ',' ? s + 1 : s, pci->irq 
-    );
-
-    s = free_mem(s);
-
-    for(i = 0; i < 6; i++) {
-      if(pci->base_addr[i] || pci->base_len[i])
-        ADD2LOG("  addr%d %08"PRIx64", size %08"PRIx64"\n", i, pci->base_addr[i], pci->base_len[i]);
-    }
-    if(pci->rom_base_addr)
-      ADD2LOG("  rom   %08"PRIx64"\n", pci->rom_base_addr);
-
-    if(pci->log) ADD2LOG("%s", pci->log);
-
-    for(i = 0; (unsigned) i < pci->data_ext_len; i += 0x10) {
-      ADD2LOG("  %02x: ", i);
-      j = pci->data_ext_len - i;
-      hexdump(&hd_data->log, 1, j > 0x10 ? 0x10 : j, pci->data + i);
-      ADD2LOG("\n");
-    }
-
-    if(pci->next) ADD2LOG("\n");
-  }
-
-  ADD2LOG("---------- PCI raw data end ----------\n");
-}
-
-
-/*
- * Parse attribute and return integer value.
- */
-int hd_attr_uint(struct sysfs_attribute *attr, uint64_t *u, int base)
-{
-  char *s;
-  uint64_t u2;
-  int ok;
-
-  if(!(s = hd_attr_str(attr))) return 0;
-
-  u2 = strtoull(s, &s, base);
-  ok = !*s || isspace(*s) ? 1 : 0;
-
-  if(ok && u) *u = u2;
-
-  return ok;
-}
-
-
-/*
- * Return attribute as string list.
- */
-str_list_t *hd_attr_list(struct sysfs_attribute *attr)
-{
-  static str_list_t *sl = NULL;
-
-  free_str_list(sl);
-
-  return sl = hd_split('\n', hd_attr_str(attr));
-}
-
-
-/*
- * Return attribute as string.
- */
-char *hd_attr_str(struct sysfs_attribute *attr)
-{
-  return attr ? attr->value : NULL;
-}
-
-
-/*
- * Remove leading "/sys" from path.
- */
-char *hd_sysfs_id(char *path)
-{
-  if(!path || !*path) return NULL;
-
-  return strchr(path + 1, '/');
-}
-
-
-/*
- * Convert '!' to '/'.
- */
-char *hd_sysfs_name2_dev(char *str)
-{
-  static char *s = NULL;
-
-  if(!str) return NULL;
-
-  free_mem(s);
-  s = str = new_str(str);
-
-  while(*str) {
-    if(*str == '!') *str = '/';
-    str++;
-  }
-
-  return s;
-}
-
-
-/*
- * Convert '/' to '!'.
- */
-char *hd_sysfs_dev2_name(char *str)
-{
-  static char *s = NULL;
-
-  if(!str) return NULL;
-
-  free_mem(s);
-  s = str = new_str(str);
-
-  while(*str) {
-    if(*str == '/') *str = '!';
-    str++;
-  }
-
-  return s;
-}
-
-
diff --git a/src/hwinfo/src/hd/pci.h b/src/hwinfo/src/hd/pci.h
deleted file mode 100644 (file)
index d1e475b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_sysfs_pci(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/pcmcia.c b/src/hwinfo/src/hd/pcmcia.c
deleted file mode 100644 (file)
index 1bda468..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <dirent.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/mount.h>
-#include <linux/hdreg.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "pcmcia.h"
-
-static void read_cardinfo(hd_data_t *hd_data);
-static void assign_bridges(hd_data_t *hd_data);
-static void add_sysfs_stuff(hd_data_t *hd_data, hd_t *hd);
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * PCMCIA info via cardctl
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-
-void hd_scan_pcmcia(hd_data_t *hd_data)
-{
-  if(!hd_probe_feature(hd_data, pr_pcmcia)) return;
-
-  hd_data->module = mod_pcmcia;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  read_cardinfo(hd_data);
-
-  assign_bridges(hd_data);
-
-}
-
-
-void read_cardinfo(hd_data_t *hd_data)
-{
-  str_list_t *sl, *sl0, *sl1;
-  int i0, i1, pcmcia_sock, manf_id0, manf_id1, func, prod_info;
-  char buf0[256], buf1[256], buf2[256], buf3[256];
-  hd_t *hd;
-  unsigned cardbus = 0;                /* bitmask: cardbus vs. pc-card */
-
-  sl0 = read_file("| /sbin/cardctl status 2>/dev/null", 0, 0);
-
-  ADD2LOG("-----  cardctl status -----\n");
-  for(sl = sl0; sl; sl = sl->next) {
-    ADD2LOG("  %s", sl->str);
-  }
-  ADD2LOG("-----  cardctl status end -----\n");
-
-  for(pcmcia_sock = -1, sl = sl0; sl; sl = sl->next) {
-    if(sscanf(sl->str, " Socket %d:", &i0) == 1) {
-      pcmcia_sock = i0;
-      continue;
-    }
-
-    if(strstr(sl->str, " CardBus card")) {
-      if(pcmcia_sock >= 0 && pcmcia_sock < 8 * (int) sizeof cardbus) {
-        cardbus |= 1 << pcmcia_sock;
-      }
-      pcmcia_sock = -1;
-      continue;
-    }
-  }
-
-  free_str_list(sl0);
-
-  sl0 = read_file("| /sbin/cardctl ident 2>/dev/null", 0, 0);
-
-  ADD2LOG("-----  cardctl ident -----\n");
-  for(sl = sl0; sl; sl = sl->next) {
-    ADD2LOG("  %s", sl->str);
-  }
-  ADD2LOG("-----  cardctl ident end -----\n");
-
-  for(
-    pcmcia_sock = manf_id0 = manf_id1 = func = prod_info = -1, sl = sl0;
-    sl;
-    sl = sl->next
-  ) {
-    if(sscanf(sl->str, " manfid: %i, %i", &i0, &i1) == 2) {
-      manf_id0 = i0;
-      manf_id1 = i1;
-    }
-
-    if(sscanf(sl->str, " function: %d", &i0) == 1) {
-      /*
-       * "multifunction", "memory", "serial", "parallel",
-       * "fixed disk", "video", "network", "AIMS",
-       * "SCSI"
-       */
-      func = i0;
-    }
-
-    if(
-      (i0 = sscanf(
-        sl->str,
-        " product info: \"%255[^\"]\", \"%255[^\"]\", \"%255[^\"]\", \"%255[^\"]\"",
-        buf0, buf1, buf2, buf3
-      )) >= 1
-    ) {
-      prod_info = i0;
-    }
-
-    if(sscanf(sl->str, " Socket %d:", &i0) == 1) {
-      i1 = 1;
-    }
-    else {
-      i1 = 0;
-    }
-
-    if(i1 || !sl->next) {
-      if(pcmcia_sock >= 0 && (prod_info >= 1 || manf_id0 != -1)) {
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->bus.id = bus_pcmcia;
-        hd->slot = pcmcia_sock;
-        hd->hotplug_slot = pcmcia_sock + 1;
-        if(manf_id0 != -1 && manf_id1 != -1) {
-          hd->vendor.id = MAKE_ID(TAG_PCMCIA, manf_id0);
-          hd->device.id = MAKE_ID(TAG_PCMCIA, manf_id1);
-        }
-        if(pcmcia_sock < 8 * (int) sizeof cardbus && (cardbus & (1 << pcmcia_sock))) {
-          hd->hotplug = hp_cardbus;
-        }
-        else {
-          hd->hotplug = hp_pcmcia;
-        }
-
-        if(func == 6) {
-          hd->base_class.id = bc_network;
-          hd->sub_class.id = 0x80;             /* other */
-        }
-        if(prod_info >= 1) add_str_list(&hd->extra_info, buf0);
-        if(prod_info >= 2) add_str_list(&hd->extra_info, buf1);
-        if(prod_info >= 3) add_str_list(&hd->extra_info, buf2);
-        if(prod_info >= 4) add_str_list(&hd->extra_info, buf3);
-        if(prod_info >= 2) {
-          hd->vendor.name = new_str(buf0);
-          hd->device.name = new_str(buf1);
-        }
-        for(sl1 = hd->extra_info; sl1 ; sl1 = sl1->next) {
-          if(strstr(sl1->str, "Ethernet")) hd->sub_class.id = 0;       /* ethernet */
-          if(
-            !hd->revision.name &&
-            !sl1->next &&
-            (
-              !strncasecmp(sl1->str, "rev.", sizeof "rev." - 1) ||
-              (
-                (sl1->str[0] == 'V' || sl1->str[0] == 'v') &&
-                (sl1->str[1] >= '0' && sl1->str[1] <= '9')
-              )
-            )
-          ) {
-            hd->revision.name = new_str(sl1->str);
-          }
-        }
-      }
-
-      manf_id0 = manf_id1 = func = prod_info = -1;
-    }
-
-    if(i1) pcmcia_sock = i0;
-
-  }
-
-  free_str_list(sl0);
-}
-
-
-/*
- * Identify hotpluggable devices.
- */
-void assign_bridges(hd_data_t *hd_data)
-{
-  hd_t *hd, *hd1, *bridge_hd;
-  unsigned p_sock[8], p_socks, u = 0;
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if((bridge_hd = hd_get_device_by_idx(hd_data, hd->attached_to))) {
-      if(
-        bridge_hd->base_class.id == bc_bridge &&
-        bridge_hd->sub_class.id == sc_bridge_cardbus
-      ) {
-        hd->hotplug = hp_cardbus;
-      }
-     else if(
-        bridge_hd->base_class.id == bc_bridge &&
-        bridge_hd->sub_class.id == sc_bridge_pcmcia
-      ) {
-        hd->hotplug = hp_pcmcia;
-      }
-    }
-  }
-
-  for(p_socks = 0, hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      u < sizeof p_sock / sizeof *p_sock &&
-      is_pcmcia_ctrl(hd_data, hd)
-    ) {
-      p_sock[p_socks++] = hd->idx;
-    }
-  }
-
-  if(p_socks) {
-    for(hd = hd_data->hd; hd; hd = hd->next) {
-      if(
-        !hd->tag.remove &&
-        hd->bus.id == bus_pcmcia &&
-        hd->slot < p_socks &&
-        p_sock[hd->slot]
-      ) {
-        for(u = p_sock[hd->slot], hd1 = hd_data->hd; hd1; hd1 = hd1->next) {
-          if(hd1->tag.remove) continue;
-          if(hd1->status.available == status_no) continue;
-          if(hd1->attached_to == u) break;
-        }
-        if(hd1) {
-          hd1->hotplug = hd->hotplug;
-          hd1->hotplug_slot = hd->hotplug_slot;
-          if(!hd1->extra_info) {
-            hd1->extra_info = hd->extra_info;
-            hd->extra_info = NULL;
-          }
-          hd->tag.remove = 1;
-        }
-        else {
-          hd->attached_to = p_sock[hd->slot];
-          add_sysfs_stuff(hd_data, hd);
-        }
-        p_sock[hd->slot] = 0;
-      }
-    }
-
-    remove_tagged_hd_entries(hd_data);
-  }
-}
-
-
-void add_sysfs_stuff(hd_data_t *hd_data, hd_t *hd)
-{
-  hd_t *hd_par;
-  char *s = NULL, *s1;
-  struct sysfs_device *sf_dev;
-
-  hd_par = hd_get_device_by_idx(hd_data, hd->attached_to);
-
-  if(!hd_par || !hd_par->sysfs_id || hd->sysfs_id) return;
-
-  str_printf(&s, 0, "/sys%s/%d.0", hd_par->sysfs_id, hd->slot);
-
-  sf_dev = sysfs_open_device_path(s);
-
-  if(sf_dev) {
-    hd->sysfs_id = new_str(hd_sysfs_id(s));
-    s1 = hd_sysfs_find_driver(hd_data, hd->sysfs_id, 1);
-    if(s1) add_str_list(&hd->drivers, s1);
-  }
-
-  sysfs_close_device(sf_dev);
-
-  s = free_mem(s);
-}
-
diff --git a/src/hwinfo/src/hd/pcmcia.h b/src/hwinfo/src/hd/pcmcia.h
deleted file mode 100644 (file)
index ddf7b57..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_pcmcia(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/pppoe.c b/src/hwinfo/src/hd/pppoe.c
deleted file mode 100644 (file)
index da1864c..0000000
+++ /dev/null
@@ -1,611 +0,0 @@
-
-/*
- *  License: GPL
- *
- *  Much inspired by rp-pppoe from Roaring Penguin Software Inc.
- *  which itself is inspired by earlier code from Luke Stras.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <string.h>
-#include <linux/if.h>
-#include <net/ethernet.h>
-#include <net/if_arp.h>
-#include <netinet/in.h>
-#include <netpacket/packet.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "pppoe.h"
-
-static hd_data_t *hd_data;
-
-/* Ethernet Frame Types */
-#define ETH_PPPOE_DISCOVERY    0x8863
-#define ETH_PPPOE_SESSION      0x8864
-
-/* PPPoE Codes */
-#define CODE_PADI              0x09
-#define CODE_PADO              0x07
-#define CODE_PADR              0x19
-#define CODE_PADS              0x65
-#define CODE_PADT              0xA7
-
-/* PPPoE Tags */
-#define TAG_END_OF_LIST                0x0000
-#define TAG_SERVICE_NAME       0x0101
-#define TAG_AC_NAME            0x0102
-#define TAG_HOST_UNIQ          0x0103
-#define TAG_AC_COOKIE          0x0104
-#define TAG_VENDOR_SPECIFIC    0x0105
-#define TAG_RELAY_SESSION_ID   0x0110
-#define TAG_SERVICE_NAME_ERROR 0x0201
-#define TAG_AC_SYSTEM_ERROR    0x0202
-#define TAG_GENERIC_ERROR      0x0203
-
-/* Number of Attempts */
-#define MAX_ATTEMPTS           2
-
-/* Timeout for PADO Packets */
-#define PADO_TIMEOUT           3
-
-/* A PPPoE Packet, including Ethernet headers */
-typedef struct PPPoEPacketStruct {
-    struct ethhdr ethHdr;      /* Ethernet header */
-    unsigned int ver:4;                /* PPPoE Version (must be 1) */
-    unsigned int type:4;       /* PPPoE Type (must be 1) */
-    unsigned int code:8;       /* PPPoE code */
-    unsigned int session:16;   /* PPPoE session */
-    unsigned int length:16;    /* Payload length */
-    unsigned char payload[ETH_DATA_LEN];       /* A bit of room to spare */
-} PPPoEPacket;
-
-/* Header size of a PPPoE Packet */
-#define PPPOE_OVERHEAD 6       /* type, code, session, length */
-#define HDR_SIZE (sizeof (struct ethhdr) + PPPOE_OVERHEAD)
-#define MAX_PPPOE_PAYLOAD (ETH_DATA_LEN - PPPOE_OVERHEAD)
-
-/* PPPoE Tag */
-typedef struct PPPoETagStruct {
-    unsigned int type:16;      /* tag type */
-    unsigned int length:16;    /* Length of payload */
-    unsigned char payload[ETH_DATA_LEN];       /* A LOT of room to spare */
-} PPPoETag;
-
-/* Header size of a PPPoE Tag */
-#define TAG_HDR_SIZE 4
-
-/* Function passed to parse_packet */
-typedef void parse_func (uint16_t type, uint16_t len,
-                        unsigned char* data, void* extra);
-
-/* Keep track of the state of a connection */
-typedef struct PPPoEConnectionStruct {
-    char* ifname;              /* Interface name */
-    int fd;                    /* Raw socket for discovery frames */
-    int received_pado;         /* Where we are in discovery */
-    unsigned char my_mac[ETH_ALEN];    /* My MAC address */
-    unsigned char peer_mac[ETH_ALEN];  /* Peer's MAC address */
-    hd_t *hd;
-} PPPoEConnection;
-
-/* Structure used to determine acceptable PADO packet */
-typedef struct PacketCriteriaStruct {
-    PPPoEConnection* conn;
-    int acname_ok;
-    int servicename_ok;
-    int error;
-} PacketCriteria;
-
-/* True if Ethernet address is broadcast or multicast */
-#define NOT_UNICAST(e) ((e[0] & 0x01) != 0)
-
-
-static int
-check_room (PPPoEConnection* conn, unsigned char* cursor, unsigned char* start,
-           uint16_t len)
-{
-    if (cursor - start + len > MAX_PPPOE_PAYLOAD) {
-       ADD2LOG ("%s: Would create too-long packet\n", conn->ifname);
-       return 0;
-    }
-    return 1;
-}
-
-
-static int
-parse_packet (PPPoEConnection* conn, PPPoEPacket* packet, parse_func* func,
-             void* extra)
-{
-    uint16_t len = ntohs (packet->length);
-    unsigned char* curTag;
-    uint16_t tagType, tagLen;
-
-    if (packet->ver != 1) {
-       ADD2LOG ("%s: Invalid PPPoE version (%d)\n", conn->ifname,
-                (int) packet->ver);
-       return 0;
-    }
-
-    if (packet->type != 1) {
-       ADD2LOG ("%s: Invalid PPPoE type (%d)\n", conn->ifname,
-                (int) packet->type);
-       return 0;
-    }
-
-    /* Do some sanity checks on packet. */
-    if (len > ETH_DATA_LEN - 6) { /* 6-byte overhead for PPPoE header */
-       ADD2LOG ("%s: Invalid PPPoE packet length (%u)\n", conn->ifname, len);
-       return 0;
-    }
-
-    /* Step through the tags. */
-    curTag = packet->payload;
-    while (curTag - packet->payload < len) {
-       /* Alignment is not guaranteed, so do this by hand. */
-       tagType = (((uint16_t) curTag[0]) << 8) + (uint16_t) curTag[1];
-       tagLen = (((uint16_t) curTag[2]) << 8) + (uint16_t) curTag[3];
-       if (tagType == TAG_END_OF_LIST)
-           break;
-       if ((curTag - packet->payload) + tagLen + TAG_HDR_SIZE > len) {
-           ADD2LOG ("%s: Invalid PPPoE tag length (%u)\n", conn->ifname,
-                    tagLen);
-           return 0;
-       }
-       func (tagType, tagLen, curTag + TAG_HDR_SIZE, extra);
-       curTag = curTag + TAG_HDR_SIZE + tagLen;
-    }
-
-    return 1;
-}
-
-
-static int
-open_interfaces (int n, PPPoEConnection* conns)
-{
-    int ret = 0, i;
-
-    for (i = 0; i < n; i++)
-    {
-       PPPoEConnection* conn = &conns[i];
-
-       conn->fd = socket (PF_PACKET, SOCK_RAW, htons (ETH_PPPOE_DISCOVERY));
-       if (conn->fd < 0) {
-           ADD2LOG ("%s: socket failed: %m\n", conn->ifname);
-           continue;
-       }
-
-       int one = 1;
-       if (setsockopt (conn->fd, SOL_SOCKET, SO_BROADCAST, &one,
-                       sizeof (one)) < 0) {
-           ADD2LOG ("%s: setsockopt failed: %m\n", conn->ifname);
-           goto error;
-       }
-
-       /* Fill in hardware address */
-       struct ifreq ifr;
-       struct sockaddr_ll sa;
-       memset (&sa, 0, sizeof (sa));
-       strncpy (ifr.ifr_name, conn->ifname, sizeof (ifr.ifr_name));
-       if (ioctl (conn->fd, SIOCGIFHWADDR, &ifr) < 0) {
-           ADD2LOG ("%s: ioctl (SIOCGIFHWADDR) failed: %m\n", conn->ifname);
-           goto error;
-       }
-
-       memcpy (conn->my_mac, ifr.ifr_hwaddr.sa_data, ETH_ALEN);
-       if (ifr.ifr_hwaddr.sa_family != ARPHRD_ETHER) {
-           ADD2LOG ("%s: Interface is not ethernet\n", conn->ifname);
-           goto error;
-       }
-
-       if (NOT_UNICAST (conn->my_mac)) {
-           ADD2LOG ("%s: Interface has broadcast/multicast MAC address?\n",
-                   conn->ifname);
-           goto error;
-       }
-
-       /* Sanity check on MTU */
-       strncpy (ifr.ifr_name, conn->ifname, sizeof (ifr.ifr_name));
-       if (ioctl (conn->fd, SIOCGIFMTU, &ifr) < 0) {
-           ADD2LOG ("%s: ioctl (SIOCGIFMTU) failed: %m\n", conn->ifname);
-           goto error;
-       }
-       if (ifr.ifr_mtu < ETH_DATA_LEN) {
-           ADD2LOG ("%s: Interface has to low MTU\n", conn->ifname);
-           goto error;
-       }
-
-       /* Get interface index */
-       sa.sll_family = AF_PACKET;
-       sa.sll_protocol = htons (ETH_PPPOE_DISCOVERY);
-       strncpy (ifr.ifr_name, conn->ifname, sizeof (ifr.ifr_name));
-       if (ioctl (conn->fd, SIOCGIFINDEX, &ifr) < 0) {
-           ADD2LOG ("%s: ioctl (SIOCFIGINDEX) failed: Could not get interface "
-                    "index\n", conn->ifname);
-           goto error;
-       }
-       sa.sll_ifindex = ifr.ifr_ifindex;
-
-       /* We're only interested in packets on specified interface */
-       if (bind (conn->fd, (struct sockaddr*) &sa, sizeof (sa)) < 0) {
-           ADD2LOG ("%s: bind failed: %m\n", conn->ifname);
-           goto error;
-       }
-
-       ret = 1;
-       continue;
-
-error:
-
-       close (conn->fd);
-       conn->fd = -1;
-
-    }
-
-    return ret;
-}
-
-
-static void
-close_intefaces (int n, PPPoEConnection* conns)
-{
-    int i;
-
-    for (i = 0; i < n; i++)
-    {
-       PPPoEConnection* conn = &conns[i];
-
-       if (conn->fd != -1) {
-           close (conn->fd);
-           conn->fd = -1;
-       }
-    }
-}
-
-
-static int
-send_packet (int fd, PPPoEPacket* pkt, size_t size)
-{
-    if (send (fd, pkt, size, 0) < 0) {
-       ADD2LOG ("send failed: %m\n");
-       return 0;
-    }
-
-    return 1;
-}
-
-
-static int
-receive_packet (int fd, PPPoEPacket* pkt, size_t* size)
-{
-    int r = recv (fd, pkt, sizeof (PPPoEPacket), 0);
-    if (r < 0) {
-       ADD2LOG ("recv failed: %m\n");
-       return 0;
-    }
-
-    *size = r;
-    return 1;
-}
-
-
-static void
-parse_hostuniq (uint16_t type, uint16_t len, unsigned char* data, void* extra)
-{
-    if (type == TAG_HOST_UNIQ && len == sizeof (pid_t)) {
-       pid_t tmp;
-       memcpy (&tmp, data, len);
-       if (tmp == getpid ()) {
-           int* val = (int*) extra;
-           *val = 1;
-       }
-    }
-}
-
-
-static int
-packet_for_me (PPPoEConnection* conn, PPPoEPacket* packet)
-{
-    /* If packet is not directed to our MAC address, forget it. */
-    if (memcmp (packet->ethHdr.h_dest, conn->my_mac, ETH_ALEN))
-       return 0;
-
-    /* Check for HostUniq tag. */
-    int for_me = 0;
-    parse_packet (conn, packet, parse_hostuniq, &for_me);
-    return for_me;
-}
-
-
-static void
-parse_pado_tags (uint16_t type, uint16_t len, unsigned char* data, void* extra)
-{
-    PacketCriteria* pc = (PacketCriteria*) extra;
-    PPPoEConnection *conn = pc->conn;
-
-    switch (type) {
-       case TAG_AC_NAME:
-           pc->acname_ok = 1;
-           ADD2LOG ("%s: Service-Name is: %.*s\n", conn->ifname, (int) len,
-                    data);
-           break;
-       case TAG_SERVICE_NAME:
-           pc->servicename_ok = len == 0;
-           break;
-       case TAG_SERVICE_NAME_ERROR:
-           ADD2LOG ("%s: Service-Name-Error: %.*s\n", conn->ifname, (int) len,
-                    data);
-           pc->error = 1;
-           break;
-       case TAG_AC_SYSTEM_ERROR:
-           ADD2LOG ("%s: System-Error: %.*s\n", conn->ifname, (int) len, data);
-           pc->error = 1;
-           break;
-       case TAG_GENERIC_ERROR:
-           ADD2LOG ("%s: Generic-Error: %.*s\n", conn->ifname, (int) len, data);
-           pc->error = 1;
-           break;
-    }
-}
-
-
-static int
-send_padi (int n, PPPoEConnection* conns)
-{
-    int ret = 0, i;
-
-    for (i = 0; i < n; i++)
-    {
-       PPPoEConnection* conn = &conns[i];
-
-       if (conn->fd == -1 || conn->received_pado)
-           continue;
-
-       PPPoEPacket packet;
-       unsigned char* cursor = packet.payload;
-       PPPoETag* svc = (PPPoETag*) (&packet.payload);
-       uint16_t namelen = 0;
-       uint16_t plen;
-
-       namelen = 0;
-       plen = TAG_HDR_SIZE + namelen;
-       if (!check_room (conn, cursor, packet.payload, TAG_HDR_SIZE))
-           continue;
-
-       /* Set destination to Ethernet broadcast address */
-       memset (packet.ethHdr.h_dest, 0xFF, ETH_ALEN);
-       memcpy (packet.ethHdr.h_source, conn->my_mac, ETH_ALEN);
-
-       packet.ethHdr.h_proto = htons (ETH_PPPOE_DISCOVERY);
-       packet.ver = 1;
-       packet.type = 1;
-       packet.code = CODE_PADI;
-       packet.session = 0;
-
-       svc->type = TAG_SERVICE_NAME;
-       svc->length = htons (0);
-       if (!check_room (conn, cursor, packet.payload, namelen + TAG_HDR_SIZE))
-           continue;
-
-       cursor += namelen + TAG_HDR_SIZE;
-
-       PPPoETag hostUniq;
-       pid_t pid = getpid ();
-       hostUniq.type = htons (TAG_HOST_UNIQ);
-       hostUniq.length = htons (sizeof (pid));
-       memcpy (hostUniq.payload, &pid, sizeof (pid));
-       if (!check_room (conn, cursor, packet.payload, sizeof (pid) + TAG_HDR_SIZE))
-           continue;
-       memcpy (cursor, &hostUniq, sizeof (pid) + TAG_HDR_SIZE);
-       cursor += sizeof (pid) + TAG_HDR_SIZE;
-       plen += sizeof (pid) + TAG_HDR_SIZE;
-
-       packet.length = htons (plen);
-
-       ADD2LOG ("%s: Sending PADI packet\n", conn->ifname);
-
-       if (send_packet (conn->fd, &packet, (int) (plen + HDR_SIZE)))
-           ret = 1;
-    }
-
-    return ret;
-}
-
-
-static int
-wait_for_pado (int n, PPPoEConnection* conns)
-{
-    int r, i, all;
-    size_t len;
-    fd_set readable;
-    PPPoEPacket packet;
-    PacketCriteria pc;
-
-    struct timeval tv;
-    tv.tv_sec = PADO_TIMEOUT;
-    tv.tv_usec = 0;
-
-    while (1)
-    {
-       FD_ZERO (&readable);
-       for (i = 0; i < n; i++)
-           if (conns[i].fd != -1)
-               FD_SET (conns[i].fd, &readable);
-
-       do {
-           r = select (FD_SETSIZE, &readable, NULL, NULL, &tv);
-       } while (r == -1 && errno == EINTR);
-
-       if (r < 0) {
-           ADD2LOG ("select: %m\n");
-           return 0;
-       }
-
-       if (r == 0) {
-           ADD2LOG ("Timeout waiting for PADO packets\n");
-           return 0;
-       }
-
-       for (i = 0; i < n; i++)
-       {
-           PPPoEConnection* conn = &conns[i];
-
-           if (conn->fd == -1 || !FD_ISSET (conn->fd, &readable))
-               continue;
-
-           pc.conn = conn;
-           pc.acname_ok = 0;
-           pc.servicename_ok = 0;
-           pc.error = 0;
-
-           /* Get the packet */
-           if (!receive_packet (conn->fd, &packet, &len))
-               continue;
-
-           /* Check length */
-           if (ntohs (packet.length) + HDR_SIZE > len) {
-               ADD2LOG ("%s: Bogus PPPoE length field (%u)\n", conn->ifname,
-                       (unsigned int) ntohs (packet.length));
-               continue;
-           }
-
-           /* If it's not for us, loop again */
-           if (!packet_for_me (conn, &packet))
-               continue;
-
-           if (packet.code != CODE_PADO)
-               continue;
-
-           if (NOT_UNICAST (packet.ethHdr.h_source)) {
-               ADD2LOG ("%s: Ignoring PADO packet from non-unicast MAC "
-                        "address\n", conn->ifname);
-               continue;
-           }
-
-           parse_packet (conn, &packet, parse_pado_tags, &pc);
-
-           if (!pc.acname_ok) {
-               ADD2LOG ("%s: Wrong or missing AC-Name tag\n", conn->ifname);
-               continue;
-           }
-
-           if (!pc.servicename_ok) {
-               ADD2LOG ("%s: Wrong or missing Service-Name tag\n",
-                        conn->ifname);
-               continue;
-           }
-
-           if (pc.error) {
-               ADD2LOG ("%s: Ignoring PADO packet with some Error tag\n",
-                        conn->ifname);
-               continue;
-           }
-
-           memcpy (conn->peer_mac, packet.ethHdr.h_source, ETH_ALEN);
-           ADD2LOG ("%s: Received correct PADO packet\n", conn->ifname);
-           conn->received_pado = 1;
-       }
-
-       all = 1;
-       for (i = 0; i < n; i++)
-           if (conns[i].fd != -1 && !conns[i].received_pado)
-               all = 0;
-       if (all)
-           return 1;
-    }
-}
-
-
-static void
-discovery (int n, PPPoEConnection* conns)
-{
-    int a;
-
-    if (open_interfaces (n, conns))
-    {
-       for (a = 0; a < MAX_ATTEMPTS; a++)
-       {
-           ADD2LOG ("Attempt number %d\n", a + 1);
-
-           if (!send_padi (n, conns))
-               break;
-
-           if (wait_for_pado (n, conns))
-               break;
-       }
-    }
-
-    close_intefaces (n, conns);
-}
-
-
-void hd_scan_pppoe(hd_data_t *hd_data2)
-{
-  hd_t *hd;
-  int cnt, interfaces;
-  PPPoEConnection *conn;
-
-  hd_data = hd_data2;
-
-  if(!hd_probe_feature(hd_data, pr_pppoe)) return;
-
-  hd_data->module = mod_pppoe;
-
-  PROGRESS(1, 0, "looking for pppoe");
-
-  for(interfaces = 0, hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_network_interface &&
-      hd->sub_class.id == sc_nif_ethernet &&
-      hd->unix_dev_name
-    ) {
-      interfaces++;
-    }
-  }
-
-  if(!interfaces) return;
-
-  conn = new_mem(interfaces * sizeof *conn);
-
-  for(cnt = 0, hd = hd_data->hd; hd && cnt < interfaces; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_network_interface &&
-      hd->sub_class.id == sc_nif_ethernet &&
-      hd->unix_dev_name
-    ) {
-      conn[cnt].hd = hd;
-      conn[cnt].fd = -1;
-      conn[cnt].ifname = hd->unix_dev_name;
-      cnt++;
-    }
-  }
-
-  PROGRESS(2, 0, "discovery");
-
-  discovery(interfaces, conn);
-
-  for(cnt = 0; cnt < interfaces; cnt++) {
-    conn[cnt].hd->is.pppoe = 0;
-
-    if(conn[cnt].received_pado) {
-      conn[cnt].hd->is.pppoe = 1;
-      ADD2LOG(
-        "pppoe %s: my mac %02x:%02x:%02x:%02x:%02x:%02x, "
-        "peer mac %02x:%02x:%02x:%02x:%02x:%02x\n",
-        conn[cnt].ifname,
-        conn[cnt].my_mac[0], conn[cnt].my_mac[1], conn[cnt].my_mac[2],
-        conn[cnt].my_mac[3], conn[cnt].my_mac[4], conn[cnt].my_mac[5],
-        conn[cnt].peer_mac[0], conn[cnt].peer_mac[1], conn[cnt].peer_mac[2],
-        conn[cnt].peer_mac[3], conn[cnt].peer_mac[4], conn[cnt].peer_mac[5]
-      );
-    }
-  }
-}
diff --git a/src/hwinfo/src/hd/pppoe.h b/src/hwinfo/src/hd/pppoe.h
deleted file mode 100644 (file)
index 859e99f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_pppoe(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/prom.c b/src/hwinfo/src/hd/prom.c
deleted file mode 100644 (file)
index 0a2a28f..0000000
+++ /dev/null
@@ -1,694 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <dirent.h>
-#include <sys/stat.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "hddb.h"
-#include "prom.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * prom info
- *
- * Note: make sure that hd_scan_sysfs_pci() has been run!
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#if defined(__PPC__)
-
-static devtree_t *add_devtree_entry(devtree_t **devtree, devtree_t *new);
-static devtree_t *new_devtree_entry(devtree_t *parent);
-static void read_str(char *path, char *name, char **str);
-static void read_mem(char *path, char *name, unsigned char **mem, unsigned len);
-static void read_int(char *path, char *name, int *val);
-static void read_devtree(hd_data_t *hd_data);
-static void add_pci_prom_devices(hd_data_t *hd_data, hd_t *hd_parent, devtree_t *parent);
-static void add_legacy_prom_devices(hd_data_t *hd_data, devtree_t *dt);
-static int add_prom_display(hd_data_t *hd_data, devtree_t *dt);
-static int add_prom_vscsi(hd_data_t *hd_data, devtree_t *dt);
-static int add_prom_veth(hd_data_t *hd_data, devtree_t *dt);
-static void add_devices(hd_data_t *hd_data);
-static void dump_devtree_data(hd_data_t *hd_data);
-
-static unsigned veth_cnt, vscsi_cnt;
-
-int detect_smp_prom(hd_data_t *hd_data)
-{
-  unsigned cpus;
-  devtree_t *devtree;
-
-  if(!(devtree = hd_data->devtree)) return -1; /* hd_scan_prom() not called */
-
-  for(cpus = 0; devtree; devtree = devtree->next) {
-    if(devtree->device_type && !strcmp(devtree->device_type, "cpu")) cpus++;
-  }
-
-  return cpus > 1 ? cpus : 0;
-}
-
-void hd_scan_prom(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  unsigned char buf[16];
-  FILE *f;
-  prom_info_t *pt;
-
-  if(!hd_probe_feature(hd_data, pr_prom)) return;
-
-  hd_data->module = mod_prom;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-  hd_data->devtree = free_devtree(hd_data);
-
-  veth_cnt = vscsi_cnt = 0;
-
-  PROGRESS(1, 0, "devtree");
-
-  read_devtree(hd_data);
-  if(hd_data->debug) dump_devtree_data(hd_data);
-  add_devices(hd_data);
-
-  PROGRESS(2, 0, "color");
-
-  hd = add_hd_entry(hd_data, __LINE__, 0);
-  hd->base_class.id = bc_internal;
-  hd->sub_class.id = sc_int_prom;
-  hd->detail = new_mem(sizeof *hd->detail);
-  hd->detail->type = hd_detail_prom;
-  hd->detail->prom.data = pt = new_mem(sizeof *pt);
-
-  if((f = fopen(PROC_PROM "/color-code", "r"))) {
-    if(fread(buf, 1, 2, f) == 2) {
-      pt->has_color = 1;
-      pt->color = buf[1];
-      hd_data->color_code = pt->color | 0x10000;
-      ADD2LOG("color-code: 0x%04x\n", (buf[0] << 8) + buf[1]);
-    }
-
-    fclose(f);
-  }
-
-}
-
-/* store a device tree entry */
-devtree_t *add_devtree_entry(devtree_t **devtree, devtree_t *new)
-{
-  while(*devtree) devtree = &(*devtree)->next;
-  return *devtree = new;
-}
-
-/* create a new device tree entry */
-devtree_t *new_devtree_entry(devtree_t *parent)
-{
-  static unsigned idx = 0;
-  devtree_t *devtree = new_mem(sizeof *devtree);
-
-  if(!parent) idx = 0;
-  devtree->idx = ++idx;
-  devtree->parent = parent;
-
-  devtree->interrupt = devtree->class_code =
-  devtree->device_id = devtree->vendor_id =
-  devtree->subdevice_id = devtree->subvendor_id =
-  devtree->revision_id = -1;
-
-  return devtree;
-}
-
-void read_str(char *path, char *name, char **str)
-{
-  char *s = NULL;
-  str_list_t *sl;
-
-  str_printf(&s, 0, "%s/%s", path, name);
-  if((sl = read_file(s, 0, 1))) {
-    *str = sl->str;
-    sl->str = NULL;
-    sl = free_str_list(sl);
-  }
-  free_mem(s);
-}
-
-void read_mem(char *path, char *name, unsigned char **mem, unsigned len)
-{
-  FILE *f;
-  char *s = NULL;
-  unsigned char *m = new_mem(len);
-
-  str_printf(&s, 0, "%s/%s", path, name);
-  if((f = fopen(s, "r"))) {
-    if(fread(m, len, 1, f) == 1) {
-      *mem = m;
-      m = NULL;
-    }
-    fclose(f);
-  }
-  free_mem(s);
-  free_mem(m);
-}
-
-void read_int(char *path, char *name, int *val)
-{
-  unsigned char *p = NULL;
-
-  read_mem(path, name, &p, sizeof (int));
-  if(p) memcpy(val, p, sizeof (int));
-  free_mem(p);
-}
-
-void read_devtree_entry(hd_data_t *hd_data, devtree_t *parent, char *dirname)
-{
-  DIR *dir;
-  struct dirent *de;
-  struct stat sbuf;
-  char *path, *s;
-  devtree_t *devtree, *dt2;
-
-  devtree = add_devtree_entry(&hd_data->devtree, new_devtree_entry(parent));
-
-  devtree->filename = new_str(dirname);
-
-  str_printf(&devtree->path, 0, "%s%s%s",
-    parent ? parent->path : "", parent && *parent->path ? "/" : "", dirname
-  );
-
-  path = 0;
-  str_printf(&path, 0, PROC_PROM "/%s", devtree->path);
-
-  if((dir = opendir(path))) {
-    while((de = readdir(dir))) {
-      if(!strcmp(de->d_name, ".") || !strcmp(de->d_name, "..")) continue;
-      s = NULL;
-      str_printf(&s, 0, "%s/%s", path, de->d_name);
-      if(!lstat(s, &sbuf)) {
-        if(S_ISDIR(sbuf.st_mode)) {
-          /* prom entries don't always have unique names, unfortunately... */
-          for(dt2 = hd_data->devtree; dt2; dt2 = dt2->next) {
-            if(
-              dt2->parent == devtree &&
-              !strcmp(dt2->filename, de->d_name)
-            ) break;
-          }
-          if(!dt2) read_devtree_entry(hd_data, devtree, de->d_name);
-        }
-      }
-      s = free_mem(s);
-    }
-    closedir(dir);
-  }
-
-  read_str(path, "name", &devtree->name);
-  read_str(path, "model", &devtree->model);
-  read_str(path, "device_type", &devtree->device_type);
-  read_str(path, "compatible", &devtree->compatible);
-
-  read_int(path, "interrupts", &devtree->interrupt);
-  read_int(path, "AAPL,interrupts", &devtree->interrupt);
-  read_int(path, "class-code", &devtree->class_code);
-  read_int(path, "vendor-id", &devtree->vendor_id);
-  read_int(path, "device-id", &devtree->device_id);
-  read_int(path, "subsystem-vendor-id", &devtree->subvendor_id);
-  read_int(path, "subsystem-id", &devtree->subdevice_id);
-  read_int(path, "revision-id", &devtree->revision_id);
-
-  read_mem(path, "EDID", &devtree->edid, 0x80);
-  if(!devtree->edid) read_mem(path, "DFP,EDID", &devtree->edid, 0x80);
-
-  if(
-    devtree->class_code != -1 && devtree->vendor_id != -1 &&
-    devtree->device_id != -1
-  ) {
-    devtree->pci = 1;
-  }
-
-  path = free_mem(path);
-}
-
-void read_devtree(hd_data_t *hd_data)
-{
-  read_devtree_entry(hd_data, NULL, "");
-
-}
-
-void add_pci_prom_devices(hd_data_t *hd_data, hd_t *hd_parent, devtree_t *parent)
-{
-  hd_t *hd;
-  hd_res_t *res;
-  devtree_t *dt, *dt2;
-  int irq, floppy_ctrl_idx;
-  unsigned sound_ok = 0, net_ok = 0, scsi_ok = 0;
-  unsigned id;
-  char *s;
-
-  for(dt = hd_data->devtree; dt; dt = dt->next) {
-    if(
-      dt->parent == parent ||
-      (
-        /* special magic to reach some sound chips */
-        dt->parent &&
-        dt->parent->parent == parent &&
-        !dt->parent->pci
-      )
-    ) {
-
-      if(
-        dt->device_type &&
-        (!strcmp(dt->device_type, "block") || !strcmp(dt->device_type, "swim3"))
-      ) {
-        /* block devices */
-
-        s = dt->compatible ? dt->compatible : dt->name;
-        id = 0;
-
-        if(s) {
-          if(strstr(s, "swim3")) {
-            id = MAKE_ID(TAG_SPECIAL, 0x0040);
-          }
-        }
-
-        if(id) {
-          hd = add_hd_entry(hd_data, __LINE__, 0);
-          hd->bus.id = bus_none;
-          hd->base_class.id = bc_storage;
-          hd->sub_class.id = sc_sto_floppy;
-
-          hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0401);
-          hd->device.id = id;
-          hd->attached_to = hd_parent->idx;
-          hd->rom_id = new_str(dt->path);
-          if(dt->interrupt) {
-            res = add_res_entry(&hd->res, new_mem(sizeof *res));
-            res->irq.type = res_irq;
-            res->irq.enabled = 1;
-            res->irq.base = dt->interrupt;
-          }
-          floppy_ctrl_idx = hd->idx;
-
-          hd = add_hd_entry(hd_data, __LINE__, 0);
-          hd->base_class.id = bc_storage_device;
-          hd->sub_class.id = sc_sdev_floppy;
-          hd->bus.id = bus_floppy;
-          hd->unix_dev_name = new_str("/dev/fd0");
-
-          res = add_res_entry(&hd->res, new_mem(sizeof *res));
-          res->size.type = res_size;
-          res->size.val1 = str2float("3.5", 2);
-          res->size.unit = size_unit_cinch;
-
-          res = add_res_entry(&hd->res, new_mem(sizeof *res));
-          res->size.type = res_size;
-          res->size.val1 = 2880;
-          res->size.val2 = 0x200;
-          res->size.unit = size_unit_sectors;
-
-          hd->attached_to = floppy_ctrl_idx;
-        }
-      }
-
-      if(
-        !scsi_ok &&
-        dt->device_type &&
-        !strcmp(dt->device_type, "scsi")
-      ) {
-        /* scsi */
-        scsi_ok = 1;   /* max. 1 controller */
-
-        s = dt->compatible ? dt->compatible : dt->name;
-        id = 0;
-
-        if(s) {
-          if(strstr(s, "mesh")) {      /* mesh || chrp,mesh0 */
-            id = MAKE_ID(TAG_SPECIAL, 0x0030);
-          }
-          else if(!strcmp(s, "53c94")) {
-            id = MAKE_ID(TAG_SPECIAL, 0x0031);
-          }
-        }
-
-        if(id) {
-          hd = add_hd_entry(hd_data, __LINE__, 0);
-          hd->bus.id = bus_none;
-          hd->base_class.id = bc_storage;
-          hd->sub_class.id = sc_sto_scsi;
-
-          hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0401);
-          hd->device.id = id;
-          hd->attached_to = hd_parent->idx;
-          hd->rom_id = new_str(dt->path);
-          if(dt->interrupt) {
-            res = add_res_entry(&hd->res, new_mem(sizeof *res));
-            res->irq.type = res_irq;
-            res->irq.enabled = 1;
-            res->irq.base = dt->interrupt;
-          }
-        }
-      }
-
-      if(
-        !net_ok &&
-        dt->device_type &&
-        !strcmp(dt->device_type, "network")
-      ) {
-        /* network */
-        net_ok = 1;    /* max. 1 controller */
-
-        s = dt->compatible ? dt->compatible : dt->name;
-        id = 0;
-
-        if(s) {
-          if(!strcmp(s, "mace")) {
-            id = MAKE_ID(TAG_SPECIAL, 0x0020);
-          }
-          else if(!strcmp(s, "bmac")) {
-            id = MAKE_ID(TAG_SPECIAL, 0x0021);
-          }
-          else if(!strcmp(s, "bmac+")) {
-            id = MAKE_ID(TAG_SPECIAL, 0x0022);
-          }
-        }
-
-        if(id) {
-          hd = add_hd_entry(hd_data, __LINE__, 0);
-          hd->bus.id = bus_none;
-          hd->base_class.id = bc_network;
-          hd->sub_class.id = 0;        /* ethernet */
-
-          hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0401);
-          hd->device.id = id;
-          hd->attached_to = hd_parent->idx;
-          hd->rom_id = new_str(dt->path);
-          if(dt->interrupt) {
-            res = add_res_entry(&hd->res, new_mem(sizeof *res));
-            res->irq.type = res_irq;
-            res->irq.enabled = 1;
-            res->irq.base = dt->interrupt;
-          }
-        }
-      }
-
-      if(
-        !sound_ok &&
-        dt->device_type &&
-        strstr(dt->device_type, "sound") == dt->device_type
-      ) {
-        /* sound */
-        sound_ok = 1;  /* max 1 controller */
-
-        for(dt2 = dt; dt2; dt2 = dt2->next) {
-          if(
-            (
-              dt2 == dt ||
-              (dt2->parent && dt2->parent == dt)
-            ) &&
-            (
-              !strcmp(dt2->device_type, "sound") ||
-              !strcmp(dt2->device_type, "soundchip")
-            )
-          ) break;
-        }
-        if(!dt2) dt2 = dt;
-
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->bus.id = bus_none;
-        hd->base_class.id = bc_multimedia;
-        hd->sub_class.id = sc_multi_audio;
-        hd->attached_to = hd_parent->idx;
-        hd->rom_id = new_str(dt2->path);
-        irq = dt2->interrupt;
-        if(irq <= 1 && dt2->parent && !dt2->parent->pci) {
-          irq = dt2->parent->interrupt;
-        }
-        if(irq > 1) {
-          res = add_res_entry(&hd->res, new_mem(sizeof *res));
-          res->irq.type = res_irq;
-          res->irq.enabled = 1;
-          res->irq.base = irq;
-        }
-
-        hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x401);           /* Apple */
-        hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0010);
-
-        if(dt2->compatible) {
-          if(!strcmp(dt2->compatible, "screamer")) {
-            hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0011);
-          }
-          else if(!strcmp(dt2->compatible, "burgundy")) {
-            hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0012);
-          }
-          else if(!strcmp(dt2->compatible, "daca")) {
-            hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0013);
-          }
-          else if(!strcmp(dt2->compatible, "CRUS,CS4236B")) {
-            hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x402);       /* IBM */
-            hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0014);
-          }
-        }
-      }
-    }
-  }
-}
-
-
-void add_legacy_prom_devices(hd_data_t *hd_data, devtree_t *dt)
-{
-  if(dt->pci) return;
-
-  if(add_prom_display(hd_data, dt)) return;
-  if(add_prom_vscsi(hd_data, dt)) return;
-  if(add_prom_veth(hd_data, dt)) return;
-}
-
-int add_prom_display(hd_data_t *hd_data, devtree_t *dt)
-{
-  hd_t *hd;
-  hd_res_t *res;
-  unsigned id;
-
-  if(
-    dt->device_type &&
-    !strcmp(dt->device_type, "display")
-  ) {
-    /* display devices */
-
-    id = 0;
-
-    if(dt->name) {
-      if(!strcmp(dt->name, "valkyrie")) {
-        id = MAKE_ID(TAG_SPECIAL, 0x3000);
-      }
-      else if(!strcmp(dt->name, "platinum")) {
-        id = MAKE_ID(TAG_SPECIAL, 0x3001);
-      }
-    }
-
-    if(id) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->bus.id = bus_none;
-      hd->base_class.id = bc_display;
-      hd->sub_class.id = sc_dis_other;
-
-      hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x0401);
-      hd->device.id = id;
-      hd->rom_id = new_str(dt->path);
-      if(dt->interrupt) {
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->irq.type = res_irq;
-        res->irq.enabled = 1;
-        res->irq.base = dt->interrupt;
-      }
-
-      return 1;
-    }
-  }
-
-  return 0;
-}
-
-int add_prom_vscsi(hd_data_t *hd_data, devtree_t *dt)
-{
-  hd_t *hd;
-  char *s, *id;
-
-  if(
-    dt->path &&
-    dt->device_type &&
-    !strcmp(dt->device_type, "vscsi")
-  ) {
-    /* vscsi storage */
-
-    if(
-      (s = strstr(dt->path, "v-scsi@")) &&
-      *(id = s + sizeof "v-scsi@" - 1)
-    ) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->bus.id = bus_none;
-      hd->base_class.id = bc_storage;
-      hd->sub_class.id = sc_sto_scsi;
-      hd->slot = veth_cnt++;
-
-      hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x6001);
-      hd->device.id = MAKE_ID(TAG_SPECIAL, 0x1001);
-      str_printf(&hd->device.name, 0, "Virtual SCSI %d", hd->slot);
-      hd->rom_id = new_str(dt->path);
-
-      str_printf(&hd->sysfs_id, 0, "/devices/vio/%s", id);
-
-      return 1;
-    }
-  }
-
-  return 0;
-}
-
-int add_prom_veth(hd_data_t *hd_data, devtree_t *dt)
-{
-  hd_t *hd;
-  char *s, *id;
-
-  if(
-    dt->path &&
-    dt->device_type &&
-    dt->compatible &&
-    !strcmp(dt->device_type, "network") &&
-    !strcmp(dt->compatible, "IBM,l-lan")
-  ) {
-    /* veth network */
-
-    if(
-      (s = strstr(dt->path, "l-lan@")) &&
-      *(id = s + sizeof "l-lan@" - 1)
-    ) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-      hd->bus.id = bus_none;
-      hd->base_class.id = bc_network;
-      hd->sub_class.id = 0x00;
-      hd->slot = veth_cnt++;
-
-      hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x6001);
-      hd->device.id = MAKE_ID(TAG_SPECIAL, 0x1002);
-      str_printf(&hd->device.name, 0, "Virtual Ethernet card %d", hd->slot);
-      hd->rom_id = new_str(dt->path);
-
-      str_printf(&hd->sysfs_id, 0, "/devices/vio/%s", id);
-
-      return 1;
-    }
-  }
-
-  return 0;
-}
-
-void add_devices(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  devtree_t *dt;
-#if 0
-  hd_res_t *res;
-  unsigned pci_slot = 0, u;
-#endif
-
-  /* remove old assignments */
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(ID_TAG(hd->device.id) == TAG_PCI && ID_TAG(hd->vendor.id) == TAG_PCI) {
-      hd->rom_id = free_mem(hd->rom_id);
-      hd->detail = free_hd_detail(hd->detail);
-    }
-  }
-
-  for(dt = hd_data->devtree; dt; dt = dt->next) {
-    if(dt->pci) {
-      for(hd = hd_data->hd; hd; hd = hd->next) {
-        if(
-          /* do *not* compare class ids */
-          /* It would be better to check the slot numbers instead but
-           * as they are not stored within /proc/device-tree in a consistent
-           * way, we can't do that.
-           */
-          !hd->rom_id &&
-          ID_TAG(hd->device.id) == TAG_PCI &&
-          ID_TAG(hd->vendor.id) == TAG_PCI &&
-          ID_VALUE(hd->device.id) == dt->device_id &&
-          ID_VALUE(hd->vendor.id) == dt->vendor_id &&
-          (dt->subvendor_id == -1 || ID_VALUE(hd->sub_vendor.id) == dt->subvendor_id) &&
-          (dt->subdevice_id == -1 || ID_VALUE(hd->sub_device.id) == dt->subdevice_id) &&
-          hd->revision.id == dt->revision_id
-        ) break;
-      }
-
-      if(hd) {
-        hd->rom_id = new_str(dt->path);
-        hd->detail = new_mem(sizeof *hd->detail);
-        hd->detail->type = hd_detail_devtree;
-        hd->detail->devtree.data = dt;
-        add_pci_prom_devices(hd_data, hd, dt);
-      }
-    }
-    else {
-      add_legacy_prom_devices(hd_data, dt);
-    }
-  }
-}
-
-void dump_devtree_data(hd_data_t *hd_data)
-{
-  unsigned u;
-  devtree_t *devtree;
-
-  devtree = hd_data->devtree;
-  if(!devtree) return;
-
-  ADD2LOG("----- /proc device tree -----\n");
-
-  for(; devtree; devtree = devtree->next) {
-    u = devtree->parent ? devtree->parent->idx : 0;
-    ADD2LOG("  %02u @%02u  %s", devtree->idx, u, devtree->path);
-    if(devtree->pci) ADD2LOG("  [pci]");
-    ADD2LOG("\n");
-
-    ADD2LOG(
-      "    name \"%s\", model \"%s\", dtype \"%s\", compat \"%s\"\n",
-      devtree->name ? devtree->name : "",
-      devtree->model ? devtree->model : "",
-      devtree->device_type ? devtree->device_type : "",
-      devtree->compatible ? devtree->compatible : ""
-    );
-
-    if(
-      devtree->class_code != -1 || devtree->vendor_id != -1 ||
-      devtree->device_id != -1 || devtree->revision_id != -1 ||
-      devtree->subdevice_id != -1 || devtree->subvendor_id != -1 ||
-      devtree->interrupt != -1
-    ) {
-      ADD2LOG("  ");
-      if(devtree->class_code != -1) ADD2LOG("  class 0x%06x", devtree->class_code);
-      if(devtree->vendor_id != -1) ADD2LOG("  vend 0x%04x", devtree->vendor_id);
-      if(devtree->device_id != -1) ADD2LOG("  dev 0x%04x", devtree->device_id);
-      if(devtree->subvendor_id != -1) ADD2LOG("  svend 0x%04x", devtree->subvendor_id);
-      if(devtree->subdevice_id != -1) ADD2LOG("  sdev 0x%04x", devtree->subdevice_id);
-      if(devtree->revision_id != -1) ADD2LOG("  rev 0x%02x", devtree->revision_id);
-      if(devtree->interrupt != -1) ADD2LOG("  irq %d", devtree->interrupt);
-      ADD2LOG("\n");
-    }
-
-    if(devtree->edid) {
-      ADD2LOG("    EDID record:\n");
-      for(u = 0; u < 0x80; u += 0x10) {
-        ADD2LOG("    %02x  ", u);
-        hexdump(&hd_data->log, 1, 0x10, devtree->edid + u);
-        ADD2LOG("\n");
-      }
-    }
-
-    if(devtree->next) ADD2LOG("\n");
-  }
-
-  ADD2LOG("----- /proc device tree end -----\n");
-}
-
-
-#endif /* defined(__PPC__) */
-
diff --git a/src/hwinfo/src/hd/prom.h b/src/hwinfo/src/hd/prom.h
deleted file mode 100644 (file)
index 8f8505e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_prom(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/s390.c b/src/hwinfo/src/hd/s390.c
deleted file mode 100644 (file)
index 942564b..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "hddb.h"
-#include "s390.h"
-
-#if defined(__s390__) || defined(__s390x__)
-
-#include <sysfs/libsysfs.h>
-#include <sysfs/dlist.h>
-
-#define BUSNAME "ccw"
-#define BUSNAME_GROUP "ccwgroup"
-#define BUSNAME_IUCV "iucv"
-
-static void hd_scan_s390_ex(hd_data_t *hd_data, int disks_only)
-{
-  hd_t* hd;
-  hd_res_t* res;
-  struct sysfs_bus *bus;
-  struct sysfs_bus *bus_group;
-  struct sysfs_device *curdev = NULL;
-  struct dlist *attributes = NULL;
-  struct sysfs_attribute *curattr = NULL;
-  struct dlist *devlist = NULL;
-  struct dlist *devlist_group = NULL;
-  int virtual_machine=0;
-
-  unsigned int devtype=0,devmod=0,cutype=0,cumod=0;
-
-  /* list of each channel's cutype, used for finding multichannel devices */
-  int cutypes[1<<16]={0};
-  int i;
-
-  hd_data->module=mod_s390;
-
-  remove_hd_entries(hd_data);
-
-  bus=sysfs_open_bus(BUSNAME);
-  bus_group=sysfs_open_bus(BUSNAME_GROUP);
-
-  if (!bus)
-  {
-    ADD2LOG("unable to open" BUSNAME "bus");
-    return;
-  }
-
-  devlist=sysfs_get_bus_devices(bus);
-  if(bus_group) devlist_group=sysfs_get_bus_devices(bus_group);
-  
-  if(!devlist)
-  {
-       ADD2LOG("unable to get devices on bus " BUSNAME);
-       return;
-  }
-  
-  /* build cutypes list */
-  dlist_for_each_data(devlist, curdev, struct sysfs_device)
-  {
-    int channel=strtol(rindex(curdev->bus_id,'.')+1,NULL,16);
-    attributes = sysfs_get_device_attributes(curdev);
-    dlist_for_each_data(attributes,curattr,struct sysfs_attribute)
-    {
-      if(strcmp("cutype",curattr->name)==0)
-       cutype=strtol(curattr->value,NULL,16);
-    }
-    cutypes[channel]=cutype;
-  }
-  /* check for each channel if it must be skipped and identify virtual reader/punch */
-  for(i=0;i<(1<<16);i++)
-  {
-    if(cutypes[i]==0x3088)     /* It seems that QDIO devices only appear once */
-      cutypes[i+1]*=-1;        /* negative cutype -> skip */
-
-    if(cutypes[i]==0x2540)
-    {
-      virtual_machine=1;       /* we are running in VM */
-      cutypes[i]=-2;   /* reader */
-      cutypes[i+1]=-3; /* punch */
-    }
-  }
-  
-  /* identify grouped channels */
-  if(devlist_group) dlist_for_each_data(devlist_group, curdev, struct sysfs_device)
-  {
-    struct sysfs_directory* d;
-    struct dlist* dl;
-    struct sysfs_link* cl;
-    //printf("ccwg %s\n",curdev->path);
-    d=sysfs_open_directory(curdev->path);
-    dl=sysfs_get_dir_links(d);
-    dlist_for_each_data(dl,cl,struct sysfs_link)       /* iterate over this channel group */
-    {
-        if(!rindex(cl->target,'.')) continue;
-       int channel=strtol(rindex(cl->target,'.')+1,NULL,16);
-       //printf("channel %x name %s target %s\n",channel,cl->name,cl->target);
-       if(strncmp("cdev",cl->name,4)==0)
-       {
-               if(cl->name[4]=='0')    /* first channel in group gets an entry */
-               {
-                       if(cutypes[channel]<0) cutypes[channel]*=-1;    /* make sure its positive */
-               }
-               else                    /* other channels in group are skipped */
-                       if(cutypes[channel]>0) cutypes[channel]*=-1;    /* make sure its negative */
-       }
-               
-    }
-  }
-  
-  dlist_for_each_data(devlist, curdev, struct sysfs_device)
-  {
-    int readonly=0;
-    res=new_mem(sizeof *res);
-
-    attributes = sysfs_get_device_attributes(curdev);
-    dlist_for_each_data(attributes,curattr, struct sysfs_attribute)
-    {
-      if (strcmp("online",curattr->name)==0)
-       res->io.enabled=atoi(curattr->value);
-      else if (strcmp("cutype",curattr->name)==0)
-      {
-       cutype=strtol(curattr->value,NULL,16);
-       cumod=strtol(index(curattr->value,'/')+1,NULL,16);
-      } else if (strcmp("devtype",curattr->name)==0)
-      {
-       devtype=strtol(curattr->value,NULL,16);
-       devmod=strtol(index(curattr->value,'/')+1,NULL,16);
-      } else if (strcmp("readonly",curattr->name)==0)
-      {
-        readonly=atoi(curattr->value);
-      }
-    }
-    
-    res->io.type=res_io;
-    res->io.access=readonly?acc_ro:acc_rw;
-    res->io.base=strtol(rindex(curdev->bus_id,'.')+1,NULL,16);
-
-    /* Skip additional channels for multi-channel devices */
-    if(cutypes[res->io.base] < -3)
-      continue;
-
-    if(disks_only && cutype!=0x3990 && cutype!=0x2105 && cutype!=0x3880 && cutype!=0x9343 && cutype!=0x6310 &&
-       (cutype != 0x1731 || devtype != 0x1732 || cumod != 3))
-      continue;
-
-    res->io.range=1;
-    switch (cutype)
-    {
-      /* three channels */
-      case 0x1731:    /* QDIO (QETH, HSI, zFCP) */
-       res->io.range++;
-      /* two channels */
-      case 0x3088:    /* CU3088 (CTC, LCS) */
-       res->io.range++;
-    }
-
-    hd=add_hd_entry(hd_data,__LINE__,0);
-    add_res_entry(&hd->res,res);
-    hd->vendor.id=MAKE_ID(TAG_SPECIAL,0x6001); /* IBM */
-    hd->device.id=MAKE_ID(TAG_SPECIAL,cutype);
-    hd->sub_device.id=MAKE_ID(TAG_SPECIAL,devtype);
-    hd->bus.id=bus_ccw;
-    hd->sysfs_device_link = new_str(hd_sysfs_id(curdev->path));
-    hd->sysfs_bus_id = new_str(strrchr(curdev->path,'/')+1);
-    
-    if(cutypes[res->io.base]==-2)      /* virtual reader */
-    {
-      hd->base_class.id=bc_scanner;
-    }
-    if(cutypes[res->io.base]==-3)      /* virtual punch */
-    {
-      hd->base_class.id=bc_printer;
-    }
-    /* all other device data (names, classes etc.) comes from the s390 ID file */
-
-    hd->detail=free_hd_detail(hd->detail);
-    hd->detail=new_mem(sizeof *hd->detail);
-    hd->detail->ccw.type=hd_detail_ccw;
-    hd->detail->ccw.data=new_mem(sizeof(ccw_t));
-    hd->detail->ccw.data->cu_model=cumod;
-    hd->detail->ccw.data->dev_model=devmod;
-    hd->detail->ccw.data->lcss=(strtol(curdev->bus_id,0,16) << 8) + strtol(curdev->bus_id+2,0,16);
-    hddb_add_info(hd_data,hd);
-  }
-
-  if(virtual_machine)
-  {
-       /* add an unactivated IUCV device */
-       hd=add_hd_entry(hd_data,__LINE__,0);
-       hd->vendor.id=MAKE_ID(TAG_SPECIAL,0x6001); /* IBM */
-       hd->device.id=MAKE_ID(TAG_SPECIAL,0x0005); /* IUCV */
-       hd->bus.id=bus_iucv;
-       hd->base_class.id=bc_network;
-       hd->status.active=status_no;
-       hd->status.available=status_yes;
-       hddb_add_info(hd_data,hd);
-       
-       /* add activated IUCV devices */
-       bus=sysfs_open_bus(BUSNAME_IUCV);
-       if(bus)
-       {
-         devlist=sysfs_get_bus_devices(bus);
-         if(devlist)
-         {
-           dlist_for_each_data(devlist, curdev, struct sysfs_device)
-           {
-             hd=add_hd_entry(hd_data,__LINE__,0);
-             hd->vendor.id=MAKE_ID(TAG_SPECIAL,0x6001); /* IBM */
-             hd->device.id=MAKE_ID(TAG_SPECIAL,0x0005); /* IUCV */
-             hd->bus.id=bus_iucv;
-             hd->base_class.id=bc_network;
-             hd->status.active=status_yes;
-             hd->status.available=status_yes;
-             attributes = sysfs_get_device_attributes(curdev);
-             dlist_for_each_data(attributes,curattr,struct sysfs_attribute)
-             {
-               if(strcmp("user",curattr->name)==0)
-                 hd->rom_id=new_str(curattr->value);
-             }
-             hd->sysfs_device_link = new_str(hd_sysfs_id(curdev->path));
-             hd->sysfs_bus_id = new_str(strrchr(curdev->path,'/')+1);
-             hddb_add_info(hd_data,hd);
-           }
-         }
-       }
-                     
-  }
-}
-
-void hd_scan_s390(hd_data_t *hd_data)
-{
-  if (!hd_probe_feature(hd_data, pr_s390)) return;
-  hd_scan_s390_ex(hd_data, 0);
-}
-
-void hd_scan_s390disks(hd_data_t *hd_data)
-{
-  if (!hd_probe_feature(hd_data, pr_s390disks)) return;
-  hd_scan_s390_ex(hd_data, 1);
-}
-
-#endif
-
diff --git a/src/hwinfo/src/hd/s390.h b/src/hwinfo/src/hd/s390.h
deleted file mode 100644 (file)
index 9ab4124..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-/** register all S/390 devices */
-void hd_scan_s390(hd_data_t *hd_data);
-/** register only S/390 disks */
-void hd_scan_s390disks(hd_data_t *hd_data);
-
diff --git a/src/hwinfo/src/hd/sbus.c b/src/hwinfo/src/hd/sbus.c
deleted file mode 100644 (file)
index 3122442..0000000
+++ /dev/null
@@ -1,691 +0,0 @@
-#include <fcntl.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/ioctl.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "sbus.h"
-
-#ifdef __sparc__
-
-#ifdef DIET
-typedef unsigned int u_int;
-#endif
-
-#include <asm/openpromio.h>
-
-#define MAX_VAL (4096-128-4)
-
-static int prom_fd;
-
-static int
-prom_nextnode (int node)
-{
-  char buf[OPROMMAXPARAM];
-  struct openpromio *op = (struct openpromio *)buf;
-
-  op->oprom_size = sizeof (int);
-  if (node == -1)
-    return 0;
-
-  *(int *)op->oprom_array = node;
-  if (ioctl (prom_fd, OPROMNEXT, op) < 0)
-    return 0;
-
-  return *(int *)op->oprom_array;
-}
-
-static int
-prom_getchild (int node)
-{
-  char buf[OPROMMAXPARAM];
-  struct openpromio *op = (struct openpromio *)buf;
-
-  op->oprom_size = sizeof (int);
-
-  if (!node || node == -1)
-    return 0;
-
-  *(int *)op->oprom_array = node;
-  if (ioctl (prom_fd, OPROMCHILD, op) < 0)
-    return 0;
-
-  return *(int *)op->oprom_array;
-}
-
-static char
-*prom_getproperty (char *prop, int *lenp, char *buf)
-{
-  struct openpromio *op = (struct openpromio *)buf;
-
-  op->oprom_size = MAX_VAL;
-
-  strcpy (op->oprom_array, prop);
-
-  if (ioctl (prom_fd, OPROMGETPROP, op) < 0)
-    return 0;
-
-  if (lenp)
-    *lenp = op->oprom_size;
-
-  if (strncmp ("SUNW,", op->oprom_array, 5) == 0)
-    return op->oprom_array + 5;
-  else
-    return op->oprom_array;
-}
-
-static int
-prom_getbool (char *prop)
-{
-  char buf[OPROMMAXPARAM];
-  struct openpromio *op = (struct openpromio *)buf;
-
-  op->oprom_size = 0;
-
-  *(int *)op->oprom_array = 0;
-  for (;;) {
-    op->oprom_size = 128; /* MAX_PROP */
-    if (ioctl (prom_fd, OPROMNXTPROP, op) < 0)
-      return 0;
-    if (!op->oprom_size)
-      return 0;
-    if (!strcmp (op->oprom_array, prop))
-      return 1;
-  }
-}
-
-static void
-prom_parse (int node, int sbus, int ebus, hd_data_t *hd_data)
-{
-  hd_t *hd;
-  char buf1[OPROMMAXPARAM], buf2[OPROMMAXPARAM];
-  int nextnode;
-  int len, nsbus = sbus, nebus = ebus;
-  char *prop1 = prom_getproperty ("device_type", &len, buf1);
-
-  if (strcmp (prop1, "network") == 0)
-    {
-      char *prop2 = prom_getproperty ("name", &len, buf2);
-      if (prop2 && len >= 0)
-       {
-         if (strcmp (prop2, "hme") == 0)
-           {
-             ADD2LOG ("NETWORK: type=Sun Happy Meal Ethernet, module=sunhme\n");
-             hd = add_hd_entry (hd_data, __LINE__, 0);
-             hd->base_class.id = bc_network;
-             hd->sub_class.id = 0x00;
-             hd->bus.id = bus_sbus;
-
-             hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-             hd->device.id = MAKE_ID(TAG_SPECIAL, 0x3001);
-           }
-         else if (strcmp (prop2, "le") == 0)
-           {
-             ADD2LOG ("NETWORK: type=Sun Lance Ethernet, module=ignore\n");
-             hd = add_hd_entry (hd_data, __LINE__, 0);
-             hd->base_class.id = bc_network;
-             hd->sub_class.id = 0x00;
-             hd->bus.id = bus_sbus;
-
-             hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-             hd->device.id = MAKE_ID(TAG_SPECIAL, 0x3002);
-           }
-         else if (strcmp (prop2, "qe") == 0)
-           {
-             prop2 = prom_getproperty("channel#", &len, buf2);
-             if (prop2 && len == 4 && *(int *)prop2 == 0)
-               {
-                 ADD2LOG ("NETWORK: type=Sun Quad Ethernet, module=sunqe\n");
-                 hd = add_hd_entry (hd_data, __LINE__, 0);
-                 hd->base_class.id = bc_network;
-                 hd->sub_class.id = 0x00;
-                 hd->bus.id = bus_sbus;
-
-                 hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-                 hd->device.id = MAKE_ID(TAG_SPECIAL, 0x3003);
-               }
-           }
-          else if (strcmp (prop2, "qfe") == 0)
-            {
-              ADD2LOG ("NETWORK: type=Sun Quad Ethernet (qfe), module=sunhme\n");
-              hd = add_hd_entry (hd_data, __LINE__, 0);
-              hd->base_class.id = bc_network;
-              hd->sub_class.id = 0x00;
-              hd->bus.id = bus_sbus;
-
-              hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-              hd->device.id = MAKE_ID(TAG_SPECIAL, 0x3001);
-            }
-         else if (strcmp (prop2, "mlanai") == 0 || strcmp (prop2, "myri") == 0)
-           {
-             ADD2LOG ("NETWORK: type=MyriCOM MyriNET Gigabit Ethernet, module=myri_sbus\n");
-             hd = add_hd_entry (hd_data, __LINE__, 0);
-             hd->base_class.id = bc_network;
-             hd->sub_class.id = 0x00;
-             hd->bus.id = bus_sbus;
-
-             hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-             hd->device.id = MAKE_ID(TAG_SPECIAL, 0x3004);
-           }
-         else
-           ADD2LOG ("NETWORK: Unknown device \"%s\"\n", prop2);
-       }
-    }
-  else if (strcmp (prop1, "scsi") == 0)
-    {
-      char *prop2 = prom_getproperty ("name", &len, buf2);
-      if (prop2 && len >= 0)
-       {
-         if (sbus)
-           {
-             if (strcmp (prop2, "esp") == 0)
-               {
-                 ADD2LOG ("SCSI: type=Sun Enhanced SCSI Processor (ESP), module=ignore\n");
-                 hd = add_hd_entry (hd_data, __LINE__, 0);
-                 hd->base_class.id = bc_storage;
-                 hd->sub_class.id = sc_sto_scsi;
-                 hd->bus.id = bus_sbus;
-
-                 hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-                 hd->device.id = MAKE_ID(TAG_SPECIAL, 0x1001);
-               }
-             else if (strcmp (prop2, "soc") == 0)
-               {
-                 ADD2LOG ("SCSI: type=Sun SPARCStorage Array, module=fc4:soc:pluto\n");
-                 hd = add_hd_entry (hd_data, __LINE__, 0);
-                 hd->base_class.id = bc_storage;
-                 hd->sub_class.id = sc_sto_scsi;
-                 hd->bus.id = bus_sbus;
-
-                 hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-                 hd->device.id = MAKE_ID(TAG_SPECIAL, 0x1101);
-               }
-             else if (strcmp (prop2, "socal") == 0)
-               {
-                 ADD2LOG ("SCSI: type=Sun Enterprise Network Array, module=fc4:socal:fcal\n");
-                 hd = add_hd_entry (hd_data, __LINE__, 0);
-                 hd->base_class.id = bc_storage;
-                 hd->sub_class.id = sc_sto_scsi;
-                 hd->bus.id = bus_sbus;
-
-                 hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-                 hd->device.id = MAKE_ID(TAG_SPECIAL, 0x1102);
-               }
-             else if (strcmp (prop2, "fas") == 0)
-               {
-                 ADD2LOG ("SCSI: type=Sun Swift (ESP), module=ignore\n");
-                 hd = add_hd_entry (hd_data, __LINE__, 0);
-                 hd->base_class.id = bc_storage;
-                 hd->sub_class.id = sc_sto_scsi;
-                 hd->bus.id = bus_sbus;
-
-                 hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-                 hd->device.id = MAKE_ID(TAG_SPECIAL, 0x1002);
-               }
-             else if (strcmp (prop2, "ptisp") == 0)
-               {
-                 ADD2LOG ("SCSI: type=Performance Technologies ISP, module=qlogicpti\n");
-                 hd = add_hd_entry (hd_data, __LINE__, 0);
-                 hd->base_class.id = bc_storage;
-                 hd->sub_class.id = sc_sto_scsi;
-                 hd->bus.id = bus_sbus;
-
-                 hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-                 hd->device.id = MAKE_ID(TAG_SPECIAL, 0x1003);
-               }
-             else if (strcmp (prop2, "isp") == 0)
-               {
-                 ADD2LOG ("SCSI: type=QLogic ISP, module=qlogicpti\n");
-                 hd = add_hd_entry (hd_data, __LINE__, 0);
-                 hd->base_class.id = bc_storage;
-                 hd->sub_class.id = sc_sto_scsi;
-                 hd->bus.id = bus_sbus;
-
-                 hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-                 hd->device.id = MAKE_ID(TAG_SPECIAL, 0x1004);
-               }
-             else
-               ADD2LOG ("SCSI: Unknown SBUS device \"%s\"\n", prop2);
-           }
-         else
-           ADD2LOG ("SCSI: Unknown device \"%s\"\n", prop2);
-       }
-    }
-  else if (strcmp (prop1, "display") == 0)
-    {
-      char *prop2 = prom_getproperty ("name", &len, buf2);
-      if (prop2 && len >= 0)
-       if (sbus || strcmp (prop2, "ffb") == 0 ||
-           strcmp (prop2, "afb") == 0 || strcmp (prop2, "cgfourteen") == 0)
-         {
-           if (strcmp (prop2, "bwtwo") == 0)
-             {
-               ADD2LOG ("DISPLAY: Sun|Monochrome (bwtwo), depth=1\n");
-               hd = add_hd_entry (hd_data, __LINE__, 0);
-               hd->base_class.id = bc_display;
-               hd->sub_class.id = sc_dis_vga;
-               hd->bus.id = bus_sbus;
-
-               hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-               hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0001);
-             }
-           else if (strcmp (prop2, "cgthree") == 0)
-             {
-               ADD2LOG ("DISPLAY: Sun|Color3 (cgthree), depth=8\n");
-               hd = add_hd_entry (hd_data, __LINE__, 0);
-               hd->base_class.id = bc_display;
-               hd->sub_class.id = sc_dis_vga;
-               hd->bus.id = bus_sbus;
-
-               hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-               hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0002);
-             }
-           else if (strcmp (prop2, "cgeight") == 0)
-             {
-               ADD2LOG ("DISPLAY: Sun|CG8/RasterOps, depth=8\n");
-               hd = add_hd_entry (hd_data, __LINE__, 0);
-               hd->base_class.id = bc_display;
-               hd->sub_class.id = sc_dis_vga;
-               hd->bus.id = bus_sbus;
-
-               hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-               hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0003);
-             }
-           else if (strcmp (prop2, "cgtwelve") == 0)
-             {
-               ADD2LOG ("DISPLAY: Sun|GS (cgtwelve), depth=24\n");
-               hd = add_hd_entry (hd_data, __LINE__, 0);
-               hd->base_class.id = bc_display;
-               hd->sub_class.id = sc_dis_vga;
-               hd->bus.id = bus_sbus;
-
-               hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-               hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0004);
-             }
-           else if (strcmp (prop2, "gt") == 0)
-             {
-               ADD2LOG ("DISPLAY: Sun|Graphics Tower (gt), depth=24\n");
-               hd = add_hd_entry (hd_data, __LINE__, 0);
-               hd->base_class.id = bc_display;
-               hd->sub_class.id = sc_dis_vga;
-               hd->bus.id = bus_sbus;
-
-               hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-               hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0005);
-             }
-           else if (strcmp (prop2, "mgx") == 0)
-             {
-               hd = add_hd_entry (hd_data, __LINE__, 0);
-               hd->base_class.id = bc_display;
-               hd->sub_class.id = sc_dis_vga;
-               hd->bus.id = bus_sbus;
-               hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-               prop2 = prom_getproperty ("fb_size", &len, buf2);
-               if (prop2 && len == 4 && *(int *)prop2 == 0x400000)
-                 {
-                   ADD2LOG ("DISPLAY: Quantum 3D MGXplus with 4M VRAM (mgx), depth=24\n");
-                   hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0006);
-                 }
-               else
-                 {
-                   ADD2LOG ("DISPLAY: Quantum 3D MGXplus (mgx), depth=24\n");
-                   hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0007);
-                 }
-             }
-           else if (strcmp (prop2, "cgsix") == 0)
-             {
-               int chiprev = 0;
-               int vmsize = 0;
-
-               hd = add_hd_entry (hd_data, __LINE__, 0);
-               hd->base_class.id = bc_display;
-               hd->sub_class.id = sc_dis_vga;
-               hd->bus.id = bus_sbus;
-               hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-
-               prop2 = prom_getproperty("chiprev", &len, buf2);
-               if (prop2 && len == 4)
-                 chiprev = *(int *)prop2;
-               prop2 = prom_getproperty("vmsize", &len, buf2);
-               if (prop2 && len == 4)
-                 vmsize = *(int *)prop2;
-               switch (chiprev)
-                 {
-                 case 1 ... 4:
-                   ADD2LOG ("DISPLAY: Sun|Double width GX (cgsix), depth=8\n");
-                   hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0008);
-                   break;
-                 case 5 ... 9:
-                   ADD2LOG ("DISPLAY: Sun|Single width GX (cgsix), depth=8\n");
-                   hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0009);
-                   break;
-                 case 11:
-                   switch (vmsize)
-                     {
-                     case 2:
-                       ADD2LOG ("DISPLAY: Sun|Turbo GX with 1M VSIMM (cgsix), depth=8\n");
-                       hd->device.id = MAKE_ID(TAG_SPECIAL, 0x000a);
-                       break;
-                     case 4:
-                       ADD2LOG ("DISPLAY: Sun|Turbo GX Plus (cgsix), depth=8\n");
-                       hd->device.id = MAKE_ID(TAG_SPECIAL, 0x000b);
-                       break;
-                     default:
-                       ADD2LOG ("DISPLAY: Sun|Turbo GX (cgsix), depth=8\n");
-                       hd->device.id = MAKE_ID(TAG_SPECIAL, 0x000c);
-                       break;
-                     }
-                   break;
-                 default:
-                   ADD2LOG ("DISPLAY: Sun|Unknown GX (cgsix), depth=8\n");
-                   hd->device.id = MAKE_ID(TAG_SPECIAL, 0x000d);
-                   break;
-                 }
-             }
-           else if (strcmp (prop2, "cgfourteen") == 0)
-             {
-               int size = 0;
-
-               hd = add_hd_entry (hd_data, __LINE__, 0);
-               hd->base_class.id = bc_display;
-               hd->sub_class.id = sc_dis_vga;
-               hd->bus.id = bus_sbus;
-               hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-
-               prop2 = prom_getproperty ("reg", &len, buf2);
-               if (prop2 && !(len % 12) && len > 0)
-                 size = *(int *)(prop2 + len - 4);
-               switch (size)
-                 {
-                 case 0x400000:
-                   ADD2LOG ("DISPLAY: Sun|SX with 4M VSIMM (cgfourteen), depth=24\n");
-                   hd->device.id = MAKE_ID(TAG_SPECIAL, 0x000e);
-                   break;
-                 case 0x800000:
-                   ADD2LOG ("DISPLAY: Sun|SX with 8M VSIMM (cgfourteen), depth=24\n");
-                   hd->device.id = MAKE_ID(TAG_SPECIAL, 0x000f);
-                   break;
-                 default:
-                   ADD2LOG ("DISPLAY: Sun|SX (cgfourteen), depth=24\n");
-                   hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0010);
-                   break;
-                 }
-             }
-           else if (strcmp (prop2, "leo") == 0)
-             {
-               hd = add_hd_entry (hd_data, __LINE__, 0);
-               hd->base_class.id = bc_display;
-               hd->sub_class.id = sc_dis_vga;
-               hd->bus.id = bus_sbus;
-               hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-
-               prop2 = prom_getproperty("model", &len, buf2);
-               if (prop2 && len > 0 && !strstr(prop2, "501-2503"))
-                 {
-                   ADD2LOG ("DISPLAY: Sun|Turbo ZX (leo), depth=24\n");
-                   hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0012);
-                 }
-               else
-                {
-                  ADD2LOG ("DISPLAY: Sun|ZX or Turbo ZX (leo), depth=24\n");
-                  hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0011);
-                }
-             }
-           else if (strcmp (prop2, "tcx") == 0)
-             {
-               hd = add_hd_entry (hd_data, __LINE__, 0);
-               hd->base_class.id = bc_display;
-               hd->sub_class.id = sc_dis_vga;
-               hd->bus.id = bus_sbus;
-               hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-
-               if (prom_getbool ("tcx-8-bit"))
-                 {
-                   ADD2LOG ("DISPLAY: Sun|TCX (8bit), depth=8\n");
-                   hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0013);
-                 }
-               else
-                 {
-                   ADD2LOG ("DISPLAY: Sun|TCX (S24), depth=24\n");
-                   hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0014);
-                 }
-             }
-           else if (strcmp (prop2, "afb") == 0)
-             {
-               int btype = 0;
-
-               prop2 = prom_getproperty("board_type", &len, buf2);
-               if (prop2 && len == 4)
-                 btype = *(int *)prop2;
-
-               hd = add_hd_entry (hd_data, __LINE__, 0);
-               hd->base_class.id = bc_display;
-               hd->sub_class.id = sc_dis_vga;
-               hd->bus.id = bus_sbus;
-               hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-
-               if (btype == 3)
-                 {
-                   ADD2LOG ("DISPLAY: Sun|Elite3D-M6 Horizontal (afb), depth=24\n");
-                   hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0015);
-                 }
-               else
-                 {
-                   ADD2LOG ("DISPLAY: Sun|Elite3D (afb), depth=24\n");
-                   hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0016);
-                 }
-             }
-           else if (strcmp (prop2, "ffb") == 0)
-             {
-               int btype = 0;
-
-               prop2 = prom_getproperty("board_type", &len, buf2);
-               if (prop2 && len == 4)
-                 btype = *(int *)prop2;
-
-               hd = add_hd_entry (hd_data, __LINE__, 0);
-               hd->base_class.id = bc_display;
-               hd->sub_class.id = sc_dis_vga;
-               hd->bus.id = bus_sbus;
-               hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-
-                switch (btype)
-                  {
-                  case 0x08:
-                    ADD2LOG ("DISPLAY: Sun|FFB 67MHz Creator (ffb), depth=24\n");
-                    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0017);
-                    break;
-                  case 0x0b:
-                    ADD2LOG ("DISPLAY: Sun|FFB 67MHz Creator 3D (ffb), depth=24\n");
-                    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0018);
-                    break;
-                  case 0x1b:
-                    ADD2LOG ("DISPLAY: Sun|FFB 75MHz Creator 3D (ffb), depth=24\n");
-                    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0019);
-                    break;
-                  case 0x20:
-                  case 0x28:
-                    ADD2LOG ("DISPLAY: Sun|FFB2 Vertical Creator (ffb), depth=24\n");
-                    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x001a);
-                    break;
-                  case 0x23:
-                  case 0x2b:
-                    ADD2LOG ("DISPLAY: Sun|FFB2 Vertical Creator 3D (ffb), depth=24\n");
-                    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x001b);
-                    break;
-                  case 0x30:
-                    ADD2LOG ("DISPLAY: Sun|FFB2+ Vertical Creator (ffb), depth=24\n");
-                    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x001c);
-                    break;
-                  case 0x33:
-                    ADD2LOG ("DISPLAY: Sun|FFB2+ Vertical Creator 3D (ffb), depth=24\n");
-                    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x001d);
-                    break;
-                  case 0x40:
-                  case 0x48:
-                    ADD2LOG ("DISPLAY: Sun|FFB2 Horizontal Creator (ffb), depth=24\n");
-                    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x001e);
-                    break;
-                  case 0x43:
-                  case 0x4b:
-                    ADD2LOG ("DISPLAY: Sun|FFB2 Horizontal Creator 3D (ffb), depth=24\n");
-                    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x001f);
-                    break;
-                  default:
-                    ADD2LOG ("DISPLAY: Sun|FFB (ffb), type=%xi, depth=24\n",
-                             btype);
-                    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0020);
-                    break;
-                  }
-             }
-           else
-             ADD2LOG ("DISPLAY: Unknown SBUS device \"%s\"\n", prop2);
-         }
-       else
-         ADD2LOG ("DISPLAY: Unknown device \"%s\"\n", prop2);
-    }
-  else if (strcmp (prop1, "cpu") == 0)
-    {
-      char *prop2 = prom_getproperty ("name", &len, buf2);
-
-      if (prop2 && len >= 0)
-       ADD2LOG ("CPU: %s\n", prop2);
-    }
-  else
-    {
-      char *prop2 = prom_getproperty ("name", &len, buf2);
-
-      if (prop2 && len >= 0)
-       {
-         if (strcmp (prop2, "audio") == 0)
-           {
-             ADD2LOG ("AUDIO: type=AMD7930, module=amd7930\n");
-             hd = add_hd_entry (hd_data, __LINE__, 0);
-             hd->base_class.id = bc_multimedia;
-             hd->sub_class.id = sc_multi_audio;
-             hd->bus.id = bus_sbus;
-             hd->unix_dev_name = new_str ("/dev/audio");
-
-             hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-             hd->device.id = MAKE_ID(TAG_SPECIAL, 0x2001);
-           }
-         else if (strcmp (prop2, "CS4231") == 0)
-           {
-             hd = add_hd_entry (hd_data, __LINE__, 0);
-             hd->base_class.id = bc_multimedia;
-             hd->sub_class.id = sc_multi_audio;
-             hd->bus.id = bus_sbus;
-             hd->unix_dev_name = new_str ("/dev/audio");
-
-             if (ebus)
-               {
-                 ADD2LOG ("AUDIO: type=CS4231 EB2 DMA (PCI), module=cs4231\n");
-                 hd->device.id = MAKE_ID(TAG_SPECIAL, 0x2002);
-               }
-             else
-               {
-                 ADD2LOG ("AUDIO: type=CS4231 APC DMA (SBUS), module=cs4231\n");
-                 hd->device.id = MAKE_ID(TAG_SPECIAL, 0x2003);
-               }
-             hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-           }
-         else if (strcmp (prop2, "DBRIe") == 0)
-           {
-             ADD2LOG ("AUDIO: type=SS10/SS20 DBRI, module=dbri\n");
-             hd = add_hd_entry (hd_data, __LINE__, 0);
-             hd->base_class.id = bc_multimedia;
-             hd->sub_class.id = sc_multi_audio;
-             hd->bus.id = bus_sbus;
-             hd->unix_dev_name = new_str ("/dev/audio");
-
-             hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-             hd->device.id = MAKE_ID(TAG_SPECIAL, 0x2004);
-           }
-         else if (strcmp (prop2, "bpp") == 0)
-           {
-             ADD2LOG ("PARPORT: type=bpp, module=unknown\n");
-           }
-         else if (strcmp (prop2, "soc") == 0)
-           {
-             ADD2LOG ("SCSI: type=Sun SPARCStorage Array, module=fc4:soc:pluto\n");
-             hd = add_hd_entry (hd_data, __LINE__, 0);
-             hd->base_class.id = bc_storage;
-             hd->sub_class.id = sc_sto_scsi;
-             hd->bus.id = bus_sbus;
-
-             hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-             hd->device.id = MAKE_ID(TAG_SPECIAL, 0x1101);
-           }
-         else if (strcmp (prop2, "socal") == 0)
-           {
-             ADD2LOG ("SCSI: type=Sun Enterprise Network Array, module=fc4:socal:fcal\n");
-             hd = add_hd_entry (hd_data, __LINE__, 0);
-             hd->base_class.id = bc_storage;
-             hd->sub_class.id = sc_sto_scsi;
-             hd->bus.id = bus_sbus;
-
-             hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x4001);
-             hd->device.id = MAKE_ID(TAG_SPECIAL, 0x1102);
-           }
-         else if (strcmp(prop2, "sbus") == 0 || strcmp(prop2, "sbi") == 0)
-           nsbus = 1;
-         else if (!strcmp(prop2, "ebus"))
-           nebus = 1;
-         else
-           ADD2LOG ("%s: unknown device \"%s\"\n", prop1, prop2);
-       }
-    }
-
-
-  nextnode = prom_getchild (node);
-  if (nextnode)
-    prom_parse (nextnode, nsbus, nebus, hd_data);
-  nextnode = prom_nextnode (node);
-  if (nextnode)
-    prom_parse (nextnode, sbus, ebus, hd_data);
-
-  return;
-}
-
-void
-hd_scan_sbus (hd_data_t *hd_data)
-{
-  int prom_root_node;
-
-  if(!hd_probe_feature(hd_data, pr_sbus))
-    return;
-
-  hd_data->module = mod_sbus;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "sun sbus");
-
-  if((prom_fd = open(DEV_OPENPROM, O_RDWR | O_NONBLOCK | O_NOCTTY)) < 0)
-    return;
-
-  prom_root_node = prom_nextnode(0);
-  if (!prom_root_node)
-    goto failed;
-
-  prom_parse (prom_root_node, 0, 0, hd_data);
-
- failed:
-  close (prom_fd);
-
-  return;
-}
-
-#else
-
-void
-hd_scan_sbus (hd_data_t *hd_data)
-{
-  return;
-}
-
-#endif
diff --git a/src/hwinfo/src/hd/sbus.h b/src/hwinfo/src/hd/sbus.h
deleted file mode 100644 (file)
index de8564f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_sbus (hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/serial.c b/src/hwinfo/src/hd/serial.c
deleted file mode 100644 (file)
index d43d9fa..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "serial.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * serial interface
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-
-static char *ser_names[] = {
-  "8250", "16450", "16550", "16650", "16750", "16850", "16950"
-};
-
-static void get_serial_info(hd_data_t *hd_data);
-static serial_t *add_serial_entry(serial_t **ser, serial_t *new_ser);
-static void dump_serial_data(hd_data_t *hd_data);
-
-void hd_scan_serial(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  serial_t *ser, *next;
-  hd_res_t *res;
-  int i;
-  char buf[4], *skip_dev[16];
-  str_list_t *sl, *cmd;
-  unsigned skip_devs = 0;
-
-  if(!hd_probe_feature(hd_data, pr_serial)) return;
-
-  hd_data->module = mod_serial;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-  hd_data->serial = NULL;
-
-  PROGRESS(1, 0, "read info");
-
-  get_serial_info(hd_data);
-  if((hd_data->debug & HD_DEB_SERIAL)) dump_serial_data(hd_data);
-
-  for(i = 0; i < 2; i++) {
-    cmd = get_cmdline(hd_data, i == 0 ? "yast2ser" : "console");
-    for(sl = cmd; sl; sl = sl->next) {
-      if(sscanf(sl->str, "tty%3[^,]", buf) == 1) {
-        if(buf[1] == 0) {
-          switch(*buf) {
-            case 'a': strcpy(buf, "S0"); break;
-            case 'b': strcpy(buf, "S1"); break;
-          }
-        }
-        if(skip_devs < sizeof skip_dev / sizeof *skip_dev) {
-          skip_dev[skip_devs] = NULL;
-          str_printf(&skip_dev[skip_devs++], 0, "/dev/tty%s", buf);
-        }
-      }
-    }
-    free_str_list(cmd);
-  }
-
-  PROGRESS(2, 0, "build list");
-
-  for(ser = hd_data->serial; ser; ser = ser->next) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->base_class.id = bc_comm;
-    hd->sub_class.id = sc_com_ser;
-    hd->prog_if.id = 0x80;
-    for(i = 0; (unsigned) i < sizeof ser_names / sizeof *ser_names; i++) {
-      if(strstr(ser->name, ser_names[i])) hd->prog_if.id = i;
-    }
-    hd->device.name = new_str(ser->name);
-    hd->func = ser->line;
-    str_printf(&hd->unix_dev_name, 0, "/dev/ttyS%u", ser->line);
-    for(i = 0; i < (int) skip_devs; i++) {
-      if(!strcmp(skip_dev[i], hd->unix_dev_name)) {
-        hd->tag.ser_skip = 1;
-        break;
-      }
-    }
-    if(ser->device) {
-      if(strstr(ser->device, "modem-printer")) {
-        hd->tag.ser_device = 1;
-      }
-      else if(strstr(ser->device, "infrared")) {
-         hd->tag.ser_device = 2;
-      }
-      else if(strstr(ser->device, "modem")) {
-         hd->tag.ser_device = 3;
-      }
-    }
-    if(ser->baud) {
-      res = add_res_entry(&hd->res, new_mem(sizeof *res));
-      res->baud.type = res_baud;
-      res->baud.speed = ser->baud;
-    }
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->io.type = res_io;
-    res->io.enabled = 1;
-    res->io.base = ser->port;
-    res->io.access = acc_rw;
-
-    res = add_res_entry(&hd->res, new_mem(sizeof *res));
-    res->irq.type = res_irq;
-    res->irq.enabled = 1;
-    res->irq.base = ser->irq;
-  }  
-
-  for(ser = hd_data->serial; ser; ser = next) {
-    next = ser->next;
-
-    free_mem(ser->name);
-    free_mem(ser->device);
-    free_mem(ser);
-  }
-  hd_data->serial = NULL;
-
-#if 0
-  if(hd_module_is_active(hd_data, "irda")) {
-    hd = add_hd_entry(hd_data, __LINE__, 0); 
-    hd->base_class.id = bc_comm;
-    hd->sub_class.id = sc_com_ser;
-    hd->prog_if.id = 0x80;
-    hd->device.name = new_str("IrDA Serial");
-    hd->unix_dev_name = new_str("/dev/ircomm0");
-  }
-#endif
-}
-
-void get_serial_info(hd_data_t *hd_data)
-{
-  char buf[64];
-  unsigned u0, u1, u2;
-#if !defined(__PPC__)
-  unsigned u3;
-#endif
-  int i;
-  str_list_t *sl, *sl0;
-  serial_t *ser;
-
-#if !defined(__PPC__)
-  /*
-   * Max. 44 serial lines at the moment; the serial proc interface is
-   * somewhat buggy at the moment (2.2.13), hence the explicit 44 lines
-   * limit. That may be dropped later.
-   */
-  sl0 = read_file(PROC_DRIVER_SERIAL, 1, 44);
-
-  // ########## FIX !!!!!!!! ########
-  if(sl0) {
-    for(sl = sl0; sl; sl = sl->next) {
-      i = 0;
-      if(
-        sscanf(sl->str, "%u: uart:%31s port:%x irq:%u baud:%u", &u0, buf, &u1, &u2, &u3) == 5 ||
-        (i = 1, sscanf(sl->str, "%u: uart:%31s port:%x irq:%u tx:%u", &u0, buf, &u1, &u2, &u3) == 5)
-      ) {
-        /*
-         * The 'baud' or 'tx' entries are only present for real interfaces.
-         */
-        ser = add_serial_entry(&hd_data->serial, new_mem(sizeof *ser));
-        ser->line = u0;
-        ser->port = u1;
-        ser->irq = u2;
-        if(!i) ser->baud = u3;
-        ser->name = new_str(buf);
-      }
-    }
-
-    if((hd_data->debug & HD_DEB_SERIAL)) {
-      /* log just the first 16 entries */
-      ADD2LOG("----- "PROC_DRIVER_SERIAL" -----\n");
-      for(sl = sl0, i = 16; sl && i--; sl = sl->next) {
-        ADD2LOG("  %s", sl->str);
-      }
-      ADD2LOG("----- "PROC_DRIVER_SERIAL" end -----\n");
-    }
-  }
-#endif /* !defined(__PPC__) */
-
-#if defined(__PPC__)
-  sl0 = read_file(PROC_DRIVER_MACSERIAL, 1, 0);
-
-  if(sl0) {
-    for(sl = sl0; sl; sl = sl->next) {
-      if(
-        (i = sscanf(sl->str, "%u: port:%x irq:%u con:%63[^\n]", &u0, &u1, &u2, buf)) >= 3
-      ) {
-        ser = add_serial_entry(&hd_data->serial, new_mem(sizeof *ser));
-        ser->line = u0;
-        ser->port = u1;
-        ser->irq = u2;
-        ser->name = new_str("SCC");
-        if(i == 4) ser->device = new_str(buf);
-      }
-    }
-
-    if((hd_data->debug & HD_DEB_SERIAL)) {
-      /* log just the first 16 entries */
-      ADD2LOG("----- "PROC_DRIVER_MACSERIAL" -----\n");
-      for(sl = sl0, i = 16; sl && i--; sl = sl->next) {
-        ADD2LOG("  %s", sl->str);
-      }
-      ADD2LOG("----- "PROC_DRIVER_MACSERIAL" end -----\n");
-    }
-  }
-#endif /* defined(__PPC__) */
-
-
-  free_str_list(sl0);
-}
-
-serial_t *add_serial_entry(serial_t **ser, serial_t *new_ser)
-{
-  while(*ser) ser = &(*ser)->next;
-  return *ser = new_ser;
-}
-
-void dump_serial_data(hd_data_t *hd_data)
-{
-  serial_t *ser;
-
-  ADD2LOG("----- serial info -----\n");
-  for(ser = hd_data->serial; ser; ser = ser->next) {
-    ADD2LOG(
-      "  uart %s, line %d, port 0x%03x, irq %d, baud %d\n",
-      ser->name, ser->line, ser->port, ser->irq, ser->baud
-    );
-  }
-  ADD2LOG("----- serial info end -----\n");
-}
-
diff --git a/src/hwinfo/src/hd/serial.h b/src/hwinfo/src/hd/serial.h
deleted file mode 100644 (file)
index 1b59242..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_serial(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/smbios.c b/src/hwinfo/src/hd/smbios.c
deleted file mode 100644 (file)
index 7271507..0000000
+++ /dev/null
@@ -1,1662 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "smbios.h"
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-enum sm_map_type { sm_map_str, sm_map_num2str };
-
-typedef struct { unsigned num; char *str; } sm_num2str_t;
-
-typedef struct {
-  enum sm_map_type type;
-  unsigned len;
-  union {
-    char **str;
-    sm_num2str_t *num2str;
-  } list;
-} sm_str_map_t;
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-static char *get_string(str_list_t *sl, int index);
-static void smbios_bitmap_print(FILE *f, hd_bitmap_t *hbm, char *label, int style);
-static void smbios_id_print(FILE *f, hd_id_t *hid, char *label);
-static void smbios_str_print(FILE *f, char *str, char *label);
-static void smbios_id2str(hd_id_t *hid, sm_str_map_t *map, unsigned def);
-static void smbios_bitmap2str(hd_bitmap_t *hbm, sm_str_map_t *map);
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-#define SMBIOS_PRINT_ID(a, b) smbios_id_print(f, &sm->a, b)
-#define SMBIOS_PRINT_STR(a, b) smbios_str_print(f, sm->a, b)
-#define SMBIOS_PRINT_BITMAP_SHORT(a, b) smbios_bitmap_print(f, &sm->a, b, 0)
-#define SMBIOS_PRINT_BITMAP_LONG(a, b) smbios_bitmap_print(f, &sm->a, b, 1)
-
-#define SMBIOS_DEF_MAP(a) \
-  static sm_str_map_t a  = { \
-    sizeof *a ## _ == sizeof (sm_num2str_t) ? sm_map_num2str : sm_map_str, \
-    sizeof a ## _ / sizeof *a ## _, \
-    { (void *) a ## _ } \
-  };
-
-/* ptr is (unsigned char *) */
-#define READ_MEM16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
-#define READ_MEM32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
-#define READ_MEM64(ptr) (READ_MEM32(ptr) + ((uint64_t) READ_MEM32(ptr + 4) << 32))
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-static sm_num2str_t smbios_bios_feature_[] = {
-  {  4, "ISA supported" },
-  {  5, "MCA supported" },
-  {  6, "EISA supported" },
-  {  7, "PCI supported" },
-  {  8, "PCMCIA supported" },
-  {  9, "PnP supported" },
-  { 10, "APM supported" },
-  { 11, "BIOS flashable" },
-  { 12, "BIOS shadowing allowed" },
-  { 13, "VL-VESA supported" },
-  { 14, "ESCD supported" },
-  { 15, "CD boot supported" },
-  { 16, "Selectable boot supported" },
-  { 17, "BIOS ROM socketed" },
-  { 18, "PCMCIA boot supported" },
-  { 19, "EDD spec supported" },
-  { 20, "1.2MB NEC 9800 Japanese Floppy supported" },
-  { 21, "1.2MB Toshiba Japanese Floppy supported" },
-  { 22, "360kB Floppy supported" },
-  { 23, "1.2MB Floppy supported" },
-  { 24, "720kB Floppy supported" },
-  { 25, "2.88MB Floppy supported" },
-  { 26, "Print Screen supported" },
-  { 27, "8042 Keyboard Services supported" },
-  { 28, "Serial Services supported" },
-  { 29, "Printer Services supported" },
-  { 30, "CGA/Mono Video supported" },
-  { 31, "NEC PC-98" },
-  { 64 + 0, "ACPI supported" },
-  { 64 + 1, "USB Legacy supported" },
-  { 64 + 2, "AGP supported" },
-  { 64 + 3, "I2O boot supported" },
-  { 64 + 4, "LS-120 boot supported" },
-  { 64 + 5, "ATAPI ZIP boot supported" },
-  { 64 + 6, "IEEE1394 boot supported" },
-  { 64 + 7, "Smart Battery supported" },
-  { 64 + 8, "BIOS Boot Spec supported" },
-  { 64 + 9, "F12 Network boot supported" }
-};
-SMBIOS_DEF_MAP(smbios_bios_feature);
-
-
-static char *smbios_system_wakeups_[] = {
-  "Reserved", "Other", "Unknown", "APM Timer",
-  "Modem Ring", "LAN Remote", "Power Switch", "PCI PME#",
-  "AC Power Restored"
-};
-SMBIOS_DEF_MAP(smbios_system_wakeups);
-
-
-static char *smbios_board_feature_[] = {
-  "Hosting Board", "Needs One Daughter Board", "Removable", "Replaceable",
-  "Hot Swappable"
-};
-SMBIOS_DEF_MAP(smbios_board_feature);
-
-
-static char *smbios_board_types_[] = {
-  NULL, "Other", "Unknown", "Server Blade",
-  "Connectivity Switch", "System Management Module", "Processor Module", "I/O Module",
-  "Memory Module", "Daughter Board", "Motherboard", "Processor/Memory Module",
-  "Processor/IO Module", "Interconnect Board"
-};
-SMBIOS_DEF_MAP(smbios_board_types);
-
-
-static char *smbios_chassis_types_[] = {
-  NULL, "Other", "Unknown", "Desktop",
-  "Low Profile Desktop", "Pizza Box", "Mini Tower", "Tower",
-  "Portable", "LapTop", "Notebook", "Hand Held",
-  "Docking Station", "All in One", "Sub Notebook", "Space Saving",
-  "Lunch Box", "Main Server Chassis", "Expansion Chassis", "SubChassis",
-  "Bus Expansion Chassis", "Peripheral Chassis", "RAID Chassis", "Rack Mount Chassis",
-  "Sealed-case PC", "Multi-System Chassis"
-};
-SMBIOS_DEF_MAP(smbios_chassis_types);
-
-
-static char *smbios_chassis_states_[] = {
-  NULL, "Other", "Unknown", "Safe",
-  "Warning", "Critical", "Non-recoverable"
-};
-SMBIOS_DEF_MAP(smbios_chassis_states);
-
-
-static char *smbios_chassis_sec_states_[] = {
-  NULL, "Other", "Unknown", "None",
-  "External interface locked out", "External interface enabled"
-};
-SMBIOS_DEF_MAP(smbios_chassis_sec_states);
-
-
-static char *smbios_proc_upgrades_[] = {
-  NULL, "Other", "Unknown", "Daughter Board",
-  "ZIF Socket", "Replaceable Piggy Back", "None", "LIF Socket",
-  "Slot 1", "Slot 2", "370-Pin Socket", "Slot A",
-  "Slot M", "Socket 423", "Socket A (Socket 462)", "Socket 478",
-  "Socket 754", "Socket 940"
-};
-SMBIOS_DEF_MAP(smbios_proc_upgrades);
-
-
-static char *smbios_proc_cpu_status_[8] = {
-  "Unknown", "Enabled", "Disabled by User", "Disabled by BIOS",
-  "Idle", "Reserved", "Reserved", "Other"
-};
-SMBIOS_DEF_MAP(smbios_proc_cpu_status);
-
-
-static char *smbios_proc_types_[] = {
-  NULL, "Other", "Unknown", "CPU",
-  "Math", "DSP", "Video"
-};
-SMBIOS_DEF_MAP(smbios_proc_types);
-
-
-static sm_num2str_t smbios_proc_families_[] = {
-  { 0x00, NULL },
-  { 0x01, "Other" },
-  { 0x02, "Unknown" },
-  { 0x03, "8086" },
-  { 0x04, "80286" },
-  { 0x05, "Intel386" },
-  { 0x06, "Intel486" },
-  { 0x07, "8087" },
-  { 0x08, "80287" },
-  { 0x09, "80387" },
-  { 0x0a, "80487" },
-  { 0x0b, "Pentium" },
-  { 0x0c, "Pentium Pro" },
-  { 0x0d, "Pentium II" },
-  { 0x0e, "Pentium MMX" },
-  { 0x0f, "Celeron" },
-  { 0x10, "Pentium II Xeon" },
-  { 0x11, "Pentium III" },
-  { 0x12, "M1" },
-  { 0x13, "M2" },
-  { 0x18, "Duron" },
-  { 0x19, "K5" },
-  { 0x1a, "K6" },
-  { 0x1b, "K6-2" },
-  { 0x1c, "K6-3" },
-  { 0x1d, "Athlon" },
-  { 0x1e, "AMD2900" },
-  { 0x1f, "K6-2+" },
-  { 0x78, "Crusoe TM5000" },
-  { 0x79, "Crusoe TM3000" },
-  { 0x82, "Itanium" },
-  { 0x83, "Athlon 64" },
-  { 0x84, "Opteron Processor" },
-  { 0xb0, "Pentium III Xeon" },
-  { 0xb1, "Pentium III with SpeedStep" },
-  { 0xb2, "Pentium 4" },
-  { 0xb3, "Xeon" },
-  { 0xb4, "AS400" },
-  { 0xb5, "Xeon MP" },
-  { 0xb6, "Athlon XP" },
-  { 0xb7, "Athlon MP" },
-  { 0xb8, "Itanium 2" }
-};
-SMBIOS_DEF_MAP(smbios_proc_families);
-
-
-static char *smbios_cache_mode_[] = {
-  "Write Through", "Write Back", "Varies with Memory Address", "Unknown"
-};
-SMBIOS_DEF_MAP(smbios_cache_mode);
-
-
-static char *smbios_cache_location_[] = {
-  "Internal", "External", "Reserved", "Unknown"
-};
-SMBIOS_DEF_MAP(smbios_cache_location);
-
-
-static char *smbios_cache_ecc_[] = {
-  NULL, "Other", "Unknown", "None",
-  "Parity", "Single-bit", "Multi-bit", "CRC"
-};
-SMBIOS_DEF_MAP(smbios_cache_ecc);
-#define smbios_memarray_ecc smbios_cache_ecc
-
-
-static char *smbios_cache_type_[] = {
-  NULL, "Other", "Unknown", "Instruction",
-  "Data", "Unified"
-};
-SMBIOS_DEF_MAP(smbios_cache_type);
-
-
-static char *smbios_cache_assoc_[] = {
-  NULL, "Other", "Unknown", "Direct Mapped",
-  "2-way Set-Associative", "4-way Set-Associative", "Fully Associative", "8-way Set-Associative",
-  "16-way Set-Associative"
-};
-SMBIOS_DEF_MAP(smbios_cache_assoc);
-
-
-static char *smbios_cache_sram_[] = {
-  "Other", "Unknown", "Non-Burst", "Burst",
-  "Pipeline Burst", "Synchronous", "Asynchronous"
-};
-SMBIOS_DEF_MAP(smbios_cache_sram);
-
-
-static sm_num2str_t smbios_connect_conn_type_[] = {
-  { 0x00, NULL },
-  { 0x01, "Centronics" },
-  { 0x02, "Mini Centronics" },
-  { 0x03, "Proprietary" },
-  { 0x04, "DB-25 pin male" },
-  { 0x05, "DB-25 pin female" },
-  { 0x06, "DB-15 pin male" },
-  { 0x07, "DB-15 pin female" },
-  { 0x08, "DB-9 pin male" },
-  { 0x09, "DB-9 pin female" },
-  { 0x0a, "RJ-11" },
-  { 0x0b, "RJ-45" },
-  { 0x0c, "50 Pin MiniSCSI" },
-  { 0x0d, "Mini-DIN" },
-  { 0x0e, "Micro-DIN" },
-  { 0x0f, "PS/2" },
-  { 0x10, "Infrared" },
-  { 0x11, "HP-HIL" },
-  { 0x12, "Access Bus [USB]" },
-  { 0x13, "SSA SCSI" },
-  { 0x14, "Circular DIN-8 male" },
-  { 0x15, "Circular DIN-8 female" },
-  { 0x16, "On Board IDE" },
-  { 0x17, "On Board Floppy" },
-  { 0x18, "9 Pin Dual Inline [pin 10 cut]" },
-  { 0x19, "25 Pin Dual Inline [pin 26 cut]" },
-  { 0x1a, "50 Pin Dual Inline" },
-  { 0x1b, "68 Pin Dual Inline" },
-  { 0x1c, "On Board Sound Input from CD-ROM" },
-  { 0x1d, "Mini-Centronics Type-14" },
-  { 0x1e, "Mini-Centronics Type-26" },
-  { 0x1f, "Mini-jack [headphones]" },
-  { 0x20, "BNC" },
-  { 0x21, "1394" },
-  { 0xa0, "PC-98" },
-  { 0xa1, "PC-98Hireso" },
-  { 0xa2, "PC-H98" },
-  { 0xa3, "PC-98Note" },
-  { 0xa4, "PC-98Full" },
-  { 0xff, "Other" }
-};
-SMBIOS_DEF_MAP(smbios_connect_conn_type);
-
-
-static sm_num2str_t smbios_connect_port_type_[] = {
-  { 0x00, NULL },
-  { 0x01, "Parallel Port XT/AT Compatible" },
-  { 0x02, "Parallel Port PS/2" },
-  { 0x03, "Parallel Port ECP" },
-  { 0x04, "Parallel Port EPP" },
-  { 0x05, "Parallel Port ECP/EPP" },
-  { 0x06, "Serial Port XT/AT Compatible" },
-  { 0x07, "Serial Port 16450 Compatible" },
-  { 0x08, "Serial Port 16550 Compatible" },
-  { 0x09, "Serial Port 16550A Compatible" },
-  { 0x0a, "SCSI Port" },
-  { 0x0b, "MIDI Port" },
-  { 0x0c, "Joy Stick Port" },
-  { 0x0d, "Keyboard Port" },
-  { 0x0e, "Mouse Port" },
-  { 0x0f, "SSA SCSI" },
-  { 0x10, "USB" },
-  { 0x11, "FireWire [IEEE P1394]" },
-  { 0x12, "PCMCIA Type I" },
-  { 0x13, "PCMCIA Type II" },
-  { 0x14, "PCMCIA Type III" },
-  { 0x15, "Cardbus" },
-  { 0x16, "Access Bus Port" },
-  { 0x17, "SCSI II" },
-  { 0x18, "SCSI Wide" },
-  { 0x19, "PC-98" },
-  { 0x1a, "PC-98-Hireso" },
-  { 0x1b, "PC-H98" },
-  { 0x1c, "Video Port" },
-  { 0x1d, "Audio Port" },
-  { 0x1e, "Modem Port" },
-  { 0x1f, "Network Port" },
-  { 0xa0, "8251 Compatible" },
-  { 0xa1, "8251 FIFO Compatible" },
-  { 0xff, "Other" }
-};
-SMBIOS_DEF_MAP(smbios_connect_port_type);
-
-
-static sm_num2str_t smbios_slot_type_[] = {
-  { 0x00, NULL },
-  { 0x01, "Other" },
-  { 0x02, "Unknown" },
-  { 0x03, "ISA" },
-  { 0x04, "MCA" },
-  { 0x05, "EISA" },
-  { 0x06, "PCI" },
-  { 0x07, "PC Card [PCMCIA]" },
-  { 0x08, "VL-VESA" },
-  { 0x09, "Proprietary" },
-  { 0x0a, "Processor Card" },
-  { 0x0b, "Proprietary Memory Card" },
-  { 0x0c, "I/O Riser Card" },
-  { 0x0d, "NuBus" },
-  { 0x0e, "PCI - 66MHz Capable" },
-  { 0x0f, "AGP" },
-  { 0x10, "AGP 2X" },
-  { 0x11, "AGP 4X" },
-  { 0x12, "PCI-X" },
-  { 0x13, "AGP 8X" },
-  { 0xa0, "PC-98/C20" },
-  { 0xa1, "PC-98/C24" },
-  { 0xa2, "PC-98/E" },
-  { 0xa3, "PC-98/Local Bus" },
-  { 0xa4, "PC-98/Card" }
-};
-SMBIOS_DEF_MAP(smbios_slot_type);
-
-
-static char *smbios_slot_bus_width_[] = {
-  NULL, "Other", "Unknown", "8 bit",
-  "16 bit", "32 bit", "64 bit", "128 bit"
-};
-SMBIOS_DEF_MAP(smbios_slot_bus_width);
-
-
-static char *smbios_slot_usage_[] = {
-  NULL, "Other", "Unknown", "Available",
-  "In Use"
-};
-SMBIOS_DEF_MAP(smbios_slot_usage);
-
-
-static char *smbios_slot_length_[] = {
-  NULL, "Other", "Unknown", "Short",
-  "Long"
-};
-SMBIOS_DEF_MAP(smbios_slot_length);
-
-
-static char *smbios_slot_feature_[] = {
-  "Unknown", "5.0 V", "3.3 V", "Shared",
-  "PC Card-16", "CardBus", "Zoom Video", "Modem Ring Resume",
-  "PME#", "Hot-Plug"
-};
-SMBIOS_DEF_MAP(smbios_slot_feature);
-
-
-static char *smbios_onboard_type_[] = {
-  "Other", "Other", "Unknown", "Video",
-  "SCSI Controller", "Ethernet", "Token Ring", "Sound"
-};
-SMBIOS_DEF_MAP(smbios_onboard_type);
-
-
-static sm_num2str_t smbios_memarray_location_[] = {
-  { 0x00, NULL },
-  { 0x01, "Other" },
-  { 0x02, "Unknown" },
-  { 0x03, "Motherboard" },
-  { 0x04, "ISA add-on card" },
-  { 0x05, "EISA add-on card" },
-  { 0x06, "PCI add-on card" },
-  { 0x07, "MCA add-on card" },
-  { 0x08, "PCMCIA add-on card" },
-  { 0x09, "Proprietary add-on card" },
-  { 0x0a, "NuBus" },
-  { 0xa0, "PC-98/C20 add-on card" },
-  { 0xa1, "PC-98/C24 add-on card" },
-  { 0xa2, "PC-98/E add-on card" },
-  { 0xa3, "PC-98/Local bus add-on card" }
-};
-SMBIOS_DEF_MAP(smbios_memarray_location);
-
-
-static char *smbios_memarray_use_[] = {
-  NULL, "Other", "Unknown", "System memory",
-  "Video memory", "Flash memory", "Non-volatile RAM", "Cache memory"
-};
-SMBIOS_DEF_MAP(smbios_memarray_use);
-
-
-static char *smbios_mouse_type_[] = {
-  NULL, "Other", "Unknown", "Mouse",
-  "Track Ball", "Track Point", "Glide Point", "Touch Pad",
-  "Touch Screen", "Optical Sensor"
-};
-SMBIOS_DEF_MAP(smbios_mouse_type);
-
-
-static sm_num2str_t smbios_mouse_interface_[] = {
-  { 0x00, NULL },
-  { 0x01, "Other" },
-  { 0x02, "Unknown" },
-  { 0x03, "Serial" },
-  { 0x04, "PS/2" },
-  { 0x05, "Infrared" },
-  { 0x06, "HP-HIL" },
-  { 0x07, "Bus Mouse" },
-  { 0x08, "ADB" },
-  { 0xa0, "Bus mouse DB-9" },
-  { 0xa1, "Bus mouse micro-DIN" },
-  { 0xa2, "USB" }
-};
-SMBIOS_DEF_MAP(smbios_mouse_interface);
-
-
-static char *smbios_memdevice_form_[] = {
-  NULL, "Other", "Unknown", "SIMM",
-  "SIP", "Chip", "DIP", "ZIP",
-  "Proprietary Card", "DIMM", "TSOP", "Row of Chips",
-  "RIMM", "SODIMM", "SRIMM"
-};
-SMBIOS_DEF_MAP(smbios_memdevice_form);
-
-
-static char *smbios_memdevice_type_[] = {
-  NULL, "Other", "Unknown", "DRAM",
-  "EDRAM", "VRAM", "SRAM", "RAM",
-  "ROM", "FLASH", "EEPROM", "FEPROM",
-  "EPROM", "CDRAM", "3DRAM", "SDRAM",
-  "SGRAM", "RDRAM", "DDR"
-};
-SMBIOS_DEF_MAP(smbios_memdevice_type);
-
-
-static char *smbios_memdevice_detail_[] = {
-  NULL, "Other", "Unknown", "Fast-paged",
-  "Static column", "Pseudo-static", "RAMBUS", "Synchronous",
-  "CMOS", "EDO", "Window DRAM", "Cache DRAM",
-  "Non-volatile"
-};
-SMBIOS_DEF_MAP(smbios_memdevice_detail);
-
-
-static char *smbios_memerror_type_[] = {
-  NULL, "Other", "Unknown", "OK",
-  "Bad read", "Parity error", "Single-bit error", "Double-bit error",
-  "Multi-bit error", "Nibble error", "Checksum error", "CRC error",
-  "Corrected single-bit error", "Corrected error", "Uncorrectable error"
-};
-SMBIOS_DEF_MAP(smbios_memerror_type);
-
-
-static char *smbios_memerror_granularity_[] = {
-  NULL, "Other", "Unknown", "Device level",
-  "Memory partition level"
-};
-SMBIOS_DEF_MAP(smbios_memerror_granularity);
-
-
-static char *smbios_memerror_operation_[] = {
-  NULL, "Other", "Unknown", "Read",
-  "Write", "Partial write"
-};
-SMBIOS_DEF_MAP(smbios_memerror_operation);
-
-
-static char *smbios_secure_state_[] = {
-  "Disabled", "Enabled", "Not Implemented", "Unknown"
-};
-SMBIOS_DEF_MAP(smbios_secure_state);
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-/*
- * return the index'th string from sl
- */
-char *get_string(str_list_t *sl, int index)
-{
-  if(!sl || !index) return NULL;
-
-  for(; sl; sl = sl->next, index--) {
-    if(index == 1) return new_str(sl->str && *sl->str ? sl->str : NULL);
-  }
-
-  return NULL;
-}
-
-
-/*
- * Print a bitmap.
- * Style: 0: short, 1: long.
- */
-void smbios_bitmap_print(FILE *f, hd_bitmap_t *hbm, char *label, int style)
-{
-  unsigned u;
-  str_list_t *sl;
-
-  if(hbm->not_empty) {
-    fprintf(f, "    %s: 0x", label);
-    for(u = (hbm->bits + 7) >> 3; u; u--) {
-      fprintf(f, "%02x", hbm->bitmap[u - 1]);
-    }
-    fprintf(f, style ? "\n" : " (");
-    for(sl = hbm->str; sl; sl = sl->next) {
-      if(style) {
-        fprintf(f, "      %s\n", sl->str);
-      }
-      else {
-        fprintf(f, "%s%s", sl->str, sl->next ? ", " : "");
-      }
-    }
-    if(!style) fprintf(f, ")\n");
-  }
-}
-
-
-/*
- * Print id/name pair.
- */
-void smbios_id_print(FILE *f, hd_id_t *hid, char *label)
-{
-  if(hid->name) fprintf(f, "    %s: 0x%02x (%s)\n", label, hid->id, hid->name);
-}
-
-
-/*
- * Print a string.
- */
-void smbios_str_print(FILE *f, char *str, char *label)
-{
-  if(str) fprintf(f, "    %s: \"%s\"\n", label, str);
-}
-
-
-/*
- * Look up the name that corresponds to the id (if any).
- */
-void smbios_id2str(hd_id_t *hid, sm_str_map_t *map, unsigned def)
-{
-  unsigned u;
-  char *str, *def_str;
-
-  if(map->type == sm_map_str) {
-    str = map->list.str[hid->id < map->len ? hid->id : def];
-    if(hid->id && !str) str = map->list.str[def];
-  }
-  else {
-    for(str = def_str = NULL, u = 0; u < map->len; u++) {
-      if(map->list.num2str[u].num == hid->id) str = map->list.num2str[u].str;
-      if(str) break;
-      if(map->list.num2str[u].num == def) def_str = map->list.num2str[u].str;
-    }
-    if(hid->id && !str) str = def_str;
-  }
-  hid->name = new_str(str);
-}
-
-
-/*
- * Convert a bitmap into a list of strings. (That is, interpret the
- * bitmap.)
- */
-void smbios_bitmap2str(hd_bitmap_t *hbm, sm_str_map_t *map)
-{
-  unsigned u, bit;
-  char *str;
-
-  for(u = 0; u < (hbm->bits + 7) >> 3; u++) {
-    if(hbm->bitmap[u]) {
-      hbm->not_empty = 1;
-      break;
-    }
-  }
-
-  if(map->type == sm_map_str) {
-    for(u = 0; u < map->len; u++) {
-      if(u < hbm->bits && hbm->bitmap[u >> 3] & (1 << (u & 7))) {
-        str = map->list.str[u];
-        if(str) add_str_list(&hbm->str, str);
-      }
-    }
-  }
-  else {
-    for(u = 0; u < map->len; u++) {
-      bit = map->list.num2str[u].num;
-      if(bit < hbm->bits && hbm->bitmap[bit >> 3] & (1 << (bit & 7))) {
-        str = map->list.num2str[u].str;
-        if(str) add_str_list(&hbm->str, str);
-      }
-    }
-  }
-}
-
-
-/*
- * Interpret raw smbios data.
- */
-void smbios_parse(hd_data_t *hd_data)
-{
-  hd_smbios_t *sm;
-  str_list_t *sl_any, *sl;
-  int cnt, data_len;
-  unsigned char *sm_data;
-  unsigned u, v;
-
-  if(!hd_data->smbios) return;
-
-  for(cnt = 0, sm = hd_data->smbios; sm; sm = sm->next, cnt++) {
-    sm_data = sm->any.data;
-    data_len = sm->any.data_len;
-    sl_any = sm->any.strings;
-    switch(sm->any.type) {
-      case sm_biosinfo:
-        if(data_len >= 0x12) {
-          sm->biosinfo.start = READ_MEM16(sm_data + 6) << 4;
-          sm->biosinfo.rom_size = (sm_data[9] + 1) << 16;
-          sm->biosinfo.vendor = get_string(sl_any, sm_data[4]);
-          sm->biosinfo.version = get_string(sl_any, sm_data[5]);
-          sm->biosinfo.date = get_string(sl_any, sm_data[8]);
-          memcpy(sm->biosinfo.feature.bitmap, sm_data + 0xa, 8);
-        }
-        if(data_len >= 0x13) {
-          sm->biosinfo.feature.bitmap[8] = sm_data[0x12];
-        }
-        if(data_len >= 0x14) {
-          sm->biosinfo.feature.bitmap[9] = sm_data[0x13];
-        }
-        sm->biosinfo.feature.bits = 80;
-        smbios_bitmap2str(&sm->biosinfo.feature, &smbios_bios_feature);
-        break;
-
-      case sm_sysinfo:
-        if(data_len >= 8) {
-          sm->sysinfo.manuf = get_string(sl_any, sm_data[4]);
-          sm->sysinfo.product = get_string(sl_any, sm_data[5]);
-          sm->sysinfo.version = get_string(sl_any, sm_data[6]);
-          sm->sysinfo.serial = get_string(sl_any, sm_data[7]);
-        }
-        if(data_len >= 0x19) {
-          memcpy(sm->sysinfo.uuid, sm_data + 8, 16);
-          sm->sysinfo.wake_up.id = sm_data[0x18];
-          smbios_id2str(&sm->sysinfo.wake_up, &smbios_system_wakeups, 1);
-        }
-        break;
-
-      case sm_boardinfo:
-        if(data_len >= 8) {
-          sm->boardinfo.manuf = get_string(sl_any, sm_data[4]);
-          sm->boardinfo.product = get_string(sl_any, sm_data[5]);
-          sm->boardinfo.version = get_string(sl_any, sm_data[6]);
-          sm->boardinfo.serial = get_string(sl_any, sm_data[7]);
-        }
-        if(data_len >= 9) {
-          sm->boardinfo.asset = get_string(sl_any, sm_data[8]);
-        }
-        if(data_len >= 0x0e) {
-          sm->boardinfo.feature.bitmap[0] = sm_data[9];
-          sm->boardinfo.feature.bits = 8;
-          smbios_bitmap2str(&sm->boardinfo.feature, &smbios_board_feature);
-          sm->boardinfo.location = get_string(sl_any, sm_data[0x0a]);
-          sm->boardinfo.chassis = READ_MEM16(sm_data + 0x0b);
-          sm->boardinfo.board_type.id = sm_data[0x0d];
-          smbios_id2str(&sm->boardinfo.board_type, &smbios_board_types, 1);
-        }
-        if(data_len >= 0x0f) {
-          u = sm_data[0x0e];
-          if(u && data_len >= 0x0f + 2 * u) {
-            sm->boardinfo.objects_len = u;
-            sm->boardinfo.objects = new_mem(u * sizeof *sm->boardinfo.objects);
-            for(u = 0; u < sm->boardinfo.objects_len; u++) {
-              sm->boardinfo.objects[u] = READ_MEM16(sm_data + 0x0f + 2 * u);
-            }
-          }
-        }
-        break;
-
-      case sm_chassis:
-        if(data_len >= 6) {
-          sm->chassis.manuf = get_string(sl_any, sm_data[4]);
-          sm->chassis.lock = sm_data[5] >> 7;
-          sm->chassis.ch_type.id = sm_data[5] & 0x7f;
-          smbios_id2str(&sm->chassis.ch_type, &smbios_chassis_types, 1);
-        }
-        if(data_len >= 9) {
-          sm->chassis.version = get_string(sl_any, sm_data[6]);
-          sm->chassis.serial = get_string(sl_any, sm_data[7]);
-          sm->chassis.asset = get_string(sl_any, sm_data[8]);
-        }
-        if(data_len >= 0x0d) {
-          sm->chassis.bootup.id = sm_data[9];
-          sm->chassis.power.id = sm_data[0x0a];
-          sm->chassis.thermal.id = sm_data[0x0b];
-          sm->chassis.security.id = sm_data[0x0c];
-          smbios_id2str(&sm->chassis.bootup, &smbios_chassis_states, 1);
-          smbios_id2str(&sm->chassis.power, &smbios_chassis_states, 1);
-          smbios_id2str(&sm->chassis.thermal, &smbios_chassis_states, 1);
-          smbios_id2str(&sm->chassis.security, &smbios_chassis_sec_states, 1);
-        }
-        if(data_len >= 0x11) {
-          sm->chassis.oem = READ_MEM32(sm_data + 0x0d);
-        }
-        break;
-
-      case sm_processor:
-        if(data_len >= 0x1a) {
-          sm->processor.socket = get_string(sl_any, sm_data[4]);
-          sm->processor.manuf = get_string(sl_any, sm_data[7]);
-          sm->processor.version = get_string(sl_any, sm_data[0x10]);
-          sm->processor.voltage = sm_data[0x11];
-          if(sm->processor.voltage & 0x80) {
-            sm->processor.voltage &= 0x7f;
-          }
-          else {
-            switch(sm->processor.voltage) {
-              case 0x01:
-                sm->processor.voltage = 50;
-                break;
-              case 0x02:
-                sm->processor.voltage = 33;
-                break;
-              case 0x04:
-                sm->processor.voltage = 29;
-                break;
-              default:
-                sm->processor.voltage = 0;
-            }
-          }
-          sm->processor.pr_type.id = sm_data[5];
-          sm->processor.family.id = sm_data[6];
-          sm->processor.cpu_id = READ_MEM64(sm_data + 8);
-          sm->processor.ext_clock = READ_MEM16(sm_data + 0x12);
-          sm->processor.max_speed = READ_MEM16(sm_data + 0x14);
-          sm->processor.current_speed = READ_MEM16(sm_data + 0x16);
-          sm->processor.sock_status = (sm_data[0x18] >> 6) & 1;
-          sm->processor.cpu_status.id = sm_data[0x18] & 7;
-          sm->processor.upgrade.id = sm_data[0x19];
-          smbios_id2str(&sm->processor.pr_type, &smbios_proc_types, 1);
-          smbios_id2str(&sm->processor.family, &smbios_proc_families, 1);
-          smbios_id2str(&sm->processor.cpu_status, &smbios_proc_cpu_status, 0);
-          smbios_id2str(&sm->processor.upgrade, &smbios_proc_upgrades, 1);
-        }
-        if(data_len >= 0x20) {
-          sm->processor.l1_cache = READ_MEM16(sm_data + 0x1a);
-          sm->processor.l2_cache = READ_MEM16(sm_data + 0x1c);
-          sm->processor.l3_cache = READ_MEM16(sm_data + 0x1e);
-          if(sm->processor.l1_cache == 0xffff) sm->processor.l1_cache = 0;
-          if(sm->processor.l2_cache == 0xffff) sm->processor.l2_cache = 0;
-          if(sm->processor.l3_cache == 0xffff) sm->processor.l3_cache = 0;
-        }
-        if(data_len >= 0x21) {
-          sm->processor.serial = get_string(sl_any, sm_data[0x20]);
-        }
-        if(data_len >= 0x22) {
-          sm->processor.asset = get_string(sl_any, sm_data[0x21]);
-          sm->processor.part = get_string(sl_any, sm_data[0x22]);
-        }
-        break;
-
-      case sm_cache:
-        if(data_len >= 0x0f) {
-          sm->cache.socket = get_string(sl_any, sm_data[4]);
-          u = READ_MEM16(sm_data + 7);
-          if((u & 0x8000)) u = (u & 0x7fff) << 6;
-          sm->cache.max_size = u;
-          u = READ_MEM16(sm_data + 9);
-          if((u & 0x8000)) u = (u & 0x7fff) << 6;
-          sm->cache.current_size = u;
-          u = READ_MEM16(sm_data + 5);
-          sm->cache.mode.id = (u >> 8) & 3;
-          sm->cache.state = (u >> 7) & 1;
-          sm->cache.location.id = (u >> 5) & 3;
-          sm->cache.socketed = (u >> 3) & 1;
-          sm->cache.level = u & 7;
-          smbios_id2str(&sm->cache.mode, &smbios_cache_mode, 0);
-          smbios_id2str(&sm->cache.location, &smbios_cache_location, 0);
-          sm->cache.supp_sram.bitmap[0] = sm_data[0x0b];
-          sm->cache.supp_sram.bitmap[1] = sm_data[0x0c];
-          sm->cache.supp_sram.bits = 16;
-          sm->cache.sram.bitmap[0] = sm_data[0x0d];
-          sm->cache.sram.bitmap[1] = sm_data[0x0e];
-          sm->cache.sram.bits = 16;
-          smbios_bitmap2str(&sm->cache.supp_sram, &smbios_cache_sram);
-          smbios_bitmap2str(&sm->cache.sram, &smbios_cache_sram);
-        }
-        if(data_len >= 0x13) {
-          sm->cache.speed = sm_data[0x0f];
-          sm->cache.ecc.id = sm_data[0x10];
-          sm->cache.cache_type.id = sm_data[0x11];
-          sm->cache.assoc.id = sm_data[0x12];
-          smbios_id2str(&sm->cache.ecc, &smbios_cache_ecc, 1);
-          smbios_id2str(&sm->cache.cache_type, &smbios_cache_type, 1);
-          smbios_id2str(&sm->cache.assoc, &smbios_cache_assoc, 1);
-        }
-        break;
-
-      case sm_connect:
-        if(data_len >= 9) {
-          sm->connect.i_des = get_string(sl_any, sm_data[4]);
-          sm->connect.x_des = get_string(sl_any, sm_data[6]);
-          sm->connect.i_type.id = sm_data[5];
-          sm->connect.x_type.id = sm_data[7];
-          sm->connect.port_type.id = sm_data[8];
-          smbios_id2str(&sm->connect.port_type, &smbios_connect_conn_type, 0xff);
-          smbios_id2str(&sm->connect.x_type, &smbios_connect_conn_type, 0xff);
-          smbios_id2str(&sm->connect.port_type, &smbios_connect_port_type, 0xff);
-        }
-        break;
-
-      case sm_slot:
-        if(data_len >= 0x0c) {
-          sm->slot.desig = get_string(sl_any, sm_data[4]);
-          sm->slot.slot_type.id = sm_data[5];
-          sm->slot.bus_width.id = sm_data[6];
-          sm->slot.usage.id = sm_data[7];
-          sm->slot.length.id = sm_data[8];
-          sm->slot.id = READ_MEM16(sm_data + 9);
-          sm->slot.feature.bitmap[0] = sm_data[0x0b];
-        }
-        if(data_len >= 0x0d) {
-          sm->slot.feature.bitmap[1] = sm_data[0x0c];
-        }
-        sm->slot.feature.bits = 16;
-        smbios_id2str(&sm->slot.slot_type, &smbios_slot_type, 1);
-        smbios_id2str(&sm->slot.bus_width, &smbios_slot_bus_width, 1);
-        smbios_id2str(&sm->slot.usage, &smbios_slot_usage, 1);
-        smbios_id2str(&sm->slot.length, &smbios_slot_length, 1);
-        smbios_bitmap2str(&sm->slot.feature, &smbios_slot_feature);
-        break;
-
-      case sm_onboard:
-        if(data_len >= 4) {
-          u = data_len - 4;
-          if(!(u & 1)) {
-            u >>= 1;
-            if(u) {
-              sm->onboard.dev_len = u;
-              sm->onboard.dev = new_mem(u * sizeof *sm->onboard.dev);
-            }
-            for(u = 0; u < sm->onboard.dev_len; u++) {
-              sm->onboard.dev[u].name = get_string(sl_any, sm_data[4 + (u << 1) + 1]);
-              v = sm_data[4 + (u << 1)];
-              sm->onboard.dev[u].status = v >> 7;
-              sm->onboard.dev[u].type.id = v & 0x7f;
-              smbios_id2str(&sm->onboard.dev[u].type, &smbios_onboard_type, 1);
-            }
-          }
-        }
-        break;
-
-      case sm_oem:
-        for(sl = sl_any; sl; sl = sl->next) {
-          if(sl->str && *sl->str) add_str_list(&sm->oem.oem_strings, sl->str);
-        }
-        break;
-
-      case sm_config:
-        for(sl = sl_any; sl; sl = sl->next) {
-          if(sl->str && *sl->str) add_str_list(&sm->config.options, sl->str);
-        }
-        break;
-
-      case sm_lang:
-        if(data_len >= 0x16) {
-          sm->lang.current = get_string(sl_any, sm_data[0x15]);
-        }
-        break;
-
-      case sm_group:
-        if(data_len >= 5) {
-          sm->group.name = get_string(sl_any, sm_data[4]);
-          u = (data_len - 5) / 3;
-          if(u) {
-            sm->group.items_len = u;
-            sm->group.item_handles = new_mem(u * sizeof *sm->group.item_handles);
-            for(u = 0; u < sm->group.items_len; u++) {
-              sm->group.item_handles[u] = READ_MEM16(sm_data + 6 + 3 * u);
-            }
-          }
-        }
-        break;
-
-      case sm_memarray:
-        if(data_len >= 0x0f) {
-          sm->memarray.location.id = sm_data[4];
-          sm->memarray.use.id = sm_data[5];
-          sm->memarray.ecc.id = sm_data[6];
-          sm->memarray.max_size = READ_MEM32(sm_data + 7);
-          if(sm->memarray.max_size == 0x80000000) sm->memarray.max_size = 0;
-          sm->memarray.error_handle = READ_MEM16(sm_data + 0x0b);
-          sm->memarray.slots = READ_MEM16(sm_data + 0x0d);
-          smbios_id2str(&sm->memarray.location, &smbios_memarray_location, 1);
-          smbios_id2str(&sm->memarray.use, &smbios_memarray_use, 1);
-          smbios_id2str(&sm->memarray.ecc, &smbios_memarray_ecc, 1);
-        }
-        break;
-
-      case sm_memdevice:
-        if(data_len >= 0x15) {
-          sm->memdevice.array_handle = READ_MEM16(sm_data + 0x04);
-          sm->memdevice.error_handle = READ_MEM16(sm_data + 0x06);
-          sm->memdevice.eccbits = READ_MEM16(sm_data + 8);
-          sm->memdevice.width = READ_MEM16(sm_data + 0xa);
-          if(sm->memdevice.width == 0xffff) sm->memdevice.width = 0;
-          if(sm->memdevice.eccbits == 0xffff) sm->memdevice.eccbits = 0;
-          if(sm->memdevice.eccbits >= sm->memdevice.width) {
-            sm->memdevice.eccbits -= sm->memdevice.width;
-          }
-          else {
-            sm->memdevice.eccbits = 0;
-          }
-          sm->memdevice.size = READ_MEM16(sm_data + 0xc);
-          if(sm->memdevice.size == 0xffff) sm->memdevice.size = 0;
-          if((sm->memdevice.size & 0x8000)) {
-            sm->memdevice.size &= 0x7fff;
-          }
-          else {
-            sm->memdevice.size <<= 10;
-          }
-          sm->memdevice.form.id = sm_data[0xe];
-          sm->memdevice.set = sm_data[0xf];
-          sm->memdevice.location = get_string(sl_any, sm_data[0x10]);
-          sm->memdevice.bank = get_string(sl_any, sm_data[0x11]);
-          sm->memdevice.mem_type.id = sm_data[0x12];
-          smbios_id2str(&sm->memdevice.form, &smbios_memdevice_form, 1);
-          smbios_id2str(&sm->memdevice.mem_type, &smbios_memdevice_type, 1);
-          sm->memdevice.type_detail.bitmap[0] = sm_data[0x13];
-          sm->memdevice.type_detail.bitmap[1] = sm_data[0x14];
-          sm->memdevice.type_detail.bits = 16;
-          smbios_bitmap2str(&sm->memdevice.type_detail, &smbios_memdevice_detail);
-        }
-        if(data_len >= 0x17) {
-          sm->memdevice.speed = READ_MEM16(sm_data + 0x15);
-        }
-        if(data_len >= 0x1b) {
-          sm->memdevice.manuf = get_string(sl_any, sm_data[0x17]);
-          sm->memdevice.serial = get_string(sl_any, sm_data[0x18]);
-          sm->memdevice.asset = get_string(sl_any, sm_data[0x19]);
-          sm->memdevice.part = get_string(sl_any, sm_data[0x1a]);
-        }
-        break;
-
-      case sm_memerror:
-        if(data_len >= 0x17) {
-          sm->memerror.err_type.id = sm_data[4];
-          sm->memerror.granularity.id = sm_data[5];
-          sm->memerror.operation.id = sm_data[6];
-          sm->memerror.syndrome = READ_MEM32(sm_data + 7);
-          sm->memerror.array_addr = READ_MEM32(sm_data + 0xb);
-          sm->memerror.device_addr = READ_MEM32(sm_data + 0xf);
-          sm->memerror.range = READ_MEM32(sm_data + 0x13);
-          smbios_id2str(&sm->memerror.err_type, &smbios_memerror_type, 1);
-          smbios_id2str(&sm->memerror.granularity, &smbios_memerror_granularity, 1);
-          smbios_id2str(&sm->memerror.operation, &smbios_memerror_operation, 1);
-        }
-        break;
-
-      case sm_memarraymap:
-        if(data_len >= 0x0f) {
-          sm->memarraymap.start_addr = READ_MEM32(sm_data + 4);
-          sm->memarraymap.start_addr <<= 10;
-          sm->memarraymap.end_addr = 1 + READ_MEM32(sm_data + 8);
-          sm->memarraymap.end_addr <<= 10;
-          sm->memarraymap.array_handle = READ_MEM16(sm_data + 0xc);
-          sm->memarraymap.part_width = sm_data[0x0e];
-        }
-        break;
-
-      case sm_memdevicemap:
-        if(data_len >= 0x13) {
-          sm->memdevicemap.start_addr = READ_MEM32(sm_data + 4);
-          sm->memdevicemap.start_addr <<= 10;
-          sm->memdevicemap.end_addr = 1 + READ_MEM32(sm_data + 8);
-          sm->memdevicemap.end_addr <<= 10;
-          sm->memdevicemap.memdevice_handle = READ_MEM16(sm_data + 0xc);
-          sm->memdevicemap.arraymap_handle = READ_MEM16(sm_data + 0xe);
-          sm->memdevicemap.row_pos = sm_data[0x10];
-          sm->memdevicemap.interleave_pos = sm_data[0x11];
-          sm->memdevicemap.interleave_depth = sm_data[0x12];
-        }
-        break;
-
-      case sm_mouse:
-        if(data_len >= 7) {
-          sm->mouse.mtype.id = sm_data[4];
-          sm->mouse.interface.id = sm_data[5];
-          sm->mouse.buttons = sm_data[6];
-          smbios_id2str(&sm->mouse.mtype, &smbios_mouse_type, 1);
-          smbios_id2str(&sm->mouse.interface, &smbios_mouse_interface, 1);
-        }
-        break;
-
-      case sm_secure:
-        if(data_len >= 5) {
-          u = sm_data[4];
-          sm->secure.power.id = u >> 6;
-          sm->secure.keyboard.id = (u >> 4) & 3;
-          sm->secure.admin.id = (u >> 2) & 3;
-          sm->secure.reset.id = u & 3;
-          smbios_id2str(&sm->secure.power, &smbios_secure_state, 3);
-          smbios_id2str(&sm->secure.keyboard, &smbios_secure_state, 3);
-          smbios_id2str(&sm->secure.admin, &smbios_secure_state, 3);
-          smbios_id2str(&sm->secure.reset, &smbios_secure_state, 3);
-        }
-        break;
-
-      case sm_power:
-        if(data_len >= 9) {
-          sm->power.month = sm_data[4];
-          sm->power.day = sm_data[5];
-          sm->power.hour = sm_data[6];
-          sm->power.minute = sm_data[7];
-          sm->power.second = sm_data[8];
-        }
-        break;
-
-      case sm_mem64error:
-        if(data_len >= 0x1f) {
-          sm->mem64error.err_type.id = sm_data[4];
-          sm->mem64error.granularity.id = sm_data[5];
-          sm->mem64error.operation.id = sm_data[6];
-          sm->mem64error.syndrome = READ_MEM32(sm_data + 7);
-          sm->mem64error.array_addr = READ_MEM64(sm_data + 0xb);
-          sm->mem64error.device_addr = READ_MEM64(sm_data + 0x13);
-          sm->mem64error.range = READ_MEM32(sm_data + 0x1b);
-          smbios_id2str(&sm->mem64error.err_type, &smbios_memerror_type, 1);
-          smbios_id2str(&sm->mem64error.granularity, &smbios_memerror_granularity, 1);
-          smbios_id2str(&sm->mem64error.operation, &smbios_memerror_operation, 1);
-        }
-        break;
-
-      default:
-       break;
-    }
-  }
-}
-
-
-/*
- * Note: new_sm is directly inserted into the list, so you *must* make sure
- * that new_sm points to a malloc'ed pice of memory.
- */
-hd_smbios_t *smbios_add_entry(hd_smbios_t **sm, hd_smbios_t *new_sm)
-{
-  while(*sm) sm = &(*sm)->next;
-
-  return *sm = new_sm;
-}
-
-
-/*
- * Free the memory allocated by a smbios list.
- */
-hd_smbios_t *smbios_free(hd_smbios_t *sm)
-{
-  hd_smbios_t *next;
-  unsigned u;
-
-  for(; sm; sm = next) {
-    next = sm->next;
-
-    free_mem(sm->any.data);
-    free_str_list(sm->any.strings);
-
-    switch(sm->any.type) {
-      case sm_biosinfo:
-        free_mem(sm->biosinfo.vendor);
-        free_mem(sm->biosinfo.version);
-        free_mem(sm->biosinfo.date);
-        free_str_list(sm->biosinfo.feature.str);
-        break;
-
-      case sm_sysinfo:
-        free_mem(sm->sysinfo.manuf);
-        free_mem(sm->sysinfo.product);
-        free_mem(sm->sysinfo.version);
-        free_mem(sm->sysinfo.serial);
-        free_mem(sm->sysinfo.wake_up.name);
-        break;
-
-      case sm_boardinfo:
-        free_mem(sm->boardinfo.manuf);
-        free_mem(sm->boardinfo.product);
-        free_mem(sm->boardinfo.version);
-        free_mem(sm->boardinfo.serial);
-        free_mem(sm->boardinfo.asset);
-        free_mem(sm->boardinfo.location);
-        free_mem(sm->boardinfo.board_type.name);
-        free_str_list(sm->boardinfo.feature.str);
-        free_mem(sm->boardinfo.objects);
-        break;
-
-      case sm_chassis:
-        free_mem(sm->chassis.manuf);
-        free_mem(sm->chassis.version);
-        free_mem(sm->chassis.serial);
-        free_mem(sm->chassis.asset);
-        free_mem(sm->chassis.ch_type.name);
-        free_mem(sm->chassis.bootup.name);
-        free_mem(sm->chassis.power.name);
-        free_mem(sm->chassis.thermal.name);
-        free_mem(sm->chassis.security.name);
-        break;
-
-      case sm_processor:
-        free_mem(sm->processor.socket);
-        free_mem(sm->processor.manuf);
-        free_mem(sm->processor.version);
-        free_mem(sm->processor.serial);
-        free_mem(sm->processor.asset);
-        free_mem(sm->processor.part);
-        free_mem(sm->processor.upgrade.name);
-        free_mem(sm->processor.pr_type.name);
-        free_mem(sm->processor.family.name);
-        free_mem(sm->processor.cpu_status.name);
-        break;
-
-      case sm_cache:
-        free_mem(sm->cache.socket);
-        free_mem(sm->cache.mode.name);
-        free_mem(sm->cache.location.name);
-        free_mem(sm->cache.ecc.name);
-        free_mem(sm->cache.cache_type.name);
-        free_mem(sm->cache.assoc.name);
-        free_str_list(sm->cache.supp_sram.str);
-        free_str_list(sm->cache.sram.str);
-        break;
-
-      case sm_connect:
-        free_mem(sm->connect.port_type.name);
-        free_mem(sm->connect.i_des);
-        free_mem(sm->connect.x_des);
-        free_mem(sm->connect.i_type.name);
-        free_mem(sm->connect.x_type.name);
-        break;
-
-      case sm_slot:
-        free_mem(sm->slot.desig);
-        free_mem(sm->slot.slot_type.name);
-        free_mem(sm->slot.bus_width.name);
-        free_mem(sm->slot.usage.name);
-        free_mem(sm->slot.length.name);
-        free_str_list(sm->slot.feature.str);
-        break;
-
-      case sm_onboard:
-        for(u = 0; u < sm->onboard.dev_len; u++) {
-          free_mem(sm->onboard.dev[u].name);
-          free_mem(sm->onboard.dev[u].type.name);
-        }
-        free_mem(sm->onboard.dev);
-        break;
-
-      case sm_oem:
-        free_str_list(sm->oem.oem_strings);
-        break;
-
-      case sm_config:
-        free_str_list(sm->config.options);
-        break;
-
-      case sm_lang:
-        free_mem(sm->lang.current);
-        break;
-
-      case sm_group:
-        free_mem(sm->group.name);
-        free_mem(sm->group.item_handles);
-        break;
-
-      case sm_memarray:
-        free_mem(sm->memarray.location.name);
-        free_mem(sm->memarray.use.name);
-        free_mem(sm->memarray.ecc.name);
-        break;
-
-      case sm_memdevice:
-        free_mem(sm->memdevice.location);
-        free_mem(sm->memdevice.bank);
-        free_mem(sm->memdevice.manuf);
-        free_mem(sm->memdevice.serial);
-        free_mem(sm->memdevice.asset);
-        free_mem(sm->memdevice.part);
-        free_mem(sm->memdevice.form.name);
-        free_mem(sm->memdevice.mem_type.name);
-        free_str_list(sm->memdevice.type_detail.str);
-        break;
-
-      case sm_memerror:
-        free_mem(sm->memerror.err_type.name);
-        free_mem(sm->memerror.granularity.name);
-        free_mem(sm->memerror.operation.name);
-        break;
-
-      case sm_mouse:
-        free_mem(sm->mouse.mtype.name);
-        free_mem(sm->mouse.interface.name);
-        break;
-
-      case sm_secure:
-        free_mem(sm->secure.power.name);
-        free_mem(sm->secure.keyboard.name);
-        free_mem(sm->secure.admin.name);
-        free_mem(sm->secure.reset.name);
-        break;
-
-      case sm_mem64error:
-        free_mem(sm->mem64error.err_type.name);
-        free_mem(sm->mem64error.granularity.name);
-        free_mem(sm->mem64error.operation.name);
-        break;
-
-      default:
-       break;
-    }
-
-    free_mem(sm);
-  }
-
-  return NULL;
-}
-
-
-/*
- * print SMBIOS entries
- */
-void smbios_dump(hd_data_t *hd_data, FILE *f)
-{
-  hd_smbios_t *sm;
-  str_list_t *sl;
-  char c, *s;
-  unsigned u;
-  int i;
-
-  if(!hd_data->smbios) return;
-
-  for(sm = hd_data->smbios; sm; sm = sm->next) {
-    switch(sm->any.type) {
-      case sm_biosinfo:
-        fprintf(f, "  BIOS Info: #%d\n", sm->any.handle);
-        if(sm->biosinfo.vendor) fprintf(f, "    Vendor: \"%s\"\n", sm->biosinfo.vendor);
-        if(sm->biosinfo.version) fprintf(f, "    Version: \"%s\"\n", sm->biosinfo.version);
-        if(sm->biosinfo.date) fprintf(f, "    Date: \"%s\"\n", sm->biosinfo.date);
-        fprintf(f, "    Start Address: 0x%05x\n", sm->biosinfo.start);
-        fprintf(f, "    ROM Size: %d kB\n", sm->biosinfo.rom_size >> 10);
-        SMBIOS_PRINT_BITMAP_LONG(biosinfo.feature, "Features");
-        break;
-
-      case sm_sysinfo:
-        fprintf(f, "  System Info: #%d\n", sm->any.handle);
-        if(sm->sysinfo.manuf) fprintf(f, "    Manufacturer: \"%s\"\n", sm->sysinfo.manuf);
-        if(sm->sysinfo.product) fprintf(f, "    Product: \"%s\"\n", sm->sysinfo.product);
-        if(sm->sysinfo.version) fprintf(f, "    Version: \"%s\"\n", sm->sysinfo.version);
-        if(sm->sysinfo.serial) fprintf(f, "    Serial: \"%s\"\n", sm->sysinfo.serial);
-        for(i = u = 0; (unsigned) i < sizeof sm->sysinfo.uuid / sizeof *sm->sysinfo.uuid; i++) {
-          u |= sm->sysinfo.uuid[i];
-        }
-        fprintf(f, "    UUID: ");
-        if(u == 0 || u == 0xff) {
-          fprintf(f, "undefined");
-          if(u == 0xff) fprintf(f, ", but settable");
-        }
-        else {
-          for(i = sizeof sm->sysinfo.uuid / sizeof *sm->sysinfo.uuid - 1; i >= 0; i--) {
-            fprintf(f, "%02x", sm->sysinfo.uuid[i]);
-          }
-        }
-        fprintf(f, "\n");
-        SMBIOS_PRINT_ID(sysinfo.wake_up, "Wake-up");
-        break;
-
-      case sm_boardinfo:
-        fprintf(f, "  Board Info: #%d\n", sm->any.handle);
-        if(sm->boardinfo.manuf) fprintf(f, "    Manufacturer: \"%s\"\n", sm->boardinfo.manuf);
-        if(sm->boardinfo.product) fprintf(f, "    Product: \"%s\"\n", sm->boardinfo.product);
-        if(sm->boardinfo.version) fprintf(f, "    Version: \"%s\"\n", sm->boardinfo.version);
-        if(sm->boardinfo.serial) fprintf(f, "    Serial: \"%s\"\n", sm->boardinfo.serial);
-        if(sm->boardinfo.asset) fprintf(f, "    Asset Tag: \"%s\"\n", sm->boardinfo.asset);
-        SMBIOS_PRINT_ID(boardinfo.board_type, "Type");
-        SMBIOS_PRINT_BITMAP_LONG(boardinfo.feature, "Features");
-        if(sm->boardinfo.location) fprintf(f, "    Location: \"%s\"\n", sm->boardinfo.location);
-        if(sm->boardinfo.chassis) fprintf(f, "    Chassis: #%d\n", sm->boardinfo.chassis);
-        if(sm->boardinfo.objects_len) {
-          fprintf(f, "    Contained Objects: ");
-          for(i = 0; i < sm->boardinfo.objects_len; i++) {
-            fprintf(f, "%s#%d", i ? ", " : "", sm->boardinfo.objects[i]);
-          }
-          fprintf(f, "\n");
-        }
-        break;
-
-      case sm_chassis:
-        fprintf(f, "  Chassis Info: #%d\n", sm->any.handle);
-        if(sm->chassis.manuf) fprintf(f, "    Manufacturer: \"%s\"\n", sm->chassis.manuf);
-        if(sm->chassis.version) fprintf(f, "    Version: \"%s\"\n", sm->chassis.version);
-        if(sm->chassis.serial) fprintf(f, "    Serial: \"%s\"\n", sm->chassis.serial);
-        if(sm->chassis.asset) fprintf(f, "    Asset Tag: \"%s\"\n", sm->chassis.asset);
-        SMBIOS_PRINT_ID(chassis.ch_type, "Type");
-        if(sm->chassis.lock) fprintf(f, "    Lock: present\n");
-        SMBIOS_PRINT_ID(chassis.bootup, "Bootup State");
-        SMBIOS_PRINT_ID(chassis.power, "Power Supply State");
-        SMBIOS_PRINT_ID(chassis.thermal, "Thermal State");
-        SMBIOS_PRINT_ID(chassis.security, "Security Status");
-        if(sm->chassis.oem) fprintf(f, "    OEM Info: 0x%08x\n", sm->chassis.oem);
-        break;
-
-      case sm_processor:
-        fprintf(f, "  Processor Info: #%d\n", sm->any.handle);
-        SMBIOS_PRINT_STR(processor.socket, "Socket");
-        SMBIOS_PRINT_ID(processor.upgrade, "Socket Type");
-        fprintf(f, "    Socket Status: %s\n", sm->processor.sock_status ? "Populated" : "Empty");
-        SMBIOS_PRINT_ID(processor.pr_type, "Type");
-        SMBIOS_PRINT_ID(processor.family, "Family");
-        SMBIOS_PRINT_STR(processor.manuf, "Manufacturer");
-        SMBIOS_PRINT_STR(processor.version, "Version");
-        SMBIOS_PRINT_STR(processor.serial, "Serial");
-        SMBIOS_PRINT_STR(processor.asset, "Asset Tag");
-        SMBIOS_PRINT_STR(processor.part, "Part Number");
-        if(sm->processor.cpu_id) {
-          fprintf(f, "    Processor ID: 0x%016"PRIx64"\n", sm->processor.cpu_id);
-        }
-        SMBIOS_PRINT_ID(processor.cpu_status, "Status");
-        if(sm->processor.voltage) {
-          fprintf(f, "    Voltage: %u.%u V\n", sm->processor.voltage / 10, sm->processor.voltage % 10);
-        }
-        if(sm->processor.ext_clock) fprintf(f, "    External Clock: %u MHz\n", sm->processor.ext_clock);
-        if(sm->processor.max_speed) fprintf(f, "    Max. Speed: %u MHz\n", sm->processor.max_speed);
-        if(sm->processor.current_speed) fprintf(f, "    Current Speed: %u MHz\n", sm->processor.current_speed);
-
-        if(sm->processor.l1_cache) fprintf(f, "    L1 Cache: #%d\n", sm->processor.l1_cache);
-        if(sm->processor.l2_cache) fprintf(f, "    L2 Cache: #%d\n", sm->processor.l2_cache);
-        if(sm->processor.l3_cache) fprintf(f, "    L3 Cache: #%d\n", sm->processor.l3_cache);
-        break;
-
-      case sm_cache:
-        fprintf(f, "  Cache Info: #%d\n", sm->any.handle);
-        SMBIOS_PRINT_STR(cache.socket, "Designation");
-        fprintf(f, "    Level: L%u\n", sm->cache.level + 1);
-        fprintf(f, "    State: %s\n", sm->cache.state ? "Enabled" : "Disabled");
-        SMBIOS_PRINT_ID(cache.mode, "Mode");
-        if(sm->cache.location.name) {
-          fprintf(f, "    Location: 0x%02x (%s, %sSocketed)\n",
-            sm->cache.location.id,
-            sm->cache.location.name,
-            sm->cache.socketed ? "" : "Not "
-          );
-        }
-        SMBIOS_PRINT_ID(cache.ecc, "ECC");
-        SMBIOS_PRINT_ID(cache.cache_type, "Type");
-        SMBIOS_PRINT_ID(cache.assoc, "Associativity");
-        if(sm->cache.max_size) fprintf(f, "    Max. Size: %u kB\n", sm->cache.max_size);
-        if(sm->cache.current_size) fprintf(f, "    Current Size: %u kB\n", sm->cache.current_size);
-        if(sm->cache.speed) fprintf(f, "    Speed: %u ns\n", sm->cache.speed);
-        SMBIOS_PRINT_BITMAP_SHORT(cache.supp_sram, "Supported SRAM Types");
-        SMBIOS_PRINT_BITMAP_SHORT(cache.sram, "Current SRAM Type");
-        break;
-
-      case sm_connect:
-        fprintf(f, "  Port Connector: #%d\n", sm->any.handle);
-        SMBIOS_PRINT_ID(connect.port_type, "Type");
-        SMBIOS_PRINT_STR(connect.i_des, "Internal Designator");
-        SMBIOS_PRINT_ID(connect.i_type, "Internal Connector");
-        SMBIOS_PRINT_STR(connect.x_des, "External Designator");
-        SMBIOS_PRINT_ID(connect.x_type, "External Connector");
-        break;
-
-      case sm_slot:
-        fprintf(f, "  System Slot: #%d\n", sm->any.handle);
-        SMBIOS_PRINT_STR(slot.desig, "Designation");
-        SMBIOS_PRINT_ID(slot.slot_type, "Type");
-        SMBIOS_PRINT_ID(slot.bus_width, "Bus Width");
-        SMBIOS_PRINT_ID(slot.usage, "Status");
-        SMBIOS_PRINT_ID(slot.length, "Length");
-        fprintf(f, "    Slot ID: %u\n", sm->slot.id);
-        SMBIOS_PRINT_BITMAP_SHORT(slot.feature, "Characteristics");
-        break;
-
-      case sm_onboard:
-        fprintf(f, "  On Board Devices: #%d\n", sm->any.handle);
-        for(u = 0; u < sm->onboard.dev_len; u++) {
-          fprintf(f, "    %s: \"%s\"%s\n",
-            sm->onboard.dev[u].type.name,
-            sm->onboard.dev[u].name,
-            sm->onboard.dev[u].status ? "" : " (disabled)"
-          );
-        }
-        break;
-
-      case sm_oem:
-        fprintf(f, "  OEM Strings: #%d\n", sm->any.handle);
-        for(sl = sm->oem.oem_strings; sl; sl = sl->next) {
-          fprintf(f, "    %s\n", sl->str);
-        }
-        break;
-
-      case sm_config:
-        fprintf(f, "  System Config Options (Jumpers & Switches) #%d:\n", sm->any.handle);
-        for(sl = sm->config.options; sl; sl = sl->next) {
-          fprintf(f, "    %s\n", sl->str);
-        }
-        break;
-
-      case sm_lang:
-        fprintf(f, "  Language Info: #%d\n", sm->any.handle);
-        if((sl = sm->lang.strings)) {
-          fprintf(f, "    Languages: ");
-          for(; sl; sl = sl->next) {
-            fprintf(f, "%s%s", sl->str, sl->next ? ", " : "");
-          }
-          fprintf(f, "\n");
-        }
-        if(sm->lang.current) fprintf(f, "    Current: %s\n", sm->lang.current);
-        break;
-
-      case sm_group:
-        fprintf(f, "  Group Associations: #%d\n", sm->any.handle);
-        if(sm->group.name) fprintf(f, "    Group Name: \"%s\"\n", sm->group.name);
-        if(sm->group.items_len) {
-          fprintf(f, "    Items: ");
-          for(i = 0; i < sm->group.items_len; i++) {
-            fprintf(f, "%s#%d", i ? ", " : "", sm->group.item_handles[i]);
-          }
-          fprintf(f, "\n");
-        }
-        break;
-
-      case sm_memarray:
-        fprintf(f, "  Physical Memory Array: #%d\n", sm->any.handle);
-        SMBIOS_PRINT_ID(memarray.use, "Use");
-        SMBIOS_PRINT_ID(memarray.location, "Location");
-        fprintf(f, "    Slots: %u\n", sm->memarray.slots);
-        if(sm->memarray.max_size) {
-          u = sm->memarray.max_size;
-          c = 'k';
-          if(!(u & 0x3ff)) { u >>= 10; c = 'M'; }
-          if(!(u & 0x3ff)) { u >>= 10; c = 'G'; }
-          fprintf(f, "    Max. Size: %u %cB\n", u, c);
-        }
-        SMBIOS_PRINT_ID(memarray.ecc, "ECC");
-        if(sm->memarray.error_handle != 0xfffe) {
-          fprintf(f, "    Error Info: ");
-          if(sm->memarray.error_handle != 0xffff) {
-            fprintf(f, "#%d\n", sm->memarray.error_handle);
-          }
-          else {
-            fprintf(f, "No Error\n");
-          }
-        }
-        break;
-
-      case sm_memdevice:
-        fprintf(f, "  Memory Device: #%d\n", sm->any.handle);
-        SMBIOS_PRINT_STR(memdevice.location, "Location");
-        SMBIOS_PRINT_STR(memdevice.bank, "Bank");
-        SMBIOS_PRINT_STR(memdevice.manuf, "Manufacturer");
-        SMBIOS_PRINT_STR(memdevice.serial, "Serial");
-        SMBIOS_PRINT_STR(memdevice.asset, "Asset Tag");
-        SMBIOS_PRINT_STR(memdevice.part, "Part Number");
-        fprintf(f, "    Memory Array: #%d\n", sm->memdevice.array_handle);
-        if(sm->memdevice.error_handle != 0xfffe) {
-          fprintf(f, "    Error Info: ");
-          if(sm->memdevice.error_handle != 0xffff) {
-            fprintf(f, "#%d\n", sm->memdevice.error_handle);
-          }
-          else {
-            fprintf(f, "No Error\n");
-          }
-        }
-        SMBIOS_PRINT_ID(memdevice.form, "Form Factor");
-        SMBIOS_PRINT_ID(memdevice.mem_type, "Type");
-        SMBIOS_PRINT_BITMAP_SHORT(memdevice.type_detail, "Type Detail");
-        fprintf(f, "    Data Width: %u bits", sm->memdevice.width);
-        if(sm->memdevice.eccbits) fprintf(f, " (+%u ECC bits)", sm->memdevice.eccbits);
-        fprintf(f, "\n");
-        if(sm->memdevice.size) {
-          u = sm->memdevice.size;
-          c = 'k';
-          if(!(u & 0x3ff)) { u >>= 10; c = 'M'; }
-          if(!(u & 0x3ff)) { u >>= 10; c = 'G'; }
-          fprintf(f, "    Size: %u %cB\n", u, c);
-        }
-        else {
-          fprintf(f, "    Size: No Memory Installed\n");
-        }
-        if(sm->memdevice.speed) fprintf(f, "    Speed: %u MHz\n", sm->memdevice.speed);
-        break;
-
-      case sm_memerror:
-        fprintf(f, "  32bit-Memory Error Info: #%d\n", sm->any.handle);
-        SMBIOS_PRINT_ID(memerror.err_type, "Type");
-        SMBIOS_PRINT_ID(memerror.granularity, "Granularity");
-        SMBIOS_PRINT_ID(memerror.operation, "Operation");
-        if(sm->memerror.syndrome) fprintf(f, "    Syndrome: 0x%08x\n", sm->memerror.syndrome);
-        if(sm->memerror.array_addr != (1 << 31)) fprintf(f, "    Mem Array Addr: 0x%08x\n", sm->memerror.array_addr);
-        if(sm->memerror.device_addr != (1 << 31)) fprintf(f, "    Mem Device Addr: 0x%08x\n", sm->memerror.device_addr);
-        if(sm->memerror.range != (1 << 31)) fprintf(f, "    Range: 0x%08x\n", sm->memerror.range);
-        break;
-
-      case sm_memarraymap:
-        fprintf(f, "  Memory Array Mapping: #%d\n", sm->any.handle);
-        fprintf(f, "    Memory Array: #%d\n", sm->memarraymap.array_handle);
-        fprintf(f, "    Partition Width: %u\n", sm->memarraymap.part_width);
-        if((sm->memarraymap.start_addr | sm->memarraymap.end_addr) >> 32) {
-          fprintf(f, "    Start Address: 0x%016"PRIx64"\n", sm->memarraymap.start_addr);
-          fprintf(f, "    End Address: 0x%016"PRIx64"\n", sm->memarraymap.end_addr);
-        }
-        else {
-          fprintf(f, "    Start Address: 0x%08x\n", (unsigned) sm->memarraymap.start_addr);
-          fprintf(f, "    End Address: 0x%08x\n", (unsigned) sm->memarraymap.end_addr);
-        }
-        break;
-
-      case sm_memdevicemap:
-        fprintf(f, "  Memory Device Mapping: #%d\n", sm->any.handle);
-        fprintf(f, "    Memory Device: #%d\n", sm->memdevicemap.memdevice_handle);
-        fprintf(f, "    Array Mapping: #%d\n", sm->memdevicemap.arraymap_handle);
-        if(sm->memdevicemap.row_pos != 0xff) fprintf(f, "    Row: %u\n", sm->memdevicemap.row_pos);
-        if(
-          !sm->memdevicemap.interleave_pos ||
-          sm->memdevicemap.interleave_pos != 0xff
-        ) {
-          fprintf(f, "    Interleave Pos: %u\n", sm->memdevicemap.interleave_pos);
-        }
-        if(
-          !sm->memdevicemap.interleave_depth ||
-          sm->memdevicemap.interleave_depth != 0xff
-        ) {
-          fprintf(f, "    Interleaved Depth: %u\n", sm->memdevicemap.interleave_depth);
-        }
-        if((sm->memdevicemap.start_addr | sm->memdevicemap.end_addr) >> 32) {
-          fprintf(f, "    Start Address: 0x%016"PRIx64"\n", sm->memdevicemap.start_addr);
-          fprintf(f, "    End Address: 0x%016"PRIx64"\n", sm->memdevicemap.end_addr);
-        }
-        else {
-          fprintf(f, "    Start Address: 0x%08x\n", (unsigned) sm->memdevicemap.start_addr);
-          fprintf(f, "    End Address: 0x%08x\n", (unsigned) sm->memdevicemap.end_addr);
-        }
-        break;
-
-      case sm_mouse:
-        fprintf(f, "  Pointing Device: #%d\n", sm->any.handle);
-        SMBIOS_PRINT_ID(mouse.mtype, "Type");
-        SMBIOS_PRINT_ID(mouse.interface, "Interface");
-        if(sm->mouse.buttons) fprintf(f, "    Buttons: %u\n", sm->mouse.buttons);
-        break;
-
-      case sm_secure:
-        fprintf(f, "  Hardware Security: #%d\n", sm->any.handle);
-        SMBIOS_PRINT_ID(secure.power, "Power-on Password");
-        SMBIOS_PRINT_ID(secure.keyboard, "Keyboard Password");
-        SMBIOS_PRINT_ID(secure.admin, "Admin Password");
-        SMBIOS_PRINT_ID(secure.reset, "Front Panel Reset");
-        break;
-
-      case sm_power:
-        fprintf(f, "  System Power Controls: #%d\n", sm->any.handle);
-        fprintf(f,
-          "    Next Power-on: %02x:%02x:%02x %02x/%02x\n",
-          sm->power.hour, sm->power.minute, sm->power.second,
-          sm->power.day, sm->power.month
-        );
-        break;
-
-      case sm_mem64error:
-        fprintf(f, "  64bit-Memory Error Info: #%d\n", sm->any.handle);
-        SMBIOS_PRINT_ID(mem64error.err_type, "Type");
-        SMBIOS_PRINT_ID(mem64error.granularity, "Granularity");
-        SMBIOS_PRINT_ID(mem64error.operation, "Operation");
-        if(sm->mem64error.syndrome) fprintf(f, "    Syndrome: 0x%08x\n", sm->mem64error.syndrome);
-        if(
-          sm->mem64error.array_addr != (1ll << 63) &&
-          sm->mem64error.array_addr != (1ll << 31)
-        ) {
-          fprintf(f, "    Mem Array Addr: 0x%016"PRIx64"\n", sm->mem64error.array_addr);
-        }
-        if(
-          sm->mem64error.device_addr != (1ll << 63) &&
-          sm->mem64error.device_addr != (1ll << 31)
-        ) {
-          fprintf(f, "    Mem Device Addr: 0x%016"PRIx64"\n", sm->mem64error.device_addr);
-        }
-        if(sm->mem64error.range != (1 << 31)) fprintf(f, "    Range: 0x%08x\n", sm->mem64error.range);
-        break;
-
-      case sm_end:
-        break;
-
-      default:
-        if(sm->any.type == sm_inactive) {
-          fprintf(f, "  Inactive Record: #%d\n", sm->any.handle);
-        }
-        else {
-          fprintf(f, "  Type %d Record: #%d\n", sm->any.type, sm->any.handle);
-        }
-        if(sm->any.data_len) {
-          for(i = 0; i < sm->any.data_len; i += 0x10) {
-            u = sm->any.data_len - i;
-            if(u > 0x10) u = 0x10;
-            s = NULL;
-            hexdump(&s, 0, u, sm->any.data + i);
-            fprintf(f, "    Data %02x: %s\n", i, s);
-            s = free_mem(s);
-          }
-        }
-        for(u = 1, sl = sm->any.strings; sl; sl = sl->next, u++) {
-          if(sl->str && *sl->str) fprintf(f, "    String %u: \"%s\"\n", u, sl->str);
-        }
-       break;
-    }
-  }
-}
-
diff --git a/src/hwinfo/src/hd/smbios.h b/src/hwinfo/src/hd/smbios.h
deleted file mode 100644 (file)
index 79d3392..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-hd_smbios_t *smbios_free(hd_smbios_t *sm);
-hd_smbios_t *smbios_add_entry(hd_smbios_t **sm, hd_smbios_t *new_sm);
-void smbios_dump(hd_data_t *hd_data, FILE *f);
-void smbios_parse(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/sys.c b/src/hwinfo/src/hd/sys.c
deleted file mode 100644 (file)
index ad5f506..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-#define _GNU_SOURCE            /* we want memmem() */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <signal.h>
-#include <ctype.h>
-
-#include <sys/types.h>
-#include <sys/wait.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "sys.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * general system info
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#if defined(__i386__)
-static void sigsegv_handler(int signum);
-static void chk_vmware(hd_data_t *hd_data, sys_info_t *st);
-#endif
-
-#if defined(__i386__) || defined(__x86_64__)
-static int is_txt(char c);
-static int is_decimal(char c);
-static int txt_len(char *s);
-static int decimal_len(char *s);
-static int chk_vaio(hd_data_t *hd_data, sys_info_t *st);
-#ifdef UCLIBC
-void *memmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen);
-#endif
-#endif
-
-void hd_scan_sys(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  sys_info_t *st;
-#if defined(__PPC__) || defined(__sparc__)
-  char buf0[80], *s, *t;
-  str_list_t *sl;
-#endif
-
-  if(!hd_probe_feature(hd_data, pr_sys)) return;
-
-  hd_data->module = mod_sys;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "cpu");
-
-  hd = add_hd_entry(hd_data, __LINE__, 0);
-  hd->base_class.id = bc_internal;
-  hd->sub_class.id = sc_int_sys;
-  hd->detail = new_mem(sizeof *hd->detail);
-  hd->detail->type = hd_detail_sys;
-  hd->detail->sys.data = st = new_mem(sizeof *st);
-
-  if(!hd_data->cpu) {
-    hd_data->cpu = read_file(PROC_CPUINFO, 0, 0);
-  }
-
-#ifdef __PPC__
-  for(sl = hd_data->cpu; sl; sl = sl->next) {
-    if(sscanf(sl->str, "motherboard : %79[^\n]", buf0) == 1) {
-      if((s = strstr(buf0, "MacRISC"))) {
-        for(t = s + sizeof "MacRISC" - 1; isalnum(*t); t++);
-        *t = 0;
-        st->system_type = new_str(s);
-        hd_data->flags.no_parport = 1;
-      }
-    }
-    if(sscanf(sl->str, "machine : %79[^\n]", buf0) == 1) {
-      if(strstr(buf0, "PReP")) {
-        st->system_type = new_str("PReP");
-      }
-      else if(strstr(buf0, "CHRP")) {
-        st->system_type = new_str(/* is_64 ? "CHRP64" : */ "CHRP");
-      }
-      else if(strstr(buf0, "iSeries")) {
-        st->system_type = new_str("iSeries");
-        hd_data->flags.iseries = 1;
-      }
-      if(strstr(buf0, "PowerBook2,")) {
-        st->model = new_str("iBook");
-      }
-      else if(strstr(buf0, "PowerBook")) {
-        st->model = new_str("PowerBook");
-      }
-    }
-    if(sscanf(sl->str, "pmac-generation : %79[^\n]", buf0) == 1) {
-      st->generation = new_str(buf0);
-    }
-  }
-#endif /* __PPC__ */
-
-#ifdef __sparc__
-  for(sl = hd_data->cpu; sl; sl = sl->next) {
-    if(sscanf(sl->str, "type : %79[^\n]", buf0) == 1) {
-      st->system_type = new_str(buf0);
-    }
-  }
-#endif
-
-#if defined(__i386__) || defined(__x86_64__)
-  chk_vaio(hd_data, st);
-#endif
-
-#if defined(__i386__)
-  chk_vmware(hd_data, st);
-#endif
-
-  if(st->vendor) hd->vendor.name = new_str(st->vendor);
-  if(st->model) hd->device.name = new_str(st->model);
-  if(st->serial) hd->serial = new_str(st->serial);
-}
-
-#if defined(__i386__)
-void sigsegv_handler(int signum) { exit(77); }
-
-void chk_vmware(hd_data_t *hd_data, sys_info_t *st)
-{
-  static int is_vmware = -1;
-  int child, status;
-
-  /* do the check only once */
-  if(is_vmware < 0) {
-
-    child = fork();
-
-    if(child == 0) {
-      signal(SIGSEGV, sigsegv_handler);
-
-      asm(
-        "push %ebx\n"
-        "\tpush %edx\n"
-        "\tpush %eax\n"
-        "\tpush %ecx\n"
-        "\tmov $0x564d5868,%eax\n"
-        "\tmov $0xa,%ecx\n"
-        "\tmov $0x5658,%edx\n"
-        "\tin (%dx),%eax\n"
-        "\tpop %ecx\n"
-        "\tpop %eax\n"
-        "\tpop %edx\n"
-        "\tpop %ebx\n"
-      );
-
-      _exit(66);
-    }
-    else {
-      if(waitpid(child, &status, 0) == child) {
-        status = WEXITSTATUS(status);
-        if(status == 66) is_vmware = 1;
-        if(status == 77) is_vmware = 0;
-      }
-    }
-
-    ADD2LOG("  vmware check: %d\n", is_vmware);
-  }
-
-  if(is_vmware == 1) {
-    st->model = new_str("VMWare");
-  }
-
-  hd_data->in_vmware = is_vmware;
-}
-
-#endif /* __i386__ */
-
-
-#if defined(__i386__) || defined(__x86_64__)
-int is_txt(char c)
-{
-  if(c < ' ' || c == 0x7f) return 0;
-
-  return 1;
-}
-
-int is_decimal(char c)
-{
-  if(c < '0' || c > '9') return 0;
-
-  return 1;
-}
-
-int txt_len(char *s)
-{
-  int i;
-
-  for(i = 0; i < 0x100; i++) {
-    if(!is_txt(s[i])) break;
-  }
-
-  return i;
-}
-
-int decimal_len(char *s)
-{
-  int i;
-
-  for(i = 0; i < 0x100; i++) {
-    if(!is_decimal(s[i])) break;
-  }
-
-  return i;
-}
-
-int chk_vaio(hd_data_t *hd_data, sys_info_t *st)
-{
-  int i;
-  unsigned char *data, *s, *s0, *s1;
-
-  if(!hd_data->bios_rom.data) return 0;
-
-  data = hd_data->bios_rom.data + 0xe8000 - hd_data->bios_rom.start;
-
-  if(!(s = memmem(data, 0x10000, "Sony Corp", sizeof "Sony Corp" - 1))) return 0;
-
-  if((i = txt_len(s))) st->vendor = canon_str(s, i);
-  s += i;
-
-  if(!(s = memmem(s, 0x1000, "PCG-", sizeof "PCG-" - 1))) return 0;
-
-  if((i = txt_len(s))) {
-    st->model = canon_str(s, i);
-  }
-  s += i;
-
-  ADD2LOG("  vaio: %s\n", st->model);
-
-  for(i = 0; i < 0x1000; i++) {
-    if(is_decimal(s[i]) && txt_len(s + i) >= 10 && decimal_len(s + i) >= 5) {
-      st->serial = canon_str(s + i, txt_len(s + i));
-      break;
-    }
-  }
-
-  if(st->model) {
-    s0 = strrchr(st->model, '(');
-    s1 = strrchr(st->model, ')');
-
-    if(s0 && s1 && s1 - s0 >= 3 && s1[1] == 0) {
-      st->lang = canon_str(s0 + 1, s1 - s0 - 1);
-      for(s = st->lang; *s; s++) {
-        if(*s >= 'A' && *s <= 'Z') *s += 'a' - 'A';
-      }
-      if(!strcmp(st->lang, "uc")) strcpy(st->lang, "en");
-      *s0 = 0; /* cut the model entry */
-    }
-  }
-
-  return st->model ? 1 : 0;
-}
-#endif /* __i386__ || __x86_64__ */
-
diff --git a/src/hwinfo/src/hd/sys.h b/src/hwinfo/src/hd/sys.h
deleted file mode 100644 (file)
index fca3f69..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_sys(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/usb.c b/src/hwinfo/src/hd/usb.c
deleted file mode 100644 (file)
index 11a48e9..0000000
+++ /dev/null
@@ -1,780 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "hddb.h"
-#include "usb.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * usb
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#define IOCNR_GET_DEVICE_ID             1
-#define IOCNR_GET_BUS_ADDRESS           5
-#define IOCNR_GET_VID_PID               6
-
-/* Get device_id string: */
-#define LPIOC_GET_DEVICE_ID(len) _IOC(_IOC_READ, 'P', IOCNR_GET_DEVICE_ID, len)
-/* Get two-int array: [0]=bus number, [1]=device address: */
-#define LPIOC_GET_BUS_ADDRESS(len) _IOC(_IOC_READ, 'P', IOCNR_GET_BUS_ADDRESS, len)
-/* Get two-int array: [0]=vendor ID, [1]=product ID: */
-#define LPIOC_GET_VID_PID(len) _IOC(_IOC_READ, 'P', IOCNR_GET_VID_PID, len)
-
-
-static void get_usb_devs(hd_data_t *hd_data);
-static void set_class_entries(hd_data_t *hd_data, hd_t *hd, usb_t *usb);
-static void get_input_devs(hd_data_t *hd_data);
-static void get_printer_devs(hd_data_t *hd_data);
-static void read_usb_lp(hd_data_t *hd_data, hd_t *hd);
-static void get_serial_devs(hd_data_t *hd_data);
-
-void hd_scan_sysfs_usb(hd_data_t *hd_data)
-{
-  if(!hd_probe_feature(hd_data, pr_usb)) return;
-
-  hd_data->module = mod_usb;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-  hd_data->proc_usb = free_str_list(hd_data->proc_usb);
-  hd_data->usb = NULL;
-
-  PROGRESS(1, 0, "sysfs drivers");
-  
-  hd_sysfs_driver_list(hd_data);
-
-  PROGRESS(2, 0, "usb");
-
-  get_usb_devs(hd_data);
-
-  PROGRESS(3, 1, "joydev mod");
-  load_module(hd_data, "joydev");
-    
-  PROGRESS(3, 2, "evdev mod");
-  load_module(hd_data, "evdev");
-
-  PROGRESS(3, 3, "input");
-  get_input_devs(hd_data);
-
-  PROGRESS(3, 4, "lp");
-  get_printer_devs(hd_data);
-
-  PROGRESS(3, 5, "serial");
-  get_serial_devs(hd_data);
-
-}
-
-
-void get_usb_devs(hd_data_t *hd_data)
-{
-  uint64_t ul0;
-  unsigned u1, u2, u3;
-  hd_t *hd, *hd1;
-  usb_t *usb;
-  str_list_t *sl, *usb_devs = NULL;
-  char *s, *s1, *t;
-  hd_res_t *res;
-  size_t l;
-
-  struct sysfs_bus *sf_bus;
-  struct dlist *sf_dev_list;
-  struct sysfs_device *sf_dev;
-  struct sysfs_device *sf_dev_2;
-
-  sf_bus = sysfs_open_bus("usb");
-
-  if(!sf_bus) {
-    ADD2LOG("sysfs: no such bus: usb\n");
-    return;
-  }
-
-  sf_dev_list = sysfs_get_bus_devices(sf_bus);
-
-  if(sf_dev_list) dlist_for_each_data(sf_dev_list, sf_dev, struct sysfs_device) {
-    if(hd_attr_uint(sysfs_get_device_attr(sf_dev, "bNumInterfaces"), &ul0, 0)) {
-      add_str_list(&usb_devs, sf_dev->path);
-      ADD2LOG("  usb dev: %s\n", hd_sysfs_id(sf_dev->path));
-    }
-  }
-
-  if(sf_dev_list) dlist_for_each_data(sf_dev_list, sf_dev, struct sysfs_device) {
-    ADD2LOG(
-      "  usb device: name = %s, bus_id = %s, bus = %s\n    path = %s\n",
-      sf_dev->name,
-      sf_dev->bus_id,
-      sf_dev->bus,
-      hd_sysfs_id(sf_dev->path)
-    );
-
-    if(
-      hd_attr_uint(sysfs_get_device_attr(sf_dev, "bInterfaceNumber"), &ul0, 16)
-    ) {
-      hd = add_hd_entry(hd_data, __LINE__, 0);
-
-      hd->detail = new_mem(sizeof *hd->detail);
-      hd->detail->type = hd_detail_usb;
-      hd->detail->usb.data = usb = new_mem(sizeof *usb);
-
-      hd->sysfs_id = new_str(hd_sysfs_id(sf_dev->path));
-      hd->sysfs_bus_id = new_str(sf_dev->bus_id);
-
-      hd->bus.id = bus_usb;
-      hd->func = ul0;
-
-      usb->ifdescr = ul0;
-
-      ADD2LOG("    bInterfaceNumber = %u\n", hd->func);
-
-      if(hd_attr_uint(sysfs_get_device_attr(sf_dev, "bInterfaceClass"), &ul0, 16)) {
-        usb->i_cls = ul0;
-        ADD2LOG("    bInterfaceClass = %u\n", usb->i_cls);
-      }
-
-      if(hd_attr_uint(sysfs_get_device_attr(sf_dev, "bInterfaceSubClass"), &ul0, 16)) {
-        usb->i_sub = ul0;
-        ADD2LOG("    bInterfaceSubClass = %u\n", usb->i_sub);
-      }
-
-      if(hd_attr_uint(sysfs_get_device_attr(sf_dev, "bInterfaceProtocol"), &ul0, 16)) {
-        usb->i_prot = ul0;
-        ADD2LOG("    bInterfaceProtocol = %u\n", usb->i_prot);
-      }
-
-      /* device has longest matching sysfs id */
-      u2 = strlen(sf_dev->path);
-      s = NULL;
-      for(u3 = 0, sl = usb_devs; sl; sl = sl->next) {
-        u1 = strlen(sl->str);
-        if(u1 > u3 && u1 <= u2 && !strncmp(sf_dev->path, sl->str, u1)) {
-          u3 = u1;
-          s = sl->str;
-        }
-      }
-
-      if(s) {
-        ADD2LOG("    if: %s @ %s\n", hd->sysfs_bus_id, hd_sysfs_id(s));
-        sf_dev_2 = sysfs_open_device_path(s);
-        if(sf_dev_2) {
-
-          if(hd_attr_uint(sysfs_get_device_attr(sf_dev_2, "bDeviceClass"), &ul0, 16)) {
-            usb->d_cls = ul0;
-            ADD2LOG("    bDeviceClass = %u\n", usb->d_cls);
-          }
-
-          if(hd_attr_uint(sysfs_get_device_attr(sf_dev_2, "bDeviceSubClass"), &ul0, 16)) {
-            usb->d_sub = ul0;
-            ADD2LOG("    bDeviceSubClass = %u\n", usb->d_sub);
-          }
-
-          if(hd_attr_uint(sysfs_get_device_attr(sf_dev_2, "bDeviceProtocol"), &ul0, 16)) {
-            usb->d_prot = ul0;
-            ADD2LOG("    bDeviceProtocol = %u\n", usb->d_prot);
-          }
-
-          if(hd_attr_uint(sysfs_get_device_attr(sf_dev_2, "idVendor"), &ul0, 16)) {
-            usb->vendor = ul0;
-            ADD2LOG("    idVendor = 0x%04x\n", usb->vendor);
-          }
-
-          if(hd_attr_uint(sysfs_get_device_attr(sf_dev_2, "idProduct"), &ul0, 16)) {
-            usb->device = ul0;
-            ADD2LOG("    idProduct = 0x%04x\n", usb->device);
-          }
-
-          if((s = hd_attr_str(sysfs_get_device_attr(sf_dev_2, "manufacturer")))) {
-            usb->manufact = canon_str(s, strlen(s));
-            ADD2LOG("    manufacturer = \"%s\"\n", usb->manufact);
-          }
-
-          if((s = hd_attr_str(sysfs_get_device_attr(sf_dev_2, "product")))) {
-            usb->product = canon_str(s, strlen(s));
-            ADD2LOG("    product = \"%s\"\n", usb->product);
-          }
-
-          if((s = hd_attr_str(sysfs_get_device_attr(sf_dev_2, "serial")))) {
-            usb->serial = canon_str(s, strlen(s));
-            ADD2LOG("    serial = \"%s\"\n", usb->serial);
-          }
-
-          if(hd_attr_uint(sysfs_get_device_attr(sf_dev_2, "bcdDevice"), &ul0, 16)) {
-            usb->rev = ul0;
-            ADD2LOG("    bcdDevice = %04x\n", usb->rev);
-          }
-
-          if((s = hd_attr_str(sysfs_get_device_attr(sf_dev_2, "speed")))) {
-            s = canon_str(s, strlen(s));
-            if(strcmp(s, "1.5")) usb->speed = 15*100000;
-            else if(strcmp(s, "12")) usb->speed = 12*1000000;
-            else if(strcmp(s, "240")) usb->speed = 240*1000000;
-            ADD2LOG("    speed = \"%s\"\n", s);
-            s = free_mem(s);
-          }
-
-          sysfs_close_device(sf_dev_2);
-        }
-      }
-
-      if(usb->vendor || usb->device) {
-        hd->vendor.id = MAKE_ID(TAG_USB, usb->vendor);
-        hd->device.id = MAKE_ID(TAG_USB, usb->device);
-      }
-
-      if(usb->manufact) hd->vendor.name = new_str(usb->manufact);
-      if(usb->product) hd->device.name = new_str(usb->product);
-      if(usb->serial) hd->serial = new_str(usb->serial);
-
-      if(usb->rev) str_printf(&hd->revision.name, 0, "%x.%02x", usb->rev >> 8, usb->rev & 0xff);
-
-      if(usb->speed) {
-        res = add_res_entry(&hd->res, new_mem(sizeof *res));
-        res->baud.type = res_baud;
-        res->baud.speed = usb->speed;
-      }
-
-      s = hd_sysfs_find_driver(hd_data, hd->sysfs_id, 1);
-      if(s) add_str_list(&hd->drivers, s);
-
-      set_class_entries(hd_data, hd, usb);
-
-      if(!hd_data->scanner_db) {
-        hd_data->scanner_db = hd_module_list(hd_data, 1);
-      }
-
-      if(
-        hd->drivers &&
-        search_str_list(hd_data->scanner_db, hd->drivers->str)
-      ) {
-        hd->base_class.id = bc_scanner;
-      }
-
-      // ###### FIXME
-      if(hd->base_class.id == bc_modem) {
-        hd->unix_dev_name = new_str("/dev/ttyACM0");
-      }
-
-    }
-  }
-
-  sysfs_close_bus(sf_bus);
-
-  /* connect usb devices to each other */
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(hd->module == hd_data->module && hd->sysfs_id) {
-
-      s = new_str(hd->sysfs_id);
-      t = strrchr(s, '/');
-      if(t) *t = 0;
-
-      /* parent has longest matching sysfs id */
-      u2 = strlen(s);
-      for(u3 = 0, hd1 = hd_data->hd; hd1; hd1 = hd1->next) {
-        if(hd1->sysfs_id) {
-          s1 = new_str(hd1->sysfs_id);
-
-          if(hd1->module == hd_data->module) {
-            t = strrchr(s1, ':');
-            if(t) *t = 0;
-            l = strlen(s1);
-            if(l > 2 && s1[l-2] == '-' && s1[l-1] == '0') {
-              /* root hub */
-              s1[l-2] = 0 ;
-            }
-          }
-
-          u1 = strlen(s1);
-          if(u1 > u3 && u1 <= u2 && !strncmp(s, s1, u1)) {
-            u3 = u1;
-            hd->attached_to = hd1->idx;
-          }
-
-          s1 = free_mem(s1);
-        }
-      }
-
-      s = free_mem(s);
-    }
-  }
-
-  /* remove some entries */
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->module == hd_data->module &&
-      hd->sysfs_id &&
-      !hd->tag.remove
-    ) {
-
-      s = new_str(hd->sysfs_id);
-      t = strrchr(s, ':');
-      if(t) *t = 0;
-
-      for(hd1 = hd_data->hd; hd1; hd1 = hd1->next) {
-        if(
-          hd1 != hd &&
-          hd1->module == hd_data->module &&
-          hd1->sysfs_id &&
-          !hd1->tag.remove &&
-          hd1->base_class.id == hd->base_class.id
-        ) {
-
-          s1 = new_str(hd1->sysfs_id);
-          t = strrchr(s1, ':');
-          if(t) *t = 0;
-
-          /* same usb device */
-          if(!strcmp(s, s1)) {
-            hd1->tag.remove = 1;
-            ADD2LOG("removed: %s\n", hd1->sysfs_id);
-          }
-
-          s1 = free_mem(s1);
-        }
-      }
-
-      s = free_mem(s);
-    }
-  }
-
-  remove_tagged_hd_entries(hd_data);
-
-
-}
-
-
-void set_class_entries(hd_data_t *hd_data, hd_t *hd, usb_t *usb)
-{
-  int cls, sub, prot;
-  unsigned u;
-
-  if(usb->d_cls) {
-    cls = usb->d_cls; sub = usb->d_sub; prot = usb->d_prot;
-  }
-  else {
-    cls = usb->i_cls; sub = usb->i_sub; prot = usb->i_prot;
-  }
-
-  switch(cls) {
-    case 2:
-      if(usb->i_sub == 6 && usb->i_prot == 0) {
-        hd->base_class.id = bc_network;
-        hd->sub_class.id = 0x91;
-      }
-      else if(usb->i_sub == 2 && usb->i_prot >= 1 && usb->i_prot <= 6) {
-        hd->base_class.id = bc_modem;
-      }
-      break;
-
-    case 3:
-      if(sub == 1 && prot == 1) {
-        hd->base_class.id = bc_keyboard;
-        hd->sub_class.id = sc_keyboard_kbd;
-        break;
-      }
-      if(sub == 1 && prot == 2) {
-        if(!(
-          (usb->vendor == 0x056a && usb->device == 0x0022)     /* Wacom Tablet */
-//          || (usb->vendor == 0x08ca && usb->device == 0x0020)        /* AIPTEK APT-6000U tablet */
-        )) {
-          hd->base_class.id = bc_mouse;
-          hd->sub_class.id = sc_mou_usb;
-          hd->compat_vendor.id = MAKE_ID(TAG_SPECIAL, 0x0200);
-          hd->compat_device.id = MAKE_ID(TAG_SPECIAL, 0x001);
-        }
-        break;
-      }
-      break;
-
-    case 6:
-      if(sub == 1 && prot == 1) { /* PTP camera */
-        hd->base_class.id = bc_camera;
-        hd->sub_class.id = sc_camera_digital;
-        break;
-      }
-      break;
-
-    case 7:
-      hd->base_class.id = bc_printer;
-      break;
-
-    case 8:
-      hd->base_class.id = bc_storage_device;
-      switch(sub) {
-        case 1:                /* flash devices & removable media */
-        case 5:
-        case 6:
-          hd->sub_class.id = sc_sdev_disk;
-          break;
-        case 2:
-          hd->sub_class.id = sc_sdev_cdrom;
-          break;
-        case 3:
-          hd->sub_class.id = sc_sdev_tape;
-          break;
-        case 4:
-          hd->sub_class.id = sc_sdev_floppy;
-          break;
-        default:
-          hd->sub_class.id = sc_sdev_other;
-      }
-      break;
-
-    case 9:
-      hd->base_class.id = bc_hub;
-      break;
-
-    case 0xe0:
-      if(sub == 1 && prot == 1) {
-        hd->base_class.id = bc_bluetooth;
-        hd->sub_class.id = 0;
-      }
-      break;
-
-    case 0xff:
-      /* hp psc 2100, 2200, 2150, officejet 6100 */
-      if(
-        sub == 0xcc &&
-        (
-          usb->vendor == 0x03f0 &&
-          (
-            usb->device == 0x2811 ||
-            usb->device == 0x2911 ||
-            usb->device == 0x2a11 ||
-            usb->device == 0x2d11
-          )
-        )
-      ) {
-        hd->base_class.id = bc_scanner;
-        hd->sub_class.id = 1;
-      }
-      break;
-  }
-
-  if((u = device_class(hd_data, hd->vendor.id, hd->device.id))) {
-    hd->base_class.id = u >> 8;
-    hd->sub_class.id = u & 0xff;
-  }
-
-  /* FIXME: hack for bt isdn box */
-  if(
-    hd->vendor.id == MAKE_ID(TAG_USB, 0x057c) &&
-    hd->device.id == MAKE_ID(TAG_USB, 0x2200)
-  ) {
-    hd_set_hw_class(hd, hw_bluetooth);
-  }
-
-}
-
-
-void get_input_devs(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  char *s, *t;
-  hd_dev_num_t dev_num;
-  unsigned u1, u2;
-
-  struct sysfs_class *sf_class;
-  struct sysfs_class_device *sf_cdev;
-  struct sysfs_device *sf_dev;
-  struct dlist *sf_cdev_list;
-
-  sf_class = sysfs_open_class("input");
-
-  if(!sf_class) {
-    ADD2LOG("sysfs: no such class: input\n");
-    return;
-  }
-
-  sf_cdev_list = sysfs_get_class_devices(sf_class);
-  if(sf_cdev_list) dlist_for_each_data(sf_cdev_list, sf_cdev, struct sysfs_class_device) {
-    ADD2LOG(
-      "  input: name = %s, path = %s\n",
-      sf_cdev->name,
-      hd_sysfs_id(sf_cdev->path)
-    );
-
-    if((s = hd_attr_str(sysfs_get_classdev_attr(sf_cdev, "dev")))) {
-      if(sscanf(s, "%u:%u", &u1, &u2) == 2) {
-        dev_num.type = 'c';
-        dev_num.major = u1;
-        dev_num.minor = u2;
-        dev_num.range = 1;
-      }
-      ADD2LOG("    dev = %u:%u\n", u1, u2);
-    }
-
-    sf_dev = sysfs_get_classdev_device(sf_cdev);
-    if(sf_dev) {
-      s = hd_sysfs_id(sf_dev->path);
-
-      ADD2LOG(
-        "    input device: bus = %s, bus_id = %s driver = %s\n      path = %s\n",
-        sf_dev->bus,
-        sf_dev->bus_id,
-        sf_dev->driver_name,
-        s
-      );
-
-      for(hd = hd_data->hd; hd; hd = hd->next) {
-        if(
-          hd->module == hd_data->module &&
-          hd->sysfs_id &&
-          s &&
-          !strcmp(s, hd->sysfs_id)
-        ) {
-          t = NULL;
-          str_printf(&t, 0, "/dev/input/%s", sf_cdev->name);
-
-          if(strncmp(sf_cdev->name, "mouse", sizeof "mouse" - 1)) {
-            hd->unix_dev_name = t;
-            hd->unix_dev_num = dev_num;
-          }
-          else {
-            hd->unix_dev_name2 = t;
-            hd->unix_dev_num2 = dev_num;
-
-            dev_num.major = 13;
-            dev_num.minor = 63;
-            hd->unix_dev_name = new_str(DEV_MICE);
-            hd->unix_dev_num = dev_num;
-          }
-        }
-      }
-    }
-  }
-
-  sysfs_close_class(sf_class);
-}
-
-
-void get_printer_devs(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  char *s, *t;
-  hd_dev_num_t dev_num;
-  unsigned u1, u2;
-
-  struct sysfs_class *sf_class;
-  struct sysfs_class_device *sf_cdev;
-  struct sysfs_device *sf_dev;
-  struct dlist *sf_cdev_list;
-
-  sf_class = sysfs_open_class("usb");
-
-  if(!sf_class) {
-    ADD2LOG("sysfs: no such class: usb\n");
-    return;
-  }
-
-  sf_cdev_list = sysfs_get_class_devices(sf_class);
-  if(sf_cdev_list) dlist_for_each_data(sf_cdev_list, sf_cdev, struct sysfs_class_device) {
-    if(strncmp(sf_cdev->name, "lp", 2)) continue;
-
-    ADD2LOG(
-      "  usb: name = %s, path = %s\n",
-      sf_cdev->name,
-      hd_sysfs_id(sf_cdev->path)
-    );
-
-    if((s = hd_attr_str(sysfs_get_classdev_attr(sf_cdev, "dev")))) {
-      if(sscanf(s, "%u:%u", &u1, &u2) == 2) {
-        dev_num.type = 'c';
-        dev_num.major = u1;
-        dev_num.minor = u2;
-        dev_num.range = 1;
-      }
-      ADD2LOG("    dev = %u:%u\n", u1, u2);
-    }
-
-    sf_dev = sysfs_get_classdev_device(sf_cdev);
-    if(sf_dev) {
-      s = hd_sysfs_id(sf_dev->path);
-
-      ADD2LOG(
-        "    usb device: bus = %s, bus_id = %s driver = %s\n      path = %s\n",
-        sf_dev->bus,
-        sf_dev->bus_id,
-        sf_dev->driver_name,
-        s
-      );
-
-      for(hd = hd_data->hd; hd; hd = hd->next) {
-        if(
-          hd->module == hd_data->module &&
-          hd->sysfs_id &&
-          s &&
-          !strcmp(s, hd->sysfs_id)
-        ) {
-          t = NULL;
-          str_printf(&t, 0, "/dev/usb/%s", sf_cdev->name);
-
-          hd->unix_dev_name = t;
-          hd->unix_dev_num = dev_num;
-
-          read_usb_lp(hd_data, hd);
-        }
-      }
-    }
-  }
-
-  sysfs_close_class(sf_class);
-}
-
-
-#define MATCH_FIELD(field, var) \
-  if(!strncasecmp(sl->str, field, sizeof field - 1)) var = sl->str + sizeof field - 1
-
-/*
- * assign /dev/usb/lp* to usb printers.
- */
-void read_usb_lp(hd_data_t *hd_data, hd_t *hd)
-{
-  char *s;
-  char buf[1024];
-  int fd, two_ints[2];
-  unsigned bus;
-  str_list_t *sl0, *sl;
-  char *vend, *prod, *serial, *descr;
-
-  if((fd = open(hd->unix_dev_name, O_RDWR)) < 0) return;
-
-  if(ioctl(fd, LPIOC_GET_BUS_ADDRESS(sizeof two_ints), two_ints) == -1) {
-    close(fd);
-    return;
-  }
-  
-  ADD2LOG("  usb/lp: bus = %d, dev_nr = %d\n", two_ints[0], two_ints[1]);
-  bus = ((two_ints[0] & 0xff) << 8) + (two_ints[1] & 0xff);
-
-  if(ioctl(fd, LPIOC_GET_VID_PID(sizeof two_ints), two_ints) != -1) {
-    /* just for the record */
-    ADD2LOG("  usb/lp: vend = 0x%04x, prod = 0x%04x\n", two_ints[0], two_ints[1]);
-  }
-
-  memset(buf, 0, sizeof buf);
-  if(!ioctl(fd, LPIOC_GET_DEVICE_ID(sizeof buf), buf)) {
-    buf[sizeof buf - 1] = 0;
-    s = canon_str(buf + 2, sizeof buf - 3);
-    ADD2LOG("  usb/lp: \"%s\"\n", s);
-    sl0 = hd_split(';', s);
-    free_mem(s);
-    vend = prod = serial = descr = NULL;
-    for(sl = sl0; sl; sl = sl->next) {
-      MATCH_FIELD("MFG:", vend);
-      MATCH_FIELD("MANUFACTURER:", vend);
-      MATCH_FIELD("MDL:", prod);
-      MATCH_FIELD("MODEL:", prod);
-      MATCH_FIELD("DES:", descr);
-      MATCH_FIELD("DESCRIPTION:", descr);
-      MATCH_FIELD("SERN:", serial);
-      MATCH_FIELD("SERIALNUMBER:", serial);
-    }
-    ADD2LOG(
-      "  usb/lp: vend = %s, prod = %s, descr = %s, serial = %s\n",
-      vend ?: "", prod ?: "", descr ?: "", serial ?: ""
-    );
-    if(descr) {
-      str_printf(&hd->model, 0, "%s", descr);
-    }
-    if(vend && prod) {
-      str_printf(&hd->sub_vendor.name, 0, "%s", vend);
-      str_printf(&hd->sub_device.name, 0, "%s", prod);
-    }
-    if(serial && !hd->serial) {
-      hd->serial = new_str(serial);
-    }
-
-    free_str_list(sl0);
-  }
-
-  close(fd);
-}
-#undef MATCH_FIELD
-
-
-void get_serial_devs(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  char *s, *t;
-  hd_dev_num_t dev_num;
-  unsigned u1, u2;
-
-  struct sysfs_class *sf_class;
-  struct sysfs_class_device *sf_cdev;
-  struct sysfs_device *sf_dev;
-  struct dlist *sf_cdev_list;
-
-  sf_class = sysfs_open_class("tty");
-
-  if(!sf_class) {
-    ADD2LOG("sysfs: no such class: tty\n");
-    return;
-  }
-
-  sf_cdev_list = sysfs_get_class_devices(sf_class);
-  if(sf_cdev_list) dlist_for_each_data(sf_cdev_list, sf_cdev, struct sysfs_class_device) {
-    if(strncmp(sf_cdev->name, "ttyUSB", 6)) continue;
-
-    ADD2LOG(
-      "  usb: name = %s, path = %s\n",
-      sf_cdev->name,
-      hd_sysfs_id(sf_cdev->path)
-    );
-
-    if((s = hd_attr_str(sysfs_get_classdev_attr(sf_cdev, "dev")))) {
-      if(sscanf(s, "%u:%u", &u1, &u2) == 2) {
-        dev_num.type = 'c';
-        dev_num.major = u1;
-        dev_num.minor = u2;
-        dev_num.range = 1;
-      }
-      ADD2LOG("    dev = %u:%u\n", u1, u2);
-    }
-
-    sf_dev = sysfs_get_classdev_device(sf_cdev);
-    if(sf_dev) {
-      s = hd_sysfs_id(sf_dev->path);
-
-      if((t = strrchr(s, '/')) && !strncmp(t + 1, "ttyUSB", sizeof "ttyUSB" - 1)) *t =0;
-
-      ADD2LOG(
-        "    usb device: bus = %s, bus_id = %s driver = %s\n      path = %s\n",
-        sf_dev->bus,
-        sf_dev->bus_id,
-        sf_dev->driver_name,
-        s
-      );
-
-      for(hd = hd_data->hd; hd; hd = hd->next) {
-        if(
-          hd->module == hd_data->module &&
-          hd->sysfs_id &&
-          s &&
-          !strcmp(s, hd->sysfs_id)
-        ) {
-          t = NULL;
-          str_printf(&t, 0, "/dev/%s", sf_cdev->name);
-
-          hd->unix_dev_name = t;
-          hd->unix_dev_num = dev_num;
-
-          hd->base_class.id = bc_comm;
-          hd->sub_class.id = sc_com_ser;
-          hd->prog_if.id = 0x80;
-        }
-      }
-    }
-  }
-
-  sysfs_close_class(sf_class);
-}
-
-
diff --git a/src/hwinfo/src/hd/usb.h b/src/hwinfo/src/hd/usb.h
deleted file mode 100644 (file)
index 9d35423..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_sysfs_usb(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/version.h b/src/hwinfo/src/hd/version.h
deleted file mode 100644 (file)
index 99c9034..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#define HD_VERSION_STRING "10.16"
diff --git a/src/hwinfo/src/hd/veth.c b/src/hwinfo/src/hd/veth.c
deleted file mode 100644 (file)
index facef77..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <dirent.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "veth.h"
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * iSeries veth devices
- *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- */
-
-#if defined(__PPC__)
-
-void hd_scan_veth(hd_data_t *hd_data)
-{
-  unsigned u;
-  hd_t *hd;
-  DIR *dir;
-  struct dirent *de;
-
-  if(!hd_probe_feature(hd_data, pr_veth)) return;
-
-  hd_data->module = mod_veth;
-
-  /* some clean-up */
-  remove_hd_entries(hd_data);
-
-  PROGRESS(1, 0, "read data");
-
-  if((dir = opendir(PROC_ISERIES_VETH))) {
-    while((de = readdir(dir))) {
-      if(sscanf(de->d_name, "veth%u", &u) == 1) {
-        hd = add_hd_entry(hd_data, __LINE__, 0);
-        hd->base_class.id = bc_network;
-        hd->slot = u;
-        hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x6001);  // IBM
-        hd->device.id = MAKE_ID(TAG_SPECIAL, 0x1000);
-        str_printf(&hd->device.name, 0, "Virtual Ethernet card %d", hd->slot);
-      }
-    }
-    closedir(dir);
-    return;
-  }
-  if((dir = opendir(PROC_ISERIES))) {
-    hd = add_hd_entry(hd_data, __LINE__, 0);
-    hd->base_class.id = bc_network;
-    hd->slot = 0;
-    hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x6001);      // IBM
-    hd->device.id = MAKE_ID(TAG_SPECIAL, 0x1000);
-    str_printf(&hd->device.name, 0, "Virtual Ethernet card %d", hd->slot);
-  }
-
-}
-
-#endif /* __PPC__ */
diff --git a/src/hwinfo/src/hd/veth.h b/src/hwinfo/src/hd/veth.h
deleted file mode 100644 (file)
index 8928941..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_veth(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/hd/wlan.c b/src/hwinfo/src/hd/wlan.c
deleted file mode 100644 (file)
index d327c8d..0000000
+++ /dev/null
@@ -1,1041 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/socket.h>
-#include <sys/ioctl.h>
-#include <linux/wireless.h>
-#include <net/ethernet.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "wlan.h"
-
-#ifndef LIBHD_TINY
-
-#define AUTH_ALG_OPEN_SYSTEM    0x01
-#define AUTH_ALG_SHARED_KEY     0x02
-#define AUTH_ALG_LEAP           0x04
-
-typedef enum { WPA_ALG_NONE, WPA_ALG_WEP, WPA_ALG_TKIP, WPA_ALG_CCMP } wpa_alg;
-typedef uint8_t u8;
-typedef uint16_t u16;
-typedef uint32_t u32;
-
-struct wpa_driver_ops {
-  int (*set_wpa)(const char *ifnmae, int enabled);
-  int (*set_auth_alg)(const char *ifname, int auth_alg);
-  int (*set_key)(const char *ifname, wpa_alg alg, unsigned char *addr,
-                int key_idx, int set_tx, u8 *seq, size_t seq_len,
-                u8 *key, size_t key_len);
-};
-
-struct wpa_driver_ops wpa_driver_hostap_ops;
-struct wpa_driver_ops wpa_driver_prism54_ops;
-struct wpa_driver_ops wpa_driver_hermes_ops;
-struct wpa_driver_ops wpa_driver_madwifi_ops;
-struct wpa_driver_ops wpa_driver_atmel_ops;
-struct wpa_driver_ops wpa_driver_wext_ops;
-struct wpa_driver_ops wpa_driver_ndiswrapper_ops;
-struct wpa_driver_ops wpa_driver_ipw_ops;
-
-/* the iw_ functions are copied from libiw, so we do not need to
-   link against it */
-
-int iw_sockets_open(void)
-{
-  static const int families[] = {
-    AF_INET, AF_IPX, AF_AX25, AF_APPLETALK
-  };
-  unsigned int  i;
-  int           sock;
-
-  /*
-   * Now pick any (exisiting) useful socket family for generic queries
-   * Note : don't open all the socket, only returns when one matches,
-   * all protocols might not be valid.
-   * Workaround by Jim Kaba <jkaba@sarnoff.com>
-   * Note : in 99% of the case, we will just open the inet_sock.
-   * The remaining 1% case are not fully correct...
-   */
-
-  /* Try all families we support */
-  for(i = 0; i < sizeof(families)/sizeof(int); ++i)
-    {
-      /* Try to open the socket, if success returns it */
-      sock = socket(families[i], SOCK_DGRAM, 0);
-      if(sock >= 0)
-        return sock;
-  }
-
-  return -1;
-}
-
-static inline int
-iw_get_ext(int                  skfd,           /* Socket to the kernel */
-           const char *         ifname,         /* Device name */
-           int                  request,        /* WE ID */
-           struct iwreq *       pwrq)           /* Fixed part of the request */
-{
-  /* Set device name */
-  strncpy(pwrq->ifr_name, ifname, IFNAMSIZ);
-  /* Do the request */
-  return(ioctl(skfd, request, pwrq));
-}
-
-int iw_get_range_info(int           skfd,
-                     const char *  ifname,
-                     struct iw_range *    range)
-{
-  struct iwreq          wrq;
-  char                  buffer[sizeof(struct iw_range) * 2];    /* Large enough */
-  struct iw_range *     range_raw;
-
-  /* Cleanup */
-  bzero(buffer, sizeof(buffer));
-
-  wrq.u.data.pointer = (caddr_t) buffer;
-  wrq.u.data.length = sizeof(buffer);
-  wrq.u.data.flags = 0;
-  if(iw_get_ext(skfd, ifname, SIOCGIWRANGE, &wrq) < 0)
-    return(-1);
-
-  /* Point to the buffer */
-  range_raw = (struct iw_range *) buffer;
-
-  /* For new versions, we can check the version directly, for old versions
-   * we use magic. 300 bytes is a also magic number, don't touch... */
-  if(wrq.u.data.length < 300) {
-    /* That's v10 or earlier. Ouch ! Let's make a guess...*/
-    range_raw->we_version_compiled = 9;
-  }
-
-  /* Check how it needs to be processed */
-  if(range_raw->we_version_compiled > 15) {
-    /* This is our native format, that's easy... */
-    /* Copy stuff at the right place, ignore extra */
-    memcpy((char *) range, buffer, sizeof(struct iw_range));
-  }
-  else {
-    /* not supported */
-    return(-1);
-  }
-
-  return(0);
-}
-
-double iw_freq2float(const struct iw_freq *    in)
-{
-  int           i;
-  double        res = (double) in->m;
-  for(i = 0; i < in->e; i++)
-    res *= 10;
-  return(res);
-}
-
-void hd_scan_wlan(hd_data_t *hd_data)
-{
-  hd_t *hd;
-  hd_res_t *res;
-  struct iw_range range;
-  int k;
-  int skfd;
-  struct wpa_driver_ops *wpa_drv=NULL;
-
-  if(!hd_probe_feature(hd_data, pr_wlan)) return;
-
-  hd_data->module = mod_wlan;
-
-  PROGRESS(1, 0, "detecting wlan features");
-
-  if ((skfd = iw_sockets_open()) < 0) {
-    ADD2LOG( "could not open socket, wlan feature query failed\n" );
-    return;
-  }
-
-  for(hd = hd_data->hd; hd; hd = hd->next) {
-    if(
-      hd->base_class.id == bc_network &&
-      hd->unix_dev_name ) {
-      /* Get list of frequencies / channels */
-      if(iw_get_range_info(skfd, hd->unix_dev_name, &range) < 0) {
-       /* this failed, maybe device does not support wireless extensions */
-       continue;
-      }
-      ADD2LOG("*** device %s is wireless ***\n", hd->unix_dev_name);
-      hd->is.wlan = 1;
-      res = new_mem(sizeof *res);
-      res->any.type = res_wlan;
-
-      if(range.num_frequency > 0) {
-       char buff[20];
-       for(k = 0; k < range.num_frequency; k++) {
-         snprintf(buff, 19, "%i", range.freq[k].i);
-         add_str_list(&res->wlan.channels, buff);
-         snprintf(buff, 19, "%g", (float)iw_freq2float(&(range.freq[k]))/1000000000);
-         add_str_list(&res->wlan.frequencies, buff);
-       }
-       for(k = 0; k < range.num_bitrates; k++) {
-         snprintf(buff, 19, "%g", (float)range.bitrate[k]/1000000);
-         add_str_list(&res->wlan.bitrates, buff);
-       }
-       for(k = 0; k < range.num_encoding_sizes; k++) {
-         snprintf(buff, 19, "WEP%i", range.encoding_size[k]*8);
-         add_str_list(&res->wlan.enc_modes, buff);
-       }
-
-       /* open mode is always supported */
-       add_str_list(&res->wlan.auth_modes, "open");
-       /* if WEP is supported, be assume shared key auth support */
-       if(range.num_encoding_sizes) {
-         add_str_list(&res->wlan.auth_modes, "sharedkey");
-       }
-
-       /* detect WPA capabilities */
-       if (hd->drivers) {
-         if (search_str_list(hd->drivers, "hostap_cs") ||
-             search_str_list(hd->drivers, "hostap_pci") ||
-             search_str_list(hd->drivers, "hostap_plx") )
-           wpa_drv = &wpa_driver_hostap_ops;
-       /* prism54 is not ready yet
-          else if (search_str_list(hd->drivers, "prism54")==0)
-          wpa_drv = &wpa_driver_prism54_ops;
-       */
-         else if (search_str_list(hd->drivers, "ath_pci"))
-           wpa_drv = &wpa_driver_madwifi_ops;
-         else if (strncmp(hd->drivers->str, "at76", 4)==0)
-           wpa_drv = &wpa_driver_atmel_ops;
-         else if (search_str_list(hd->drivers, "ndiswrapper"))
-           wpa_drv = &wpa_driver_ndiswrapper_ops;
-         else if ((search_str_list(hd->drivers, "ipw2100")) ||
-                  (search_str_list(hd->drivers, "ipw2200")) )
-           wpa_drv = &wpa_driver_ipw_ops;
-       }
-       
-       if (wpa_drv) {
-         if (wpa_drv->set_wpa(hd->unix_dev_name, 1) == 0) {
-           add_str_list(&res->wlan.auth_modes, "wpa-psk");
-           add_str_list(&res->wlan.auth_modes, "wpa-eap");
-           if (wpa_drv->set_auth_alg && 
-               wpa_drv->set_auth_alg(hd->unix_dev_name, AUTH_ALG_LEAP)==0)
-             add_str_list(&res->wlan.auth_modes, "wpa-leap");
-           if (wpa_drv->set_key(hd->unix_dev_name, WPA_ALG_TKIP, "ff:ff:ff:ff:ff:ff",
-                                0, 0, 0, 0,
-                                "00000000000000000000000000000000", 32) ==0)
-             add_str_list(&res->wlan.enc_modes, "TKIP");
-           if (wpa_drv->set_key(hd->unix_dev_name, WPA_ALG_CCMP, "ff:ff:ff:ff:ff:ff",
-                                0, 0, 0, 0, 
-                                "0000000000000000", 16) ==0)
-             add_str_list(&res->wlan.enc_modes, "CCMP");
-           wpa_drv->set_wpa(hd->unix_dev_name, 0);
-         }
-       }
-      }
-      add_res_entry(&hd->res, res);
-    }
-  }
-}
-
-/* following functions are copied from wpa_supplicant
-   they are used to detect WPA capabilities */
-
-/* begin hostap */
-
-#define PRISM2_IOCTL_PRISM2_PARAM (SIOCIWFIRSTPRIV + 0)
-#define PRISM2_IOCTL_HOSTAPD (SIOCDEVPRIVATE + 14)
-#define HOSTAP_CRYPT_ALG_NAME_LEN 16
-#define HOSTAP_CRYPT_FLAG_SET_TX_KEY (1 << (0))
-#define PRISM2_HOSTAPD_GENERIC_ELEMENT_HDR_LEN \
- ((int) (&((struct prism2_hostapd_param *) 0)->u.generic_elem.data))
-
-enum {
-  PRISM2_SET_ENCRYPTION = 6,
-  PRISM2_HOSTAPD_SET_GENERIC_ELEMENT = 12,
-  PRISM2_PARAM_AP_AUTH_ALGS = 15,
-  PRISM2_PARAM_HOST_ROAMING = 21,
-  PRISM2_PARAM_WPA = 36,
-  PRISM2_PARAM_PRIVACY_INVOKED = 37,
-};
-
-struct prism2_hostapd_param {
-  u32 cmd;
-  u8 sta_addr[ETH_ALEN];
-  union {
-    struct {
-      u16 aid;
-      u16 capability;
-      u8 tx_supp_rates;
-    } add_sta;
-    struct {
-      u32 inactive_sec;
-    } get_info_sta;
-    struct {
-      u8 alg[HOSTAP_CRYPT_ALG_NAME_LEN];
-      u32 flags;
-      u32 err;
-      u8 idx;
-      u8 seq[8]; /* sequence counter (set: RX, get: TX) */
-      u16 key_len;
-      u8 key[0];
-    } crypt;
-    struct {
-      u32 flags_and;
-      u32 flags_or;
-    } set_flags_sta;
-    struct {
-      u16 rid;
-      u16 len;
-      u8 data[0];
-    } rid;
-    struct {
-      u8 len;
-      u8 data[0];
-    } generic_elem;
-    struct {
-      u16 cmd;
-      u16 reason_code;
-    } mlme;
-    struct {
-      u8 ssid_len;
-      u8 ssid[32];
-    } scan_req;
-  } u;
-};
-
-
-int hostapd_ioctl(const char *dev, struct prism2_hostapd_param *param,
-                 int len, int show_err)
-{
-  int s;
-  int ret =0;
-  struct iwreq iwr;
-
-  s = socket(PF_INET, SOCK_DGRAM, 0);
-  if (s < 0) {
-    return -1;
-  }
-
-  memset(&iwr, 0, sizeof(iwr));
-  strncpy(iwr.ifr_name, dev, IFNAMSIZ);
-  iwr.u.data.pointer = (caddr_t) param;
-  iwr.u.data.length = len;
-
-  if (ioctl(s, PRISM2_IOCTL_HOSTAPD, &iwr) < 0) {
-    ret=1;
-  }
-  close(s);
-
-  return 0;
-}
-
-int prism2param(const char *ifname, int param, int value)
-{
-  struct iwreq iwr;
-  int *i, s, ret = 0;
-
-  s = socket(PF_INET, SOCK_DGRAM, 0);
-  if (s < 0) {
-    return -1;
-  }
-
-  memset(&iwr, 0, sizeof(iwr));
-  strncpy(iwr.ifr_name, ifname, IFNAMSIZ);
-  i = (int *) iwr.u.name;
-  *i++ = param;
-  *i++ = value;
-
-  if (ioctl(s, PRISM2_IOCTL_PRISM2_PARAM, &iwr) < 0) {
-    ret = -1;
-  }
-  close(s);
-  return ret;
-}
-
-int wpa_driver_hostap_set_auth_alg(const char *ifname, int auth_alg)
-{
-  int algs = 0;
-
-  if (auth_alg & AUTH_ALG_OPEN_SYSTEM)
-    algs |= 1;
-  if (auth_alg & AUTH_ALG_SHARED_KEY)
-    algs |= 2;
-  if (auth_alg & AUTH_ALG_LEAP)
-    algs |= 4;
-  if (algs == 0)
-    algs = 1; /* at least one algorithm should be set */
-
-  return prism2param(ifname, PRISM2_PARAM_AP_AUTH_ALGS, algs);
-}
-
-int wpa_driver_hostap_set_wpa(const char *ifname, int enabled)
-{
-  int ret = 0;
-
-  if (prism2param(ifname, PRISM2_PARAM_HOST_ROAMING,
-                 enabled ? 2 : 0) < 0)
-    ret = -1;
-  if (prism2param(ifname, PRISM2_PARAM_PRIVACY_INVOKED, enabled) < 0)
-    ret = -1;
-  if (prism2param(ifname, PRISM2_PARAM_WPA, enabled) < 0)
-    ret = -1;
-
-  return ret;
-}
-
-int wpa_driver_hostap_set_key(const char *ifname, wpa_alg alg,
-                             unsigned char *addr, int key_idx,
-                             int set_tx, u8 *seq, size_t seq_len,
-                             u8 *key, size_t key_len)
-{
-  struct prism2_hostapd_param *param;
-  u8 *buf;
-  size_t blen;
-  int ret = 0;
-  char *alg_name;
-
-  switch (alg) {
-      case WPA_ALG_NONE:
-       alg_name = "none";
-       break;
-      case WPA_ALG_WEP:
-       alg_name = "WEP";
-       break;
-      case WPA_ALG_TKIP:
-       alg_name = "TKIP";
-       break;
-      case WPA_ALG_CCMP:
-       alg_name = "CCMP";
-       break;
-      default:
-       return -1;
-  }
-
-  if (seq_len > 8)
-    return -2;
-
-  blen = sizeof(*param) + key_len;
-  buf = malloc(blen);
-  if (buf == NULL)
-    return -1;
-  memset(buf, 0, blen);
-
-  param = (struct prism2_hostapd_param *) buf;
-  param->cmd = PRISM2_SET_ENCRYPTION;
-  memset(param->sta_addr, 0xff, ETH_ALEN);
-
-  strncpy(param->u.crypt.alg, alg_name, HOSTAP_CRYPT_ALG_NAME_LEN);
-  param->u.crypt.flags = set_tx ? HOSTAP_CRYPT_FLAG_SET_TX_KEY : 0;
-  param->u.crypt.idx = key_idx;
-  memcpy(param->u.crypt.seq, seq, seq_len);
-  param->u.crypt.key_len = key_len;
-  memcpy((u8 *) (param + 1), key, key_len);
-
-  if (hostapd_ioctl(ifname, param, blen, 1)) {
-    ret = -1;
-  }
-  free(buf);
-
-  return ret;
-}
-
-struct wpa_driver_ops wpa_driver_hostap_ops = {
-  .set_wpa = wpa_driver_hostap_set_wpa,
-  .set_key = wpa_driver_hostap_set_key,
-  .set_auth_alg = wpa_driver_hostap_set_auth_alg,
-};
-
-/* end hostap */
-
-/* begin madwifi */
-
-#define     IEEE80211_IOCTL_SETPARAM        (SIOCIWFIRSTPRIV+0)
-#define     IEEE80211_IOCTL_SETKEY          (SIOCIWFIRSTPRIV+2)
-#define     IEEE80211_CIPHER_WEP            0
-#define     IEEE80211_CIPHER_TKIP           1
-#define     IEEE80211_CIPHER_AES_CCM        3
-#define     IEEE80211_ADDR_LEN      6
-#define     IEEE80211_KEY_XMIT      0x01
-#define     IEEE80211_KEY_RECV      0x02  
-#define     IEEE80211_KEYBUF_SIZE   16
-#define     IEEE80211_MICBUF_SIZE   16
-
-enum {
-  IEEE80211_PARAM_WPA             = 10,   /* WPA mode (0,1,2) */
-  IEEE80211_PARAM_ROAMING         = 12,   /* roaming mode */
-  IEEE80211_PARAM_PRIVACY         = 13,   /* privacy invoked */
-};
-
-struct ieee80211req_key {
-  u_int8_t        ik_type;        /* key/cipher type */
-  u_int8_t        ik_pad;
-  u_int16_t       ik_keyix;       /* key index */
-  u_int8_t        ik_keylen;      /* key length in bytes */
-  u_int8_t        ik_flags;
-#define IEEE80211_KEY_DEFAULT   0x80    /* default xmit key */
-  u_int8_t        ik_macaddr[IEEE80211_ADDR_LEN];
-  u_int64_t       ik_keyrsc;      /* key receive sequence counter */
-  u_int64_t       ik_keytsc;      /* key transmit sequence counter */
-  u_int8_t        ik_keydata[IEEE80211_KEYBUF_SIZE+IEEE80211_MICBUF_SIZE];
-};
-
-int
-set80211param(const char *dev, int op, int arg)
-{
-  struct iwreq iwr;
-  int s=-1;
-
-  if (s < 0 ? (s = socket(AF_INET, SOCK_DGRAM, 0)) == -1 : 0) {
-    return -1;
-  }
-
-  memset(&iwr, 0, sizeof(iwr));
-  strncpy(iwr.ifr_name, dev, IFNAMSIZ);
-  iwr.u.mode = op;
-  memcpy(iwr.u.name+sizeof(__u32), &arg, sizeof(arg));
-
-  if (ioctl(s, IEEE80211_IOCTL_SETPARAM, &iwr) < 0) {
-    return -1;
-  }
-  return 0;
-}
-
-static int
-wpa_driver_madwifi_set_wpa(const char *ifname, int enabled)
-{
-  int ret = 0;
-
-  if (set80211param(ifname, IEEE80211_PARAM_ROAMING, enabled ? 2 : 0) < 0)
-    ret = -1;
-  if (set80211param(ifname, IEEE80211_PARAM_PRIVACY, enabled) < 0)
-    ret = -1;
-  if (set80211param(ifname, IEEE80211_PARAM_WPA, enabled ? 3 : 0) < 0)
-    ret = -1;
-
-  return ret;
-}
-
-static int
-set80211priv(const char *dev, int op, void *data, int len)
-{
-  struct iwreq iwr;
-  int s=-1;
-
-  if (s < 0 ? (s = socket(AF_INET, SOCK_DGRAM, 0)) == -1 : 0) {
-    return -1;
-  }
-
-  memset(&iwr, 0, sizeof(iwr));
-  strncpy(iwr.ifr_name, dev, IFNAMSIZ);
-  if (len < IFNAMSIZ) {
-    /*
-     * Argument data fits inline; put it there.
-     */
-    memcpy(iwr.u.name, data, len);
-  } else {
-    /*
-     * Argument data too big for inline transfer; setup a
-     * parameter block instead; the kernel will transfer
-     * the data for the driver.
-     */
-    iwr.u.data.pointer = data;
-    iwr.u.data.length = len;
-  }
-
-  if (ioctl(s, op, &iwr) < 0) {
-    return -1;
-  }
-  return 0;
-}
-
-static int
-wpa_driver_madwifi_set_key(const char *ifname, wpa_alg alg,
-                          unsigned char *addr, int key_idx,
-                          int set_tx, u8 *seq, size_t seq_len,
-                          u8 *key, size_t key_len)
-{
-  struct ieee80211req_key wk;
-  char *alg_name;
-  u_int8_t cipher;
-
-  if (alg == WPA_ALG_NONE)
-    return 0;
-
-  switch (alg) {
-      case WPA_ALG_WEP:
-       alg_name = "WEP";
-       cipher = IEEE80211_CIPHER_WEP;
-       break;
-      case WPA_ALG_TKIP:
-       alg_name = "TKIP";
-       cipher = IEEE80211_CIPHER_TKIP;
-       break;
-      case WPA_ALG_CCMP:
-       alg_name = "CCMP";
-       cipher = IEEE80211_CIPHER_AES_CCM;
-       break;
-      default:
-       return -1;
-  }
-
-  if (seq_len > sizeof(u_int64_t)) {
-    return -2;
-  }
-  if (key_len > sizeof(wk.ik_keydata)) {
-    return -3;
-  }
-
-  memset(&wk, 0, sizeof(wk));
-  wk.ik_type = cipher;
-  wk.ik_flags = IEEE80211_KEY_RECV;
-  if (set_tx) {
-    wk.ik_flags |= IEEE80211_KEY_XMIT | IEEE80211_KEY_DEFAULT;
-    memcpy(wk.ik_macaddr, addr, IEEE80211_ADDR_LEN);
-  } else
-    memset(wk.ik_macaddr, 0, IEEE80211_ADDR_LEN);
-  wk.ik_keyix = key_idx;
-  wk.ik_keylen = key_len;
-  memcpy(&wk.ik_keyrsc, seq, seq_len);
-  memcpy(wk.ik_keydata, key, key_len);
-
-  return set80211priv(ifname, IEEE80211_IOCTL_SETKEY, &wk, sizeof(wk));
-}
-
-struct wpa_driver_ops wpa_driver_madwifi_ops = {
-  .set_wpa             = wpa_driver_madwifi_set_wpa,
-  .set_key             = wpa_driver_madwifi_set_key,
-};
-
-/* end madwifi */
-
-/* begin ipw */
-
-#define IPW_IOCTL_WPA_SUPPLICANT               SIOCIWFIRSTPRIV+30
-#define IPW_CMD_SET_WPA_PARAM                  1
-#define IPW_CMD_SET_ENCRYPTION                 3
-#define IPW_PARAM_WPA_ENABLED                  1
-#define IPW_PARAM_AUTH_ALGS                    5
-#define        IPW_CRYPT_ALG_NAME_LEN                  16
-
-struct ipw_param {
-  u32 cmd;
-  u8 sta_addr[ETH_ALEN];
-  union {
-    struct {
-      u8 name;
-      u32 value;
-    } wpa_param;
-    struct {
-      u32 len;
-      u8 *data;
-    } wpa_ie;
-    struct{
-      int command;
-      int reason_code;
-    } mlme;
-    struct {
-      u8 alg[IPW_CRYPT_ALG_NAME_LEN];
-      u8 set_tx;
-      u32 err;
-      u8 idx;
-      u8 seq[8];
-      u16 key_len;
-      u8 key[0];
-    } crypt;
-
-  } u;
-};
-
-int ipw_ioctl(const char *dev, struct ipw_param *param, int len)
-{
-  struct iwreq iwr;
-  int s;
-  int ret = 0;
-
-  s = socket(PF_INET, SOCK_DGRAM, 0);
-  if (s < 0) {
-    return -1;
-  }
-
-  memset(&iwr, 0, sizeof(iwr));
-  strncpy(iwr.ifr_name, dev, IFNAMSIZ);
-  iwr.u.data.pointer = (caddr_t) param;
-  iwr.u.data.length = len;
-
-  if (ioctl(s, IPW_IOCTL_WPA_SUPPLICANT, &iwr) < 0) {
-    ret = -1;
-  }
-
-  close(s);
-  return ret;
-}
-
-int wpa_driver_ipw_set_wpa(const char *ifname, int enabled)
-{
-  int ret = 0;
-  struct ipw_param param;
-
-  memset(&param, 0, sizeof(param));
-  param.cmd = IPW_CMD_SET_WPA_PARAM;
-  param.u.wpa_param.name = IPW_PARAM_WPA_ENABLED;
-  param.u.wpa_param.value = enabled;
-
-  if (ipw_ioctl(ifname, &param, sizeof(param)) < 0)
-    ret = -1;
-
-  return ret;
-}
-
-int wpa_driver_ipw_set_key(const char *ifname, wpa_alg alg,
-                          unsigned char *addr, int key_idx, int set_tx,
-                          u8 *seq, size_t seq_len,
-                          u8 *key, size_t key_len)
-{
-  struct ipw_param *param;
-  u8 *buf;
-  size_t blen;
-  int ret = 0;
-  char *alg_name;
-
-  switch (alg) {
-      case WPA_ALG_NONE:
-       alg_name = "none";
-       break;
-      case WPA_ALG_WEP:
-       alg_name = "WEP";
-       break;
-      case WPA_ALG_TKIP:
-       alg_name = "TKIP";
-       break;
-      case WPA_ALG_CCMP:
-       alg_name = "CCMP";
-       break;
-      default:
-       return -1;
-  }
-
-  if (seq_len > 8)
-    return -2;
-
-  blen = sizeof(*param) + key_len;
-  buf = malloc(blen);
-  if (buf == NULL)
-    return -1;
-  memset(buf, 0, blen);
-
-  param = (struct ipw_param *) buf;
-  param->cmd = IPW_CMD_SET_ENCRYPTION;
-  memset(param->sta_addr, 0xff, ETH_ALEN);
-  strncpy(param->u.crypt.alg, alg_name, IPW_CRYPT_ALG_NAME_LEN);
-  param->u.crypt.set_tx = set_tx ? 1 : 0;
-  param->u.crypt.idx = key_idx;
-  memcpy(param->u.crypt.seq, seq, seq_len);
-  param->u.crypt.key_len = key_len;
-  memcpy((u8 *) (param + 1), key, key_len);
-
-  if (ipw_ioctl(ifname, param, blen)) {
-    ret = -1;
-  }
-  free(buf);
-
-  return ret;
-}
-
-int wpa_driver_ipw_set_auth_alg(const char *ifname, int auth_alg)
-{
-  int algs = 0;
-  struct ipw_param param;
-
-  if (auth_alg & AUTH_ALG_OPEN_SYSTEM)
-    algs |= 1;
-  if (auth_alg & AUTH_ALG_SHARED_KEY)
-    algs |= 2;
-  if (auth_alg & AUTH_ALG_LEAP)
-    algs |= 4;
-  if (algs == 0)
-    algs = 1; /* at least one algorithm should be set */
-
-  memset(&param, 0, sizeof(param));
-  param.cmd = IPW_CMD_SET_WPA_PARAM;
-  param.u.wpa_param.name = IPW_PARAM_AUTH_ALGS;
-  param.u.wpa_param.value = algs;
-
-  return ipw_ioctl(ifname, &param, sizeof(param));
-}
-
-struct wpa_driver_ops wpa_driver_ipw_ops = {
-  .set_wpa = wpa_driver_ipw_set_wpa,
-  .set_key = wpa_driver_ipw_set_key,
-  .set_auth_alg = wpa_driver_ipw_set_auth_alg
-};
-
-/* end ipw */
-
-/* begin atmel */
-
-#define ATMEL_WPA_IOCTL                (SIOCIWFIRSTPRIV + 2)
-#define ATMEL_WPA_IOCTL_PARAM          (SIOCIWFIRSTPRIV + 3)
-#define ATMEL_WPA_IOCTL_GET_PARAM      (SIOCIWFIRSTPRIV + 4)
-
-#define MAX_KEY_LENGTH      40
-
-/* ATMEL_WPA_IOCTL ioctl() cmd: */
-enum {
-    SET_WPA_ENCRYPTION  = 1,
-    SET_CIPHER_SUITES   = 2,
-};
-
-/* ATMEL_WPA_IOCTL_PARAM ioctl() cmd: */
-enum {
-            ATMEL_PARAM_WPA = 1,
-            ATMEL_PARAM_PRIVACY_INVOKED = 2,
-            ATMEL_PARAM_WPA_TYPE = 3,
-};
-
-struct atmel_param{
-    unsigned char sta_addr[6];
-        int     cmd;
-        u8      alg;
-        u8      key_idx;
-        u8      set_tx;
-        u8      seq[8];
-        u8      seq_len;
-        u16     key_len;
-        u8      key[MAX_KEY_LENGTH];
-    struct{
-        int     reason_code;
-        u8      state;
-    }mlme;
-    u8          pairwise_suite;
-    u8          group_suite;
-    u8          key_mgmt_suite;
-};
-
-int atmel_ioctl(const char *dev, struct atmel_param *param, int len)
-{
-  int s;
-  int ret=0;
-  struct iwreq iwr;
-  
-  s = socket(PF_INET, SOCK_DGRAM, 0);
-  if (s < 0) {
-    return -1;
-  }
-  
-  memset(&iwr, 0, sizeof(iwr));
-  strncpy(iwr.ifr_name, dev, IFNAMSIZ);
-  iwr.u.data.pointer = (caddr_t) param;
-  iwr.u.data.length = len;
-  
-  if (ioctl(s, ATMEL_WPA_IOCTL, &iwr) < 0) {
-    ret = -1;
-  }
-  close(s);
-  
-  return 0;
-}
-
-int atmel2param(const char *ifname, int param, int value)
-{
-  struct iwreq iwr;
-  int *i, s, ret = 0;
-  
-  s = socket(PF_INET, SOCK_DGRAM, 0);
-  if (s < 0) {
-    return -1;
-  }
-
-  memset(&iwr, 0, sizeof(iwr));
-  strncpy(iwr.ifr_name, ifname, IFNAMSIZ);
-  i = (int *) iwr.u.name;
-  *i++ = param;
-  *i++ = value;
-  
-  if (ioctl(s, ATMEL_WPA_IOCTL_PARAM, &iwr) < 0) {
-    ret = -1;
-  }
-  close(s);
-  return ret;
-}
-
-int wpa_driver_atmel_set_wpa(const char *ifname, int enabled)
-{
-  int ret = 0;
-  
-  if (atmel2param(ifname, ATMEL_PARAM_PRIVACY_INVOKED, enabled) < 0)
-    ret = -1;
-  if (atmel2param(ifname, ATMEL_PARAM_WPA, enabled) < 0)
-    ret = -1;
-  
-  return ret;
-}
-
-int wpa_driver_atmel_set_key(const char *ifname, wpa_alg alg,
-                            unsigned char *addr, int key_idx,
-                            int set_tx, u8 *seq, size_t seq_len,
-                            u8 *key, size_t key_len)
-{
-       int ret = 0;
-        struct atmel_param *param;
-       u8 *buf;
-        u8 alg_type;
-        
-       size_t blen;
-       char *alg_name;
-
-       switch (alg) {
-       case WPA_ALG_NONE:
-               alg_name = "none";
-                alg_type = 0;
-               break;
-       case WPA_ALG_WEP:
-               alg_name = "WEP";
-               alg_type = 1;
-                break;
-       case WPA_ALG_TKIP:
-               alg_name = "TKIP";
-               alg_type = 2;
-                break;
-       case WPA_ALG_CCMP:
-               alg_name = "CCMP";
-               alg_type = 3;
-                break;
-       default:
-               return -1;
-       }
-
-       if (seq_len > 8)
-               return -2;
-
-       blen = sizeof(*param) + key_len;
-       buf = malloc(blen);
-       if (buf == NULL)
-               return -1;
-       memset(buf, 0, blen);
-
-       param = (struct atmel_param *) buf;
-        
-        param->cmd = SET_WPA_ENCRYPTION; 
-        
-        if (addr == NULL)
-               memset(param->sta_addr, 0xff, ETH_ALEN);
-       else
-               memcpy(param->sta_addr, addr, ETH_ALEN);
-        
-        param->alg = alg_type;
-        param->key_idx = key_idx;
-        param->set_tx = set_tx;
-        memcpy(param->seq, seq, seq_len);
-        param->seq_len = seq_len;
-        param->key_len = key_len;
-       memcpy((u8 *)param->key, key, key_len);
-       
-        if (atmel_ioctl(ifname, param, blen)) {
-               ret = -1;
-       }
-       free(buf);
-
-       return ret;
-}
-
-struct wpa_driver_ops wpa_driver_atmel_ops = {
-       .set_wpa = wpa_driver_atmel_set_wpa,
-       .set_key = wpa_driver_atmel_set_key,
-};
-
-/* end atmel */
-
-/* begin ndiswrapper */
-
-#define WPA_SET_WPA                    SIOCIWFIRSTPRIV+1
-#define WPA_SET_KEY                    SIOCIWFIRSTPRIV+2
-#define WPA_SET_AUTH_ALG               SIOCIWFIRSTPRIV+8
-
-struct wpa_key
-{
-       wpa_alg alg;
-       u8 *addr;
-       int key_index;
-       int set_tx;
-       u8 *seq;
-       size_t seq_len;
-       u8 *key;
-       size_t key_len;
-};
-
-int wpa_ndiswrapper_set_ext(const char *ifname, int request, struct iwreq *pwrq)
-{
-  int s;
-  int ret;
-
-  s = socket( AF_INET, SOCK_DGRAM, 0);
-  if (s < 0)
-    return -1;
-
-  strncpy(pwrq->ifr_name, ifname, IFNAMSIZ);
-  ret = ioctl(s, request, pwrq);
-  close(s);
-  return ret;
-}
-
-int wpa_ndiswrapper_set_wpa(const char *ifname, int enabled)
-{
-  struct iwreq priv_req;
-  int ret = 0;
-  
-  memset(&priv_req, 0, sizeof(priv_req));
-  
-  priv_req.u.data.flags = enabled;
-  if (wpa_ndiswrapper_set_ext(ifname, WPA_SET_WPA, &priv_req) < 0)
-    ret = -1;
-  return ret;
-}
-
-int wpa_ndiswrapper_set_key(const char *ifname, wpa_alg alg, u8 *addr,
-                           int key_idx, int set_tx, u8 *seq,
-                           size_t seq_len, u8 *key, size_t key_len)
-{
-  struct wpa_key wpa_key;
-  int ret = 0;
-  struct iwreq priv_req;
-  
-  memset(&priv_req, 0, sizeof(priv_req));
-  
-  wpa_key.alg = alg;
-  wpa_key.addr = addr;
-  wpa_key.key_index = key_idx;
-  wpa_key.set_tx = set_tx;
-  wpa_key.seq = seq;
-  wpa_key.seq_len = seq_len;
-  wpa_key.key = key;
-  wpa_key.key_len = key_len;
-  
-  priv_req.u.data.pointer = (void *)&wpa_key;
-  
-  if (wpa_ndiswrapper_set_ext(ifname, WPA_SET_KEY, &priv_req) < 0)
-    ret = -1;
-  return ret;
-}
-
-static int wpa_ndiswrapper_set_auth_alg(const char *ifname, int auth_alg)
-{
-  int ret = 0;
-  struct iwreq priv_req;
-  
-  memset(&priv_req, 0, sizeof(priv_req));
-  
-  priv_req.u.param.value = auth_alg;
-  if (wpa_ndiswrapper_set_ext(ifname, WPA_SET_AUTH_ALG, &priv_req) < 0)
-    ret = -1;
-  return ret;
-}
-
-struct wpa_driver_ops wpa_driver_ndiswrapper_ops = {
-       .set_wpa = wpa_ndiswrapper_set_wpa,
-       .set_key = wpa_ndiswrapper_set_key,
-       .set_auth_alg = wpa_ndiswrapper_set_auth_alg,
-};
-
-/* end ndiswrapper */
-
-#endif         /* !defined(LIBHD_TINY) */
-
diff --git a/src/hwinfo/src/hd/wlan.h b/src/hwinfo/src/hd/wlan.h
deleted file mode 100644 (file)
index 6608a30..0000000
+++ /dev/null
@@ -1 +0,0 @@
-void hd_scan_wlan(hd_data_t *hd_data);
diff --git a/src/hwinfo/src/ids/Makefile b/src/hwinfo/src/ids/Makefile
deleted file mode 100644 (file)
index 53b8b37..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-TOPDIR         = ../..
-TARGETS                = $(LIBHD_D)
-CLEANFILES     = *.log src/*~
-DISTCLEANFILES = *.h *.xml *.ids check_hd
-
-include $(TOPDIR)/Makefile.common
-
-ifeq "$(ARCH)" "ppc"
-IDFILES += src/ppc
-endif
-
-ifeq "$(ARCH)" "ppc64"
-IDFILES += src/ppc
-endif
-
-IDFILES        += src/bus src/class src/extra src/special src/scanner src/network \
-         src/usb src/usb2 src/isapnp src/monitor src/camera src/tv src/dvb \
-         src/chipcard src/modem src/pcmcia src/s390
-
-ifeq "$(ARCH)" "i386"
-IDFILES += src/x11.i386 src/modem.i386
-endif
-
-ifeq "$(ARCH)" "ppc"
-IDFILES += src/x11.ppc src/x11.ppc.special
-endif
-
-ifeq "$(ARCH)" "alpha"
-IDFILES += src/x11.axp
-endif
-
-ifeq "$(ARCH)" "sparc"
-IDFILES += src/x11.sparc
-endif
-
-ifeq "$(ARCH)" "sparc64"
-IDFILES += src/x11.sparc
-endif
-
-ifeq "$(ARCH)" "ia64"
-IDFILES += src/x11.ia64
-endif
-
-ifeq "$(ARCH)" "x86_64"
-IDFILES += src/x11.amd64
-endif
-
-IDFILES += src/pci src/storage src/sound src/mouse src/braille
-
-$(LIBHD_D): hd_ids.o
-       ar r $(LIBHD) $?
-
-check_hd: check_hd.c
-       $(CC) $(CFLAGS) $< -o $@
-
-hd_ids.c: hd_ids.h hd_ids_tiny.h
-
-hd_ids.h hd.ids: check_hd $(IDFILES)
-       ./check_hd --check --sort --cfile hd_ids.h $(IDFILES)
-
-hd_ids_tiny.h: check_hd hd.ids
-       ./check_hd --mini --cfile hd_ids_tiny.h --log=hd_tiny.log --out=hd_tiny.ids hd.ids
-
diff --git a/src/hwinfo/src/ids/cdb_x11 b/src/hwinfo/src/ids/cdb_x11
deleted file mode 100755 (executable)
index 9be446c..0000000
+++ /dev/null
@@ -1,349 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) 1996 SuSE GmbH Nuernberg, Germany.  All rights reserved.
-#
-# Author: Dirk Hessing <dhess@suse.de>, 08/2001
-#
-# Exporting hw-data for x11 from developer-CDB
-
-
-use DBI;
-use strict;
-use IO::Handle;
-use Getopt::Long;
-
-# MySQL-Host / MySQL-User
-my $hostname     = "cdbintern.suse.de";
-my $mysql_user   = "cdbclient";
-my $mysql_passwd = "cdb";
-my $target       = "cdb";
-
-my $driver       = DBI->install_driver('mysql');
-my $dbh          = DBI->connect('DBI:mysql:'.$target.':'.$hostname,$mysql_user,$mysql_passwd)
-  or die "Can't connect to the MySQL Database, table $target";
-
-### Log-Handle und STDOUT-Handle auf ungepufferte Ausgabe setzten (schlechtere Performance ;-)
-STDOUT->autoflush();
-
-
-my $dist_name = "Stable";
-my $date      = localtime();
-
-my (@query,$x,$result,$arch_name,@arch_names,$filename,$count);
-my ($product_id,$product_name,$vendor_name,$bus_name,$subclass_name);
-my ($vId,$dId,$sdId,$svId);
-my (%tooltopics,$tooltopic_name,$vario_name,$charvalue);
-
-my $opt_dir = "tmp";
-
-
-# convert to new id format
-sub new_id
-{
-  my ($old_id, $id_class, $tag, $id);
-
-  ($old_id, $id_class) = @_;
-
-  if($old_id =~ /^([us]?)(\S{4})$/) {
-    $tag = $1;
-    $id = $2;
-  }
-  else {
-    die "invalid id format: \"$old_id\"\n";
-  }
-
-  if($tag eq "" && $id_class && $id_class =~ /^([us]?)(\S{4})$/) {
-    $tag = $1;
-  }
-
-  if($tag eq "s") {
-    $tag = "special ";
-  }
-  elsif($tag eq "u") {
-    $tag = "usb ";
-  }
-  elsif($tag eq "") {
-    $tag = "pci ";
-  }
-  else {
-    die "invalid id format: \"$old_id\"\n";
-  }
-
-  return "${tag}0x$id";
-}
-
-
-# write data to FH
-sub write_info
-{
-  my ($arch, $xfree, $has3d, $vId, $dId, $svId, $sdId, $vName, $dName, $tt, $raw, @raw);
-
-  ($arch, $xfree, $has3d, $vId, $dId, $svId, $sdId, $vName, $dName, $tt) = @_;
-
-  return unless $vId ne "" && $dId ne "";
-
-  # print FH "\n# vId = $vId, dId = $dId, svId = $svId, sdId = $sdId, vName = \"$vName\", dName = \"$dName\"\n";
-
-  if($svId ne "" && $sdId ne "") {
-    print FH "\n vendor.id\t\t${\new_id $vId}\n";
-    print FH "+vendor.name\t\t$vName\n";
-
-    print FH "\n vendor.id\t\t${\new_id $vId}\n";
-    print FH "&device.id\t\t${\new_id $dId, $vId}\n";
-    print FH "&subvendor.id\t\t${\new_id $svId, $vId}\n";
-    print FH "&subdevice.id\t\t${\new_id $sdId, $vId}\n";
-    print FH "+subdevice.name\t\t$dName\n";
-  }
-  else {
-    print FH "\n vendor.id\t\t${\new_id $vId}\n";
-    print FH "+vendor.name\t\t$vName\n";
-
-    print FH "\n vendor.id\t\t${\new_id $vId}\n";
-    print FH "&device.id\t\t${\new_id $dId, $vId}\n";
-    print FH "+device.name\t\t$dName\n";
-  }
-
-  if($$tt{resol} ne "") {
-    $$tt{resol} =~ s/bpp//g;
-  }
-       
-  # Teste ob mehr als ein driver- oder installscript-topic vorhanden ist:
-  if(($$tt{driver} =~ /,/) || ($$tt{installscript} =~ /,/)) {
-    warn
-      "\nMore than one driver- or installscript-topic.\n" .
-      "  Product-id = $product_id, Vario = $vario_name, Arch = $arch\n" .
-      "  Id = (${\new_id $vId}, ${\new_id $dId, $vId}), Name = $dName\n" .
-      "  Driver = \"$$tt{driver}\", script = \"$$tt{installscript}\"\n";
-  }
-
-  print FH
-    "+driver.xfree\t\t$xfree|$$tt{driver}|" .
-    ($has3d ? "3d" : "") .
-    "|$$tt{package}|$$tt{extension}|$$tt{option}|$$tt{resol}||$$tt{installscript}|\n";
-
-  if ($$tt{raw} ne "") {
-    @raw = (split(',',$$tt{raw}));
-    foreach $raw (@raw) {
-      print FH "+driver.xfree.config\t$raw\n";
-    }
-  }
-}
-
-
-# get product info and write everything to FH
-sub get_info
-{
-  my ($arch_name, $xfree, $has3d);
-
-  ($arch_name, $vario_name) = @_;
-
-  $xfree = $vario_name =~ /XFree3/ ? 3 : 4;
-  $has3d = $vario_name =~ /3D/ ? 1 : 0;
-
-  $tooltopics{driver} = "";
-  $tooltopics{package} = "";
-  $tooltopics{extension} = "";
-  $tooltopics{option} = "";
-  $tooltopics{resol} = "";
-  $tooltopics{installscript} = "";
-  $tooltopics{raw} = "";
-
-  # Product supported=full?
-  $query[2] = $dbh->prepare("SELECT toolproperty.charvalue FROM toolproperty
-                                 LEFT JOIN tooltopic ON toolproperty.tooltopic_id=tooltopic.id
-                                 LEFT JOIN arch_dist_l_vario ON toolproperty.arch_dist_l_vario_id=arch_dist_l_vario.id
-                                 LEFT JOIN arch ON arch_dist_l_vario.arch_id=arch.id
-                                 LEFT JOIN distribution ON arch_dist_l_vario.distribution_id=distribution.id
-                                 LEFT JOIN vario ON arch_dist_l_vario.vario_id=vario.id
-                                 WHERE toolproperty.product_id=$product_id
-                                   AND tooltopic.name='supported'
-                                   AND arch.name='$arch_name'
-                                   AND distribution.name='$dist_name'
-                                   AND vario.name='$vario_name'
-                                   AND toolproperty.valid=1
-                                   AND tooltopic.valid=1
-                                   AND arch_dist_l_vario.valid=1")
-    or die "Can\'t select table toolproperty";
-  $query[2]->execute or die "Can\'t select table toolproperty";
-
-  undef $result;
-  $count = 0;
-  while ($x = $query[2]->fetchrow_array) {
-    $result = $x if defined $x;
-    multiple_supportedtopics($dbh,$product_id,$product_name,$arch_name,$dist_name,$vario_name) if $count > 0;
-    $count++;
-  }
-  $result = "" if not defined $result;
-
-  if ($result eq "full") {
-    $query[2] = $dbh->prepare("SELECT tooltopic.name,toolproperty.charvalue FROM toolproperty
-                                 LEFT JOIN tooltopic ON toolproperty.tooltopic_id=tooltopic.id
-                                 LEFT JOIN arch_dist_l_vario ON toolproperty.arch_dist_l_vario_id=arch_dist_l_vario.id
-                                 LEFT JOIN arch ON arch_dist_l_vario.arch_id=arch.id
-                                 LEFT JOIN distribution ON arch_dist_l_vario.distribution_id=distribution.id
-                                 LEFT JOIN language ON arch_dist_l_vario.lang_id=language.id
-                                 LEFT JOIN vario ON arch_dist_l_vario.vario_id=vario.id
-                                   WHERE arch.name='$arch_name'
-                                     AND distribution.name='$dist_name'
-                                     AND vario.name='$vario_name'
-                                     AND toolproperty.product_id=$product_id
-                                     AND tooltopic.name != 'supported'
-                                     AND toolproperty.valid=1
-                                     AND tooltopic.valid=1
-                                     AND arch_dist_l_vario.valid=1")
-      or die "Can\'t select table toolproperty";
-    $query[2]->execute or die "Can\'t select table toolproperty"; 
-
-    while ( ($tooltopic_name,$charvalue) = ($query[2]->fetchrow_array) ) {
-      if (($charvalue eq "none") || ($charvalue eq "None")) {
-         $charvalue = "";
-      }
-      next if $charvalue eq "";
-      if (!$tooltopics{"$tooltopic_name"}) {
-        $tooltopics{"$tooltopic_name"} = $charvalue;
-      } else {
-        $tooltopics{"$tooltopic_name"} .= ",".$charvalue;
-      }
-    }
-
-    write_info $arch_name, $xfree, $has3d, $vId, $dId, $svId, $sdId, $vendor_name, $product_name, \%tooltopics;
-  }
-}
-
-
-GetOptions(
-  'dir=s' => \$opt_dir
-) ;
-
-
-print "\n\nGenerating x11.hwinfo-files, one for each architecture.\n";
-mkdir($opt_dir, 0755) || die "\nmkdir: $opt_dir: $!\n" unless -d $opt_dir;
-
-print "\nStoring files in \"$opt_dir\"\n\n";
-
-$query[0] = $dbh->prepare("SELECT name FROM arch WHERE valid=1")
-  or die "Can\'t select table arch";
-$query[0]->execute or die "Can\'t select table arch";
-while ($result = $query[0]->fetchrow_array) {
-  push(@arch_names,$result);
-}
-
-# Für jede Architektur wird eine eigene Datei geschrieben
-foreach $arch_name (@arch_names) {
-  $filename = "$opt_dir/x11.hwinfo.$arch_name";
-  open(FH,"> $filename") or die "Can\'t open $filename";
-  print FH "#\n";
-  print FH "# x11.hwinfo-file for architecture $arch_name\n";
-  print FH "#\n";
-  print FH "# generated at: $date\n";
-  print FH "# data source:  CDB\n";
-  print FH "# distribution: $dist_name\n";
-  print FH "#\n\n\n";
-
-  $query[0] = $dbh->prepare("SELECT product.id,product.name,
-                                    product.vId,product.dId,product.svId,product.sdId,
-                                    vendor.longname,product.vId,
-                                    bus.name,subclass.name FROM product
-                               LEFT JOIN product_area ON product.id=product_area.product_id
-                               LEFT JOIN groups ON product_area.group_id=groups.id
-                               LEFT JOIN vendor ON product.vendor_id=vendor.id
-                               LEFT JOIN bus ON product.bus_id=bus.id
-                               LEFT JOIN subclass ON product.subclass_id=subclass.id
-                                WHERE groups.name='graphic-developer'
-                                  AND product_area.valid=1
-                                  AND product.valid=1")
-    or die "Can\'t select table product";
-  $query[0]->execute or die "Can\'t select table product";
-  while ( ($product_id,$product_name,$vId,$dId,$svId,$sdId,$vendor_name,$vId,$bus_name,$subclass_name) = ($query[0]->fetchrow_array) ) {
-    # Postinitialisierung, falls undefinierte Werte
-    $vId = "----" if !defined($vId);
-    $dId = "----" if !defined($dId);
-    $svId = "----" if !defined($svId);
-    $sdId = "----" if !defined($sdId);
-
-    $vId = "" if $vId eq "----";
-    $dId = "" if $dId eq "----";
-    $svId = "" if $svId eq "----";
-    $sdId = "" if $sdId eq "----";
-
-    # Step 1: Erzeuge Zeilen für XFree 3 ohne 3D
-    get_info $arch_name, "XFree3";
-
-    # Step 2: Erzeuge Zeilen für XFree 3 mit 3D
-    get_info $arch_name, "XFree3 with 3D";
-
-    # Step 2: Erzeuge Zeilen für XFree 4 ohne 3D
-    get_info $arch_name, "XFree4";
-
-    # Step 2: Erzeuge Zeilen für XFree 4 mit 3D
-    get_info $arch_name, "XFree4 with 3D";
-
-  } # Ende der Produktschleife
-  close(FH);
-} # Ende der Arch-Schleife
-
-
-
-
-sub multiple_supportedtopics {
-  my $handle = shift;
-  my $product_id = shift;
-  my $product_name = shift;
-  my $arch_name = shift;
-  my $dist_name = shift;
-  my $vario_name = shift;
-  my ($query,$id,$value,$name,$time,$htime,%topic,$key,$answer,%key);
-
-  my $min_key = "0";
-  undef %key;
-
-  print "\n    *********** Unconsistency registered *******************";
-  print "\nMultiple supported-topics:";
-  print "\nProduct_name: $product_name  ID=$product_id";
-  print "\nArch=$arch_name Dist=$dist_name Vario=$vario_name";
-  print "\n";
-  
-    $query = $handle->prepare("SELECT toolproperty.id,tooltopic.name,
-                                   toolproperty.charvalue,toolproperty.createtime
-                             FROM toolproperty
-                              LEFT JOIN tooltopic ON toolproperty.tooltopic_id=tooltopic.id
-                              LEFT JOIN arch_dist_l_vario ON toolproperty.arch_dist_l_vario_id=arch_dist_l_vario.id
-                              LEFT JOIN arch ON arch_dist_l_vario.arch_id=arch.id
-                              LEFT JOIN distribution ON arch_dist_l_vario.distribution_id=distribution.id
-                              LEFT JOIN vario ON arch_dist_l_vario.vario_id=vario.id
-                              WHERE toolproperty.product_id=$product_id
-                                AND tooltopic.name='supported'
-                                AND toolproperty.valid=1
-                                AND arch.name='$arch_name'
-                                AND distribution.name='$dist_name'
-                                AND vario.name='$vario_name'")
-      or die "Can\'t select table toolproperty";
-    $query->execute or die "Can\'t select table toolproperty";
-  while (($id,$name,$value,$time) = ($query->fetchrow_array)) {
-    $htime = localtime($time);
-    $topic{$id} = $htime."  ".$value;
-    $min_key = $id;
-  }
-  foreach $key (sort keys %topic) {
-    $min_key = $key if $key<$min_key;
-  }
-  foreach $key (sort keys %topic) {
-    print "\nD toolproperty-ID $key: $topic{$key}" if $key != $min_key;
-  }
-  print "\n* toolproperty-ID $min_key:$topic{$min_key}";
-  print "\n\nDeleting doublettes marked with D (* will be left the valid one) [N|y] ?";
-  $answer = <STDIN>;
-  chop($answer);
-  if ( ($answer eq "y") || ($answer eq "Y") ) {
-    print "\n\nDeleting supported-doublettes.... done\n";
-    foreach $key (keys %topic) {
-      if ($key != $min_key) {
-       $query = $handle->prepare("DELETE FROM toolproperty
-                                WHERE id=$key")
-         or die "Can\'t delete from toolproperty";
-       $query->execute or die "Can\'t delete from toolproperty";
-      }
-    }
-  }
-  return;
-}
-
diff --git a/src/hwinfo/src/ids/check_hd.c b/src/hwinfo/src/ids/check_hd.c
deleted file mode 100644 (file)
index eedbe4a..0000000
+++ /dev/null
@@ -1,2859 +0,0 @@
-#define _GNU_SOURCE            /* memmem */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <inttypes.h>
-#include <unistd.h>
-#include <time.h>
-#include <getopt.h>
-
-#include "../hd/hddb_int.h"
-
-#define TAG_PCI                1       /* pci ids */
-#define TAG_EISA       2       /* eisa ids */
-#define TAG_USB                3       /* usb ids */
-#define TAG_SPECIAL    4       /* internally used ids */
-#define TAG_PCMCIA     5       /* pcmcia ids */
-
-#define ID_VALUE(id)           ((id) & 0xffff)
-#define ID_TAG(id)             (((id) >> 16) & 0xf)
-#define MAKE_ID(tag, id_val)   ((tag << 16) | (id_val))
-
-typedef uint32_t hddb_entry_mask_t;
-
-typedef enum {
-  match_any, match_all
-} match_t;
-
-typedef enum {
-  pref_empty, pref_new, pref_and, pref_or, pref_add
-} prefix_t;
-
-typedef struct line_s {
-  prefix_t prefix;
-  hddb_entry_t key;
-  char *value;
-} line_t;
-
-typedef struct str_s {
-  struct str_s *next;
-  char *str;
-} str_t;
-
-typedef struct list_any_s {
-  struct list_any_s *next;
-} list_any_t;
-
-typedef struct {
-  void *first;
-  void *last;
-} list_t;
-
-typedef struct {
-  unsigned flag;
-  unsigned remove;
-} hid_any_t;
-
-typedef struct {
-  unsigned flag;
-  unsigned remove;
-  unsigned tag;
-  unsigned id;
-  unsigned range;
-  unsigned mask;
-  struct {
-    unsigned range:1;
-    unsigned mask:1;
-  } has;
-} hid_num_t;
-
-typedef struct {
-  unsigned flag;
-  unsigned remove;
-  list_t list;
-} hid_str_t;
-
-typedef union {
-  hid_any_t any;
-  hid_num_t num;
-  hid_str_t str;
-} hid_t;
-
-typedef struct skey_s {
-  struct skey_s *next;
-  hid_t *hid[he_nomask];
-} skey_t;
-
-typedef struct item_s {
-  struct item_s *next;
-  unsigned remove:1;
-  char *pos;
-  list_t key;  /* skey_t */
-  skey_t *value;
-} item_t;
-
-
-typedef struct hddb_list_s {   
-  hddb_entry_mask_t key_mask;
-  hddb_entry_mask_t value_mask;
-  unsigned key;
-  unsigned value;
-} hddb_list_t;
-
-typedef struct {
-  unsigned list_len, list_max;
-  hddb_list_t *list;
-  unsigned ids_len, ids_max;
-  unsigned *ids;
-  unsigned strings_len, strings_max;
-  char *strings;
-} hddb_data_t;
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-#ifdef UCLIBC
-void *memmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen);       
-#endif
-void *new_mem(size_t size);
-void *free_mem(void *ptr);
-char *new_str(char *str);
-void *add_list(list_t *list, void *entry);
-void sort_list(list_t *list, int (*cmp_func)(const void *, const void *));
-unsigned eisa_id(char *s);
-char *eisa_str(unsigned id);
-void write_stats(FILE *f);
-
-void read_items(char *file);
-line_t *parse_line(char *str);
-hddb_entry_mask_t add_entry(skey_t *skey, hddb_entry_t idx, char *val);
-
-void write_items(char *file, list_t *hd);
-void write_item(FILE *f, item_t *item);
-void write_skey(FILE *f, prefix_t pre, skey_t *skey);
-void write_ent_name(FILE *f, hid_t *hid, char pre, hddb_entry_t ent);
-void write_id(FILE *f, hddb_entry_t ent, hid_t *hid);
-void write_drv(FILE *f, char pre, hid_t *hid);
-void write_drv1(FILE *f, hid_t *hid, char pre, char *val);
-void log_items(FILE *f, item_t *item0, item_t *item1);
-
-int count_common_hids(skey_t *skey0, skey_t *skey1);
-int strip_skey(skey_t *skey0, skey_t *skey1, int do_it);
-void remove_deleted_hids(skey_t *skey);
-void undelete_hids(skey_t *skey);
-str_t *split(char del, char *s);
-char *join(char del, str_t *str);
-
-int cmp_driver_info(char *str0, char *str1);
-int cmp_str_s(const void *p0, const void *p1);
-int cmp_hid(hid_t *hid0, hid_t *hid1);
-int cmp_skey(skey_t *skey0, skey_t *skey1);
-int cmp_skey_s(const void *p0, const void *p1);
-int cmp_item(item_t *item0, item_t *item1);
-int cmp_item_s(const void *p0, const void *p1);
-
-int match_hid(hid_t *hid0, hid_t *hid1, match_t match);
-int match_skey(skey_t *skey0, skey_t *skey1, match_t match);
-int match_item(item_t *item0, item_t *item1, match_t match);
-
-int combine_keys(skey_t *skey0, skey_t *skey1);
-
-str_t *clone_str(str_t *str);
-hid_t *clone_hid(hid_t *hid);
-skey_t *clone_skey(skey_t *skey);
-item_t *clone_item(item_t *item);
-
-str_t *free_str(str_t *str, int follow_next);
-hid_t *free_hid(hid_t *hid);
-skey_t *free_skey(skey_t *skey, int follow_next);
-item_t *free_item(item_t *item, int follow_next);
-
-unsigned driver_entry_types(hid_t *hid);
-
-void remove_items(list_t *hd);
-void remove_nops(list_t *hd);
-void check_items(list_t *hd);
-void split_items(list_t *hd);
-void combine_driver(list_t *hd);
-void combine_requires(list_t *hd);
-void join_items_by_value(list_t *hd);
-void join_items_by_key(list_t *hd);
-void remove_unimportant_items(list_t *hd);
-
-void write_cfile(FILE *f, list_t *hd);
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-struct option options[] = {
-  { "help", 0, NULL, 1 },
-//  { "debug", 1, NULL, 2  },
-  { "log", 1, NULL, 3 },
-  { "mini", 0, NULL, 4 },
-  { "sort", 0, NULL, 5 },
-  { "reverse", 0, NULL, 6 },   /* for debugging */
-  { "random", 0, NULL, 7 },    /* dto */
-  { "check", 0, NULL, 8 },
-  { "with-source", 0, NULL, 9 },
-  { "out", 1, NULL, 10},
-  { "split", 0, NULL, 11},
-  { "cfile", 1, NULL, 12},
-  { "no-compact", 0, NULL, 13},
-  { "join-keys-first", 0, NULL, 14},
-  { "combine", 0, NULL, 15},
-  { }
-};
-
-list_t hd;
-
-char *item_ind = NULL;
-FILE *logfh = NULL;
-
-struct {
-  int debug;
-  unsigned sort:1;
-  unsigned reverse:1;
-  unsigned random:1;
-  unsigned check:1;
-  unsigned with_source:1;
-  unsigned mini:1;
-  unsigned split:1;
-  unsigned no_compact:1;
-  unsigned join_keys_first:1;
-  unsigned combine:1;          /* always combine driver info */
-  char *logfile;
-  char *outfile;
-  char *cfile;
-} opt = {
-  logfile: "hd.log",
-  outfile: "hd.ids"
-};
-
-struct {
-  unsigned items_in, items_out;
-  unsigned diffs, errors, errors_res;
-} stats;
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-int main(int argc, char **argv)
-{
-  int i, close_log = 0, close_cfile = 0;
-  item_t *item;
-  FILE *cfile;
-
-  for(opterr = 0; (i = getopt_long(argc, argv, "", options, NULL)) != -1; ) {
-    switch(i) {
-#if 0
-      case 2:
-        opt.debug = strtol(optarg, NULL, 0);
-        break;
-#endif
-
-      case 3:
-        opt.logfile = optarg;
-        if(!*opt.logfile) opt.logfile = NULL;
-        break;
-
-      case 4:
-        opt.mini = 1;
-        break;
-
-      case 5:
-        opt.sort = 1;
-        break;
-
-      case 6:
-        opt.reverse = 1;
-        break;
-
-      case 7:
-        opt.random = 1;
-        srand(time(NULL));
-        break;
-
-      case 8:
-        opt.check = 1;
-        break;
-
-      case 9:
-        opt.with_source = 1;
-        break;
-
-      case 10:
-        opt.outfile = optarg;
-        if(!*opt.outfile) opt.outfile = NULL;
-        break;
-
-      case 11:
-        opt.split = 1;
-        break;
-
-      case 12:
-        opt.cfile = optarg;
-        if(!*opt.cfile) opt.cfile = NULL;
-        break;
-
-      case 13:
-        opt.no_compact = 1;
-        break;
-
-      case 14:
-        opt.join_keys_first = 1;
-        break;
-
-      case 15:
-        opt.combine = 1;
-        break;
-
-      default:
-        fprintf(stderr,
-          "Usage: check_hd [options] files\n"
-          "Try to put hardware data into a consistent form.\n"
-          "  --check\t\tdo a lot of checks and remove unnecessary data\n"
-          "  --sort\t\tsort data\n"
-          "  --reverse\t\treverse sorting order\n"
-          "  --split\t\twrite separate entries for each key\n"
-          "  --with-source\t\tadd comment to each item indicating info source\n"
-          "  --mini\t\tminimal data base (basically driver info only)\n"
-          "  --join-keys-first\twhen combining similar items, join entries with\n"
-          "  \t\t\tcommon keys first (default is common values first)\n"
-          "  --cfile file\t\tcreate C file to be included in libhd\n"
-          "  --no-compact\t\tdon't try to make C version as small as possible\n"
-          "  --out file\t\twrite results to file, default is \"hd.ids\"\n"
-          "  --log file\t\twrite log info to file, default is \"hd.log\"\n\n"
-          "  Note: check_hd works with libhd/hwinfo internal format only;\n"
-          "  to convert to other formats, use convert_hd\n"
-        );
-        return 1;
-    }
-  }
-
-  if(opt.logfile && strcmp(opt.logfile, "-")) {
-    logfh = fopen(opt.logfile, "w");
-    if(!logfh) {
-      perror(opt.logfile);
-      return 3;
-    }
-    close_log = 1;
-  }
-  else {
-    logfh = stdout;
-  }
-
-  for(argv += optind; *argv; argv++) {
-    read_items(*argv);
-  }
-
-  for(item = hd.first; item; item = item->next) stats.items_in++;
-
-  fprintf(logfh, "- removing useless entries\n");
-  fflush(logfh);
-  remove_nops(&hd);
-
-  if(opt.mini) {
-    fprintf(logfh, "- building mini version\n");
-    fflush(logfh);
-    remove_unimportant_items(&hd);
-  }
-
-  if(opt.check || opt.split) {
-    fprintf(logfh, "- splitting entries\n");
-    fflush(logfh);
-    split_items(&hd);
-  }
-
-  if(opt.check) {
-    fprintf(logfh, "- combining driver info\n");
-    fflush(logfh);
-    combine_driver(&hd);
-
-    fprintf(logfh, "- combining requires info\n");
-    fflush(logfh);
-    combine_requires(&hd);
-
-    fprintf(logfh, "- checking for consistency\n");
-    fflush(logfh);
-    check_items(&hd);
-
-    fprintf(logfh, "- join items\n");
-    fflush(logfh);
-    if(opt.join_keys_first) {
-      join_items_by_key(&hd);
-      join_items_by_value(&hd);
-    }
-    else {
-      join_items_by_value(&hd);
-      join_items_by_key(&hd);
-    }
-
-    if(opt.split) split_items(&hd);
-  }
-
-  if(opt.sort) {
-    fprintf(logfh, "- sorting\n");
-    fflush(logfh);
-    sort_list(&hd, cmp_item_s);
-  }
-
-  for(item = hd.first; item; item = item->next) stats.items_out++;
-
-  write_items(opt.outfile, &hd);
-
-  if(opt.cfile) {
-    if(opt.cfile && strcmp(opt.cfile, "-")) {
-      cfile = fopen(opt.cfile, "w");
-      if(!cfile) {
-        perror(opt.cfile);
-        return 3;
-      }
-      close_cfile = 1;
-    }
-    else {
-      cfile = stdout;
-    }
-
-    split_items(&hd);
-
-    write_cfile(cfile, &hd);
-
-    if(close_cfile) fclose(cfile);
-  }
-
-  fprintf(logfh, "- statistics\n");
-  write_stats(logfh);
-  if(logfh != stdout) {
-    if(opt.outfile && strcmp(opt.outfile, "-")) {
-      fprintf(stderr, "data written to \"%s\"\n", opt.outfile);
-    }
-    if(opt.logfile && strcmp(opt.logfile, "-")) {
-      fprintf(stderr, "log written to \"%s\"\n", opt.logfile);
-    }
-    fprintf(stderr, "statistics:\n");
-    write_stats(stderr);
-  }
-
-  free_item(hd.first, 1);
-
-  if(close_log) fclose(logfh);
-
-  return 0;
-}
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-void *new_mem(size_t size)
-{
-  if(size == 0) return NULL;
-
-  return calloc(size, 1);
-}
-
-
-void *free_mem(void *ptr)
-{
-  if(ptr) free(ptr);
-
-  return NULL;
-}
-
-
-char *new_str(char *str)
-{
-  if(!str) return NULL;
-
-  return strdup(str);
-}
-
-
-void *add_list(list_t *list, void *entry)
-{
-  if(list->last) {
-    ((list_any_t *) list->last)->next = entry;
-  }
-  list->last = entry;
-
-  if(!list->first) {
-    list->first = entry;
-  }
-
-  return entry;
-}
-
-
-void sort_list(list_t *list, int (*cmp_func)(const void *, const void *))
-{
-  int i, list_len = 0;
-  list_any_t *list_entry;
-  list_t new_list = {};
-  list_any_t **list_array;
-
-  for(list_entry = list->first; list_entry; list_entry = list_entry->next) list_len++;
-  if(list_len < 2) return;
-
-  list_array = new_mem(list_len * sizeof *list_array);
-  for(i = 0, list_entry = list->first; list_entry; list_entry = list_entry->next) {
-    list_array[i++] = list_entry;
-  }
-
-  qsort(list_array, list_len, sizeof *list_array, cmp_func);
-
-  for(i = 0; i < list_len; i++) {
-    add_list(&new_list, list_array[i]);
-  }
-
-  if(new_list.last) {
-    ((list_any_t *) new_list.last)->next = NULL;
-  }
-
-  *list = new_list;
-
-  free_mem(list_array);
-}
-
-
-unsigned eisa_id(char *s)
-{
-  int i;
-  unsigned u = 0;
-
-  for(i = 0; i < 3; i++) {
-    u <<= 5;
-    if(s[i] < 'A' - 1 || s[i] > 'A' - 1 + 0x1f) return 0;
-    u += s[i] - 'A' + 1;
-  }
-
-  return MAKE_ID(TAG_EISA, u);
-}
-
-
-char *eisa_str(unsigned id)
-{
-  static char s[4];
-
-  s[0] = ((id >> 10) & 0x1f) + 'A' - 1;
-  s[1] = ((id >>  5) & 0x1f) + 'A' - 1;
-  s[2] = ( id        & 0x1f) + 'A' - 1;
-  s[3] = 0;
-
-  return s;
-}
-
-
-void write_stats(FILE *f)
-{
-  fprintf(f, "  %u inconsistencies%s\n", stats.diffs, stats.diffs ? " fixed" : "");
-  fprintf(f, "  %u errors", stats.errors + stats.errors_res);
-  if(stats.errors_res) fprintf(f, ", %u resolved", stats.errors_res);
-  fprintf(f, "\n");
-  fprintf(f, "  %u items in\n", stats.items_in);
-  fprintf(f, "  %u items out\n", stats.items_out);
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-void read_items(char *file)
-{
-  FILE *f;
-  char buf[1024], fpos[256];
-  unsigned u, state, l_nr;
-  hddb_entry_mask_t entry_mask = 0;
-  line_t *l;
-  item_t *item;
-  skey_t *skey;
-
-  if(!(f = fopen(file, "r"))) {
-    perror(file);
-    return;
-  }
-
-  item = new_mem(sizeof *item);
-  skey = new_mem(sizeof *skey);
-  
-  sprintf(fpos, "%s(1)", file);
-  item->pos = new_str(fpos);
-
-  for(l_nr = 1, state = 0; fgets(buf, sizeof buf, f); l_nr++) {
-    l = parse_line(buf);
-    if(!l) {
-      fprintf(stderr, "%s: invalid line\n", fpos);
-      state = 4;
-      break;
-    };
-    if(l->prefix == pref_empty) continue;
-    switch(l->prefix) {
-      case pref_new:
-        if(state == 1) {
-          add_list(&item->key, skey);
-          skey = new_mem(sizeof *skey);
-        }
-        else if(state == 2) {
-          item->value = skey;
-          skey = new_mem(sizeof *skey);
-        }
-        if(state == 2 || state == 1) {
-          add_list(&hd, item);
-          item = new_mem(sizeof *item);
-          if(!item->pos) {
-            sprintf(fpos, "%s(%d)", file, l_nr);
-            item->pos = new_str(fpos);
-          }
-        }
-        entry_mask = 0;
-        state = 1;
-        break;
-
-      case pref_and:
-        if(state != 1) {
-          fprintf(stderr, "%s: must start item first\n", fpos);
-          state = 4;
-          break;
-        }
-        break;
-
-      case pref_or:
-        if(state != 1 || !entry_mask) {
-          fprintf(stderr, "%s: must start item first\n", fpos);
-          state = 4;
-          break;
-        }
-        add_list(&item->key, skey);
-        skey = new_mem(sizeof *skey);
-        entry_mask = 0;
-        break;
-
-      case pref_add:
-        if(state == 1 && !entry_mask) {
-          fprintf(stderr, "%s: driver info not allowed\n", fpos);
-          state = 4;
-          break;
-        }
-        if(state == 1) {
-          add_list(&item->key, skey);
-          skey = new_mem(sizeof *skey);
-          entry_mask = 0;
-          state = 2;
-        }
-        if(state != 2) {
-          fprintf(stderr, "%s: driver info not allowed\n", fpos);
-          state = 4;
-          break;
-        }
-        break;
-
-      default:
-        state = 4;
-    }
-
-    if(state != 4) {
-      u = add_entry(skey, l->key, l->value);
-      if(u) {
-        entry_mask |= u;
-      }
-      else {
-        fprintf(stderr, "%s: invalid info\n", fpos);
-        state = 4;
-      }
-    }
-
-    if(state == 4) break;      /* error */
-
-  }
-
-  /* finalize last item */
-  if(entry_mask && (state == 1 || state == 2)) {
-    if(state == 1) {
-      add_list(&item->key, skey);
-      skey = NULL;
-    }
-    else if(state == 2) {
-      item->value = skey;
-      skey = NULL;
-    }
-    add_list(&hd, item);
-    item = NULL;
-  }
-
-  free_mem(skey);
-  free_mem(item);
-
-  fclose(f);
-}
-
-
-line_t *parse_line(char *str)
-{
-  static line_t l;
-  char *s;
-  int i;
-
-  /* drop leading spaces */
-  while(isspace(*str)) str++;
-
-  /* skip emtpy lines and comments */
-  if(!*str || *str == ';' || *str == '#') {
-    l.prefix = pref_empty;
-    return &l;
-  }
-
-  l.prefix = pref_new;
-
-  switch(*str) {
-    case '&':
-      l.prefix = pref_and;
-      str++;
-      break;
-
-    case '|':
-      l.prefix = pref_or;
-      str++;
-      break;
-
-    case '+':
-      l.prefix = pref_add;
-      str++;
-      break;
-  }
-
-  /* skip spaces */
-  while(isspace(*str)) str++;
-
-  s = str;
-  while(*str && !isspace(*str)) str++;
-  if(*str) *str++ = 0;
-  while(isspace(*str)) str++;
-
-  for(i = 0; (unsigned) i < sizeof hddb_entry_strings / sizeof *hddb_entry_strings; i++) {
-    if(!strcmp(s, hddb_entry_strings[i])) {
-      l.key = i;
-      break;
-    }
-  }
-
-  if((unsigned) i >= sizeof hddb_entry_strings / sizeof *hddb_entry_strings) return NULL;
-
-  l.value = str;
-
-  /* drop trailing white space */
-  i = strlen(str);
-  while(i > 0) {
-    if(isspace(str[i - 1]))
-      str[--i] = 0;
-    else
-      break;
-  }
-
-  /* special case: drop leading and final double quotes, if any */
-  i = strlen(l.value);
-  if(i >= 2 && l.value[0] == '"' && l.value[i - 1] == '"') {
-    l.value[i - 1] = 0;
-    l.value++;
-  }
-
-  // fprintf(stderr, "pre = %d, key = %d, val = \"%s\"\n", l.prefix, l.key, l.value);
-
-  return &l;
-}
-
-
-int parse_id(char *str, unsigned *id, unsigned *tag, unsigned *range, unsigned *mask)
-{
-  static unsigned id0, val;
-  char c = 0, *s, *t = NULL;
-
-  *id = *tag = *range = *mask = 0;
-
-  if(!str || !*str) return 0;
-  
-  for(s = str; *str && !isspace(*str); str++);
-  if(*str) {
-    c = *(t = str);    /* remember for later */
-    *str++ = 0;
-  }
-  while(isspace(*str)) str++;
-
-  if(*s) {
-    if(!strcmp(s, "pci")) *tag = TAG_PCI;
-    else if(!strcmp(s, "usb")) *tag = TAG_USB;
-    else if(!strcmp(s, "special")) *tag = TAG_SPECIAL;
-    else if(!strcmp(s, "eisa")) *tag = TAG_EISA;
-    else if(!strcmp(s, "isapnp")) *tag = TAG_EISA;
-    else if(!strcmp(s, "pcmcia")) *tag = TAG_PCMCIA;
-    else {
-      str = s;
-      if(t) *t = c;    /* restore */
-    }
-  }
-
-  id0 = strtoul(str, &s, 0);
-
-  if(s == str) {
-    id0 = eisa_id(str);
-    if(!id0) return 0;
-    s = str + 3;
-    id0 = ID_VALUE(id0);
-    if(!*tag) *tag = TAG_EISA;
-  }
-
-  while(isspace(*s)) s++;
-  if(*s && *s != '&' && *s != '+') return 0;
-
-  *id = id0;
-
-  if(!*s) return 1;
-
-  c = *s++;
-
-  while(isspace(*s)) s++;
-
-  val = strtoul(s, &str, 0);
-
-  if(s == str) return 0;
-
-  while(isspace(*str)) str++;
-
-  if(*str) return 0;
-
-  if(c == '+') *range = val; else *mask = val;
-
-  return c == '+' ? 2 : 3;
-}
-
-
-hddb_entry_mask_t add_entry(skey_t *skey, hddb_entry_t idx, char *val)
-{
-  hddb_entry_mask_t e_mask = 0;
-  int i;
-  unsigned id, tag, range, mask;
-  char *s, *s1, *s2, c;
-  hid_t *hid;
-  str_t *str;
-
-  for(i = 0; (unsigned) i < sizeof hddb_is_numeric / sizeof *hddb_is_numeric; i++) {
-    if(idx == hddb_is_numeric[i]) break;
-  }
-
-  // printf("i = %d, idx = %d, val = >%s<\n", i, idx, val);
-
-  if((unsigned) i < sizeof hddb_is_numeric / sizeof *hddb_is_numeric) {
-    /* numeric id */
-    e_mask |= 1 << idx;
-
-    i = parse_id(val, &id, &tag, &range, &mask);
-
-    // printf("parse_id = %d\n", i);
-
-    if(i) {
-      skey->hid[idx] = hid = new_mem(sizeof *hid);
-      hid->num.flag = FLAG_ID;
-      hid->num.tag = tag;
-      hid->num.id = id;
-    }
-    else {
-      return 0;
-    }
-
-    switch(i) {
-      case 1:
-        break;
-
-      case 2:
-        hid->num.range = range;
-        hid->num.has.range = 1;
-        break;
-
-      case 3:
-        hid->num.mask = mask;
-        hid->num.has.mask = 1;
-        break;
-
-      default:
-        return 0;
-    }
-  }
-  else {
-    if(idx < he_nomask) {
-      /* strings */
-
-      e_mask |= 1 << idx;
-      skey->hid[idx] = hid = new_mem(sizeof *hid);
-      hid->str.flag = FLAG_STRING;
-      str = add_list(&hid->str.list, new_mem(sizeof *str));
-      str->str = new_str(val);
-    }
-    else {
-      /* special */
-
-      if(idx == he_class_id) {
-        i = parse_id(val, &id, &tag, &range, &mask);
-        if(i != 1) return 0;
-
-        skey->hid[he_baseclass_id] = hid = new_mem(sizeof *hid);
-        hid->num.flag = FLAG_ID;
-        hid->num.tag = tag;
-        hid->num.id = id >> 8;
-
-        skey->hid[he_subclass_id] = hid = new_mem(sizeof *hid);
-        hid->num.flag = FLAG_ID;
-        hid->num.tag = tag;
-        hid->num.id = id & 0xff;
-
-        e_mask |= (1 << he_baseclass_id) + (1 << he_subclass_id) /* + (1 << he_progif_id) */;
-      }
-      else {
-        switch(idx) {
-          case he_driver_module_insmod:
-            c = 'i';
-            break;
-
-          case he_driver_module_modprobe:
-            c = 'm';
-            break;
-
-          case he_driver_module_config:
-            c = 'M';
-            break;
-
-          case he_driver_xfree:
-            c = 'x';
-            break;
-
-          case he_driver_xfree_config:
-            c = 'X';
-            break;
-
-          case he_driver_mouse:
-            c = 'p';
-            break;
-
-          case he_driver_display:
-            c = 'd';
-            break;
-
-          case he_driver_any:
-            c = 'a';
-            break;
-
-          default:
-            c = 0;
-            break;
-        }
-        if(c) {
-          s = new_mem(strlen(val) + 3);
-          s[0] = c;
-          s[1] = '\t';
-          strcpy(s + 2, val);
-          hid = skey->hid[he_driver];
-          if(!hid) {
-            skey->hid[he_driver] = hid = new_mem(sizeof *hid);
-            hid->str.flag = FLAG_STRING;
-          }
-          if(
-            (c == 'X' || c == 'M') &&
-            hid->str.list.last &&
-            (s1 = ((str_t *) hid->str.list.last)->str)
-          ) {
-            s2 = new_mem(strlen(s1) + strlen(s) + 2);
-            sprintf(s2, "%s\001%s", s1, s);
-            free_mem(s1);
-            ((str_t *) hid->str.list.last)->str = s2;
-          }
-          else {
-            str = add_list(&hid->str.list, new_mem(sizeof *str));
-            str->str = new_str(s);
-          }
-          e_mask |= (1 << he_driver);
-          s = free_mem(s);
-        }
-      }
-    }
-  }
-
-  return e_mask;
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-void write_items(char *file, list_t *hd)
-{
-  FILE *f;
-  item_t *item;
-  int close_it = 0;
-
-  if(file && strcmp(file, "-")) {
-    f = fopen(file, "w");
-    if(!f) {
-      perror(file);
-      return;
-    }
-    close_it = 1;
-  }
-  else {
-    f = stdout;
-  }
-
-  for(item = hd->first; item; item = item->next) {
-    if(opt.with_source) fprintf(f, "# %s\n", item->pos);
-    write_item(f, item);
-    fputc('\n', f);
-  }
-
-  if(close_it) fclose(f);
-}
-
-
-void write_item(FILE *f, item_t *item)
-{
-  skey_t *skey;
-  prefix_t pre;
-
-  pre = pref_new;
-  for(skey = item->key.first; skey; skey = skey->next) {
-    write_skey(f, pre, skey);
-    pre = pref_or;
-  }
-  write_skey(f, pref_add, item->value);
-}
-
-
-void write_skey(FILE *f, prefix_t pre, skey_t *skey)
-{
-  static char pref_char[5] = { ' ', ' ', '&', '|', '+' };
-  int i;
-
-  if(pre >= sizeof pref_char) {
-    fprintf(stderr, "internal oops\n");
-    exit(2);
-  }
-
-  if(!skey) return;
-
-  for(i = 0; (unsigned) i < sizeof skey->hid / sizeof *skey->hid; i++) {
-    if(skey->hid[i]) {
-      if(i != he_driver) {
-        write_ent_name(f, skey->hid[i], pref_char[pre], i);
-        write_id(f, i, skey->hid[i]);
-        fputc('\n', f);
-      }
-      else {
-        write_drv(f, pref_char[pre], skey->hid[i]);
-      }
-      if(pre != pref_add) pre = pref_and;
-    }
-  }
-}
-
-
-void write_ent_name(FILE *f, hid_t *hid, char pre, hddb_entry_t ent)
-{
-  int len, tab_ind = 24;
-  char c;
-
-  if(ent >= sizeof hddb_entry_strings / sizeof *hddb_entry_strings) {
-    fprintf(stderr, "internal oops\n");
-    exit(2);
-  }
-
-  len = item_ind ? strlen(item_ind) : 0;
-
-  if(!len) {
-    fprintf(f, "%c%s\t", pre, hddb_entry_strings[ent]);
-  }
-  else {
-    c = hid->any.remove ? '*' : ':';
-    fprintf(f, "%s%c %c%s\t", item_ind, c, pre, hddb_entry_strings[ent]);
-    len += 2;
-    tab_ind += 8;
-  }
-
-  len += strlen(hddb_entry_strings[ent]) + 1;
-
-  for(len = (len & ~7) + 8; len < tab_ind; len += 8) {
-    fputc('\t', f);
-  }
-}
-
-
-void write_id(FILE *f, hddb_entry_t ent, hid_t *hid)
-{
-  static char *tag_name[6] = { "", "pci ", "eisa ", "usb ", "special ", "pcmcia " };
-  int tag;
-  unsigned u;
-  char c;
-
-  switch(hid->any.flag) {
-    case FLAG_ID:
-      tag = hid->num.tag;
-      if((unsigned) tag >= sizeof tag_name / sizeof *tag_name) {
-        fprintf(stderr, "internal oops\n");
-        exit(2);
-      }
-      if(tag == TAG_EISA && (ent == he_vendor_id || ent == he_subvendor_id)) {
-        fprintf(f, "%s", eisa_str(hid->num.id));
-      }
-      else {
-        u = 4;
-        if(ent == he_bus_id || ent == he_subclass_id || ent == he_progif_id) {
-          u = 2;
-        }
-        else if(ent == he_baseclass_id) {
-          u = 3;
-        }
-        fprintf(f, "%s0x%0*x", tag_name[tag], u, hid->num.id);
-      }
-      if(hid->num.has.range || hid->num.has.mask) {
-        if(hid->num.has.range) {
-          u = hid->num.range;
-          c = '+';
-        }
-        else {
-          u = hid->num.mask;
-          c = '&';
-        }
-        fprintf(f, "%c0x%04x", c, u);
-      }
-      break;
-
-    case FLAG_STRING:
-      if(      /* not exactly 1 string */
-        !hid->str.list.first ||
-        ((str_t *) hid->str.list.first)->next
-      ) {
-        fprintf(stderr, "internal oops\n");
-        exit(2);
-      }
-      fprintf(f, "%s", ((str_t *) hid->str.list.first)->str);
-      break;
-
-    default:
-      fprintf(stderr, "internal oops\n");
-      exit(2);
-      break;
-  }
-}
-
-
-void write_drv(FILE *f, char pre, hid_t *hid)
-{
-  str_t *str;
-  char *s, *t;
-
-  if(hid->any.flag != FLAG_STRING) {
-    fprintf(stderr, "internal oops\n");
-    exit(2);
-  }
-
-  for(str = hid->str.list.first; str; str = str->next) {
-    for(s = str->str; (t = strchr(s, '\001')); s = t + 1) {
-      *t = 0;
-      write_drv1(f, hid, pre, s);
-      *t = '\001';
-    }
-    write_drv1(f, hid, pre, s);
-  }
-}
-
-
-void write_drv1(FILE *f, hid_t *hid, char pre, char *val)
-{
-  char type;
-  int ent;
-
-  type = val[0];
-  if(!type || val[1] != '\t') {
-    fprintf(stderr, "internal oops\n");
-    exit(2);
-  }
-
-  switch(type) {
-    case 'x':
-      ent = he_driver_xfree;
-      break;
-
-    case 'X':
-      ent = he_driver_xfree_config;
-      break;
-
-    case 'i':
-      ent = he_driver_module_insmod;
-      break;
-
-    case 'm':
-      ent = he_driver_module_modprobe;
-      break;
-
-    case 'M':
-      ent = he_driver_module_config;
-      break;
-
-    case 'p':
-      ent = he_driver_mouse;
-      break;
-
-    case 'd':
-      ent = he_driver_display;
-      break;
-
-    case 'a':
-      ent = he_driver_any;
-      break;
-
-    default:
-      fprintf(stderr, "internal oops\n");
-      exit(2);
-      break;
-  }
-
-  write_ent_name(f, hid, pre, ent);
-  fprintf(f, "%s\n", val + 2);
-
-}
-
-
-void log_items(FILE *f, item_t *item0, item_t *item1)
-{
-  char *save_ind = item_ind;
-
-  if(item0) {
-    item_ind = "  0";
-    write_item(f, item0);
-  }
-
-  if(item1) {
-    item_ind = "  1";
-    write_item(f, item1);
-  }
-
-  item_ind = save_ind;
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-/* count common defined hid entries */
-int count_common_hids(skey_t *skey0, skey_t *skey1)
-{
-  int i, cnt = 0;
-
-  if(!skey0 || !skey1) return 0;
-
-  for(i = 0; (unsigned) i < sizeof skey0->hid / sizeof *skey0->hid; i++) {
-    if(skey0->hid[i] && skey1->hid[i]) cnt++;
-  }
-
-  return cnt;
-}
-
-
-/*
- * remove hid entries from skey0 that are defined in skey1
- *
- * do_it:
- *   0: don't remove anything, just count
- *   1: remove identical entries
- *   2: remove differing entries
- *   3: both of the above
- *
- * return
- *   bits  0- 7: identical entries
- *         8-15: different entries
- *        16-23: critical conflicts
- */
-int strip_skey(skey_t *skey0, skey_t *skey1, int do_it)
-{
-  int i, cnt;
-
-  for(i = cnt = 0; (unsigned) i < sizeof skey0->hid / sizeof *skey0->hid; i++) {
-    if(!skey0->hid[i] || !skey1->hid[i]) continue;
-    if(cmp_hid(skey0->hid[i], skey1->hid[i])) {
-      cnt += 1 << 8;
-      if(i == he_driver || i == he_requires) {
-        cnt += 1 << 16;
-      }
-      if((do_it & 2)) skey0->hid[i]->any.remove = 1;
-    }
-    else {
-      cnt++;
-      if((do_it & 1)) skey0->hid[i]->any.remove = 1;
-    }
-  }
-
-  return cnt;
-}
-
-
-/*
- * remove deleted hid entries from skey
- */
-void remove_deleted_hids(skey_t *skey)
-{
-  int i;
-
-  for(i = 0; (unsigned) i < sizeof skey->hid / sizeof *skey->hid; i++) {
-    if(skey->hid[i] && skey->hid[i]->any.remove) {
-      skey->hid[i] = free_hid(skey->hid[i]);
-    }
-  }
-}
-
-
-/*
- * undeleted hid entries from skey
- */
-void undelete_hids(skey_t *skey)
-{
-  int i;
-
-  for(i = 0; (unsigned) i < sizeof skey->hid / sizeof *skey->hid; i++) {
-    if(skey->hid[i]) skey->hid[i]->any.remove = 0;
-  }
-}
-
-
-str_t *split(char del, char *s)
-{
-  char *t, *s0;
-  list_t list = {};
-  str_t *str;
-
-  if(!s) return NULL;
-
-  for(s0 = s = new_str(s); (t = strchr(s, del)); s = t + 1) {
-    *t = 0;
-    str = add_list(&list, new_mem(sizeof *str));
-    str->str = new_str(s);
-  }
-  str = add_list(&list, new_mem(sizeof *str));
-  str->str = new_str(s);
-
-  free_mem(s0);
-
-  return list.first;
-}
-
-
-char *join(char del, str_t *str)
-{
-  char *s, t[2];
-  str_t *str0;
-  int len = 0;
-
-  for(str0 = str; str0; str0 = str0->next) {
-    len += strlen(str0->str) + 1;
-  }
-
-  if(!len) return NULL;
-
-  s = new_mem(len);
-
-  t[0] = del; t[1] = 0;
-
-  for(; str; str = str->next) {
-    strcat(s, str->str);
-    if(str->next) strcat(s, t);
-  }
-
-  return s;
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-/*
- * str0 & str1 _must_ hold valid driver info
- */
-int cmp_driver_info(char *str0, char *str1)
-{
-  char type0, type1;
-  str_t *sl0, *sl1;
-  int _3d0, _3d1, res;
-
-  type0 = *str0;
-  type1 = *str1;
-
-  if(type0 == 'a' || type1 == 'a') {
-    if(type0 == 'a' && type1 == 'a') return 0;
-    if(type0 == 'a') return 1;
-    return -1;
-  }
-
-  if(type0 != 'x' || type1 != 'x') return 0;
-
-  str0 += 2;
-  str1 += 2;
-
-  sl0 = split('|', str0);
-  sl1 = split('|', str1);
-
-  res = 0;
-
-  if(sl0 && sl1) {
-
-    /* xfree v4 first, then xfree v3 */
-    if(*sl0->str != *sl1->str) res = *sl0->str < *sl1->str ? 1 : -1;
-
-    if(!res) {
-      _3d0 = _3d1 = 0;
-
-      if(sl0->next && sl0->next->next && *sl0->next->next->str) _3d0 = 1;
-      if(sl1->next && sl1->next->next && *sl1->next->next->str) _3d1 = 1;
-
-      /* entries without 3d support first */
-      res = _3d0 - _3d1;
-    }
-  }
-
-  free_str(sl0, 1);
-  free_str(sl1, 1);
-
-  return res;
-}
-
-
-/* wrapper for qsort */
-int cmp_str_s(const void *p0, const void *p1)
-{
-  str_t **str0, **str1;
-
-  str0 = (str_t **) p0;
-  str1 = (str_t **) p1;
-
-  return strcmp((*str0)->str, (*str1)->str);
-}
-
-
-int cmp_hid(hid_t *hid0, hid_t *hid1)
-{
-  int i = 0;
-  str_t *str0, *str1;
-
-  if(!hid0 && !hid1) return 0;
-  if(!hid0) return -1;
-  if(!hid1) return 1;
-
-  if(hid0->any.flag != hid1->any.flag) {
-    return hid0->any.flag < hid1->any.flag ? -1 : 1;
-  }
-
-  if(hid0->any.flag == FLAG_STRING) {
-    str0 = hid0->str.list.first;
-    str1 = hid1->str.list.first;
-    for(; str0 && str1; str0 = str0->next, str1 = str1->next) {
-      i = strcmp(str0->str, str1->str);
-      if(i) {
-        i = i > 0 ? 1 : -1;
-        break;
-      }
-    }
-    if(!i) {
-      if(str0) i = 1; else if(str1) i = -1;
-    }
-  }
-  else if(hid0->any.flag == FLAG_ID) {
-    if(hid0->num.tag != hid1->num.tag) {
-      i = hid0->num.tag < hid1->num.tag ? -1 : 1;
-    }
-    else if(hid0->num.id != hid1->num.id) {
-      i = hid0->num.id < hid1->num.id ? -1 : 1;
-    }
-    else if(hid0->num.has.range || hid1->num.has.range) {
-      if(!hid0->num.has.range) {
-        i = -1;
-      }
-      else if(!hid1->num.has.range) {
-        i = 1;
-      }
-      else if(hid0->num.range != hid1->num.range) {
-        i = hid0->num.range < hid1->num.range ? -1 : 1;
-      }
-    }
-    else if(hid0->num.has.mask || hid1->num.has.mask) {
-      if(!hid0->num.has.mask) {
-        i = -1;
-      }
-      else if(!hid1->num.has.mask) {
-        i = 1;
-      }
-      else if(hid0->num.mask != hid1->num.mask) {
-        i = hid0->num.mask < hid1->num.mask ? -1 : 1;
-      }
-    }
-  }
-
-  return i;
-}
-
-
-int cmp_skey(skey_t *skey0, skey_t *skey1)
-{
-  int i, j, len0, len1, len;
-
-  if(!skey0 && !skey1) return 0;
-  if(!skey0) return -1;
-  if(!skey1) return 1;
-
-  for(i = len0 = len1 = 0; (unsigned) i < sizeof skey0->hid / sizeof *skey0->hid; i++) {
-    if(skey0->hid[i]) len0 = i;
-    if(skey1->hid[i]) len1 = i;
-  }
-  len0++;
-  len1++;
-
-  // printf("len0 = %d, len1 = %d\n", len0, len1);
-
-  len = len0 < len1 ? len0 : len1;
-
-  for(i = j = 0; j < len; j++) {
-    // printf("0: j = %d\n", j);
-
-    if(!skey0->hid[j] && !skey1->hid[j]) continue;
-
-    /* note: this looks reversed, but is intentional! */
-    if(!skey0->hid[j]) { i = 1; break; }
-    if(!skey1->hid[j]) { i = -1; break; }
-
-    i = cmp_hid(skey0->hid[j], skey1->hid[j]);
-    // printf("1: j = %d, i = %d\n", j, i);
-    
-    if(i) break;
-  }
-
-  if(!i && len0 != len1) {
-    i = len0 > len1 ? 1 : -1;
-  }
-
-  return i;
-}
-
-
-/* wrapper for qsort */
-int cmp_skey_s(const void *p0, const void *p1)
-{
-  skey_t **skey0, **skey1;
-
-  skey0 = (skey_t **) p0;
-  skey1 = (skey_t **) p1;
-
-  return cmp_skey(*skey0, *skey1);
-}
-
-
-int cmp_item(item_t *item0, item_t *item1)
-{
-  int i;
-  skey_t *skey0, *skey1;
-
-  skey0 = item0->key.first;
-  skey1 = item1->key.first;
-  for(i = 0; skey0 && skey1; skey0 = skey0->next, skey1 = skey1->next) {
-    if((i = cmp_skey(skey0, skey1))) break;
-  }
-  if(!i) i = cmp_skey(skey0, skey1);
-
-  if(!i) i = 2 * cmp_skey(item0->value, item1->value);
-
-  // printf("%s -- %s : %d\n", item0->pos, item1->pos, i);
-
-  return i;
-}
-
-
-/* wrapper for qsort */
-int cmp_item_s(const void *p0, const void *p1)
-{
-  int i;
-  item_t **item0, **item1;
-
-  item0 = (item_t **) p0;
-  item1 = (item_t **) p1;
-
-  if(opt.random) {
-    i = ((rand() / 317) % 3) - 1;
-  }
-  else if(opt.reverse) {
-    i = cmp_item(*item1, *item0);
-  }
-  else {
-    i = cmp_item(*item0, *item1);
-  }
-
-  return i;
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-/*
- * Does hid1 match if hid0 does?
- * > 0: yes, 0: no, < 0: maybe
- *
- * match:
- *   match_any: at least one common id in hid1 & hid0
- *   match_all: hid1 matches whenever hid0 does (hid0 is special case of hid1))
- */
-int match_hid(hid_t *hid0, hid_t *hid1, match_t match)
-{
-  int i, m = -1;
-  str_t *str0, *str1;
-
-  if(!hid1) return 1;
-  if(!hid0) return 0;
-
-  if(hid0->any.flag != hid1->any.flag) return 0;
-
-  if(hid0->any.flag == FLAG_STRING) {
-    str0 = hid0->str.list.first;
-    str1 = hid1->str.list.first;
-    for(; str0 && str1; str0 = str0->next, str1 = str1->next) {
-      i = strcmp(str0->str, str1->str);
-      if(i) return 0;
-    }
-    m = str0 || str1 ? 0 : 1;
-  }
-  else if(hid0->any.flag == FLAG_ID) {
-    if(hid0->num.tag != hid1->num.tag) return 0;
-
-    if(match == match_any) {
-
-      if(hid0->num.has.range) {
-        if(hid1->num.has.range) {
-          m =
-            (
-              hid1->num.id >= hid0->num.id &&
-               hid1->num.id < hid0->num.id + hid0->num.range
-            ) ||
-            (
-              hid0->num.id >= hid1->num.id &&
-              hid0->num.id < hid1->num.id + hid1->num.range
-            ) ? 1 : 0;
-
-        }
-        else if(hid1->num.has.mask) {
-
-        }
-        else {
-          m =
-            (
-              hid1->num.id >= hid0->num.id &&
-              hid1->num.id < hid0->num.id + hid0->num.range
-            ) ? 1 : 0;
-        }
-      }
-      else if(hid0->num.has.mask) {
-        if(hid1->num.has.range) {
-
-        }
-        else if(hid1->num.has.mask) {
-
-        }
-        else {
-          m = (hid1->num.id & ~hid0->num.mask) == hid0->num.id ? 1 : 0;
-        }
-      }
-      else {
-        if(hid1->num.has.range) {
-          m =
-            (
-              hid0->num.id >= hid1->num.id &&
-              hid0->num.id < hid1->num.id + hid1->num.range
-            ) ? 1 : 0;
-        }
-        else if(hid1->num.has.mask) {
-          m = (hid0->num.id & ~hid1->num.mask) == hid1->num.id ? 1 : 0;
-        }
-        else {
-          m = hid0->num.id == hid1->num.id ? 1 : 0;
-        }
-      }
-
-    }
-    else {     /* match_all */
-
-      if(hid0->num.has.range) {
-        if(hid1->num.has.range) {
-          m =
-            (
-              hid0->num.id >= hid1->num.id &&
-               hid0->num.id + hid0->num.range <= hid1->num.id + hid1->num.range
-            ) ? 1 : 0;
-//          fprintf(logfh, "id0 = 0x%x, id1 = 0x%x, m = %d\n", hid0->num.id, hid1->num.id, m);
-        }
-        else if(hid1->num.has.mask) {
-
-        }
-        else {
-          m = hid1->num.id == hid0->num.id && hid0->num.range == 1 ? 1 : 0;
-        }
-      }
-      else if(hid0->num.has.mask) {
-        if(hid1->num.has.range) {
-
-        }
-        else if(hid1->num.has.mask) {
-
-        }
-        else {
-          m = (hid1->num.id & ~hid0->num.mask) == hid0->num.id && hid0->num.mask == 0 ? 1 : 0;
-        }
-      }
-      else {
-        if(hid1->num.has.range) {
-          m =
-            (
-              hid0->num.id >= hid1->num.id &&
-              hid0->num.id < hid1->num.id + hid1->num.range
-            ) ? 1 : 0;
-        }
-        else if(hid1->num.has.mask) {
-          m = (hid0->num.id & ~hid1->num.mask) == hid1->num.id ? 1 : 0;
-        }
-        else {
-          m = hid0->num.id == hid1->num.id ? 1 : 0;
-        }
-      }
-
-    }
-  }
-
-  return m;
-}
-
-
-/*
- * Does skey1 match if skey0 does?
- * > 0: yes, 0: no, < 0: maybe
- */
-int match_skey(skey_t *skey0, skey_t *skey1, match_t match)
-{
-  int i, k, m = 1;
-
-  for(i = k = 0; (unsigned) i < sizeof skey0->hid / sizeof *skey0->hid; i++) {
-    k = match_hid(skey0->hid[i], skey1->hid[i], match);
-    if(k > 0) continue;
-    if(!k) return 0;
-    m = k;
-  }
-
-  return m;
-}
-
-
-/*
- * Does item1 match if item0 does?
- * > 0: yes, 0: no, < 0: maybe
- */
-int match_item(item_t *item0, item_t *item1, match_t match)
-{
-  int i, k = 0;
-  skey_t *skey0, *skey1;
-
-  skey0 = item0->key.first;
-  skey1 = item1->key.first;
-
-  for(skey0 = item0->key.first; skey0; skey0 = skey0->next) {
-    for(skey1 = item1->key.first; skey1; skey1 = skey1->next) {
-      i = match_skey(skey0, skey1, match);
-      if(i > 0) return i;
-      if(i) k = i;
-    }
-  }
-
-  return k;
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-int combine_keys(skey_t *skey0, skey_t *skey1)
-{
-  int i, ind;
-  unsigned r0, r1;
-  hid_t *hid0, *hid1;
-
-  for(ind = -1, i = 0; (unsigned) i < sizeof skey0->hid / sizeof *skey0->hid; i++) {
-    if(!skey0->hid[i] && !skey1->hid[i]) continue;
-    if(!skey0->hid[i] || !skey1->hid[i]) return 0;
-    if(!cmp_hid(skey0->hid[i], skey1->hid[i])) continue;
-    if(ind >= 0) return 0;
-    ind = i;
-  }
-
-  if(ind < 0) return 0;
-
-  /* ok, exactly one hid differs */
-  hid0 = skey0->hid[ind];
-  hid1 = skey1->hid[ind];
-
-  /* must be numerical */
-  if(hid0->any.flag != FLAG_ID || hid1->any.flag != FLAG_ID) return 0;
-
-  /* no mask value */
-  if(hid0->num.has.mask || hid1->num.has.mask) return 0;
-
-  /* must be adjacent ranges, can overlap  */
-  r0 = hid0->num.has.range ? hid0->num.range : 1;
-  r1 = hid1->num.has.range ? hid1->num.range : 1;
-
-  if(hid1->num.id >= hid0->num.id && hid1->num.id <= hid0->num.id + r0) {
-    i = hid1->num.id + r1 - hid0->num.id;
-    if((unsigned) i < r0) i = r0;
-    if(i != 1) {
-      hid0->num.range = i;
-      hid0->num.has.range = 1;
-    }
-    else {
-      hid0->num.range = 0;
-      hid0->num.has.range = 0;
-    }
-  }
-  else {
-    return 0;
-  }
-
-  return 1;
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-str_t *clone_str(str_t *str)
-{
-  str_t *n_str;
-
-  if(!str) return NULL;
-
-  n_str = new_mem(sizeof *n_str);
-  n_str->str = new_str(str->str);
-
-  return n_str;
-}
-
-
-hid_t *clone_hid(hid_t *hid)
-{
-  hid_t *new_hid;
-  str_t *str;
-
-  if(!hid) return NULL;
-
-  new_hid = new_mem(sizeof *new_hid);
-
-  *new_hid = *hid;
-
-  if(hid->any.flag == FLAG_STRING) {
-    memset(&new_hid->str.list, 0, sizeof new_hid->str.list);
-    for(str = hid->str.list.first; str; str = str->next) {
-      add_list(&new_hid->str.list, clone_str(str));
-    }
-  }
-
-  return new_hid;
-}
-
-
-skey_t *clone_skey(skey_t *skey)
-{
-  int i;
-  skey_t *new_skey;
-
-  if(!skey) return NULL;
-
-  new_skey = new_mem(sizeof *new_skey);
-
-  for(i = 0; (unsigned) i < sizeof skey->hid / sizeof *skey->hid; i++) {
-    new_skey->hid[i] = clone_hid(skey->hid[i]);
-  }
-
-  return new_skey;
-}
-
-
-item_t *clone_item(item_t *item)
-{
-  item_t *new_item;
-  skey_t *skey;
-
-  if(!item) return NULL;
-
-  new_item = new_mem(sizeof *new_item);
-
-  new_item->pos = new_str(item->pos);
-
-  for(skey = item->key.first; skey; skey = skey->next) {
-    add_list(&new_item->key, clone_skey(skey));
-  }
-
-  new_item->value = clone_skey(item->value);
-
-  return new_item;
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-str_t *free_str(str_t *str, int follow_next)
-{
-  str_t *next;
-
-  for(; str; str = next) {
-    next = str->next;
-
-    free_mem(str->str);
-    free_mem(str);
-
-    if(!follow_next) break;
-  }
-
-  return NULL;
-}
-
-
-hid_t *free_hid(hid_t *hid)
-{
-  if(!hid) return NULL;
-
-  if(hid->any.flag == FLAG_STRING) {
-    free_str(hid->str.list.first, 1);
-  }
-  free_mem(hid);
-
-  return NULL;
-}
-
-
-skey_t *free_skey(skey_t *skey, int follow_next)
-{
-  skey_t *next;
-  int i;
-
-  for(; skey; skey = next) {
-    next = skey->next;
-
-    for(i = 0; (unsigned) i < sizeof skey->hid / sizeof *skey->hid; i++) {
-      free_hid(skey->hid[i]);
-    }
-
-    free_mem(skey);
-
-    if(!follow_next) break;
-  }
-
-  return NULL;
-}
-
-
-item_t *free_item(item_t *item, int follow_next)
-{
-  item_t *next;
-
-  for(; item; item = next) {
-    next = item->next;
-
-    free_mem(item->pos);
-
-    free_skey(item->key.first, 1);
-    free_skey(item->value, 0);
-
-    free_mem(item);
-
-    if(!follow_next) break;
-  }
-
-  return NULL;
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-unsigned driver_entry_types(hid_t *hid)
-{
-  str_t *str;
-  unsigned ent = 0;
-
-  for(str = hid->str.list.first; str; str = str->next) {
-    if(!str->str[0] || str->str[1] != '\t') break;
-    switch(str->str[0]) {
-      case 'a':
-        ent |= 1;
-        break;
-
-      case 'x':
-      case 'X':
-        ent |= 2;
-        break;
-
-      default:
-        ent |= 4;
-    }
-  }
-
-  return ent;
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-void remove_items(list_t *hd)
-{
-  item_t *item, *next;
-  list_t hd_new = {};
-
-  for(item = hd->first; item; item = next) {
-    next = item->next;
-    if(item->remove) {
-      free_item(item, 0);
-    }
-    else {
-      add_list(&hd_new, item);
-    }
-  }
-
-  if(hd_new.last) {
-    ((list_any_t *) hd_new.last)->next = NULL;
-  }
-
-  *hd = hd_new;
-}
-
-
-void remove_nops(list_t *hd)
-{
-  item_t *item;
-  int cnt = 0;
-
-  for(item = hd->first; item; item = item->next) {
-    if(!item->value || !item->key.first) {
-      item->remove = 1;
-      cnt++;
-    }
-  }
-
-  if(cnt) remove_items(hd);
-}
-
-
-void split_items(list_t *hd)
-{
-  item_t *item, *new_item, *next_item;
-  skey_t *skey, *next;
-  list_t hd_new = {};
-  int cnt, l;
-  char buf[16];
-
-  for(item = hd->first; item; item = next_item) {
-    next_item = item->next;
-    skey = item->key.first;
-    if(skey && skey->next) {
-      for(cnt = 0, skey = item->key.first; skey; skey = next) {
-        next = skey->next;
-        new_item = add_list(&hd_new, new_mem(sizeof *new_item));
-        if(item->pos && (l = strlen(item->pos))) {
-          sprintf(buf, ",%d)", cnt++);
-          new_item->pos = new_mem(l - 1 + strlen(buf) + 1);
-          strcpy(new_item->pos, item->pos);
-          strcpy(new_item->pos + l - 1, buf);
-        }
-        new_item->value = clone_skey(item->value);
-        add_list(&new_item->key, clone_skey(skey));
-      }
-      free_item(item, 0);
-    }
-    else {
-      add_list(&hd_new, item);
-    }
-  }
-
-  if(hd_new.last) {
-    ((list_any_t *) hd_new.last)->next = NULL;
-  }
-
-  *hd = hd_new;
-}
-
-
-void check_items(list_t *hd)
-{
-  int i, j, k, m, mr, m_all, mr_all, c_ident, c_diff, c_crit;
-  char *s;
-  item_t *item0, *item1, *item_a, *item_b;
-  unsigned *stat_cnt;
-
-  for(item0 = hd->first; item0; item0 = item0->next) {
-    if(item0->remove) continue;
-    for(item1 = item0->next; item1 && !item0->remove; item1 = item1->next) {
-      if(item1->remove) continue;
-
-      item_a = item0; item_b = item1;
-
-      m = match_item(item0, item1, match_any);
-      mr = match_item(item1, item0, match_any);
-
-      m_all = mr_all = 0;
-
-      if(m && mr) {
-        m_all = match_item(item0, item1, match_all);
-        mr_all = match_item(item1, item0, match_all);
-        if(mr_all) {
-          item_a = item1; item_b = item0;
-          i = m_all; m_all = mr_all; mr_all = i;
-          i = m; m = mr; mr = i;
-        }
-      }
-      else if(mr && !m) {
-        item_a = item1; item_b = item0;
-        m = mr; mr = 0;
-      }
-
-      if(m && !mr) {
-        m_all = match_item(item_a, item_b, match_all);
-        mr_all = match_item(item_b, item_a, match_all);
-      }
-
-      if(m) {
-#if 0
-        fprintf(
-          logfh, "a = %s, b = %s, m = %d, mr = %d, m_all = %d, mr_all = %d\n",
-          item_a->pos, item_b->pos,
-          m, mr, m_all, mr_all
-        );
-#endif
-
-        if(m_all) {
-          /*
-           * item_b matches (at least) everything that item_a does
-           * (item_a is a special case of item_b)
-           */
-
-          i = cmp_item(item_a, item_b);                /* just informational */
-          if(!i) {
-            /* identical keys and values */
-            fprintf(logfh,
-              "%s: duplicate of %s, item removed\n",
-              item_a->pos, item_b->pos
-            );
-            item_a->remove = 1;
-          }
-          else {
-            /* matching keys, differing values */
-
-            j = count_common_hids(item_a->key.first, item_b->key.first);
-            k = (
-              j == count_common_hids(item_b->key.first, item_b->key.first) &&
-              j < count_common_hids(item_a->key.first, item_a->key.first)
-            ) ? 1 : 0;
-
-            if(k) {
-              /*
-               * item_a is a special case of item_b _and_ item_a has more hid fields
-               * --> libhd can handle differing info in this case
-               */
-              j = strip_skey(item_a->value, item_b->value, 1);
-              if(j) {
-                c_ident = j & 0xff;
-                c_diff = (j >> 8) & 0xff;
-                if(c_diff && c_ident) {
-                  fprintf(logfh,
-                    "%s: some info identical to %s, identical info removed\n",
-                    item_a->pos, item_b->pos
-                  );
-                  log_items(logfh, item_a, item_b);
-                }
-                else if(!c_diff) {
-                  fprintf(logfh,
-                    "%s: info is identical to %s, info removed\n",
-                    item_a->pos, item_b->pos
-                  );
-                  log_items(logfh, item_a, item_b);
-                }
-                remove_deleted_hids(item_a->value);
-              }
-            }
-            else {
-              j = strip_skey(item_a->value, item_b->value, 3);
-              if(j) {
-                c_ident = j & 0xff;
-                c_diff = (j >> 8) & 0xff;
-                c_crit = (j >> 16) & 0xff;
-                if(c_crit || cmp_skey(item_a->key.first, item_b->key.first)) {
-                  s = "conflicts with";
-                  stat_cnt = &stats.errors_res;
-                }
-                else {
-                  s = "differs from";
-                  stat_cnt = &stats.diffs;
-                }
-                /*
-                 * if the keys are identical, make it a warning,
-                 * else make it an error
-                 */
-                if(c_diff && !c_ident) {
-                  (*stat_cnt)++;
-                  fprintf(logfh,
-                    "%s: info %s %s, info removed\n",
-                    item_a->pos, s, item_b->pos
-                  );
-                }
-                else if(c_diff && c_ident) {
-                  (*stat_cnt)++;
-                  fprintf(logfh,
-                    "%s: info %s/is identical to %s, info removed\n",
-                    item_a->pos, s, item_b->pos
-                  );
-                }
-                else {
-                  fprintf(logfh,
-                    "%s: info is identical to %s, info removed\n",
-                    item_a->pos, item_b->pos
-                  );
-                }
-                log_items(logfh, item_a, item_b);
-                remove_deleted_hids(item_a->value);
-              }
-            }
-
-            if(!count_common_hids(item_a->value, item_a->value)) {
-              /* remove if no values left */
-              item_a->remove = 1;
-              fprintf(logfh, "%s: no info left, item removed\n", item_a->pos);
-            }
-
-          }
-        }
-        else if(count_common_hids(item_a->value, item_b->value)) {
-          /* different keys, potentially conflicting values */
-          k = cmp_skey(item_a->value, item_b->value);
-          if(k) {
-            /* differing keys, differing values */
-            j = strip_skey(item_b->value, item_a->value, 2);
-            c_diff = (j >> 8) & 0xff;
-            if(c_diff) {
-              /* different keys, conflicting values --> error */
-              stats.errors++;
-              fprintf(logfh,
-                "%s: info conflicts with %s\n",
-                item_b->pos, item_a->pos
-              );
-              log_items(logfh, item_b, item_a);
-            }
-            undelete_hids(item_b->value);
-          }
-        }
-      }
-    }
-  }
-
-  remove_items(hd);
-}
-
-
-void combine_driver(list_t *hd)
-{
-  int i;
-  item_t *item0, *item1, *item_a, *item_b;
-  hid_t *hid0, *hid1, *new_hid, *hid_a, *hid_b;
-  str_t *str0, *str1, *tmp_str, *last_str;
-  unsigned type0, type1;
-
-  for(item0 = hd->first; item0; item0 = item0->next) {
-    if(
-      item0->remove ||
-      !item0->value ||
-      !(hid0 = item0->value->hid[he_driver]) ||
-      hid0->any.flag != FLAG_STRING
-    ) continue;
-    for(item1 = item0->next; item1 && !item0->remove; item1 = item1->next) {
-      hid0 = item0->value->hid[he_driver];
-      if(
-        item1->remove ||
-        !item1->value ||
-        !(hid1 = item1->value->hid[he_driver]) ||
-        hid1->any.flag != FLAG_STRING
-      ) continue;
-
-      i = cmp_item(item0, item1);
-
-      /* remove duplicate entries */
-      if(!i) {
-        item1->remove = 1;
-        continue;
-      }
-
-      /* work only on entries with identical keys */
-      if(i == -1 || i == 1) continue;
-
-      /* ensure these are proper driver entries */
-      if(!(type0 = driver_entry_types(hid0))) continue;
-      if(!(type1 = driver_entry_types(hid1))) continue;
-
-      /*
-       * Allow only (x11 + x11) & (!any + any)
-       * unless --combine option was used.
-       */
-      if(!opt.combine && (((type0 & type1) & 5) || ((type0 | type1) & 6) == 6)) {
-        fprintf(logfh,
-          "%s: can't combine driver info with %s %d %d\n",
-          item0->pos, item1->pos, type0, type1
-        );
-        log_items(logfh, item0, item1);
-        continue;
-      }
-
-      item_a = item0;
-      item_b = item1;
-      hid_a = hid0;
-      hid_b = hid1;
-
-      if(type0 == 1) {
-        item_a = item1;
-        item_b = item0;
-        hid_a = hid1;
-        hid_b = hid0;
-      }
-
-      fprintf(logfh, "%s: combine with %s\n", item_a->pos, item_b->pos);
-      log_items(logfh, item_a, item_b);
-
-      new_hid = clone_hid(hid_a);
-
-      for(str1 = hid_b->str.list.first; str1; str1 = str1->next) {
-        last_str = NULL;
-        for(str0 = new_hid->str.list.first; str0; last_str = str0, str0 = str0->next) {
-          i = cmp_driver_info(str1->str, str0->str);
-          if(i < 0) break;
-        }
-        if(last_str) {
-          tmp_str = last_str->next;
-          last_str->next = clone_str(str1);
-          last_str->next->next = tmp_str;
-          if(!tmp_str) {
-            new_hid->str.list.last = last_str->next;
-          }
-        }
-        else {
-          /* smaller than first entry */
-          tmp_str = clone_str(str1);
-          tmp_str->next = new_hid->str.list.first;
-          new_hid->str.list.first = tmp_str;
-        }
-      }
-
-      free_hid(item_a->value->hid[he_driver]);
-      item_a->value->hid[he_driver] = new_hid;
-      item_b->value->hid[he_driver] = free_hid(item_b->value->hid[he_driver]);
-
-      fprintf(logfh, "  --\n");
-      log_items(logfh, item_a, item_b);
-
-      if(!count_common_hids(item_b->value, item_b->value)) {
-        /* remove if no values left */
-        item_b->remove = 1;
-        fprintf(logfh, "%s: no info left, item removed\n", item_b->pos);
-      }
-
-    }
-  }
-
-  remove_items(hd);
-}
-
-
-void combine_requires(list_t *hd)
-{
-  int i;
-  item_t *item0, *item1;
-  hid_t *hid0, *hid1;
-  list_t slist = {};
-  str_t *str, *str0, *str1;
-
-  for(item0 = hd->first; item0; item0 = item0->next) {
-    if(
-      item0->remove ||
-      !item0->value ||
-      !(hid0 = item0->value->hid[he_requires]) ||
-      hid0->any.flag != FLAG_STRING
-    ) continue;
-    for(item1 = item0->next; item1; item1 = item1->next) {
-      if(
-        item1->remove ||
-        !item1->value ||
-        !(hid1 = item1->value->hid[he_requires]) ||
-        hid1->any.flag != FLAG_STRING
-      ) continue;
-
-      i = cmp_item(item0, item1);
-
-      /* remove duplicate entries */
-      if(!i) {
-        item1->remove = 1;
-        continue;
-      }
-
-      /* work only on entries with identical keys */
-      if(i == -1 || i == 1) continue;
-
-      if(!cmp_hid(hid0, hid1)) {
-        hid1->any.remove = 1;
-        fprintf(logfh,
-          "%s: info is identical to %s, info removed\n",
-          item1->pos, item0->pos
-        );
-        log_items(logfh, item1, item0);
-        item1->value->hid[he_requires] = free_hid(item1->value->hid[he_requires]);
-      }
-      else {
-        slist.first = split('|', ((str_t *) hid0->str.list.first)->str);
-
-        /* add pointer to last element */
-        for(str = slist.first; str; str = str->next) {
-          if(!str->next) slist.last = str;
-        }
-
-        str1 = split('|', ((str_t *) hid1->str.list.first)->str);
-        for(str = str1; str; str = str->next) {
-          for(str0 = slist.first; str0; str0 = str0->next) {
-            if(!strcmp(str->str, str0->str)) break;
-          }
-          if(!str0) add_list(&slist, clone_str(str));
-        }
-        free_str(str1, 1);
-
-        sort_list(&slist, cmp_str_s);
-
-        free_str(hid0->str.list.first, 1);
-        hid0->str.list.last = NULL;
-        hid0->str.list.first = add_list(&hid0->str.list, new_mem(sizeof (str_t)));
-        ((str_t *) hid0->str.list.first)->str = join('|', slist.first);
-
-        free_str(slist.first, 1);
-
-        hid1->any.remove = 1;
-        
-        fprintf(logfh,
-          "%s: combine with %s, info removed\n",
-          item1->pos, item0->pos
-        );
-        log_items(logfh, item1, item0);
-        item1->value->hid[he_requires] = free_hid(item1->value->hid[he_requires]);
-      }
-
-      if(!count_common_hids(item1->value, item1->value)) {
-        /* remove if no values left */
-        item1->remove = 1;
-        fprintf(logfh, "%s: no info left, item removed\n", item1->pos);
-      }
-    }
-  }
-
-  remove_items(hd);
-}
-
-
-void join_items_by_value(list_t *hd)
-{
-  item_t *item0, *item1;
-  skey_t *skey, *next;
-  int i;
-
-  for(item0 = hd->first; item0; item0 = item0->next) {
-    if(item0->remove) continue;
-    for(item1 = item0->next; item1; item1 = item1->next) {
-      if(item1->remove) continue;
-
-      if(!cmp_skey(item0->value, item1->value)) {
-        for(skey = item1->key.first; skey; skey = next) {
-          next = skey->next;
-          add_list(&item0->key, skey);
-        }
-        memset(&item1->key, 0, sizeof item1->key);
-        item1->remove = 1;
-        fprintf(logfh, "%s: info added to %s, item removed\n", item1->pos, item0->pos);
-      }
-    }
-  }
-
-  remove_items(hd);
-
-  for(item0 = hd->first; item0; item0 = item0->next) {
-
-    /* sort key entries */
-    sort_list(&item0->key, cmp_skey_s);
-
-    /* try to join adjacent keys */
-    for(skey = item0->key.first; skey && (next = skey->next); ) {
-      i = combine_keys(skey, next);
-      if(!i) {
-        skey = next;
-        continue;
-      }
-      if(!(skey->next = next->next)) {
-        /* last element has changed */
-        item0->key.last = skey;
-      }
-      free_skey(next, 0);
-    }
-  }
-}
-
-
-void join_items_by_key(list_t *hd)
-{
-  item_t *item0, *item1;
-  skey_t *val0, *val1;
-  int i;
-
-  for(item0 = hd->first; item0; item0 = item0->next) {
-    if(item0->remove) continue;
-    val0 = item0->value;
-    for(item1 = item0->next; item1; item1 = item1->next) {
-      if(item1->remove) continue;
-
-      i = cmp_item(item0, item1);
-
-      if(i == 2 || i == -2) {
-        /* identical keys, values differ */
-        val1 = item1->value;
-        if(!count_common_hids(val0, val1)) {
-          /* move everything from item1 to item0 */
-          
-          for(i = 0; (unsigned) i < sizeof val1->hid / sizeof *val1->hid; i++) {
-            if(val1->hid[i]) {
-              val0->hid[i] = val1->hid[i];
-              val1->hid[i] = NULL;
-            }
-          }
-          item1->remove = 1;
-          fprintf(logfh, "%s: info added to %s, item removed\n", item1->pos, item0->pos);
-        }
-      }
-    }
-  }
-
-  remove_items(hd);
-}
-
-
-void remove_unimportant_items(list_t *hd)
-{
-  item_t *item;
-  skey_t *val;
-  str_t *str;
-  int i, cnt;
-
-  for(item = hd->first; item; item = item->next) {
-    val = item->value;
-    cnt = 0;
-    if(val) {
-      for(i = 0; (unsigned) i < sizeof val->hid / sizeof *val->hid; i++) {
-        if(i == he_driver && val->hid[i]) {
-          if(!(
-            val->hid[i]->any.flag == FLAG_STRING &&
-            (str = val->hid[i]->str.list.first) &&
-            str->str &&
-            (*str->str == 'i' || *str->str == 'm')
-          )) {
-            val->hid[i] = free_hid(val->hid[i]);
-          }
-        }
-        else if(val->hid[i]) {
-          if(val->hid[i]->any.flag != FLAG_ID) val->hid[i] = free_hid(val->hid[i]);
-        }
-        if(val->hid[i]) cnt++;
-      }
-    }
-    /* no values left */
-    if(!cnt) item->remove = 1;
-  }
-
-  remove_items(hd);
-}
-
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-#if 0
-/* returns index in hddb2->ids */
-unsigned store_entry(hddb2_data_t *x, tmp_entry_t *te)
-{
-  int i, j;
-  unsigned ent = -1, u, v;
-
-  for(i = 0; i < he_nomask; i++) {
-    if(te[i].len) {
-      for(j = 0; j < te[i].len; j++) {
-        v = te[i].val[j] | (1 << 31);
-        if(j == te[i].len - 1) v &= ~(1 << 31);
-        u = store_value(x, v);
-        if(ent == -1) ent = u;
-      }
-    }
-  }
-
-  return ent;
-}
-
-void add_value(tmp_entry_t *te, hddb_entry_t idx, unsigned val)
-{
-  if(idx >= he_nomask) return;
-  te += idx;
-
-  if(te->len >= sizeof te->val / sizeof *te->val) return;
-
-  te->val[te->len++] = val;
-}
-
-#endif
-
-
-
-unsigned hddb_store_string(hddb_data_t *hddb, char *str)
-{
-  unsigned l = strlen(str), u;
-  char *s;
-
-  if(!opt.no_compact) {
-    /* maybe we already have it... */
-    if(l && l < hddb->strings_len) {
-      s = memmem(hddb->strings, hddb->strings_len, str, l + 1);
-      if(s) return s - hddb->strings;
-    }
-  }
-
-  if(hddb->strings_len + l >= hddb->strings_max) {
-    hddb->strings_max += l + 0x1000;         /* >4k steps */
-    hddb->strings = realloc(hddb->strings, hddb->strings_max * sizeof *hddb->strings);
-  }
-
-  /* make sure the 1st byte is 0 */
-  if(hddb->strings_len == 0) {
-    *hddb->strings = 0;        /* realloc does _not_ clear memory */
-    hddb->strings_len = 1;
-  }
-
-  if(l == 0) return 0;         /* 1st byte is always 0 */
-
-  strcpy(hddb->strings + (u = hddb->strings_len), str);
-  hddb->strings_len += l + 1;
-
-  return u;
-}
-
-
-unsigned hddb_store_value(hddb_data_t *hddb, unsigned val)
-{
-  if(hddb->ids_len == hddb->ids_max) {
-    hddb->ids_max += 0x400;    /* 4k steps */
-    hddb->ids = realloc(hddb->ids, hddb->ids_max * sizeof *hddb->ids);
-  }
-
-  hddb->ids[hddb->ids_len++] = val;
-
-  return hddb->ids_len - 1;
-}
-
-
-unsigned hddb_store_hid(hddb_data_t *hddb, hid_t *hid, hddb_entry_t entry)
-{
-  unsigned u, idx = -1;
-  str_t *str, *str0, *str1;
-
-  if(!hid) return idx;
-
-  if(hid->any.flag == FLAG_ID) {
-    if(hid->num.has.range) {
-      idx = hddb_store_value(hddb, MAKE_DATA(FLAG_RANGE, hid->num.range) | (1 << 31));
-    }
-    else if(hid->num.has.mask) {
-      idx = hddb_store_value(hddb, MAKE_DATA(FLAG_MASK, hid->num.mask) | (1 << 31));
-    }
-    u = hddb_store_value(hddb, MAKE_DATA(FLAG_ID, hid->num.id + (hid->num.tag << 16)));
-    if(idx == -1u) idx = u;
-  }
-  else if(hid->any.flag == FLAG_STRING) {
-    if(entry == he_driver ) {
-      for(str = hid->str.list.first; str; str = str->next) {
-        str0 = split('\001', str->str);
-        for(str1 = str0; str1; str1 = str1->next) {
-          u = hddb_store_string(hddb, str1->str);
-          if(str->next || str1->next) u |= 1 << 31;
-          u = hddb_store_value(hddb, MAKE_DATA(FLAG_STRING, u));
-          if(idx == -1u) idx = u;
-        }
-        free_str(str0, 1);
-      }
-    }
-    else {
-      u = hddb_store_string(hddb, ((str_t *) hid->str.list.first)->str);
-      idx = hddb_store_value(hddb, MAKE_DATA(FLAG_STRING, u));
-    }
-  }
-
-  return idx;
-}
-
-
-void hddb_store_skey(hddb_data_t *hddb, skey_t *skey, unsigned *mask, unsigned *idx)
-{
-  int i, j, end;
-  unsigned ent;
-  hddb_data_t save_db = *hddb;
-
-  *mask = 0;
-  *idx = 0;
-
-  if(!skey) return;
-
-  for(i = 0; (unsigned) i < sizeof skey->hid / sizeof *skey->hid; i++) {
-    if(skey->hid[i]) {
-      ent = hddb_store_hid(hddb, skey->hid[i], i);
-      if(!*mask) *idx = ent;
-      *mask |= (1 << i);
-    }
-  }
-
-  if(!opt.no_compact) {
-    /* maybe there was an identical skey before... */
-    if(save_db.ids_len && hddb->ids_len > save_db.ids_len) {
-      j = hddb->ids_len - save_db.ids_len;
-      end = save_db.ids_len - j;
-      /* this is pretty slow, but avoids memmem() alignment problems */
-      for(i = 0; i < end; i++) {
-        if(!memcmp(hddb->ids + i, hddb->ids + save_db.ids_len, j * sizeof *hddb->ids)) {
-          /* remove new id entries and return existing entry */
-          hddb->ids_len = save_db.ids_len;
-          *idx = i;
-          break;
-        }
-      }
-    }
-  }
-}
-
-
-void hddb_store_list(hddb_data_t *hddb, hddb_list_t *list)
-{
-  if(!list || !list->key_mask || !list->value_mask) return;
-
-  if(hddb->list_len == hddb->list_max) {
-    hddb->list_max += 0x100;   /* 4k steps */
-    hddb->list = realloc(hddb->list, hddb->list_max * sizeof *hddb->list);
-  }
-
-  hddb->list[hddb->list_len++] = *list;
-}
-
-
-void hddb_init(hddb_data_t *hddb, list_t *hd)
-{
-  item_t *item;
-  hddb_list_t db_list = {};
-  unsigned item_cnt;
-
-  for(item_cnt = 0, item = hd->first; item; item = item->next, item_cnt++) {
-
-    hddb_store_skey(hddb, item->key.first, &db_list.key_mask, &db_list.key);
-    hddb_store_skey(hddb, item->value, &db_list.value_mask, &db_list.value);
-
-    hddb_store_list(hddb, &db_list);
-  }
-}
-
-
-unsigned char *quote_string(unsigned char *str, int len)
-{
-  unsigned char *qstr;
-  int i, j;
-
-  if(!str || !len) return NULL;
-
-  qstr = new_mem(4 * len + 1); /* enough */
-
-  for(i = j = 0; i < len; i++) {
-    if(str[i] == '\\' || str[i] == '"' || str[i] == '?') {
-      qstr[j++] = '\\';
-      qstr[j++] = str[i];
-    }
-    else if(str[i] == '\n') {
-      qstr[j++] = '\\';
-      qstr[j++] = 'n';
-    }
-    else if(str[i] == '\t') {
-      qstr[j++] = '\\';
-      qstr[j++] = 't';
-    }
-    else if(str[i] < ' ') {
-      qstr[j++] = '\\';
-      qstr[j++] = (str[i] >> 6) + '0';
-      qstr[j++] = ((str[i] >> 3) & 7) + '0';
-      qstr[j++] = (str[i] & 7) + '0';
-    }
-    else {
-      qstr[j++] = str[i];
-    }
-  }
-
-  return qstr;
-}
-
-
-void write_cfile(FILE *f, list_t *hd)
-{
-  hddb_data_t hddb = {};
-  char *qstr;
-  unsigned u, qstr_len, len;
-
-  fprintf(logfh, "- building C version\n");
-  fflush(logfh);
-
-  hddb_init(&hddb, hd);
-
-  fprintf(logfh, "  db size: %u bytes\n",
-    (unsigned) (sizeof hddb +
-    hddb.strings_len +
-    hddb.ids_len * sizeof *hddb.ids +
-    hddb.list_len * sizeof *hddb.list)
-  );
-
-  fprintf(f,
-    "static hddb_list_t hddb_internal_list[];\n"
-    "static unsigned hddb_internal_ids[];\n"
-    "static char hddb_internal_strings[];\n\n"
-    "hddb2_data_t hddb_internal = {\n"
-    "  %u, %u, hddb_internal_list,\n"
-    "  %u, %u, hddb_internal_ids,\n"
-    "  %u, %u, hddb_internal_strings\n"
-    "};\n\n",
-    hddb.list_len, hddb.list_len,
-    hddb.ids_len, hddb.ids_len,
-    hddb.strings_len, hddb.strings_len
-  );
-
-  fprintf(f, "static hddb_list_t hddb_internal_list[%u] = {\n", hddb.list_len);
-  for(u = 0; u < hddb.list_len; u++) {
-    fprintf(f,
-    "  { 0x%08x, 0x%08x, 0x%08x, 0x%08x }%s\n",
-    hddb.list[u].key_mask, hddb.list[u].value_mask,
-    hddb.list[u].key, hddb.list[u].value,
-    u + 1 == hddb.list_len ? "" : ","
-    );
-  }
-  fprintf(f, "};\n\n");
-
-  fprintf(f, "static unsigned hddb_internal_ids[%u] = {\n", hddb.ids_len);
-  for(u = 0; u < hddb.ids_len; u++) {
-    if((u % 6) == 0) fputc(' ', f);
-    fprintf(f, " 0x%08x", hddb.ids[u]);
-    if(u + 1 != hddb.ids_len) fputc(',', f);
-    if(u % 6 == 6 - 1 || u + 1 == hddb.ids_len) fputc('\n', f);
-  }
-  fprintf(f, "};\n\n");
-
-  qstr = quote_string(hddb.strings, hddb.strings_len);
-  qstr_len = qstr ? strlen(qstr) : 0;
-  fprintf(f, "static char hddb_internal_strings[%u] = \"\\\n", hddb.strings_len);
-  for(u = 0; u < qstr_len; ) {
-    len = qstr_len - u;
-    if(len > 72) len = 72;
-    while(len--) fputc(qstr[u++], f);
-    fprintf(f, "\\\n");
-  }
-  fprintf(f, "\";\n\n");
-
-  free_mem(qstr);
-
-  free_mem(hddb.list);
-  free_mem(hddb.ids);
-  free_mem(hddb.strings);
-}
-
-
diff --git a/src/hwinfo/src/ids/convert_hd b/src/hwinfo/src/ids/convert_hd
deleted file mode 100755 (executable)
index a76f353..0000000
+++ /dev/null
@@ -1,2931 +0,0 @@
-#! /usr/bin/perl
-
-use Getopt::Long;
-use XML::Writer;
-use XML::Parser;
-use IO;
-use Dumpvalue;
-
-sub help;
-
-sub read_name_file;
-sub read_driver_file;
-sub read_id_file;
-sub read_pcimap_file;
-sub read_usbmap_file;
-sub read_alias_file;
-sub read_modinfo_file;
-sub eisa_id;
-sub eisa_str;
-
-sub remove_nops;
-sub remove_duplicates;
-sub fix_driver_info;
-
-sub cmp_id;
-sub cmp_skey;
-sub cmp_item;
-
-sub match_id;
-sub match_skey;
-sub match_item;
-
-sub join_skey;
-
-sub split_item;
-
-sub get_xml_data;
-sub parse_xml_item;
-sub parse_xml_key;
-sub parse_xml_id;
-sub parse_xml_id_id;
-sub parse_xml_id_range;
-sub parse_xml_id_mask;
-sub parse_xml_driver;
-sub parse_xml_driver_display;
-sub parse_xml_driver_module;
-sub parse_xml_driver_mouse;
-sub parse_xml_driver_xfree;
-sub parse_xml_pair;
-sub parse_xml_cdata;
-sub idstr2value;
-
-sub dump2ids;
-sub dump2xml;
-sub dump_xml_item;
-sub dump_xml_names;
-sub dump_xml_drivers;
-sub id2xml;
-
-sub hd_dtd;
-sub hd_dtd_internal;
-
-$dump = new Dumpvalue();
-
-(
-  $he_other, $he_bus_id, $he_baseclass_id, $he_subclass_id, $he_progif_id,
-  $he_vendor_id, $he_device_id, $he_subvendor_id, $he_subdevice_id, $he_rev_id,
-  $he_bus_name, $he_baseclass_name, $he_subclass_name, $he_progif_name,
-  $he_vendor_name, $he_device_name, $he_subvendor_name, $he_subdevice_name,
-  $he_rev_name, $he_serial, $he_driver, $he_requires,
-  $he_nomask,
-  $he_driver_module_insmod, $he_driver_module_modprobe,
-  $he_driver_module_config, $he_driver_xfree, $he_driver_xfree_config,
-  $he_driver_mouse, $he_driver_display, $he_driver_any
-) = ( 0 .. 100 );
-$he_class_id = $he_nomask;
-
-@ent_names = (
-  "other", "bus.id", "baseclass.id", "subclass.id", "progif.id",
-  "vendor.id", "device.id", "subvendor.id", "subdevice.id", "rev.id",
-  "bus.name", "baseclass.name", "subclass.name", "progif.name",
-  "vendor.name", "device.name", "subvendor.name", "subdevice.name",
-  "rev.name", "serial", "driver", "requires",
-  "class.id", "driver.module.insmod", "driver.module.modprobe",
-  "driver.module.config", "driver.xfree", "driver.xfree.config",
-  "driver.mouse", "driver.display", "driver.any"
-);
-@ent_values{@ent_names} = ( 0 .. 100 );
-
-@xml_names = (
-  "other", "bus", "baseclass", "subclass", "progif",
-  "vendor", "device", "subvendor", "subdevice", "revision",
-  "bus", "baseclass", "subclass", "progif",
-  "vendor", "device", "subvendor", "subdevice",
-  "revision", "serial", "driver", "requires"
-);
-@xml_values{@xml_names} = ( 0 .. 100 );
-
-( $tag_none, $tag_pci, $tag_eisa, $tag_usb, $tag_special, $tag_pcmcia ) = ( 0 .. 5 );
-
-@tag_name = ( "", "pci", "eisa", "usb", "special", "pcmcia" );
-@tag_values{@tag_name} = ( 0 .. 5 );
-$tag_values{none} = 0;
-
-( $flag_id, $flag_range, $flag_mask, $flag_string, $flag_regexp ) = ( 0 .. 4 );
-$flag_cont = 8;
-
-# map usb modules to device classes
-%usbmod2class = (
-  'ov511'     => [ 0x10f, 0 ],
-  'pwc'       => [ 0x10f, 0 ],
-  'hpusbscsi' => [ 0x10c, 0 ],
-  'microtek'  => [ 0x10c, 0 ],
-  'scanner'   => [ 0x10c, 0 ]
-);
-
-
-# options
-$opt_write_ids = 1;
-$opt_write_xml = 0;
-$opt_sort_ids = 0;
-$opt_sort_reverse = 0;
-$opt_sort_random = 0;          # for testing
-$opt_split = 0;
-$opt_with_source = 0;
-$opt_fix_driver = 1;
-$opt_help = 0;
-$opt_internal_dtd = 0;
-
-$opt_ok = GetOptions(
-  'ids'           => \$opt_write_ids,
-  'no-ids'        => sub { $opt_write_ids = 0 },
-  'xml'           => \$opt_write_xml,
-  'no-xml'        => sub { $opt_write_xml = 0 },
-  'sort'          => \$opt_sort,
-  'reverse'       => \$opt_sort_reverse,
-  'random'        => \$opt_sort_random,
-  'split'         => \$opt_split,
-  'with-source'   => \$opt_with_source,
-  'fix-driver'    => \$opt_fix_driver,
-  'no-fix-driver' => sub { $opt_fix_driver = 0 },
-  'internal-dtd'  => \$opt_internal_dtd,
-  'help'          => \&help
-) ;
-
-for $f (@ARGV) {
-  if(open F, $f) {
-    @f = (<F>);
-    close F;
-
-    # file format check
-
-    undef $format;
-
-    for (@f) {
-      if(/^\s*\<\?xml\s/) {
-        $format = 'xml';
-        last;
-      }
-
-      if(/^#\s+pci\s+module\s+vendor\s+device\s+subvendor\s+subdevice\s+class\s+class_mask\s+driver_data\s*$/) {
-        $format = 'pcimap';
-        last;
-      }
-
-      if(/^#\s+usb\s+module\s+match_flags\s+idVendor\s+idProduct\s+/) {
-        $format = 'usbmap';
-        last;
-      }
-
-      if(/^\s*alias\s+(pci|pnp|usb):\S+\s+\S+$/) {
-        $format = 'alias';
-        last;
-      }
-
-      if(/^\s*alias:\s+(pci|pnp|usb):\S+\s*$/) {
-        $format = 'modinfo';
-        last;
-      }
-
-    }
-
-    if(!$format) {
-      $i = join "|", map "\Q$_", @ent_names;
-      for (@f) {
-        if(/^\s*[+&|]?($i)\s/) {
-          $format = 'ids';
-          last;
-        }
-      }
-    }
-
-    if(!$format) {
-      for (@f) {
-        if(/^\t[a-z]\s/) {
-          $format = 'drivers';
-          last;
-        }
-      }
-    }
-
-    $format = 'names' if !$format;
-
-    if($format eq 'names') {
-
-      print STDERR "======  \"$f\": name info  ======\n";
-      read_name_file $f, \@f;
-
-    }
-    elsif($format eq 'drivers') {
-
-      print STDERR "======  \"$f\": driver info  ======\n";
-      read_driver_file $f, \@f;
-
-    }
-    elsif($format eq 'xml') {
-
-      print STDERR "======  \"$f\": xml info  ======\n";
-      $xmlp = new XML::Parser(Style => 'Tree', ParseParamEnt => 1);
-      get_xml_data $xmlp->parsefile($f);
-
-    }
-    elsif($format eq 'ids') {
-
-      print STDERR "======  \"$f\": id info  ======\n";
-      read_id_file $f, \@f;
-
-    }
-    elsif($format eq 'pcimap') {
-
-      print STDERR "======  \"$f\": pcimap info  ======\n";
-      read_pcimap_file $f, \@f;
-
-    }
-    elsif($format eq 'usbmap') {
-
-      print STDERR "======  \"$f\": usbmap info  ======\n";
-      read_usbmap_file $f, \@f;
-
-    }
-    elsif($format eq 'alias') {
-
-      print STDERR "======  \"$f\": alias info  ======\n";
-      read_alias_file $f, \@f;
-
-    }
-    elsif($format eq 'modinfo') {
-
-      print STDERR "======  \"$f\": module info  ======\n";
-      read_modinfo_file $f, \@f;
-
-    }
-  }
-  else {
-    die "$f: $!\n"
-  }
-}
-
-print STDERR "removing unnecessary items\n";
-remove_nops;
-
-print STDERR "got ${\scalar @hd} items\n";
-
-if($opt_fix_driver) {
-  fix_driver_info;
-}
-
-if($opt_split) {
-  print STDERR "splitting items\n";
-  for (@hd) {
-    push @hd_new, split_item($_);
-  }
-  @hd = @hd_new;
-  undef @hd_new;
-}
-
-if($opt_sort_ids) {
-  print STDERR "sorting\n";
-  if($opt_sort_random) {
-    @hd = sort { $cmp_item_cnt++, rand() <=> rand() } @hd;
-  }
-  elsif($opt_sort_reverse) {
-    @hd = sort { cmp_item $b, $a } @hd;
-  }
-  else {
-    @hd = sort { cmp_item $a, $b } @hd;
-  }
-}
-
-if($opt_write_ids) {
-  print STDERR "writing \"hd.ids\"\n";
-  dump2ids;
-}
-
-if($opt_write_xml) {
-  print STDERR "writing \"hd.xml\"\n";
-  dump2xml;
-}
-
-print STDERR "cmps: $cmp_item_cnt\n" if $cmp_item_cnt;
-
-# $dump->dumpValue( \@hd );
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-sub help
-{
-  print STDERR
-  "Usage: convert_hd [options] files\n" .
-  "Convert various hardware info to libhd/hwinfo internal format or to XML.\n" .
-  "  --ids           write internal format (default) to \"hd.ids\"\n" .
-  "  --no-ids        do not write internal format\n" .
-  "  --xml           write XML to \"hd.xml\", DTD to \"hd.dtd\"\n" .
-  "  --no-xml        do not write XML (default)\n" .
-  "  --with-source   add comment to each item indicating info source\n" .
-  "  --internal-dtd  generate internal dtd\n\n" .
-  "  Note: for more sophisticated operations on hardware data use check_hd.\n";
-
-  exit 0;
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-sub num
-{
-  return $_[0] =~ /^0/ ? oct $_[0] : return $_[0] + 0;
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# read file with name/class info
-#
-# (either pciutils or SaX/SaX2 format)
-#
-
-sub read_name_file
-{
-  my ( $file_name, $file, $line, $sax_version, $tag, $id, $val, $ent );
-  my ( @id0, @id1, @id2, @id3, @id4, $raw, $opt, $ext, $srv, $str );
-  local $_;
-
-  my $rnf_add_id0 = sub
-  {
-    my ( $id0, $name0, $ent_id0, $ent_name0, $id, $val );
-
-    # note: $tag belongs to read_name_file()
-    ( $ent_id0, $ent_name0, $tag, $id0, $name0 ) = @_;
-
-    $ent = $ent_id0;
-
-    @id0 = ( $flag_id, $tag, $id0 );
-    undef @id1; undef @id2; undef @id3;
-
-    $id->[$ent_id0] = [ @id0 ];
-    $val->[$ent_name0] = [ $flag_string, $name0 ];
-
-    push @hd, [ "$file_name($line)", [ $id ], $val ];
-  };
-
-  my $rnf_add_bus = sub
-  {
-    $rnf_add_id0->($he_bus_id, $he_bus_name, 0, @_);
-  };
-
-  my $rnf_add_baseclass = sub
-  {
-    $rnf_add_id0->($he_baseclass_id, $he_baseclass_name, 0, @_);
-  };
-
-  my $rnf_add_vendor = sub
-  {
-    $rnf_add_id0->($he_vendor_id, $he_vendor_name, @_);
-  };
-
-  my $rnf_add_subdevice = sub
-  {
-    my ( $id2, $id3, $range, $name, $class, $id, $val );
-
-    ( $id2, $id3, $range, $name, $class ) = @_;
-
-    @id2 = ( $flag_id, $tag, $id2 );
-    @id3 = ( $flag_id, $tag, $id3 );
-    $id3[3] = $range if defined $range;
-
-    if($ent == $he_device_id || $ent == $he_subdevice_id) {
-      $ent = $he_subdevice_id;
-
-      $id->[$he_vendor_id] = [ @id0 ];
-      $id->[$he_device_id] = [ @id1 ];
-      $id->[$he_subvendor_id] = [ @id2 ];
-      $id->[$he_subdevice_id] = [ @id3 ];
-      $val->[$he_subdevice_name] = [ $flag_string, $name ];
-      if(defined $class) {
-        $val->[$he_baseclass_id] = [ $flag_id, $tag_none, $class >> 8 ];
-        $val->[$he_subclass_id] = [ $flag_id, $tag_none, $class & 0xff ];
-      }
-    }
-    else {
-      die "oops $file_name($line): subdevice id expected\n";
-    }
-
-    push @hd, [ "$file_name($line)", [ $id ], $val ];
-  };
-
-  ( $file_name, $file ) = @_;
-
-  $line = 0;
-  undef $sax_version;
-
-  for (@$file) {
-    $line++;
-    chomp;
-    s/\s*$//;
-    next if /^\s*[#;]/;
-    next if /^$/;
-
-    # SaX Identity file
-    if(/^NAME=(.+?)§DEVICE=(.+?)§VID=0x([0-9a-fA-F]+?)§DID=0x([0-9a-fA-F]+?)§SERVER=([^§]+)(§EXT=([^§]*))?(§OPT=([^§]*))?(§RAW=([^§]*))?$/) {
-      #       1            2           3                     4                      5      6     7        8     9        10    11
-
-      $rnf_add_vendor->($tag_pci, hex($3), $1);
-
-      @id0 = ( $flag_id, $tag, hex($3) );
-      @id1 = ( $flag_id, $tag, hex($4) );
-      @id3 = ( $flag_string, $2 );
-
-      $id = [];
-      $val = [];
-
-      $id->[$he_vendor_id] = [ @id0 ];
-      $id->[$he_device_id] = [ @id1 ];
-      $val->[$he_device_name] = [ @id3 ];
-
-      push @hd, [ "$file_name($line)", [ $id ], $val ];
-
-      ( $srv, $ext, $opt, $raw ) = ( $5, $7, $9, $11 );
-      $sax_tmp = $srv =~ /^3DLABS|MACH64|P9000|RUSH|S3|SVGA|TGA$/ ? 1 : 2;
-      $sax_version = $sax_tmp unless defined $sax_version;
-      die "line has SaX$sax_tmp format (expected SaX$sax_version): $file_name($line)\n" if $sax_tmp != $sax_version;
-
-      $id = [];
-      $val = [];
-
-      $id->[$he_vendor_id] = [ @id0 ];
-      $id->[$he_device_id] = [ @id1 ];
-
-      if($opt) {
-        $str = join "|", ( $sax_version == 1 ? 3 : 4, $srv, undef, undef, $ext, $opt );
-      }
-      elsif($ext) {
-        $str = join "|", ( $sax_version == 1 ? 3 : 4, $srv, undef, undef, $ext );
-      }
-      else {
-        $str = join "|", ( $sax_version == 1 ? 3 : 4, $srv );
-      }
-
-      @id4 = ( "x\t$str" );
-      if($raw) {
-        for $str (split /,/, $raw) { $id4[0] .= "\x00X\t$str" }
-      }
-
-      $val->[$he_driver] = [ $flag_string, @id4 ];
-
-      push @hd, [ "$file_name($line)", [ $id ], $val ];
-    }
-
-    elsif(/^B\s+([0-9a-fA-F]+)\s+(.*?)\s*$/) {
-
-      $rnf_add_bus->(hex($1), $2);
-
-    }
-
-    elsif(/^C\s+([0-9a-fA-F]+)\s+(.*?)\s*$/) {
-
-      $rnf_add_baseclass->(hex($1), $2);
-
-    }
-
-    elsif(/^([0-9a-fA-F]{4})(\s+(.*?))?\s*$/) {
-
-      $rnf_add_vendor->($tag_pci, hex($1), $3);
-
-    }
-
-    elsif(/^u([0-9a-fA-F]{4})(\s+(.*?))?\s*$/) {
-
-      $rnf_add_vendor->($tag_usb, hex($1), $3);
-
-    }
-
-    elsif(/^s([0-9a-fA-F]{4})(\s+(.*?))?\s*$/) {
-
-      $rnf_add_vendor->($tag_special, hex($1), $3);
-
-    }
-
-    elsif(/^([A-Z_@]{3})(\s+(.*?))?\s*$/) {
-
-      $rnf_add_vendor->($tag_eisa, eisa_id($1), $3);
-
-    }
-
-    elsif(/^\t([0-9a-fA-F]{1,4})(\+([0-9a-fA-F]+))?(\.([0-9a-fA-F]+))?(\s+(.*?))?\s*$/) {
-
-      $range = $3 ? hex($3) : undef;
-      $class = $5 ? hex($5) : undef;
-
-      @id1 = ( $flag_id, $tag, hex($1) );
-      $id1[3] = $range if defined $range;
-      undef @id2; undef @id3;
-
-      $id = [];
-      $val = [];
-
-      if($ent == $he_baseclass_id || $ent == $he_subclass_id) {
-        $ent = $he_subclass_id;
-
-        $id->[$he_baseclass_id] = [ @id0 ];
-        $id->[$he_subclass_id] = [ @id1 ];
-        $val->[$he_subclass_name] = [ $flag_string, $7 ];
-      }
-      elsif($ent == $he_vendor_id || $ent == $he_device_id || $ent == $he_subdevice_id) {
-        $ent = $he_device_id;
-
-        $id->[$he_vendor_id] = [ @id0 ];
-        $id->[$he_device_id] = [ @id1 ];
-        $val->[$he_device_name] = [ $flag_string, $7 ];
-        if(defined $class) {
-          $val->[$he_baseclass_id] = [ $flag_id, $tag_none, $class >> 8 ];
-          $val->[$he_subclass_id] = [ $flag_id, $tag_none, $class & 0xff ];
-        }
-      }
-      else {
-        die "oops $file_name($line): device id expected\n";
-      }
-
-      push @hd, [ "$file_name($line)", [ $id ], $val ];
-
-    }
-
-    elsif($ent == $he_subclass_id && /^\t\t([0-9a-fA-F]+)\s+(.*?)\s*$/) {
-
-      @id2 = ( $flag_id, $tag, hex($1) );
-      undef @id3;
-
-      $id = [];
-      $val = [];
-
-      $id->[$he_baseclass_id] = [ @id0 ];
-      $id->[$he_subclass_id] = [ @id1 ];
-      $id->[$he_progif_id] = [ @id2 ];
-      $val->[$he_progif_name] = [ $flag_string, $2 ];
-
-      push @hd, [ "$file_name($line)", [ $id ], $val ];
-
-    }
-
-    elsif(/^\t\t([0-9a-fA-F]{4})\s+([0-9a-fA-F]{4})(\+([0-9a-fA-F]+))?(\.([0-9a-fA-F]+))?(\s+(.*?))?\s*$/) {
-
-      $rnf_add_subdevice->(hex($1), hex($2), $4 ? hex($4) : undef, $8, $6 ? hex($6) : undef);
-
-    }
-
-    elsif(/^\t\t([A-Z_@]{3})\s+([0-9a-fA-F]{4})(\+([0-9a-fA-F]+))?(\.([0-9a-fA-F]+))?(\s+(.*?))?\s*$/) {
-
-      $rnf_add_subdevice->(eisa_id($1), hex($2), $4 ? hex($4) : undef, $8, $6 ? hex($6) : undef);
-
-    }
-
-    elsif(/^\t\t([0-9a-fA-F]{4})([0-9a-fA-F]{4})\s+(.*?)\s*$/) {
-
-      # NOTE: subvendor & subdevice ids are reversed!
-      $rnf_add_subdevice->(hex($2), hex($1), undef, $3);
-
-    }
-
-    else {
-      die "invalid line: $file_name($line)\n";
-    }
-  }
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# read file with driver info
-#
-
-sub read_driver_file
-{
-  my ( $line, @drv, $file, $file_name, $drv_type, $tag );
-  local $_;
-
-  my $rdf_save_drv = sub
-  {
-    if($drv_type) {
-      push @hd, [ @drv ] if defined @drv;
-      @drv = ( "$file_name($line)" );
-      $drv[2][$he_driver] = [ $flag_string ];
-      $drv_type = undef;
-    }
-  };
-
-  my $rdf_add_id = sub
-  {
-    my ( $tag, $id0, $id1, $range1, $id2, $id3, $range3, $id );
-
-    ( $tag, $id0, $id1, $range1, $id2, $id3, $range3 ) = @_;
-
-    $rdf_save_drv->();
-
-    $id = [];
-
-    @id0 = ( $flag_id, $tag, $id0 );
-    @id1 = ( $flag_id, $tag, $id1 );
-    $id1[3] = $range1 if defined $range1;
-
-    $id->[$he_vendor_id] = [ @id0 ];
-    $id->[$he_device_id] = [ @id1 ];
-
-    if(defined $id2) {
-      @id2 = ( $flag_id, $tag, $id2 );
-      @id3 = ( $flag_id, $tag, $id3 );
-      $id3[3] = $range3 if defined $range3;
-
-      $id->[$he_subvendor_id] = [ @id2 ];
-      $id->[$he_subdevice_id] = [ @id3 ];
-    }
-    push @{$drv[1]}, $id;
-  };
-
-  ( $file_name, $file ) = @_;
-
-  $drv_type = 1;
-
-  for (@$file) {
-    $line++;
-    chomp;
-    s/\s*$//;
-    next if /^[#;]/;
-    next if /^$/;
-
-    if(/^([us]?)([0-9a-fA-F]{4})\s+([0-9a-fA-F]{4})(\+([0-9a-fA-F]+))?\s*$/) {
-
-      $tag = $tag_pci;
-      $tag = $tag_usb if $1 eq 'u';
-      $tag = $tag_special if $1 eq 's';
-
-      $rdf_add_id->($tag, hex($2), hex($3), $5 ? hex($5) : undef);
-
-    }
-
-    elsif(/^([A-Z_@]{3})\s+([0-9a-fA-F]{4})(\+([0-9a-fA-F]+))?\s*$/) {
-
-      $rdf_add_id->($tag_eisa, eisa_id($1), hex($2), $4 ? hex($4) : undef);
-
-    }
-
-    elsif(/^([us]?)([0-9a-fA-F]{4})\s+([0-9a-fA-F]{4})(\+([0-9a-fA-F]+))?\s+([us]?)([0-9a-fA-F]{4})\s+([0-9a-fA-F]{4})(\+([0-9a-fA-F]+))?\s*$/) {
-
-      $tag = $tag_pci;
-      $tag = $tag_usb if $1 eq 'u';
-      $tag = $tag_special if $1 eq 's';
-
-      $rdf_add_id->($tag, hex($2), hex($3), $5 ? hex($5) : undef, hex($7), hex($8), $10 ? hex($10) : undef);
-
-    }
-
-    elsif(/^([A-Z_@]{3})\s+([0-9a-fA-F]{4})(\+([0-9a-fA-F]+))?\s+([A-Z_@]{3})\s+([0-9a-fA-F]{4})(\+([0-9a-fA-F]+))?\s*$/) {
-
-      $rdf_add_id->($tag_eisa, eisa_id($1), hex($2), $4 ? hex($4) : undef, eisa_id($5), hex($6), $8 ? hex($8) : undef);
-
-    }
-
-    elsif(/^\t([a-z])\s+(.*?)\s*$/) {
-
-      push @{$drv[2][$he_driver]}, "$1\t$2";
-      $drv_type = $1;
-
-    }
-
-    elsif($drv_type && /^\t\t\s*(.*)$/) {
-
-      $drv_type = "X" if $drv_type eq "x";
-      $drv_type = "M" if $drv_type eq "m";
-      $drv[2][$he_driver][-1] .= "\x00$drv_type\t$1";
-
-    }
-
-    else {
-      die "invalid line: $file_name($line)\n";
-    }
-  }
-
-  $rdf_save_drv->();
-}
-
-
-sub num
-{
-  return $_[0] =~ /^0/ ? oct $_[0] : return $_[0] + 0;
-}
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# read file with id info
-#
-
-sub read_id_file
-{
-  my ( $line, $file, $file_name, $tag, $pre, $fields, @item, @id, $state, $keyid );
-  my ( $is_id, $i );
-  local $_;
-
-  my $rif_save_item = sub
-  {
-    if(@item > 1) {
-      push @hd, [ @item ];
-    }
-    @item = ( "$file_name($line)" );
-  };
-
-  # parse id field
-  my $str2id = sub
-  {
-    my ($val, $id, $tag, $mask, $range, @id);
-
-    $val = shift;
-
-    if($val =~ s/^(${\join '|', @tag_name})\s+//o) {
-      die "internal oops: $file_name($line)\n" unless exists $tag_values{$1};
-      $tag = $tag_values{$1};
-    }
-    else {
-      $tag = 0;
-    }
-
-    if($val =~ /^\s*(\S+)\s*([&+])\s*(\S+)\s*$/) {
-      $id = $1;
-      if($2 eq "+") {
-        $range = $3;
-      }
-      else {
-        $mask = $3;
-      }
-    }
-    else {
-      $id = $val;
-    }
-
-    if(defined $range) {
-      if($range =~ /^(0x[0-9a-zA-Z]+|\d+)$/) {
-        $range = num $range;
-      }
-      else {
-        die "$file_name($line): invalid range\n"
-      }
-    }
-
-    if(defined $mask) {
-      if($mask =~ /^(0x[0-9a-zA-Z]+|\d+)$/) {
-        $mask = num $mask;
-      }
-      else {
-        die "$file_name($line): invalid mask\n"
-      }
-    }
-
-    if($id =~ /^(0x[0-9a-zA-Z]+|\d+)$/) {
-      $id = num $id;
-    }
-    elsif(($tag == $tag_none || $tag == $tag_eisa) && $id =~ /^[A-Z_@]{3}$/) {
-      $id = eisa_id $id;
-      $tag = $tag_eisa;
-    }
-    else {
-      die "$file_name($line): invalid id\n"
-    }
-
-    @id = ( $flag_id, $tag, $id );
-    $id[3] = $range if defined $range;
-    $id[4] = $mask if defined $mask;
-
-    return \@id;
-  };
-
-  ( $file_name, $file ) = @_;
-
-  $fields = join "|", map "\Q$_", @ent_names;
-
-  $state = 0;
-
-  $rif_save_item->();
-
-  for (@$file) {
-    $line++;
-    chomp;
-    s/\s*$//;
-    next if /^\s*[#;]/;
-    next if /^$/;
-
-    if(/^\s*([+&|]?)($fields)\s+(.+)/) {
-      ($pre, $key, $val) = ($1, $2, $3);
-      # print ">$pre< $is_id>$key< >$val<\n";
-      die "internal oops: $file_name($line)\n" unless exists $ent_values{$key};
-      $keyid = $ent_values{$key};
-      $is_id = $keyid < $he_nomask && $key =~ /\.id$/ ? 1 : 0;
-    }
-    else {
-      die "invalid line: $file_name($line)\n";
-    }
-
-    if($pre eq "") {
-      die "invalid line: $file_name($line)\n" unless $state == 0 || $state == 2;
-      if($state == 2) {
-        $item[2] = [ @id ];
-        undef @id;
-      }
-      $rif_save_item->();
-      $state = 1;
-    }
-    elsif($pre eq "|") {
-      die "invalid line: $file_name($line)\n" unless $state == 1;
-      push @{$item[1]}, [ @id ];
-      undef @id;
-    }
-    elsif($pre eq "&") {
-      die "invalid line: $file_name($line)\n" unless $state == 1;
-    }
-    elsif($pre eq "+") {
-      die "invalid line: $file_name($line)\n" unless $state == 1 || $state == 2;
-      if($state == 1) {
-        push @{$item[1]}, [ @id ];
-        undef @id;
-      }
-      $state = 2;
-    }
-    else {
-      die "internal oops: $file_name($line)\n";
-    }
-
-    if($is_id) {
-      $id[$keyid] = $str2id->($val);
-    }
-    elsif($keyid < $he_nomask) {
-      $id[$keyid] = [ $flag_string, $val ];
-    }
-    elsif($keyid == $he_class_id) {
-      $i = ${$str2id->($val)}[2];
-      $id[$he_baseclass_id] = [ $flag_id, $tag_none, $i >> 8 ];
-      $id[$he_subclass_id] = [ $flag_id, $tag_none, $i & 0xff ];
-    }
-    else {
-      undef $i;
-      if($keyid == $he_driver_module_insmod) {
-        $i = "i";
-      }
-      elsif($keyid == $he_driver_module_modprobe) {
-        $i = "m";
-      }
-      elsif($keyid == $he_driver_module_config) {
-        $i = "M";
-      }
-      elsif($keyid == $he_driver_xfree) {
-        $i = "x";
-      }
-      elsif($keyid == $he_driver_xfree_config) {
-        $i = "X";
-      }
-      elsif($keyid == $he_driver_mouse) {
-        $i = "p";
-      }
-      elsif($keyid == $he_driver_display) {
-        $i = "d";
-      }
-      elsif($keyid == $he_driver_any) {
-        $i = "a";
-      }
-      else {
-        die "unhandled entry: $file_name($line)\n"
-      }
-      $val = "$i\t$val";
-      if(!defined $id[$he_driver]) {
-        $id[$he_driver] = [ $flag_string ];
-      }
-      if($i eq "X" || $i eq "M") {
-        $id[$he_driver]->[-1] .= "\x00$val"
-      }
-      else {
-        push @{$id[$he_driver]}, $val;
-      }
-    }
-  }
-
-  if($state == 2) {
-    $item[2] = [ @id ];
-    undef @id;
-  }
-
-  $rif_save_item->();
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# read pcimap file
-#
-
-sub read_pcimap_file
-{
-  my (@l, $id, $n, $key, $val, $mask);
-  local $_;
-
-  ( $file_name, $file ) = @_;
-
-  for (@$file) {
-    $line++;
-    chomp;
-    s/\s*$//;
-    next if /^\s*#/;
-    next if /^$/;
-
-    @l = split;
-
-    die "invalid line: $file_name($line)\n" unless @l == 8;
-
-    $val = [];
-
-    $val->[$he_driver] = [ $flag_string, "m\t$l[0]" ];
-
-    $key = [];
-
-    $key->[$he_vendor_id] = [ $flag_id, $tag_pci, $n ] if ($n = num $l[1]) != 0xffffffff;
-    $key->[$he_device_id] = [ $flag_id, $tag_pci, $n ] if ($n = num $l[2]) != 0xffffffff;
-    $key->[$he_subvendor_id] = [ $flag_id, $tag_pci, $n ] if ($n = num $l[3]) != 0xffffffff;
-    $key->[$he_subdevice_id] = [ $flag_id, $tag_pci, $n ] if ($n = num $l[4]) != 0xffffffff;
-
-    $n = num $l[6];
-
-    if($mask = ($n >> 16) & 0xff) {
-      $key->[$he_baseclass_id] = [ $flag_id, $tag_none, (num($l[5]) >> 16) & 0xff ];
-      if($mask != 0xff) {
-        $key->[$he_baseclass_id][4] = (~$mask & 0xff);
-      }
-    }
-
-    if($mask = ($n >> 8) & 0xff) {
-      $key->[$he_subclass_id] = [ $flag_id, $tag_none, (num($l[5]) >> 8) & 0xff ];
-      if($mask != 0xff) {
-        $key->[$he_subclass_id][4] = (~$mask & 0xff);
-      }
-    }
-
-    if($mask = $n & 0xff) {
-      $key->[$he_progif_id] = [ $flag_id, $tag_none, num($l[5]) & 0xff ];
-      if($mask != 0xff) {
-        $key->[$he_progif_id][4] = (~$mask & 0xff);
-      }
-    }
-
-    push @hd, [ "$file_name($line)", [ $key ], $val ];
-  }
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# read usbmap file
-#
-
-sub read_usbmap_file
-{
-  my (@l, $id, $n, $key, $val, $mask);
-  local $_;
-
-  ( $file_name, $file ) = @_;
-
-  for (@$file) {
-    $line++;
-    chomp;
-    s/\s*$//;
-    next if /^\s*#/;
-    next if /^$/;
-
-    @l = split;
-
-    die "invalid line: $file_name($line)\n" unless @l == 13;
-
-    next if num($l[1]) != 3;   # match_flags != 3
-
-    $val = [];
-
-    $key = [];
-
-    $key->[$he_vendor_id] = [ $flag_id, $tag_usb, num($l[2]) ];
-    $key->[$he_device_id] = [ $flag_id, $tag_usb, num($l[3]) ];
-
-    $val->[$he_driver] = [ $flag_string, "m\t$l[0]" ];
-
-    if($usbmod2class{$l[0]}) {
-      $val->[$he_baseclass_id] = [ $flag_id, $tag_none, $usbmod2class{$l[0]}[0] ] if defined $usbmod2class{$l[0]}[0];
-      $val->[$he_subclass_id] = [ $flag_id, $tag_none, $usbmod2class{$l[0]}[1] ] if defined $usbmod2class{$l[0]}[1];
-    }
-
-    push @hd, [ "$file_name($line)", [ $key ], $val ];
-  }
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# read alias file
-#
-
-sub read_alias_file
-{
-  my ($f, $id, $n, $key, $val, $mask, $tag, $module, $spec, $t1, $t2);
-  local $_;
-
-  $f = '[0-9A-F*]+';
-
-  ( $file_name, $file ) = @_;
-
-  for (@$file) {
-    $line++;
-    chomp;
-    s/\s*$//;
-    next if /^\s*#/;
-    next if /^$/;
-
-    next unless /^\s*alias\s+(pci|pnp|usb):(\S+)\s+(\S+)/;
-
-    $tag = $tag_pci if $1 eq 'pci';
-    $tag = $tag_eisa if $1 eq 'pnp';
-    $tag = $tag_usb if $1 eq 'usb';
-
-    $spec = $2;
-    $module = $3;
-
-    $val = [];
-
-    $val->[$he_driver] = [ $flag_string, "m\t$module" ];
-
-    $key = [];
-
-    if($spec =~ /^v($f)d($f)sv($f)sd($f)bc($f)sc($f)i($f)$/ ) {
-      $key->[$he_vendor_id] = [ $flag_id, $tag, hex $1 ] if $1 ne '*';
-      $key->[$he_device_id] = [ $flag_id, $tag, hex $2 ] if $2 ne '*';
-      $key->[$he_subvendor_id] = [ $flag_id, $tag, hex $3 ] if $3 ne '*';
-      $key->[$he_subdevice_id] = [ $flag_id, $tag, hex $4 ] if $4 ne '*';
-      $key->[$he_baseclass_id] = [ $flag_id, $tag_none, hex $5 ] if $5 ne '*';
-      $key->[$he_subclass_id] = [ $flag_id, $tag_none, hex $6 ] if $6 ne '*';
-      $key->[$he_progif_id] = [ $flag_id, $tag_none, hex $7 ] if $7 ne '*';
-
-      push @hd, [ "$file_name($line)", [ $key ], $val ];
-    }
-    elsif($spec =~ /^v($f)p($f)dl($f)dh($f)dc($f)dsc($f)dp($f)ic($f)isc($f)ip($f)$/ ) {
-
-      if(
-        $3 == '*' && $4 == '*' && $5 == '*' &&
-        $6 == '*' && $7 == '*' && $8 == '*' &&
-        $9 == '*' && $10 == '*'
-      ) {
-        $key->[$he_vendor_id] = [ $flag_id, $tag, hex $1 ] if $1 ne '*';
-        $key->[$he_device_id] = [ $flag_id, $tag, hex $2 ] if $2 ne '*';
-
-        push @hd, [ "$file_name($line)", [ $key ], $val ];
-      }
-    }
-    elsif($spec =~ /^[c|d](\S{3})([0-9a-fA-FX]{4})/ ) {
-      $t1 = $1;
-      $t2 = $2;
-
-      if($t1 =~ /[\@A-Z\[\\\]\^_]{3}/ && $t2 ne 'XXXX') {
-        $key->[$he_vendor_id] = [ $flag_id, $tag, eisa_id $t1 ];
-        $key->[$he_device_id] = [ $flag_id, $tag, hex $t2 ];
-
-        push @hd, [ "$file_name($line)", [ $key ], $val ];
-      }
-    }
-    else {
-      die "invalid line: $file_name($line)\n"
-    }
-  }
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# read modinfo data
-#
-
-sub read_modinfo_file
-{
-  my ($f, $id, $n, $key, $val, $mask, $tag, $module, $spec, $t1, $t2);
-  local $_;
-
-  $f = '[0-9A-F*]+';
-
-  ( $file_name, $file ) = @_;
-
-  for (@$file) {
-    $line++;
-    chomp;
-    s/\s*$//;
-    next if /^\s*#/;
-    next if /^$/;
-
-    if(m#([^/]+)\.ko:$#) {
-      $module = $1;
-      next;
-    }
-
-    next unless /^\s*alias:\s+(pci|pnp|usb):(\S+)\s*$/;
-
-    $tag = $tag_pci if $1 eq 'pci';
-    $tag = $tag_eisa if $1 eq 'pnp';
-    $tag = $tag_usb if $1 eq 'usb';
-
-    $spec = $2;
-
-    $val = [];
-
-    $val->[$he_driver] = [ $flag_string, "m\t$module" ];
-
-    $key = [];
-
-    if($spec =~ /^v($f)d($f)sv($f)sd($f)bc($f)sc($f)i($f)$/ ) {
-      $key->[$he_vendor_id] = [ $flag_id, $tag, hex $1 ] if $1 ne '*';
-      $key->[$he_device_id] = [ $flag_id, $tag, hex $2 ] if $2 ne '*';
-      $key->[$he_subvendor_id] = [ $flag_id, $tag, hex $3 ] if $3 ne '*';
-      $key->[$he_subdevice_id] = [ $flag_id, $tag, hex $4 ] if $4 ne '*';
-      $key->[$he_baseclass_id] = [ $flag_id, $tag_none, hex $5 ] if $5 ne '*';
-      $key->[$he_subclass_id] = [ $flag_id, $tag_none, hex $6 ] if $6 ne '*';
-      $key->[$he_progif_id] = [ $flag_id, $tag_none, hex $7 ] if $7 ne '*';
-
-      push @hd, [ "$file_name($line)", [ $key ], $val ];
-    }
-    elsif($spec =~ /^v($f)p($f)dl($f)dh($f)dc($f)dsc($f)dp($f)ic($f)isc($f)ip($f)$/ ) {
-
-      if(
-        $3 == '*' && $4 == '*' && $5 == '*' &&
-        $6 == '*' && $7 == '*' && $8 == '*' &&
-        $9 == '*' && $10 == '*'
-      ) {
-        $key->[$he_vendor_id] = [ $flag_id, $tag, hex $1 ] if $1 ne '*';
-        $key->[$he_device_id] = [ $flag_id, $tag, hex $2 ] if $2 ne '*';
-
-        push @hd, [ "$file_name($line)", [ $key ], $val ];
-      }
-    }
-    elsif($spec =~ /^[c|d](\S{3})([0-9a-fA-FX]{4})/ ) {
-      $t1 = $1;
-      $t2 = $2;
-
-      if($t1 =~ /[\@A-Z\[\\\]\^_]{3}/ && $t2 ne 'XXXX') {
-        $key->[$he_vendor_id] = [ $flag_id, $tag, eisa_id $t1 ];
-        $key->[$he_device_id] = [ $flag_id, $tag, hex $t2 ];
-
-        push @hd, [ "$file_name($line)", [ $key ], $val ];
-      }
-    }
-    else {
-      die "invalid line: $file_name($line)\n"
-    }
-  }
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# convert 3-letter eisa id to number
-#
-
-sub eisa_id
-{
-  my ( $str, $id, $i, $j );
-
-  $str = shift;
-  $id = 0;
-
-  die "internal oops" unless length($str) == 3;
-  for($i = 0; $i < 3; $i++) {
-    $id <<= 5;
-    $j = ord substr $str, $i, 1;
-    $j -= ord('A') - 1;
-    die "internal oops" unless $j >= 0 && $j <= 0x1f;
-    $id += $j;
-  }
-  
-  return $id;
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# convert numerical eisa id to 3-letter string
-#
-
-sub eisa_str
-{
-  my ( $id, $str );
-
-  $id = shift;
-
-  die "internal oops: eisa id \"$id\"" unless $id >= 0 && $id <= 0x7fff;
-
-  $str  = chr((($id >> 10) & 0x1f) + ord('A') - 1);
-  $str .= chr((($id >>  5) & 0x1f) + ord('A') - 1);
-  $str .= chr(( $id        & 0x1f) + ord('A') - 1);
-
-  return $str;
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# remove entries that have no effect
-#
-
-sub remove_nops
-{
-  my ($hd, $id, $f, $i, $cf);
-  local $_;
-
-  for $hd (@hd) {
-    if(!defined($hd->[1]) || !@{$hd->[1]} || !defined($hd->[2]) || !@{$hd->[2]}) {
-      undef $hd;
-      next;
-    }
-    for $id (@{$hd->[1]}, $hd->[2]) {
-      if(defined($id)) {
-        $cf = 0;
-        for $f (@$id) {
-          if(defined $f) {
-            $cf++;
-            if(@$f == 2 && $f->[0] == $flag_string && $f->[1] eq "") {
-              undef $f;
-              $cf--;
-            }
-          }
-        }
-        undef $id if !$cf;
-      }
-    }
-    if(!defined($hd->[1]) || !@{$hd->[1]} || !defined($hd->[2]) || !@{$hd->[2]}) {
-      print STDERR "$hd->[0] has no info, dropped\n";
-      undef $hd;
-      next;
-    }
-  }
-
-  @hd = grep { defined } @hd;
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# remove duplicate entries
-#
-
-sub remove_duplicates
-{
-  my ($hd, $hd0, $hd1, $len, $i, $j, $m, $v, $buf, $errors, $drop);
-  local $_;
-
-  $len = @hd;
-
-  for($j = 0; $j < $len; $j++) {
-    print STDERR ">> $j\r";
-    $hd0 = \$hd[$j];
-    for($i = $j + 1; $i < $len; $i++) {
-      $hd1 = \$hd[$i];
-      $m = match_item $$hd0, $$hd1;
-      # print "$$hd0->[0] -- $$hd1->[0]: $m\n";
-      if($m) {
-        $drop = cmp_item $$hd0, $$hd1;
-        $drop = !$drop || abs($drop) == 2 ? ", dropped" : undef;
-        undef $buf;
-        # print STDERR "j: $$hd0->[0], $$hd1->[0]\n";
-        $v = join_skey $$hd0->[2], $$hd1->[2], \$buf, \$errors;
-        if($errors) {
-          print STDERR "$$hd1->[0] conflicts with $$hd0->[0]$drop:\n$buf\n";
-          $$hd1 = undef if $drop;
-        }
-        else {
-          if($drop) {
-            print STDERR "$$hd1->[0] added to $$hd0->[0] and dropped\n";
-            $$hd0->[2] = $v;
-#            $$hd1 = undef;
-          }
-          else {
-            print STDERR "$$hd1->[0] shadowed by $$hd0->[0]\n";
-            $$hd0->[2] = $v;
-          }
-        }
-      }
-    }
-  }
-
-  @hd = grep { defined } @hd;
-
-  for $hd (@hd) {
-    if(
-      !defined($hd->[2]) ||
-      !defined($hd->[2][$he_driver]) ||
-      !(defined($hd->[2][$he_device_name]) || defined($hd->[2][$he_subdevice_name]))
-    ) {
-      undef $hd;
-      next;
-    }
-  }
-
-  @hd = grep { defined } @hd;
-
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# remove duplicate entries
-#
-
-sub remove_duplicatesx
-{
-  my ($hd0, $hd1, $len, $i, $j, $m, $v, $buf, $errors, $drop);
-  local $_;
-
-  $len = @hd;
-
-  for($j = 0; $j < $len; $j++) {
-    print STDERR ">> $j\r";
-    $hd0 = \$hd[$j];
-    for($i = $j + 1; $i < $len; $i++) {
-      $hd1 = \$hd[$i];
-      $m = match_item $$hd0, $$hd1;
-      # print "$$hd0->[0] -- $$hd1->[0]: $m\n";
-      if($m) {
-        $drop = cmp_item $$hd0, $$hd1;
-        $drop = !$drop || abs($drop) == 2 ? ", dropped" : undef;
-        undef $buf;
-        $v = join_skey $$hd0->[2], $$hd1->[2], \$buf, \$errors;
-        if($errors) {
-          print STDERR "$$hd1->[0] conflicts with $$hd0->[0]$drop:\n$buf\n";
-          $$hd1 = undef if $drop;
-        }
-        else {
-          if($drop) {
-            print STDERR "$$hd1->[0] added to $$hd0->[0] and dropped\n";
-            $$hd0->[2] = $v;
-            $$hd1 = undef;
-          }
-          else {
-            print STDERR "$$hd1->[0] shadowed by $$hd0->[0]\n";
-          }
-        }
-      }
-    }
-  }
-
-  @hd = grep { defined } @hd;
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# fix drive info
-#
-
-sub fix_driver_info
-{
-  my ($hd, $hid, $drv, $i, @i, @info, @req, %req);
-
-  for $hd (@hd) {
-    if(
-      !defined($hd->[2]) ||
-      !defined($hd->[2][$he_driver])
-    ) {
-      next;
-    }
-    $hid = $hd->[2][$he_driver];
-    next unless $hid->[0] == $flag_string;
-
-    undef @req;
-
-    for $drv (@$hid[1 .. @$hid - 1]) {
-      @i = split /\x00/, $drv;
-      for $i (@i) {
-        next if $i =~ /^[MX]\t/;
-        $i =~ s/\|+$//;
-        next unless $i =~ /^x\t/;
-        @info = split /\|/, $i;
-        # remove leasding 'XF86_' from server name
-        $info[1] =~ s/^XF86_// if $info[1];
-        # sort package, extension and option lists
-        push @req, split /,/, $info[3] if $info[3];
-        # $info[3] = join ',', sort split /,/, $info[3] if $info[3];
-        $info[3] = undef if $info[3];
-        $info[4] = join ',', sort split /,/, $info[4] if $info[4];
-        $info[5] = join ',', sort split /,/, $info[5] if $info[5];
-        $info[6] = join ',', sort { $a <=> $b } split /,/, $info[6] if $info[6];
-        $i = join '|', @info;  
-      }
-      $drv = join "\x00", @i;
-      # print ">$drv<\n"
-    }
-
-    if(@req) {
-      $hid = $hd->[2][$he_requires];
-      if($hid) {
-        if($hid->[0] != $flag_string) {
-          die "oops, invalid data"
-        }
-        push @req, split /\|/, $hid->[1];
-        $hid->[1] = join '|', @req;
-      }
-      else {
-        $hd->[2][$he_requires] = [ $flag_string, join('|', @req) ];
-      }
-    }
-  }
-
-  for $hd (@hd) {
-    if(
-      !defined($hd->[2]) ||
-      !defined($hd->[2][$he_requires])
-    ) {
-      next;
-    }
-    $hid = $hd->[2][$he_requires];
-    next unless $hid->[0] == $flag_string;
-
-    undef @req;
-    undef %req;
-
-    @req = split /\|/, $hid->[1];
-    @req{@req} = @req;
-
-    $hid->[1] = join '|', sort keys %req;
-  }
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# hd: [ "source", [ skey, skey, ... ], [ val ] ]
-# skey/val: [ ... , id, ..., id, ... ]
-# id: [ $flag_id, $tag, $value, $range, $mask ]
-# id: [ $flag_string, "str", "str", ... ]
-
-sub cmp_id
-{
-  my ($id0, $id1, $len0, $len1, $len, $i, $k);
-
-  ($id0, $id1) = @_;
-
-  return 0 if !defined($id0) && !defined($id1);
-  return -1 if !defined($id0);
-  return 1 if !defined($id1);
-
-  if($id0->[0] != $id1->[0]) {
-    return $id0->[0] <=> $id1->[0];
-  }
-
-  $len0 = @$id0;
-  $len1 = @$id1;
-  $len = $len0 < $len1 ? $len0 : $len1;
-
-  if($id0->[0] == $flag_string) {
-    for($i = 1; $i < $len; $i++) {
-      $k = $id0->[$i] cmp $id1->[$i];
-      return $k if $k;
-    }
-    return $len0 <=> $len1;
-  }
-
-  if($id0->[0] == $flag_id) {
-    $k = $id0->[1] <=> $id1->[1];
-    return $k if $k;
-    $k = $id0->[2] <=> $id1->[2];
-    return $k if $k;
-    $k = $len0 <=> $len1;
-    return $k if $k || $len <= 3;
-    # print "-\n";
-    # $dump->dumpValue( $id0 );
-    # $dump->dumpValue( $id1 );
-    # die "internal oops: strange id" if $len < 4;
-    $i = $len - 1;
-    return -1 if !defined($id0->[$i]);
-    return 1 if !defined($id1->[$i]);
-    return $id0->[$i] <=> $id1->[$i];
-  }
-
-  die "internal oops: can't compare that!";
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-sub cmp_skey
-{
-  my ($skey0, $skey1, $len0, $len1, $len, $i, $k);
-
-  ($skey0, $skey1) = @_;
-
-  return 0 if !defined($skey0) && !defined($skey1);
-  return -1 if !defined($skey0);
-  return 1 if !defined($skey1);
-
-  $len0 = @$skey0;
-  $len1 = @$skey1;
-  $len = $len0 < $len1 ? $len0 : $len1;
-
-  # $dump->dumpValue( $skey0 );
-  # $dump->dumpValue( $skey1 );
-
-  for($i = 0; $i < $len; $i++) {
-    next unless defined($skey0->[$i]) || defined($skey1->[$i]);
-
-    # note: this looks reversed, but is intentional!
-    return 1 if !defined($skey0->[$i]);
-    return -1 if !defined($skey1->[$i]);
-
-    $k = cmp_id $skey0->[$i], $skey1->[$i];
-
-    return $k if $k;
-  }
-
-  return $len0 <=> $len1;
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-#   0: equal
-# +-1: differing keys
-# +-2: differing values
-#
-sub cmp_item
-{
-  my ($item0, $item1, $len0, $len1, $len, $i, $k);
-
-  ($item0, $item1) = @_;
-
-  $cmp_item_cnt++;
-
-  return 0 if !defined($item0) && !defined($item1);
-  return -1 if !defined($item0);
-  return 1 if !defined($item1);
-
-  $len0 = @{$item0->[1]};
-  $len1 = @{$item1->[1]};
-  $len = $len0 < $len1 ? $len0 : $len1;
-
-#  $dump->dumpValue( $item0 );
-
-  for($i = 0; $i < $len; $i++) {
-    return -1 if !defined($item0->[1][$i]);
-    return 1 if !defined($item1->[1][$i]);
-    $k = cmp_skey $item0->[1][$i], $item1->[1][$i];
-    # print "  skey: $k\n";
-    return $k if $k;
-  }
-  $k = $len0 <=> $len1;
-  return $k if $k;
-
-  return 0 if !defined($item0->[2]) && !defined($item1->[2]);
-  return -2 if !defined($item0->[2]);
-  return 2 if !defined($item1->[2]);
-
-  $k = cmp_skey $item0->[2], $item1->[2];
-  # print "  val: $k\n";
-  return 2 * $k;
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# check if id1 is part of id0
-#
-# return:
-#   1: yes
-#   0: no
-#   undef: don't know
-#
-# hd: [ "source", [ skey, skey, ... ], [ val ] ]
-# skey/val: [ ... , id, ..., id, ... ]
-# id: [ $flag_id, $tag, $value, $range, $mask ]
-# id: [ $flag_string, "str", "str", ... ]
-
-sub match_id
-{
-  my ($id0, $id1, $len0, $len1, $len, $i, $k);
-
-  ($id0, $id1) = @_;
-
-  return 0 if !defined($id0) || !defined($id1);
-
-  return 0 if $id0->[0] != $id1->[0];
-
-  $len0 = @$id0;
-  $len1 = @$id1;
-  $len = $len0 < $len1 ? $len0 : $len1;
-
-  if($id0->[0] == $flag_string) {
-    for($i = 1; $i < $len; $i++) {
-      return 0 if $id0->[$i] cmp $id1->[$i];
-    }
-    return $len0 != $len1 ? 0 : 1;
-  }
-
-  if($id0->[0] == $flag_id) {
-    return 0 if $id0->[1] != $id1->[1];
-    if($len1 == 3) {
-      if($len0 == 3) {
-        return $id0->[2] != $id1->[2] ? 0 : 1;
-      }
-      elsif($len0 == 4) {
-        return $id1->[2] >= $id0->[2] && $id1->[2] < $id0->[2] + $id0->[3] ? 1 : 0;
-      }
-      elsif($len0 == 5) {
-        return ($id1->[2] & ~$id0->[4]) == $id0->[2] ? 1 : 0;
-      }
-      else {
-        die "invalid id";
-      }
-    }
-    elsif($len1 == 4) {
-      return undef;
-    }
-    elsif($len1 == 5) {
-      return undef;
-    }
-    else {
-      die "invalid id";
-    }
-  }
-
-  die "internal oops: can't match that!";
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# skey1 part of skey0?
-#
-sub match_skey
-{
-  my ($skey0, $skey1, $len0, $len1, $len, $i, $k);
-
-  ($skey0, $skey1) = @_;
-
-  return 0 if !defined($skey0) || !defined($skey1);
-
-  $len0 = @$skey0;
-  $len1 = @$skey1;
-
-  $len = $len0 > $len1 ? $len0 : $len1;
-
-  # $dump->dumpValue( $skey0 );
-  # $dump->dumpValue( $skey1 );
-
-  for($i = 0; $i < $len; $i++) {
-    next unless defined($skey1->[$i]);
-
-    return 0 if !defined($skey0->[$i]) && defined($skey1->[$i]);
-
-    $k = match_id $skey0->[$i], $skey1->[$i];
-
-    return $k if !$k;
-  }
-
-  return 1;
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# item1 part of item0?
-#
-sub match_item
-{
-  my ($item0, $item1, $len0, $len1, $i, $j, $k, $m);
-
-  ($item0, $item1) = @_;
-
-  $match_item_cnt++;
-
-  return 0 if !defined($item0) || !defined($item1);
-
-  $len0 = @{$item0->[1]};
-  $len1 = @{$item1->[1]};
-
-  for($j = 0; $j < $len1; $j++) {
-    for($i = 0; $i < $len0; $i++) {
-      $k = match_skey $item0->[1][$i], $item1->[1][$j];
-      $m = $k if defined $k;
-      return $k if $k;
-    }
-  }
-
-  return $m
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# add skey1 to skey0
-#
-sub join_skey
-{
-  my ($skey0, $skey1, $len, $i, $k, $n, $buf, $err);
-
-  ($skey0, $skey1, $buf, $errors) = @_;
-
-  $$errors = 0;
-
-  return undef if !defined($skey0) && !defined($skey1);
-  return [ @$skey0 ] if !defined($skey1);
-  return [ @$skey1 ] if !defined($skey0);
-
-  $n = [ @$skey0 ];
-
-  $len = @$skey1;
-
-  for($i = 0; $i < $len; $i++) {
-    next unless defined $skey1->[$i];
-
-    $n->[$i] = $skey1->[$i];
-
-    next unless defined $skey0->[$i];
-
-    $k = cmp_id $skey0->[$i], $skey1->[$i];
-
-    if($k) {
-      if(defined $buf) {
-        if($i != $he_driver) {
-          $$buf .= ent_name_pr("  0:", $ent_names[$i]);
-          $$buf .= id_dump($i, $skey0->[$i]) . "\n";
-          $$buf .= ent_name_pr("  1:", $ent_names[$i]);
-          $$buf .= id_dump($i, $skey1->[$i]) . "\n";
-        }
-        else {
-          $$buf .= drv_dump("  0:", $skey0->[$i]);
-          $$buf =~ s/\n&/\n  0:/;
-          $$buf .= drv_dump("  1:", $skey1->[$i]);
-          $$buf =~ s/\n&/\n  1:/;
-        }
-      }
-      $$errors++ if defined $errors;
-    }
-  }
-
-  return $n;
-}
-
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-#
-# split key fields
-#
-sub split_item
-{
-  my ($item, @items, $tmp);
-  local $_;
-
-  $item = shift;
-
-  return $item if !defined($item) || !defined($item->[1]);
-
-  for (@{$item->[1]}) {
-    $tmp = [ @$item ];
-    $tmp->[1] = [ $_ ];
-    push @items, $tmp;
-  }
-
-  return @items;
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-sub get_xml_data
-{
-  my ($xml, $i, $j);
-
-  $xml = shift;
-
-  if($xml->[0] ne 'hwdata') {
-    die "invalid XML root element (expected 'hwdata')\n"
-  }
-
-  for($i = 1; $i < @{$xml->[1]}; $i += 2) {
-    if($xml->[1][$i] eq 'item') {
-      push @hd, parse_xml_item($xml->[1][$i + 1]);
-    }
-  }
-}
-
-
-sub parse_xml_item
-{
-  my (@xml, %attr, $i, $item);
-
-  @xml = @{$_[0]};
-  %attr = %{shift @xml};
-
-  for($i = 0; $i < @xml; $i += 2) {
-    if($xml[$i] eq 'key') {
-      push @{$item->[1]}, parse_xml_key($xml[$i + 1]);
-    }
-    else {
-      $item->[2] = parse_xml_key($_[0]);
-    }
-  }
-
-  return $item;
-}
-
-
-sub parse_xml_key
-{
-  my (@xml, %attr, $i, @key, $val, $id, $is_id, $keyid, $keyid2, $tmp);
-
-  @xml = @{$_[0]};
-  %attr = %{shift @xml};
-
-  for($i = 0; $i < @xml; $i += 2) {
-    next if $xml[$i] eq '0' || $xml[$i] eq 'key';
-    
-    $keyid = $xml_values{$xml[$i]};
-    $is_id = $keyid < $he_nomask && $ent_names[$keyid] =~ /\.(id|name)$/ ? 1 : 0;
-
-    if(!defined($keyid)) {
-      die "invalid key element \"$xml[$i]\"\n";
-    }
-
-    if($keyid == $he_driver) {
-      $id = parse_xml_driver($xml[$i + 1]);
-      if(!defined($key[$keyid])) {
-        $key[$keyid] = $id;
-      }
-      else {
-        push @{$key[$keyid]}, $id->[1];
-      }
-    }
-    elsif($is_id) {
-      $id = parse_xml_id($xml[$i + 1]);
-      if($id->[0] == $flag_id) {
-        $tmp = $ent_names[$keyid];
-        $tmp =~ s/\.name$/.id/;
-        $keyid2 = $ent_values{$tmp};
-        if(!defined($keyid2)) {
-          die "oops, no .id for $xml[$i]?";
-        }
-      }
-      else {
-        $tmp = $ent_names[$keyid];
-        $tmp =~ s/\.id$/.name/;
-        $keyid2 = $ent_values{$tmp};
-        if(!defined($keyid2)) {
-          die "oops, no .name for $xml[$i]?";
-        }
-      }
-      $key[$keyid2] = $id;
-    }
-    else {
-      $val = parse_xml_cdata($xml[$i + 1]);
-      if(defined($key[$keyid]) && $keyid == $he_requires) {
-        $key[$keyid][1] .= "|$val";
-      }
-      else {
-        $key[$keyid] = [ $flag_string, $val ];
-      }
-    }
-  }
-
-  return [ @key ];
-}
-
-
-sub parse_xml_id
-{
-  my (@xml, %attr, $i, $id, $val);
-
-  @xml = @{$_[0]};
-  %attr = %{shift @xml};
-
-  for($i = 0; $i < @xml; $i += 2) {
-    next if $xml[$i] eq '0';
-
-    if($xml[$i] eq 'id') {
-      $id = parse_xml_id_id($xml[$i + 1]);
-    }
-    elsif($xml[$i] eq 'idrange') {
-      $id = parse_xml_id_range($xml[$i + 1]);
-    }
-    elsif($xml[$i] eq 'idmask') {
-      $id = parse_xml_id_mask($xml[$i + 1]);
-    }
-    elsif($xml[$i] eq 'name') {
-      $val = parse_xml_cdata($xml[$i + 1]);
-      $id = [ $flag_string, $val ];
-    }
-    else {
-      die "invalid id element \"$xml[$i]\"\n";
-    }
-  }
-
-  return $id;
-}
-
-
-sub parse_xml_id_id
-{
-  my (@xml, %attr, $i, $tag, $value);
-
-  @xml = @{$_[0]};
-  %attr = %{shift @xml};
-
-  $tag = $tag_values{$attr{type}};
-
-  if(!defined($tag)) {
-    die "missing/unsupported id attribute \"$attr{type}\"\n";
-  }
-
-  for($i = 0; $i < @xml; $i += 2) {
-    if($xml[$i] eq '0') {
-      $value = idstr2value $tag, $xml[$i + 1];
-    }
-    else {
-      die "cdata expected, got \"$xml[$i]\"\n";
-    }
-  }
-
-  return [ $flag_id, $tag, $value ];
-}
-
-
-sub parse_xml_id_range
-{
-  my (@xml, %attr, $i, $tag, $value, $range);
-
-  @xml = @{$_[0]};
-  %attr = %{shift @xml};
-
-  $tag = $tag_values{$attr{type}};
-
-  if(!defined($tag)) {
-    die "missing/unsupported id attribute \"$attr{type}\"\n";
-  }
-
-  for($i = 0; $i < @xml; $i += 2) {
-    next if $xml[$i] eq '0';
-    if($xml[$i] eq 'first') {
-      $value = idstr2value $tag, parse_xml_cdata($xml[$i + 1]);
-    }
-    elsif($xml[$i] eq 'last') {
-      $range = idstr2value $tag, parse_xml_cdata($xml[$i + 1]);
-    }
-    else {
-      die "invalid idrange element \"$xml[$i]\"\n";
-    }
-  }
-
-  if(!defined($value) || !defined($range)) {
-    die "invalid idrange\n";
-  }
-
-  return [ $flag_id, $tag, $value, $range - $value + 1 ];
-}
-
-
-sub parse_xml_id_mask
-{
-  my (@xml, %attr, $i, $tag, $value, $mask);
-
-  @xml = @{$_[0]};
-  %attr = %{shift @xml};
-
-  $tag = $tag_values{$attr{type}};
-
-  if(!defined($tag)) {
-    die "missing/unsupported id attribute \"$attr{type}\"\n";
-  }
-
-  for($i = 0; $i < @xml; $i += 2) {
-    next if $xml[$i] eq '0';
-    if($xml[$i] eq 'value') {
-      $value = idstr2value $tag, parse_xml_cdata($xml[$i + 1]);
-    }
-    elsif($xml[$i] eq 'mask') {
-      $mask = idstr2value $tag, parse_xml_cdata($xml[$i + 1]);
-    }
-    else {
-      die "invalid idmask element \"$xml[$i]\"\n";
-    }
-  }
-
-  if(!defined($value) || !defined($mask)) {
-    die "invalid idmask\n";
-  }
-
-  return [ $flag_id, $tag, $value, undef, $mask ];
-}
-
-
-sub parse_xml_driver
-{
-  my (@xml, %attr, $i, $val);
-
-  @xml = @{$_[0]};
-  %attr = %{shift @xml};
-
-  for($i = 0; $i < @xml; $i += 2) {
-    next if $xml[$i] eq '0';
-
-    if($xml[$i] eq 'any') {
-      $val = "a\t" . parse_xml_cdata($xml[$i + 1]);
-    }
-    elsif($xml[$i] eq 'display') {
-      $val = parse_xml_driver_display($xml[$i + 1]);
-    }
-    elsif($xml[$i] eq 'module') {
-      $val = parse_xml_driver_module($xml[$i + 1]);
-    }
-    elsif($xml[$i] eq 'mouse') {
-      $val = parse_xml_driver_mouse($xml[$i + 1]);
-    }
-    elsif($xml[$i] eq 'xfree') {
-      $val = parse_xml_driver_xfree($xml[$i + 1]);
-    }
-    else {
-      die "invalid driver element \"$xml[$i]\"\n";
-    }
-  }
-
-  return [ $flag_string, $val ];
-}
-
-
-sub parse_xml_driver_display
-{
-  my (@xml, %attr, $i, @val);
-
-  @xml = @{$_[0]};
-  %attr = %{shift @xml};
-
-  for($i = 0; $i < @xml; $i += 2) {
-    next if $xml[$i] eq '0';
-
-    if($xml[$i] eq 'resolution') {
-      $val[0] = join('x', parse_xml_pair($xml[$i + 1], 'width', 'height'));
-    }
-    elsif($xml[$i] eq 'vsync') {
-      $val[1] = join('-', parse_xml_pair($xml[$i + 1], 'min', 'max'));
-    }
-    elsif($xml[$i] eq 'hsync') {
-      $val[2] = join('-', parse_xml_pair($xml[$i + 1], 'min', 'max'));
-    }
-    elsif($xml[$i] eq 'bandwidth') {
-      $val[3] = parse_xml_cdata($xml[$i + 1]);
-    }
-    else {
-      die "invalid display element \"$xml[$i]\"\n";
-    }
-  }
-
-  if(!@val) {
-    die "invalid display info\n";
-  }
-
-  return "d\t" . join('|', @val);
-}
-
-
-sub parse_xml_driver_module
-{
-  my (@xml, %attr, $i, $val, $type, @conf, @mods);
-
-  @xml = @{$_[0]};
-  %attr = %{shift @xml};
-
-  for($i = 0; $i < @xml; $i += 2) {
-    next if $xml[$i] eq '0';
-
-    $val = parse_xml_cdata($xml[$i + 1]);
-
-    if($xml[$i] eq 'modprobe') {
-      if($type && $type ne 'm') {
-        die "invalid module info: \"$xml[$i]\"\n";
-      }
-      $type = 'm';
-      push @mods, $val;
-    }
-    elsif($xml[$i] eq 'insmod') {
-      if($type && $type ne 'i') {
-        die "invalid module info: \"$xml[$i]\"\n";
-      }
-      $type = 'i';
-      push @mods, $val;
-    }
-    elsif($xml[$i] eq 'modconf') {
-      if($type && $type ne 'm') {
-        die "invalid module info: \"$xml[$i]\"\n";
-      }
-      push @conf, "\x00M\t$val";
-    }
-    else {
-      die "invalid module element \"$xml[$i]\"\n";
-    }
-  }
-
-  if(!$type && !@mods) {
-    die "invalid module info\n";
-  }
-
-  $val = "$type\t" . join('|', @mods);
-
-  if(@conf) {
-    $val .= join('', @conf);
-  }
-
-  return $val;
-}
-
-
-sub parse_xml_driver_mouse
-{
-  my (@xml, %attr, $i, $val, @val);
-
-  @xml = @{$_[0]};
-  %attr = %{shift @xml};
-
-  for($i = 0; $i < @xml; $i += 2) {
-    next if $xml[$i] eq '0';
-
-    $val = parse_xml_cdata($xml[$i + 1]);
-
-    if($xml[$i] eq 'xf86') {
-      $val[0] = $val;
-    }
-    elsif($xml[$i] eq 'gpm') {
-      $val[1] = $val;
-    }
-    elsif($xml[$i] eq 'buttons') {
-      $val[2] = $val;
-    }
-    elsif($xml[$i] eq 'wheels') {
-      $val[3] = $val;
-    }
-    else {
-      die "invalid mouse element \"$xml[$i]\"\n";
-    }
-  }
-
-  if(!@val) {
-    die "invalid mouse info\n";
-  }
-
-  return "p\t" . join('|', @val);
-}
-
-
-sub parse_xml_driver_xfree
-{
-  my (@xml, %attr, $i, $val, @val, @conf);
-
-  @xml = @{$_[0]};
-  %attr = %{shift @xml};
-
-  for($i = 0; $i < @xml; $i += 2) {
-    next if $xml[$i] eq '0';
-
-    if($xml[$i] eq 'has3d') {
-      $val[2] = '3d';
-    }
-    else {
-      $val = parse_xml_cdata($xml[$i + 1]);
-
-      if($xml[$i] eq 'version') {
-        $val[0] = $val;
-      }
-      elsif($xml[$i] eq 'server') {
-        $val[1] = $val;
-      }
-      elsif($xml[$i] eq 'extension') {
-        $val[4] .= "," if defined $val[4];
-        $val[4] .= $val;
-      }
-      elsif($xml[$i] eq 'option') {
-        $val[5] .= "," if defined $val[5];
-        $val[5] .= $val;
-      }
-      elsif($xml[$i] eq 'bpp') {
-        $val[6] .= "," if defined $val[6];
-        $val[6] .= $val;
-      }
-      elsif($xml[$i] eq 'dacspeed') {
-        $val[7] = $val;
-      }
-      elsif($xml[$i] eq 'script') {
-        $val[8] = $val;
-      }
-      elsif($xml[$i] eq 'xf86conf') {
-        push @conf, "\x00X\t$val";
-      }
-      else {
-        die "invalid xfree element \"$xml[$i]\"\n";
-      }
-    }
-  }
-
-  if(!@val) {
-    die "invalid xfree info\n";
-  }
-
-  $val = "x\t" . join('|', @val);
-
-  if(@conf) {
-    $val .= join('', @conf);
-  }
-
-  return $val;
-}
-
-
-sub parse_xml_pair
-{
-  my (@xml, %attr, $i, $val0, $val1, $elem0, $elem1);
-
-  $elem0 = $_[1];
-  $elem1 = $_[2];
-
-  @xml = @{$_[0]};
-  %attr = %{shift @xml};
-
-  for($i = 0; $i < @xml; $i += 2) {
-    next if $xml[$i] eq '0';
-    if($xml[$i] eq $elem0) {
-      $val0 = parse_xml_cdata($xml[$i + 1]);
-    }
-    elsif($xml[$i] eq $elem1) {
-      $val1 = parse_xml_cdata($xml[$i + 1]);
-    }
-    else {
-      die "invalid element \"$xml[$i]\"\n";
-    }
-  }
-
-  if(!defined($val0) || !defined($val1)) {
-    die "invalid element\n";
-  }
-
-  return ($val0, $val1);
-}
-
-
-sub parse_xml_cdata
-{
-  my (@xml, %attr, $i);
-
-  @xml = @{$_[0]};
-  %attr = %{shift @xml};
-
-  for($i = 0; $i < @xml; $i += 2) {
-    if($xml[$i] eq '0') {
-      return $xml[$i + 1]
-    }
-  }
-}
-
-
-sub idstr2value
-{
-  my ($tag, $value);
-
-  ($tag, $value) = @_;
-
-  if($tag == $tag_eisa && length($value) == 3 && $value !~ /^[0-9]/) {
-    $value = eisa_id $value;
-  }
-  else {
-    $value = num $value;
-  }
-
-  return $value;
-}
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-sub ent_name_pr
-{
-  my ($str, $len);
-
-  $str = $_[0] . $_[1];
-
-  $len = length $str;
-
-  $str .= "\t";
-  $len = ($len & ~7) + 8;
-  $str .= "\t" x ((24 - $len)/8) if $len < 24;
-  
-  return $str;
-}
-
-
-sub id_dump
-{
-  my ($id, $ent, $str, $tag, $format);
-
-  ($ent, $id) = @_;
-
-  if($id->[0] == $flag_id) {
-    $tag = $id->[1];
-    if($tag == $tag_eisa && ($ent == $he_vendor_id || $ent == $he_subvendor_id)) {
-      $str = eisa_str $id->[2];
-    }
-    else {
-      $str .= $tag_name[$tag];
-      $str .= " " if $tag;
-      $format = "0x%04x";
-      $format = "0x%02x" if $ent == $he_bus_id || $ent == $he_subclass_id || $ent == $he_progif_id;
-      $format = "0x%03x" if $ent == $he_baseclass_id;
-      $str .= sprintf $format, $id->[2];
-    }
-    if(defined $id->[3]) {
-      $str .= sprintf "+0x%04x", $id->[3];
-    }
-    elsif(defined $id->[4]) {
-      $str .= sprintf "&0x%04x", $id->[4];
-    }
-  }
-  elsif($id->[0] == $flag_string) {
-    if(defined($id->[2])) {
-      die "oops: strage string data\n";
-    }
-    $str = $id->[1];
-  }
-  else {
-    die "oops: unknown id flag\n"
-  }
-  
-  return $str;
-}
-
-
-sub drv_dump
-{
-  my ($id, $str, $i, $pre, $type, $drv, $buf);
-
-  ($pre, $id) = @_;
-
-  die "oops: invalid driver data\n" if $id->[0] != $flag_string;
-
-  for($i = 1; $i < @{$id}; $i++) {
-    for $drv (split /\x00/, $id->[$i]) {
-      $type = substr $drv, 0, 2;
-
-      if($type eq "x\t") {
-        $buf .= ent_name_pr($pre, $ent_names[$he_driver_xfree]);
-        $buf .= substr($drv, 2) . "\n";
-      }
-      elsif($type eq "X\t") {
-        $buf .= ent_name_pr($pre, $ent_names[$he_driver_xfree_config]);
-        $buf .= substr($drv, 2) . "\n";
-      }
-      elsif($type eq "i\t") {
-        $buf .= ent_name_pr($pre, $ent_names[$he_driver_module_insmod]);
-        $buf .= substr($drv, 2) . "\n";
-      }
-      elsif($type eq "m\t") {
-        $buf .= ent_name_pr($pre, $ent_names[$he_driver_module_modprobe]);
-        $buf .= substr($drv, 2) . "\n";
-      }
-      elsif($type eq "M\t") {
-        $buf .= ent_name_pr($pre, $ent_names[$he_driver_module_config]);
-        $buf .= substr($drv, 2) . "\n";
-      }
-      elsif($type eq "p\t") {
-        $buf .= ent_name_pr($pre, $ent_names[$he_driver_mouse]);
-        $buf .= substr($drv, 2) . "\n";
-      }
-      elsif($type eq "d\t") {
-        $buf .= ent_name_pr($pre, $ent_names[$he_driver_display]);
-        $buf .= substr($drv, 2) . "\n";
-      }
-      elsif($type eq "a\t") {
-        $buf .= ent_name_pr($pre, $ent_names[$he_driver_any]);
-        $buf .= substr($drv, 2) . "\n";
-      }
-      else {
-        die "oops: unhandled driver info type: $drv\n";
-      }
-
-      $pre = "&" if $pre ne "+";
-    }
-  }
-
-  return $buf;
-}
-
-
-sub ent_dump
-{
-  my ($pre, $id, $ent, $buf);
-
-  ($buf, $pre, $id) = @_;
-
-  $pre = defined($pre) ? "|" : " " if $pre ne "+";
-  for($ent = 0; $ent < @{$id}; $ent++) {
-    if(defined $id->[$ent]) {
-      if($ent != $he_driver) {
-        $$buf .= ent_name_pr($pre, $ent_names[$ent]);
-        $$buf .= id_dump($ent, $id->[$ent]);
-        $$buf .= "\n";
-      }
-      else {
-        $$buf .= drv_dump($pre, $id->[$ent]);
-      }
-      $pre = "&" if $pre ne "+";
-    }
-  }
-
-  return $pre;
-}
-
-
-sub dump2ids
-{
-  my ($item, $id, $ent, $pre, $buf);
-
-  # $dump->dumpValue( \@hd );
-
-  open F, ">hd.ids";
-
-  for $item (@hd) {
-    undef $buf;
-    undef $pre;
-    print F "# $item->[0]\n" if $opt_with_source;
-    for $id (@{$item->[1]}) {
-      $pre = ent_dump \$buf, $pre, $id;
-    }
-    $pre = "+";
-    ent_dump \$buf, $pre, $item->[2];
-    $buf .= "\n";
-
-    print F $buf;
-  }
-
-  close F;
-}
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-sub dump2xml
-{
-  my ($item, $dtd);
-
-  if($opt_internal_dtd) {
-    $dtd = hd_dtd_internal;
-  }
-  else {
-    $dtd = "<!DOCTYPE hwdata SYSTEM \"hd.dtd\">\n";
-  }
-
-  $xml_file = new IO::File(">hd.xml");
-  $xml = new XML::Writer(OUTPUT => $xml_file, DATA_MODE => 1, DATA_INDENT => 2);
-
-  $xml->xmlDecl("utf-8");
-
-  print $xml_file "\n$dtd";
-
-  $xml->startTag("hwdata");
-
-  print $xml_file "\n";
-
-  for $item (@hd) {
-    dump_xml_item $item;
-  }
-
-  $xml->endTag("hwdata");
-  $xml->end();
-
-  if(!$opt_internal_dtd) {
-    print STDERR "writing \"hd.dtd\"\n";
-    open DTD, ">hd.dtd";
-    print DTD hd_dtd;
-    close DTD;
-  }
-}
-
-
-sub dump_xml_id
-{
-  my ($ent, $id, $i, $tag, $str, $format, $range, $mask);
-
-  ($ent, $id) = @_;
-
-  $i = $xml_names[$ent];
-
-  die "oops: entry $ent not allowed here\n" unless $i;
-
-  if($ent == $he_requires) {
-    if($id->[0] == $flag_string) {
-      die "oops: strange string data\n" if defined $id->[2];
-      for $str (split /\|/, $id->[1]) {
-        $xml->dataElement("requires", $str);
-      }
-    }
-    else {
-      die "oops: requires _id_???\n"
-    }
-  }
-  else {
-    $xml->startTag($i);
-
-    if($ent == $he_serial) {
-      if($id->[0] == $flag_string) {
-        die "oops: strange string data\n" if defined $id->[2];
-        $xml->characters($id->[1]);
-      }
-      else {
-        die "oops: serial _id_???\n"
-      }
-    }
-    else {
-      if($id->[0] == $flag_id) {
-        $tag = $id->[1];
-        if($tag == $tag_eisa && ($ent == $he_vendor_id || $ent == $he_subvendor_id)) {
-          $str = eisa_str $id->[2];
-        }
-        else {
-          $format = "0x%04x";
-          $format = "0x%02x" if $ent == $he_bus_id || $ent == $he_subclass_id || $ent == $he_progif_id;
-          $format = "0x%03x" if $ent == $he_baseclass_id;
-          $str = sprintf $format, $id->[2];
-        }
-        if(defined $id->[3]) {
-          if($tag == $tag_eisa && ($ent == $he_vendor_id || $ent == $he_subvendor_id)) {
-            $range = eisa_str $id->[2] + $id->[3] - 1;
-          }
-          else {
-            $range = sprintf "0x%04x", $id->[2] + $id->[3] - 1;
-          }
-        }
-        elsif(defined $id->[4]) {
-          $mask = sprintf "0x%04x", $id->[4];
-        }
-        $tag = $tag_name[$tag];
-
-        if(defined $range) {
-          if($tag) {
-            $xml->startTag("idrange", "type" => $tag);
-          }
-          else {
-            $xml->startTag("idrange");
-          }
-          $xml->dataElement("first", $str);
-          $xml->dataElement("last", $range);
-          $xml->endTag();
-        }
-        elsif(defined $mask) {
-          if($tag) {
-            $xml->startTag("idmask", "type" => $tag);
-          }
-          else {
-            $xml->startTag("idmask");
-          }
-          $xml->dataElement("value", $str);
-          $xml->dataElement("mask", $mask);
-          $xml->endTag();
-        }
-        else {
-          if($tag) {
-            $xml->dataElement("id", $str, "type" => $tag);
-          }
-          else {
-            $xml->dataElement("id", $str);
-          }
-        }
-      }
-      elsif($id->[0] == $flag_string) {
-        die "oops: strage string data\n" if defined $id->[2];
-        $xml->dataElement("name", $id->[1]);
-      }
-      else {
-        die "oops: unknown id flag\n"
-      }
-    }
-
-    $xml->endTag();
-  }
-}
-
-
-sub dump_xml_drv
-{
-  my ($id, $str, $i, $j, $k, $type, $drv, $info, @info, $current);
-
-  $id = shift;
-
-  die "oops: invalid driver data\n" if $id->[0] != $flag_string;
-
-  for($i = 1; $i < @{$id}; $i++) {
-
-    $xml->startTag('driver');
-
-    undef $current;
-
-    for $drv (split /\x00/, $id->[$i]) {
-      $type = substr $drv, 0, 2;
-      $info = substr $drv, 2;
-      @info = split /\|/, $info;
-
-      if($type eq "i\t") {
-        $xml->endTag() if $current; $current = $type;
-        $xml->startTag('module');
-        for $j (@info) {
-          $xml->dataElement('insmod', $j);
-        }
-      }
-      elsif($type eq "m\t") {
-        $xml->endTag() if $current; $current = $type;
-        $xml->startTag('module');
-        for $j (@info) {
-          $xml->dataElement('modprobe', $j);
-        }
-      }
-      elsif($type eq "M\t") {
-        die "oops: incorrect driver info: $drv\n" unless $current eq "m\t";
-        $xml->dataElement('modconf', $info);
-      }
-      elsif($type eq "a\t") {
-        $xml->endTag() if $current; $current = undef;;
-        $xml->dataElement('any', $info);
-      }
-      elsif($type eq "d\t") {
-        $xml->endTag() if $current; $current = undef;
-        $xml->startTag('display');
-        if($info[0] =~ /^(\d+)x(\d+)$/) {
-          ($j, $k) = ($1, $2);
-          $xml->startTag('resolution');
-          $xml->dataElement('width', $j);
-          $xml->dataElement('height', $k);
-          $xml->endTag('resolution');
-        }
-        if($info[1] =~ /^(\d+)-(\d+)$/) {
-          ($j, $k) = ($1, $2);
-          $xml->startTag('vsync');
-          $xml->dataElement('min', $j);
-          $xml->dataElement('max', $k);
-          $xml->endTag('vsync');
-        }
-        if($info[2] =~ /^(\d+)-(\d+)$/) {
-          ($j, $k) = ($1, $2);
-          $xml->startTag('hsync');
-          $xml->dataElement('min', $j);
-          $xml->dataElement('max', $k);
-          $xml->endTag('hsync');
-        }
-        if($info[3] =~ /^\d+$/) {
-          $xml->dataElement('bandwidth', $info[3]);
-        }
-        $xml->endTag('display');
-      }
-      elsif($type eq "x\t") {
-        $xml->endTag() if $current; $current = $type;
-        $xml->startTag('xfree');
-        if(defined $info[0]) {
-          $xml->dataElement('version', $info[0]);
-        }
-        if($info[1]) {
-          $xml->dataElement('server', $info[1]);
-        }
-        if($info[2]) {
-          $xml->emptyTag('has3d');
-        }
-#        if($info[3]) {
-#          for $j (split /,/, $info[3]) {
-#            $xml->dataElement('package', $j);
-#          }
-#        }
-        if($info[4]) {
-          for $j (split /,/, $info[4]) {
-            $xml->dataElement('extension', $j);
-          }
-        }
-        if($info[5]) {
-          for $j (split /,/, $info[5]) {
-            $xml->dataElement('option', $j);
-          }
-        }
-        if($info[6]) {
-          for $j (split /,/, $info[6]) {
-            $xml->dataElement('bpp', $j);
-          }
-        }
-        if($info[7] =~ /^\d+$/) {
-          $xml->dataElement('dacspeed', $info[7]);
-        }
-        if($info[8]) {
-          $xml->dataElement('script', $info[8]);
-        }
-      }
-      elsif($type eq "X\t") {
-        die "oops: incorrect driver info: $drv\n" unless $current eq "x\t";
-        $xml->dataElement('xf86conf', $info);
-      }
-      elsif($type eq "p\t") {
-        $xml->endTag() if $current; $current = undef;
-        $xml->startTag('mouse');
-        if($info[0]) {
-          $xml->dataElement('xf86', $info[0]);
-        }
-        if($info[1]) {
-          $xml->dataElement('gpm', $info[1]);
-        }
-        if($info[2] ne "") {
-          $xml->dataElement('buttons', $info[2]);
-        }
-        if($info[3] ne "") {
-          $xml->dataElement('wheels', $info[3]);
-        }
-        $xml->endTag('mouse');
-      }
-      else {
-        $xml->endTag() if $current; $current = undef;
-        # die "oops: unhandled driver info type: $drv\n";
-      }
-    }
-
-    $xml->endTag() if $current;
-
-    $xml->endTag('driver');
-
-  }
-}
-
-
-sub dump_xml_ent
-{
-  my ($id, $ent);
-
-  $id = shift;
-
-  for($ent = 0; $ent < @{$id}; $ent++) {
-    if(defined $id->[$ent]) {
-      if($ent != $he_driver) {
-        dump_xml_id $ent, $id->[$ent];
-      }
-      else {
-        dump_xml_drv $id->[$ent];
-      }
-    }
-  }
-
-}
-
-
-sub dump_xml_item
-{
-  my ($item, $id);
-
-  $item = shift;
-
-  $xml->startTag('item');
-
-  for $id (@{$item->[1]}) {
-    $xml->startTag('key');
-    dump_xml_ent $id;
-    $xml->endTag('key');
-  }
-
-  dump_xml_ent $item->[2];
-
-  $xml->endTag('item');
-  print $xml_file "\n";
-}
-
-
-sub hd_dtd
-{
-  my $dtd = <<'EOF'
-<!-- libhd DTD V0.2 -->
-
-<!ENTITY % keyfields "bus|baseclass|subclass|progif|vendor|device|subvendor|subdevice|revision|serial|driver|requires">
-<!ENTITY % idelements "id|idrange|idmask|name">
-<!ENTITY % idtypes "none|pci|eisa|usb|pcmcia|special">
-
-<!ELEMENT hwdata (item*)>
-
-<!ELEMENT item (key+,(%keyfields;)*)>
-
-<!ELEMENT key (%keyfields;)+>
-
-  <!ELEMENT bus (%idelements;)>
-  <!ELEMENT baseclass (%idelements;)>
-  <!ELEMENT subclass (%idelements;)>
-  <!ELEMENT progif (%idelements;)>
-  <!ELEMENT vendor (%idelements;)>
-  <!ELEMENT device (%idelements;)>
-  <!ELEMENT subvendor (%idelements;)>
-  <!ELEMENT subdevice (%idelements;)>
-  <!ELEMENT revision (%idelements;)>
-  <!ELEMENT serial (#PCDATA)>
-  <!ELEMENT requires (#PCDATA)>
-  <!ELEMENT id (#PCDATA)>
-  <!ELEMENT idrange (first,last)>
-    <!ELEMENT first (#PCDATA)>
-    <!ELEMENT last (#PCDATA)>
-  <!ELEMENT idmask (value,mask)>
-    <!ELEMENT value (#PCDATA)>
-    <!ELEMENT mask (#PCDATA)>
-  <!ATTLIST id type (%idtypes;) "none">
-  <!ATTLIST idrange type (%idtypes;) "none">
-  <!ATTLIST idmask type (%idtypes;) "none">
-  <!ELEMENT name (#PCDATA)>
-
-<!ELEMENT driver (any|display|module|mouse|xfree)?>
-
-  <!ELEMENT any (#PCDATA)>
-
-  <!ELEMENT display (resolution?,vsync?,hsync?,bandwidth?)>
-    <!ELEMENT resolution (width,height)>
-      <!ELEMENT width (#PCDATA)>
-      <!ELEMENT height (#PCDATA)>
-    <!ELEMENT vsync (min,max)>
-    <!ELEMENT hsync (min,max)>
-      <!ELEMENT min (#PCDATA)>
-      <!ELEMENT max (#PCDATA)>
-    <!ELEMENT bandwidth (#PCDATA)>
-
-  <!ELEMENT module (insmod+|(modprobe+,modconf*))>
-    <!ELEMENT insmod (#PCDATA)>
-    <!ELEMENT modprobe (#PCDATA)>
-    <!ELEMENT modconf (#PCDATA)>
-
-  <!ELEMENT mouse (xf86?,gpm?,buttons?,wheels?)>
-    <!ELEMENT xf86 (#PCDATA)>
-    <!ELEMENT gpm (#PCDATA)>
-    <!ELEMENT buttons (#PCDATA)>
-    <!ELEMENT wheels (#PCDATA)>
-
-  <!ELEMENT xfree (version,server?,has3d?,extension*,option*,bpp*,dacspeed?,script?,xf86conf*)>
-    <!ELEMENT version (#PCDATA)>
-    <!ELEMENT server (#PCDATA)>
-    <!ELEMENT has3d EMPTY>
-    <!ELEMENT extension (#PCDATA)>
-    <!ELEMENT option (#PCDATA)>
-    <!ELEMENT bpp (#PCDATA)>
-    <!ELEMENT dacspeed (#PCDATA)>
-    <!ELEMENT script (#PCDATA)>
-    <!ELEMENT xf86conf (#PCDATA)>
-EOF
-;
-
-  return $dtd;
-}
-
-
-sub hd_dtd_internal
-{
-  my $dtd = <<'EOF'
-<!DOCTYPE hwdata [
-  <!ELEMENT hwdata (item*)>
-  <!ELEMENT item (key+,(bus|baseclass|subclass|progif|vendor|device|subvendor|subdevice|revision|serial|driver|requires)*)>
-    <!ELEMENT key (bus|baseclass|subclass|progif|vendor|device|subvendor|subdevice|revision|serial|driver|requires)+>
-      <!ELEMENT bus (id|idrange|idmask|name)>
-      <!ELEMENT baseclass (id|idrange|idmask|name)>
-      <!ELEMENT subclass (id|idrange|idmask|name)>
-      <!ELEMENT progif (id|idrange|idmask|name)>
-      <!ELEMENT vendor (id|idrange|idmask|name)>
-      <!ELEMENT device (id|idrange|idmask|name)>
-      <!ELEMENT subvendor (id|idrange|idmask|name)>
-      <!ELEMENT subdevice (id|idrange|idmask|name)>
-      <!ELEMENT revision (id|idrange|idmask|name)>
-      <!ELEMENT serial (#PCDATA)>
-      <!ELEMENT requires (#PCDATA)>
-      <!ELEMENT id (#PCDATA)>
-      <!ELEMENT idrange (first,last)>
-        <!ELEMENT first (#PCDATA)>
-        <!ELEMENT last (#PCDATA)>
-      <!ELEMENT idmask (value,mask)>
-        <!ELEMENT value (#PCDATA)>
-        <!ELEMENT mask (#PCDATA)>
-      <!ATTLIST id type (none|pci|eisa|usb|pcmcia|special) "none">
-      <!ATTLIST idrange type (none|pci|eisa|usb|special) "none">
-      <!ATTLIST idmask type (none|pci|eisa|usb|special) "none">
-    <!ELEMENT name (#PCDATA)>
-    <!ELEMENT driver (any|display|module|mouse|xfree)?>
-      <!ELEMENT any (#PCDATA)>
-      <!ELEMENT display (resolution?,vsync?,hsync?,bandwidth?)>
-        <!ELEMENT resolution (width,height)>
-          <!ELEMENT width (#PCDATA)>
-          <!ELEMENT height (#PCDATA)>
-        <!ELEMENT vsync (min,max)>
-        <!ELEMENT hsync (min,max)>
-          <!ELEMENT min (#PCDATA)>
-          <!ELEMENT max (#PCDATA)>
-        <!ELEMENT bandwidth (#PCDATA)>
-      <!ELEMENT module (insmod+|(modprobe+,modconf*))>
-        <!ELEMENT insmod (#PCDATA)>
-        <!ELEMENT modprobe (#PCDATA)>
-        <!ELEMENT modconf (#PCDATA)>
-      <!ELEMENT mouse (xf86?,gpm?,buttons?,wheels?)>
-        <!ELEMENT xf86 (#PCDATA)>
-        <!ELEMENT gpm (#PCDATA)>
-        <!ELEMENT buttons (#PCDATA)>
-        <!ELEMENT wheels (#PCDATA)>
-      <!ELEMENT xfree (version,server?,has3d?,extension*,option*,bpp*,dacspeed?,script?,xf86conf*)>
-        <!ELEMENT version (#PCDATA)>
-        <!ELEMENT server (#PCDATA)>
-        <!ELEMENT has3d EMPTY>
-        <!ELEMENT extension (#PCDATA)>
-        <!ELEMENT option (#PCDATA)>
-        <!ELEMENT bpp (#PCDATA)>
-        <!ELEMENT dacspeed (#PCDATA)>
-        <!ELEMENT script (#PCDATA)>
-        <!ELEMENT xf86conf (#PCDATA)>
-]> 
-EOF
-;
-
-  return $dtd;
-}
-
diff --git a/src/hwinfo/src/ids/get_adaptec b/src/hwinfo/src/ids/get_adaptec
deleted file mode 100755 (executable)
index 3de5336..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-#! /usr/bin/perl
-
-#
-# read gcc -E {aic79xx_pci.c,aic7xxx_pci.c} and extract module info
-#
-
-sub add_range;
-sub add_entry;
-
-while(<>) {
-  if(/^struct.*ah[cd]_pci_ident_table\s*\[\s*\]\s*=\s*$/ .. /^\}/) {
-    if(/^struct.*ah([cd])_pci_ident_table\s*\[\s*\]\s*=\s*$/) {
-      $mod = $1 eq "c" ? "aic7xxx" : "aic79xx";
-    }
-
-    if(/^\s+\{/ .. /^\s+\}/) {
-      if(/^\s+\}/) {
-        if($field && $field != 4) {
-          die "oops, unexpected line $.: $_";
-        }
-        if($field) {
-          # print "id = $id, id_mask = $id_mask, mask = $mask, name = $name, func = $func\n";
-          add_entry;
-        }
-
-        undef $field;
-        undef $id;
-        undef $id_mask;
-        undef $mask;
-        undef $name;
-        undef $func;
-      }
-
-      if($field == 0 && /^\s+0x([0-9A-Fa-f]{16})ull\s*,\s*$/) {
-        $id = $1;
-        $field++;
-      }
-      elsif($field == 0 && /^\s+0x([0-9A-Fa-f]{16})ull\s*\&\s*0x([0-9A-Fa-f]{16})ull\s*,\s*$/) {
-        $id = $1;
-        $id_mask = $2;
-        $field++;
-      }
-      elsif($field == 1 && /^\s+0x([0-9A-Fa-f]{16})ull\s*,\s*$/) {
-        $mask = $1;
-        $field++;
-      }
-      elsif($field == 2 && /^\s+((NULL|\(\(void\s*\*\)\s*0\))|(\".+\"))\s*,\s*$/) {
-        $name = $1;
-        $field++;
-      }
-      elsif($field == 3 && /^\s+((NULL|\(\(void\s*\*\)\s*0\))|([a-z].+))\s*,?\s*$/) {
-        $func = $1;
-        $field++;
-      }
-    }
-
-  }
-}
-
-sub add_range
-{
-  my ($r);
-
-  $r = 0xffff - $_[0];
-
-  return unless $r;
-
-  if($r != 15) {
-    printf " & 0x%04x", $r;
-  }
-  else {
-    printf " + 0x0010";
-  }
-}
-
-
-sub add_entry
-{
-  local $_;
-  my ($v, $d, $sv, $sd);
-  my ($vm, $dm, $svm, $sdm);
-  my ($tag);
-
-  $id_mask = "F" x 16 unless defined $id_mask;
-
-  $d  = hex(substr $id,  0, 4) & hex(substr $id_mask,  0, 4);
-  $v  = hex(substr $id,  4, 4) & hex(substr $id_mask,  4, 4);
-  $sd = hex(substr $id,  8, 4) & hex(substr $id_mask,  8, 4);
-  $sv = hex(substr $id, 12, 4) & hex(substr $id_mask, 12, 4);
-
-  $dm  = hex(substr $mask,  0, 4);
-  $vm  = hex(substr $mask,  4, 4);
-  $sdm = hex(substr $mask,  8, 4);
-  $svm = hex(substr $mask, 12, 4);
-
-  $name =~ s/^"|"$//g;
-
-  if($func !~ /^[a-z]/) {
-    print STDERR "entry \"$name\" dropped\n";
-    return;
-  }
-
-  print "\n# $name\n";
-
-  $tag = " ";
-
-  if($vm) {
-    printf "${tag}vendor.id\t\tpci 0x%04x", $v;
-    add_range $vm;
-    print "\n";
-
-    $tag = "&";
-  }
-
-  if($dm) {
-    printf "${tag}device.id\t\tpci 0x%04x", $d;
-    add_range $dm;
-    print "\n";
-
-    $tag = "&";
-  }
-
-  if($svm) {
-    printf "${tag}subvendor.id\t\tpci 0x%04x", $sv;
-    add_range $svm;
-    print "\n";
-
-    $tag = "&";
-  }
-
-  if($sdm) {
-    printf "${tag}subdevice.id\t\tpci 0x%04x", $sd;
-    add_range $sdm;
-    print "\n";
-
-    $tag = "&";
-  }
-
-  printf "+driver.module.modprobe\t%s\n", $mod;
-
-}
-
diff --git a/src/hwinfo/src/ids/get_pcmcia b/src/hwinfo/src/ids/get_pcmcia
deleted file mode 100755 (executable)
index 27a09bd..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#! /usr/bin/perl
-
-#
-# read /etc/pcmcia/config file
-#
-
-while(<>) {
-  if(/^\s*card\s+"(.*)"\s*$/) {
-    push @cards, $card;
-    undef $card;
-    $card->{name} = $1;
-    next;
-  }
-
-  if(/^\s*bind\s+"(\S+)"\s*$/) {
-    push @{$card->{modules}}, $1;
-    next;
-  }
-
-  if(/^\s*bind\s+"(\S+)"\s*to\s*\d,\s*"(\S+)"\s*to\s*\d\s*$/) {
-    push @{$card->{modules}}, $1;
-    push @{$card->{modules}}, $2;
-    next;
-  }
-
-  if(/^\s*manfid\s+(0x\S+),\s*(0x\S+)\s*$/) {
-    $card->{vendor} = sprintf("0x%04x", hex $1);
-    $card->{device} = sprintf("0x%04x", hex $2);
-    next;
-  }
-
-}
-
-for (@cards) {
-  next unless $_->{modules};
-  next unless $_->{name} =~ /ethernet/i;
-  for $mods (@{$_->{modules}}) {
-    $eth{$mods} = 1;
-  }
-}
-
-
-for (@cards) {
-  next unless $_->{vendor};
-  next unless $_->{modules};
-  print "# $_->{name}\n";
-  print " vendor.id\t\tpcmcia $_->{vendor}\n";
-  print "&device.id\t\tpcmcia $_->{device}\n";
-  if($_->{modules}) {
-    $eth = 1;
-    for $mods (@{$_->{modules}}) {
-      $eth = 0 unless $eth{$mods};
-      print "+driver.module.modprobe\t$mods\n";
-    }
-    if($eth) {
-      print "+baseclass.id\t\t0x002\n";
-      print "+subclass.id\t\t0x00\n";
-    }
-  }
-  print "\n";
-}
-
diff --git a/src/hwinfo/src/ids/hd_ids.c b/src/hwinfo/src/ids/hd_ids.c
deleted file mode 100644 (file)
index 345d5d6..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <stdio.h>
-#include "hd.h"
-
-#ifndef LIBHD_TINY
-#include "hd_ids.h"
-#else
-#include "hd_ids_tiny.h"
-#endif
diff --git a/src/hwinfo/src/ids/src/braille b/src/hwinfo/src/ids/src/braille
deleted file mode 100644 (file)
index 451b784..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-# braille displays
-
- vendor.id             special 0x5001
-+vendor.name           Alva
-
- vendor.id             special 0x5001
-&device.id             special 0x0000
-+device.name           abt320
-+driver.any            abt320
-
- vendor.id             special 0x5001
-&device.id             special 0x0001
-+device.name           abt340
-+driver.any            abt340
-
- vendor.id             special 0x5001
-&device.id             special 0x0002
-+device.name           abt34d
-+driver.any            abt34d
-
- vendor.id             special 0x5001
-&device.id             special 0x0003
-+device.name           abt380
-+driver.any            abt380
-
- vendor.id             special 0x5001
-&device.id             special 0x0004
-+device.name           abt38d
-+driver.any            abt38d
-
- vendor.id             special 0x5001
-&device.id             special 0x000b
-+device.name           del440
-+driver.any            del440
-
- vendor.id             special 0x5001
-&device.id             special 0x000d
-+device.name           del480
-+driver.any            del480
-
- vendor.id             special 0x5001
-&device.id             special 0x000e
-+device.name           sat540
-+driver.any            sat540
-
- vendor.id             special 0x5002
-+vendor.name           Papenmeier
-
- vendor.id             special 0x5002
-&device.id             special 0x0001
-+device.name           2dlite
-+driver.any            2dlite
-
- vendor.id             special 0x5002
-&device.id             special 0x0002
-+device.name           tiny
-+driver.any            tiny
-
- vendor.id             special 0x5002
-&device.id             special 0x0003
-+device.name           2d
-+driver.any            2d
-
- vendor.id             special 0x5002
-&device.id             special 0x0040
-+device.name           el40
-+driver.any            el40
-
- vendor.id             special 0x5002
-&device.id             special 0x0041
-+device.name           el66
-+driver.any            el66
-
- vendor.id             special 0x5002
-&device.id             special 0x0042
-+device.name           el80
-+driver.any            el80
-
- vendor.id             special 0x5002
-&device.id             special 0x0043
-+device.name           el2d
-+driver.any            el2d
-
- vendor.id             special 0x5002
-&device.id             special 0x0044
-+device.name           el40p
-+driver.any            el40p
-
- vendor.id             special 0x5003
-+vendor.name           Handy Tech
-
- vendor.id             special 0x5003
-&device.id             special 0x0005
-|vendor.id             special 0x5003
-&device.id             special 0x0009
-+device.name           brlwave
-+driver.any            brlwave
-
- vendor.id             special 0x5003
-&device.id             special 0x0044
-+device.name           vario40-ht
-+driver.any            vario40-ht
-
- vendor.id             special 0x5003
-&device.id             special 0x0074
-+device.name           brlstar40
-+driver.any            brlstar40
-
- vendor.id             special 0x5003
-&device.id             special 0x0080
-+device.name           ht20
-+driver.any            ht20
-
- vendor.id             special 0x5003
-&device.id             special 0x0084
-+device.name           vario80-ht
-+driver.any            vario80-ht
-
- vendor.id             special 0x5003
-&device.id             special 0x0088
-+device.name           ht80
-+driver.any            ht80
-
- vendor.id             special 0x5003
-&device.id             special 0x0089
-+device.name           ht40
-+driver.any            ht40
-
- vendor.id             special 0x5004
-+vendor.name           Baum
-
- vendor.id             special 0x5004
-&device.id             special 0x0001
-+device.name           Vario40
-+driver.any            vario40
-
- vendor.id             special 0x5004
-&device.id             special 0x0002
-+device.name           Vario80
-+driver.any            vario80
-
diff --git a/src/hwinfo/src/ids/src/bus b/src/hwinfo/src/ids/src/bus
deleted file mode 100644 (file)
index 06b63bc..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-# bus types
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# 0x00 - 0x7f are PCI types
-
- bus.id                        0x00
-+bus.name              None
-
- bus.id                        0x01
-+bus.name              ISA
-
- bus.id                        0x02
-+bus.name              EISA
-
- bus.id                        0x03
-+bus.name              MC
-
- bus.id                        0x04
-+bus.name              PCI
-
- bus.id                        0x05
-+bus.name              PCMCIA
-
- bus.id                        0x06
-+bus.name              NuBUS
-
- bus.id                        0x07
-+bus.name              CardBus
-
- bus.id                        0x08
-+bus.name              Unknown
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# >0x80 are our own bus/interface types
-
- bus.id                        0x80
-+bus.name              PS/2
-
- bus.id                        0x81
-+bus.name              Serial
-
- bus.id                        0x82
-+bus.name              Parallel
-
- bus.id                        0x83
-+bus.name              Floppy
-
- bus.id                        0x84
-+bus.name              SCSI
-
- bus.id                        0x85
-+bus.name              IDE
-
- bus.id                        0x86
-+bus.name              USB
-
- bus.id                        0x87
-+bus.name              ADB
-
- bus.id                        0x88
-+bus.name              RAID
-
- bus.id                        0x89
-+bus.name              SBUS
-
- bus.id                        0x8a
-+bus.name              I2O
-
- bus.id                        0x8b
-+bus.name              Virtual IO
-
- bus.id                        0x8c
-+bus.name              CCW
-
- bus.id                        0x8d
-+bus.name              IUCV
diff --git a/src/hwinfo/src/ids/src/camera b/src/hwinfo/src/ids/src/camera
deleted file mode 100644 (file)
index 17b48e5..0000000
+++ /dev/null
@@ -1,846 +0,0 @@
-# digital cameras
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# digital (usb) still cams
-
- vendor.id             usb 0x03f0
-+vendor.name           HP
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x4102
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PhotoSmart 618
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x4202
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PhotoSmart 812
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x4302
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PhotoSmart 850
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x4402
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PhotoSmart 935
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x6302
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PhotoSmart 318
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x6402
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PhotoSmart 715
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x6502
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PhotoSmart 120
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x6602
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PhotoSmart 320
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x6702
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PhotoSmart 720
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x6802
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PhotoSmart 620
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x6a02
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PhotoSmart 735
-
- vendor.id             usb 0x040a
-+vendor.name           Kodak
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0100
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           DC220
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0110
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           DC260
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0111
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           DC265
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0112
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           DC290
-
- vendor.id             usb 0x041e
-+vendor.name           Creative
-
- vendor.id             usb 0x041e
-&device.id             usb 0x400a
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PC-CAM 300
-
- vendor.id             usb 0x041e
-&device.id             usb 0x400b
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PC-CAM 600
-
- vendor.id             usb 0x04a5
-+vendor.name           Benq
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x3003
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           DC1300
-
- vendor.id             usb 0x04a9
-+vendor.name           Canon
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3041
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot S10
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3043
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot S20
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3044
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           EOS D30
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3045
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot S100
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3046
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           IXY DIGITAL
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3047
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Digital IXUS
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3048
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot G1
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3049
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot Pro90 IS
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x304b
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           IXY DIGITAL 300
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x304c
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot S300
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x304d
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Digital IXUS 300
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x304e
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot A20
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x304f
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot A10
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3051
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot S110
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3052
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           DIGITAL IXUS V
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3055
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot G2
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3056
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot S40
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3057
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot S30
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3058
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot A40
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3059
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot A30
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3060
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           EOS D60
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3061
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot A100
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3062
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot A200
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3065
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           IXUS v2
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3066
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           IXUS 330
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x306a
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot S45
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x306b
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Optura 200 MC
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x306c
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot S45
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x306d
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot S45
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x306e
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot G3
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x306f
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot G3
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3070
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           IXUS v3
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3071
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           IXUS v3
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3072
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           IXUS II
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3073
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot A70
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3074
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot A60
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3075
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           IXUS 400
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3076
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot A300
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3077
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot S50
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3078
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           ZR70MC
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x307b
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           MV630i
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x307f
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Optura 20
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3081
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Optura 10
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3083
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           EOS 10D
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3084
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           EOS 300D
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3085
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot G5
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3099
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           EOS 300D
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x309a
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PowerShot A80
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x309b
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           IXUS i
-
- vendor.id             usb 0x04b0
-+vendor.name           Nikon
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0102
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 990
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0103
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 880
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0104
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 995
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0109
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 2500
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x010b
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 4500
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x010d
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 5700
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x010f
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 4300
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0111
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 3500
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0112
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 885
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0113
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 5000
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0115
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 3100
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0117
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 2100
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0119
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 5400
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0202
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix SQ
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0302
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Coolpix 2000
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0402
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           DSC D100
-
-
- vendor.id             usb 0x04b8
-+vendor.name           Epson
-
- vendor.id             usb 0x04fc
-+vendor.name           Sunplus
-
- vendor.id             usb 0x04fc
-&device.id             usb 0x504a
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           SPCA 504a camera
-
- vendor.id             usb 0x04fc
-&device.id             usb 0x504b
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           SPCA 504b camera
-
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0403
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PhotoPC 3000z
-
- vendor.id             usb 0x0553
-+vendor.name           STM
-
- vendor.id             usb 0x0553
-&device.id             usb 0x0202
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           STV680 based camera
-
- vendor.id             usb 0x054c
-+vendor.name           Sony
-
- vendor.id             usb 0x054c
-&device.id             usb 0x004e
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Digital Camera
-
- vendor.id             usb 0x055f
-+vendor.name           Mustek
-
- vendor.id             usb 0x055f
-&device.id             usb 0xa350
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           gSmart 350
-
- vendor.id             usb 0x055f
-&device.id             usb 0xc200
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           gSmart 300
-
- vendor.id             usb 0x055f
-&device.id             usb 0xc220
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           gSmart mini
-
- vendor.id             usb 0x055f
-&device.id             usb 0xc420
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           gSmart mini 2
-
- vendor.id             usb 0x055f
-&device.id             usb 0xc520
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           gSmart mini 3
-
- vendor.id             usb 0x06bd
-+vendor.name           Agfa
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x0403
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           CL18
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x0404
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           CL20
-
- vendor.id             usb 0x0797
-+vendor.name           Grandtech
-
- vendor.id             usb 0x0797
-&device.id             usb 0x801a
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           891a
-
- vendor.id             usb 0x0797
-&device.id             usb 0x801c
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           891c
-
- vendor.id             usb 0x0797
-&device.id             usb 0x8901
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           SX-35
-
- vendor.id             usb 0x0797
-&device.id             usb 0x8909
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           SX-35
-
- vendor.id             usb 0x0797
-&device.id             usb 0x8911
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           SX-35
-
-
- vendor.id             usb 0x0784
-+vendor.name           Polaroid
-
- vendor.id             usb 0x0784
-&device.id             usb 0x0784
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           DC700
-
- vendor.id             usb 0x07b4
-+vendor.name           Olympus
-
- vendor.id             usb 0x07b4
-&device.id             usb 0x0100
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           C-2100UZ
-
- vendor.id             usb 0x07b4
-&device.id             usb 0x0105
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           C-2040Z
-
- vendor.id             usb 0x07b4
-&device.id             usb 0x0114
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           PTP Camera
-
-# vendor.id            usb 0x07cf
-#+vendor.name          Casio
-
-# vendor.id            usb 0x07cf
-#&device.id            usb 0x1001
-#+baseclass.id         0x10f
-#+subclass.id          0x02
-
- vendor.id             usb 0x084d
-+vendor.name           Minton
-
- vendor.id             usb 0x084d
-&device.id             usb 0x0003
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           S-Cam F5
-
-
- vendor.id             usb 0x084e
-+vendor.name           KBGear
-
- vendor.id             usb 0x084e
-&device.id             usb 0x0001
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           JamCam v3
-
- vendor.id             usb 0x0919
-+vendor.name           Tiger
-
- vendor.id             usb 0x0919
-&device.id             usb 0x0100
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Fast Flicks
-
- vendor.id             usb 0x0d64
-+vendor.name           DXG
-
- vendor.id             usb 0x0d94
-&device.id             usb 0x1021
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           D-Link DSC 350F
-
- vendor.id             usb 0x0d94
-&device.id             usb 0x1001
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           SiPix Stylecam
-
- vendor.id             usb 0x0d96
-+vendor.name           Traveller
-
- vendor.id             usb 0x0d96
-&device.id             usb 0x3300
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           SX 330z
-
- vendor.id             usb 0x0d96
-&device.id             usb 0x4100
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           SX 410z
-
- vendor.id             usb 0x0d96
-&device.id             usb 0x4102
-+baseclass.id          0x10f
-+subclass.id           0x01
-+vendor.name           Medion
-+device.name           MD 9700
-
- vendor.id             usb 0x0d96
-&device.id             usb 0x0000
-+baseclass.id          0x10f
-+subclass.id           0x01
-+vendor.name           Jenoptik
-+device.name           JD350v
-
- vendor.id             usb 0x2770
-+vendor.name           NHJ
-
- vendor.id             usb 0x2770
-&device.id             usb 0x9120
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           9120 based camera
-
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# webcams
-
- vendor.id             usb 0x05a9
-+vendor.name           OmniVision
-
- vendor.id             usb 0x05a9
-&device.id             usb 0x0511
-+baseclass.id          0x10f
-+subclass.id           0x00
-+device.name           OV511 WebCam
-
- vendor.id             usb 0x05a9
-&device.id             usb 0xa511
-+baseclass.id          0x10f
-+subclass.id           0x00
-+device.name           OV511+ WebCam
-
- vendor.id             usb 0x0813
-+vendor.name           Mattel
-
- vendor.id             usb 0x0813
-&device.id             usb 0x0002
-+baseclass.id          0x10f
-+subclass.id           0x00
-+device.name           OV511 based WebCam
-
- vendor.id             usb 0x06a5
-&device.id             usb 0x0000
-+baseclass.id          0x10f
-+subclass.id           0x00
-+device.name           Typhoon Webcam 100k
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# usbmap: ov511.o
- vendor.id             usb 0x05a9
-&device.id             usb 0x0511
-|vendor.id             usb 0x05a9
-&device.id             usb 0x0518
-|vendor.id             usb 0x05a9
-&device.id             usb 0xa511
-|vendor.id             usb 0x05a9
-&device.id             usb 0xa518
-|vendor.id             usb 0x0813
-&device.id             usb 0x0002
-+baseclass.id          0x10f
-+subclass.id           0x00
-
-# usbmap: pwc.o
- vendor.id             usb 0x041e
-&device.id             usb 0x400c
-|vendor.id             usb 0x041e
-&device.id             usb 0x4011
-|vendor.id             usb 0x046d
-&device.id             usb 0x08b0+0x0009
-|vendor.id             usb 0x0471
-&device.id             usb 0x0302+0x0003
-|vendor.id             usb 0x0471
-&device.id             usb 0x0307+0x0002
-|vendor.id             usb 0x0471
-&device.id             usb 0x030c
-|vendor.id             usb 0x0471
-&device.id             usb 0x0310+0x0004
-|vendor.id             usb 0x04cc
-&device.id             usb 0x8116
-|vendor.id             usb 0x055d
-&device.id             usb 0x9000+0x0002
-|vendor.id             usb 0x069a
-&device.id             usb 0x0001
-|vendor.id             usb 0x0d81
-&device.id             usb 0x1900
-|vendor.id             usb 0x0d81
-&device.id             usb 0x1910
-+baseclass.id          0x10f
-+subclass.id           0x00
-
diff --git a/src/hwinfo/src/ids/src/chipcard b/src/hwinfo/src/ids/src/chipcard
deleted file mode 100644 (file)
index 4e41455..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-# chipcard reader
-
-
- vendor.id             TWK
-+vendor.name           Towitoko
-
- vendor.id             TWK
-&device.id             eisa 0x5542
-+baseclass.id          0x10e
-+subclass.id           0x00
-+device.name           Smartcard reader
-+requires              pcsc-towitoko
-
- vendor.id             usb 0x0c4b
-&device.id             usb 0x0100
-+baseclass.id          0x10e
-+subclass.id           0x00
-+device.name           Cyberjack USB
-+driver.module.modprobe        cyberjack
-+requires              ctapi-cyberjack
-
diff --git a/src/hwinfo/src/ids/src/class b/src/hwinfo/src/ids/src/class
deleted file mode 100644 (file)
index 8ac04f4..0000000
+++ /dev/null
@@ -1,960 +0,0 @@
-# device classes
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# PCI device classes and subclasses
-
- baseclass.id          0x000
-+baseclass.name                Unclassified device
-
- baseclass.id          0x000
-&subclass.id           0x00
-+subclass.name         Unclassified device
-
- baseclass.id          0x000
-&subclass.id           0x01
-+subclass.name         VGA compatible unclassified device
-
- baseclass.id          0x001
-+baseclass.name                Mass storage controller
-
- baseclass.id          0x001
-&subclass.id           0x00
-+subclass.name         SCSI storage controller
-
- baseclass.id          0x001
-&subclass.id           0x01
-+subclass.name         IDE interface
-
- baseclass.id          0x001
-&subclass.id           0x02
-+subclass.name         Floppy disk controller
-
- baseclass.id          0x001
-&subclass.id           0x03
-+subclass.name         IPI bus controller
-
- baseclass.id          0x001
-&subclass.id           0x04
-+subclass.name         RAID bus controller
-
- baseclass.id          0x001
-&subclass.id           0x80
-+subclass.name         Unknown mass storage controller
-
- baseclass.id          0x002
-+baseclass.name                Network controller
-
- baseclass.id          0x002
-&subclass.id           0x00
-+subclass.name         Ethernet controller
-
- baseclass.id          0x002
-&subclass.id           0x01
-+subclass.name         Token ring network controller
-
- baseclass.id          0x002
-&subclass.id           0x02
-+subclass.name         FDDI network controller
-
- baseclass.id          0x002
-&subclass.id           0x03
-+subclass.name         ATM network controller
-
- baseclass.id          0x002
-&subclass.id           0x04
-+subclass.name         ISDN controller
-
- baseclass.id          0x002
-&subclass.id           0x80
-+subclass.name         Network controller
-
- baseclass.id          0x002
-&subclass.id           0x81
-+subclass.name         Myrinet controller
-
- baseclass.id          0x002
-&subclass.id           0x82
-+subclass.name         WLAN controller
-
- baseclass.id          0x002
-&subclass.id           0x83
-+subclass.name         XPNET controller
-
- baseclass.id          0x002
-&subclass.id           0x86
-+subclass.name         OSA-Express controller
-
- baseclass.id          0x002
-&subclass.id           0x87
-+subclass.name         HiperSocket controller
-
- baseclass.id          0x002
-&subclass.id           0x88
-+subclass.name         CTC controller
-
- baseclass.id          0x002
-&subclass.id           0x89
-+subclass.name         OSA-2 controller
-
- baseclass.id          0x002
-&subclass.id           0x8e
-+subclass.name         FICON controller
-
- baseclass.id          0x002
-&subclass.id           0x8f
-+subclass.name         ESCON controller
-
- baseclass.id          0x002
-&subclass.id           0x90
-+subclass.name         IUCV connection
-
- baseclass.id          0x002
-&subclass.id           0x91
-+subclass.name         USB Host-to-Host link
-
- baseclass.id          0x003
-+baseclass.name                Display controller
-
- baseclass.id          0x003
-&subclass.id           0x00
-+subclass.name         VGA compatible controller
-
- baseclass.id          0x003
-&subclass.id           0x00
-&progif.id             0x00
-+progif.name           VGA
-
- baseclass.id          0x003
-&subclass.id           0x00
-&progif.id             0x01
-+progif.name           8514
-
- baseclass.id          0x003
-&subclass.id           0x01
-+subclass.name         XGA compatible controller
-
- baseclass.id          0x003
-&subclass.id           0x02
-+subclass.name         3D controller
-
- baseclass.id          0x003
-&subclass.id           0x80
-+subclass.name         Display controller
-
- baseclass.id          0x004
-+baseclass.name                Multimedia controller
-
- baseclass.id          0x004
-&subclass.id           0x00
-+subclass.name         Multimedia video controller
-
- baseclass.id          0x004
-&subclass.id           0x01
-+subclass.name         Multimedia audio controller
-
- baseclass.id          0x004
-&subclass.id           0x02
-+subclass.name         Computer telephony device
-
- baseclass.id          0x004
-&subclass.id           0x80
-+subclass.name         Multimedia controller
-
- baseclass.id          0x005
-+baseclass.name                Memory controller
-
- baseclass.id          0x005
-&subclass.id           0x00
-+subclass.name         RAM memory
-
- baseclass.id          0x005
-&subclass.id           0x01
-+subclass.name         FLASH memory
-
- baseclass.id          0x005
-&subclass.id           0x80
-+subclass.name         Memory controller
-
- baseclass.id          0x006
-+baseclass.name                Bridge
-
- baseclass.id          0x006
-&subclass.id           0x00
-+subclass.name         Host bridge
-
- baseclass.id          0x006
-&subclass.id           0x01
-+subclass.name         ISA bridge
-
- baseclass.id          0x006
-&subclass.id           0x02
-+subclass.name         EISA bridge
-
- baseclass.id          0x006
-&subclass.id           0x03
-+subclass.name         MicroChannel bridge
-
- baseclass.id          0x006
-&subclass.id           0x04
-+subclass.name         PCI bridge
-
- baseclass.id          0x006
-&subclass.id           0x04
-&progif.id             0x00
-+progif.name           Normal decode
-
- baseclass.id          0x006
-&subclass.id           0x04
-&progif.id             0x01
-+progif.name           Subtractive decode
-
- baseclass.id          0x006
-&subclass.id           0x05
-+subclass.name         PCMCIA bridge
-
- baseclass.id          0x006
-&subclass.id           0x06
-+subclass.name         NuBus bridge
-
- baseclass.id          0x006
-&subclass.id           0x07
-+subclass.name         CardBus bridge
-
- baseclass.id          0x006
-&subclass.id           0x08
-+subclass.name         RACEway bridge
-
- baseclass.id          0x006
-&subclass.id           0x08
-&progif.id             0x00
-+progif.name           Transparent mode
-
- baseclass.id          0x006
-&subclass.id           0x08
-&progif.id             0x01
-+progif.name           Endpoint mode
-
- baseclass.id          0x006
-&subclass.id           0x09
-+subclass.name         Semi-transparent PCI-to-PCI bridge
-
- baseclass.id          0x006
-&subclass.id           0x09
-&progif.id             0x40
-+progif.name           Primary bus towards host CPU
-
- baseclass.id          0x006
-&subclass.id           0x09
-&progif.id             0x80
-+progif.name           Secondary bus towards host CPU
-
- baseclass.id          0x006
-&subclass.id           0x0a
-+subclass.name         InfiniBand to PCI host bridge
-
- baseclass.id          0x006
-&subclass.id           0x80
-+subclass.name         Bridge
-
- baseclass.id          0x007
-+baseclass.name                Communication controller
-
- baseclass.id          0x007
-&subclass.id           0x00
-+subclass.name         Serial controller
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x00
-+progif.name           8250
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x01
-+progif.name           16450
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x02
-+progif.name           16550
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x03
-+progif.name           16650
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x04
-+progif.name           16750
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x05
-+progif.name           16850
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x06
-+progif.name           16950
-
- baseclass.id          0x007
-&subclass.id           0x01
-+subclass.name         Parallel controller
-
- baseclass.id          0x007
-&subclass.id           0x01
-&progif.id             0x00
-+progif.name           SPP
-
- baseclass.id          0x007
-&subclass.id           0x01
-&progif.id             0x01
-+progif.name           BiDir
-
- baseclass.id          0x007
-&subclass.id           0x01
-&progif.id             0x02
-+progif.name           ECP
-
- baseclass.id          0x007
-&subclass.id           0x01
-&progif.id             0x03
-+progif.name           IEEE1284
-
- baseclass.id          0x007
-&subclass.id           0x01
-&progif.id             0xfe
-+progif.name           IEEE1284 Target
-
- baseclass.id          0x007
-&subclass.id           0x02
-+subclass.name         Multiport serial controller
-
- baseclass.id          0x007
-&subclass.id           0x03
-+subclass.name         Modem
-
- baseclass.id          0x007
-&subclass.id           0x03
-&progif.id             0x01
-+progif.name           Hayes/16450
-
- baseclass.id          0x007
-&subclass.id           0x03
-&progif.id             0x02
-+progif.name           Hayes/16550
-
- baseclass.id          0x007
-&subclass.id           0x03
-&progif.id             0x03
-+progif.name           Hayes/16650
-
- baseclass.id          0x007
-&subclass.id           0x03
-&progif.id             0x04
-+progif.name           Hayes/16750
-
- baseclass.id          0x007
-&subclass.id           0x80
-+subclass.name         Communication controller
-
- baseclass.id          0x007+0x0002
-&subclass.id           0x03
-&progif.id             0x00
-+progif.name           Generic
-
- baseclass.id          0x008
-+baseclass.name                Generic system peripheral
-
- baseclass.id          0x008
-&subclass.id           0x00
-+subclass.name         PIC
-
- baseclass.id          0x008
-&subclass.id           0x00
-&progif.id             0x00
-+progif.name           8259
-
- baseclass.id          0x008
-&subclass.id           0x00
-&progif.id             0x01
-+progif.name           ISA PIC
-
- baseclass.id          0x008
-&subclass.id           0x00
-&progif.id             0x02
-+progif.name           EISA PIC
-
- baseclass.id          0x008
-&subclass.id           0x00
-&progif.id             0x10
-+progif.name           IO-APIC
-
- baseclass.id          0x008
-&subclass.id           0x00
-&progif.id             0x20
-+progif.name           IO(X)-APIC
-
- baseclass.id          0x008
-&subclass.id           0x01
-+subclass.name         DMA controller
-
- baseclass.id          0x008
-&subclass.id           0x01
-&progif.id             0x00
-+progif.name           8237
-
- baseclass.id          0x008
-&subclass.id           0x01
-&progif.id             0x01
-+progif.name           ISA DMA
-
- baseclass.id          0x008
-&subclass.id           0x01
-&progif.id             0x02
-+progif.name           EISA DMA
-
- baseclass.id          0x008
-&subclass.id           0x02
-+subclass.name         Timer
-
- baseclass.id          0x008
-&subclass.id           0x02
-&progif.id             0x00
-+progif.name           8254
-
- baseclass.id          0x008
-&subclass.id           0x02
-&progif.id             0x01
-+progif.name           ISA Timer
-
- baseclass.id          0x008
-&subclass.id           0x02
-&progif.id             0x02
-+progif.name           EISA Timers
-
- baseclass.id          0x008
-&subclass.id           0x03
-+subclass.name         RTC
-
- baseclass.id          0x008
-&subclass.id           0x03
-&progif.id             0x01
-+progif.name           ISA RTC
-
- baseclass.id          0x008
-&subclass.id           0x04
-+subclass.name         PCI Hot-plug controller
-
- baseclass.id          0x008
-&subclass.id           0x80
-+subclass.name         System peripheral
-
- baseclass.id          0x009
-+baseclass.name                Input device controller
-
- baseclass.id          0x009
-&subclass.id           0x00
-+subclass.name         Keyboard controller
-
- baseclass.id          0x009
-&subclass.id           0x01
-+subclass.name         Digitizer Pen
-
- baseclass.id          0x009
-&subclass.id           0x02
-+subclass.name         Mouse controller
-
- baseclass.id          0x009
-&subclass.id           0x03
-+subclass.name         Scanner controller
-
- baseclass.id          0x009
-&subclass.id           0x04
-+subclass.name         Gameport controller
-
- baseclass.id          0x009
-&subclass.id           0x04
-&progif.id             0x00
-+progif.name           Generic
-
- baseclass.id          0x009
-&subclass.id           0x04
-&progif.id             0x10
-+progif.name           Extended
-
- baseclass.id          0x009
-&subclass.id           0x80
-+subclass.name         Input device controller
-
- baseclass.id          0x00a
-+baseclass.name                Docking station
-
- baseclass.id          0x00a
-&subclass.id           0x00
-+subclass.name         Generic Docking Station
-
- baseclass.id          0x00a
-&subclass.id           0x80
-+subclass.name         Docking Station
-
- baseclass.id          0x00b
-+baseclass.name                Processor
-
- baseclass.id          0x00b
-&subclass.id           0x00
-+subclass.name         386
-
- baseclass.id          0x00b
-&subclass.id           0x01
-+subclass.name         486
-
- baseclass.id          0x00b
-&subclass.id           0x02
-+subclass.name         Pentium
-
- baseclass.id          0x00b
-&subclass.id           0x10
-+subclass.name         Alpha
-
- baseclass.id          0x00b
-&subclass.id           0x20
-+subclass.name         Power PC
-
- baseclass.id          0x00b
-&subclass.id           0x30
-+subclass.name         MIPS
-
- baseclass.id          0x00b
-&subclass.id           0x40
-+subclass.name         Co-processor
-
- baseclass.id          0x00c
-+baseclass.name                Serial bus controller
-
- baseclass.id          0x00c
-&subclass.id           0x00
-+subclass.name         FireWire (IEEE 1394)
-
- baseclass.id          0x00c
-&subclass.id           0x00
-&progif.id             0x00
-+progif.name           Generic
-
- baseclass.id          0x00c
-&subclass.id           0x00
-&progif.id             0x10
-+progif.name           OHCI
-
- baseclass.id          0x00c
-&subclass.id           0x01
-+subclass.name         ACCESS Bus
-
- baseclass.id          0x00c
-&subclass.id           0x02
-+subclass.name         SSA
-
- baseclass.id          0x00c
-&subclass.id           0x03
-+subclass.name         USB Controller
-
- baseclass.id          0x00c
-&subclass.id           0x03
-&progif.id             0x00
-+progif.name           UHCI
-
- baseclass.id          0x00c
-&subclass.id           0x03
-&progif.id             0x10
-+progif.name           OHCI
-
- baseclass.id          0x00c
-&subclass.id           0x03
-&progif.id             0x20
-+progif.name           EHCI
-
- baseclass.id          0x00c
-&subclass.id           0x03
-&progif.id             0x80
-+progif.name           Unspecified
-
- baseclass.id          0x00c
-&subclass.id           0x03
-&progif.id             0xfe
-+progif.name           USB Device
-
- baseclass.id          0x00c
-&subclass.id           0x04
-+subclass.name         Fibre Channel
-
- baseclass.id          0x00c
-&subclass.id           0x05
-+subclass.name         SMBus
-
- baseclass.id          0x00c
-&subclass.id           0x06
-+subclass.name         InfiniBand
-
- baseclass.id          0x00d
-+baseclass.name                Wireless controller
-
- baseclass.id          0x00d
-&subclass.id           0x00
-+subclass.name         IRDA controller
-
- baseclass.id          0x00d
-&subclass.id           0x01
-+subclass.name         Consumer IR controller
-
- baseclass.id          0x00d
-&subclass.id           0x10
-+subclass.name         RF controller
-
- baseclass.id          0x00d
-&subclass.id           0x80
-+subclass.name         Wireless controller
-
- baseclass.id          0x00e
-+baseclass.name                Intelligent controller
-
- baseclass.id          0x00e
-&subclass.id           0x00
-+subclass.name         I2O
-
- baseclass.id          0x00f
-+baseclass.name                Satellite communications controller
-
- baseclass.id          0x00f
-&subclass.id           0x00
-+subclass.name         Satellite TV controller
-
- baseclass.id          0x00f
-&subclass.id           0x01
-+subclass.name         Satellite audio communication controller
-
- baseclass.id          0x00f
-&subclass.id           0x03
-+subclass.name         Satellite voice communication controller
-
- baseclass.id          0x00f
-&subclass.id           0x04
-+subclass.name         Satellite data communication controller
-
- baseclass.id          0x010
-+baseclass.name                Encryption controller
-
- baseclass.id          0x010
-&subclass.id           0x00
-+subclass.name         Network and computing encryption device
-
- baseclass.id          0x010
-&subclass.id           0x10
-+subclass.name         Entertainment encryption device
-
- baseclass.id          0x010
-&subclass.id           0x80
-+subclass.name         Encryption controller
-
- baseclass.id          0x011
-+baseclass.name                Signal processing controller
-
- baseclass.id          0x011
-&subclass.id           0x00
-+subclass.name         DPIO module
-
- baseclass.id          0x011
-&subclass.id           0x01
-+subclass.name         Performance counters
-
- baseclass.id          0x011
-&subclass.id           0x10
-+subclass.name         Communication synchronizer
-
- baseclass.id          0x011
-&subclass.id           0x80
-+subclass.name         Signal processing controller
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# our own class definitions
-
- baseclass.id          0x0ff
-+baseclass.name                Unclassified device
-
- baseclass.id          0x100
-+baseclass.name                Monitor
-
- baseclass.id          0x100
-&subclass.id           0x01
-+subclass.name         CRT Monitor
-
- baseclass.id          0x100
-&subclass.id           0x02
-+subclass.name         LCD Monitor
-
- baseclass.id          0x101
-+baseclass.name                Internally Used Class
-
- baseclass.id          0x101
-&subclass.id           0x01
-+subclass.name         ISA PnP Interface
-
- baseclass.id          0x101
-&subclass.id           0x02
-+subclass.name         Main Memory
-
- baseclass.id          0x101
-&subclass.id           0x03
-+subclass.name         CPU
-
- baseclass.id          0x101
-&subclass.id           0x04
-+subclass.name         FPU
-
- baseclass.id          0x101
-&subclass.id           0x05
-+subclass.name         BIOS
-
- baseclass.id          0x101
-&subclass.id           0x06
-+subclass.name         PROM
-
- baseclass.id          0x101
-&subclass.id           0x07
-+subclass.name         System
-
- baseclass.id          0x102
-+baseclass.name                Modem
-
- baseclass.id          0x102
-&subclass.id           0x00
-+subclass.name         Modem
-
- baseclass.id          0x102
-&subclass.id           0x01+4
-+subclass.name         LinModem
-
- baseclass.id          0x103
-+baseclass.name                ISDN Adapter
-
- baseclass.id          0x104
-+baseclass.name                PS/2 Controller
-
- baseclass.id          0x105
-+baseclass.name                Mouse
-
- baseclass.id          0x105
-&subclass.id           0x00
-+subclass.name         PS/2 Mouse
-
- baseclass.id          0x105
-&subclass.id           0x01
-+subclass.name         Serial Mouse
-
- baseclass.id          0x105
-&subclass.id           0x02
-+subclass.name         Bus Mouse
-
- baseclass.id          0x105
-&subclass.id           0x03
-+subclass.name         USB Mouse
-
- baseclass.id          0x105
-&subclass.id           0x80
-+subclass.name         Mouse
-
- baseclass.id          0x106
-+baseclass.name                Mass Storage Device
-
- baseclass.id          0x106
-&subclass.id           0x00
-+subclass.name         Disk
-
- baseclass.id          0x106
-&subclass.id           0x01
-+subclass.name         Tape
-
- baseclass.id          0x106
-&subclass.id           0x02
-+subclass.name         CD-ROM
-
- baseclass.id          0x106
-&subclass.id           0x02
-&progif.id             0x01
-+progif.name           CD-R
-
- baseclass.id          0x106
-&subclass.id           0x02
-&progif.id             0x02
-+progif.name           CD-RW
-
- baseclass.id          0x106
-&subclass.id           0x02
-&progif.id             0x03
-+progif.name           DVD
-
- baseclass.id          0x106
-&subclass.id           0x02
-&progif.id             0x04
-+progif.name           DVD-R
-
- baseclass.id          0x106
-&subclass.id           0x02
-&progif.id             0x05
-+progif.name           DVD-RAM
-
- baseclass.id          0x106
-&subclass.id           0x03
-+subclass.name         Floppy Disk
-
- baseclass.id          0x106
-&subclass.id           0x80
-+subclass.name         Storage Device
-
- baseclass.id          0x107
-+baseclass.name                Network Interface
-
- baseclass.id          0x107
-&subclass.id           0x00
-+subclass.name         Loopback
-
- baseclass.id          0x107
-&subclass.id           0x01
-+subclass.name         Ethernet
-
- baseclass.id          0x107
-&subclass.id           0x02
-+subclass.name         Tokenring
-
- baseclass.id          0x107
-&subclass.id           0x03
-+subclass.name         FDDI
-
- baseclass.id          0x107
-&subclass.id           0x04
-+subclass.name         CTC
-
- baseclass.id          0x107
-&subclass.id           0x05
-+subclass.name         IUCV
-
- baseclass.id          0x107
-&subclass.id           0x06
-+subclass.name         HSI
-
- baseclass.id          0x107
-&subclass.id           0x07
-+subclass.name         QETH
-
- baseclass.id          0x107
-&subclass.id           0x08
-+subclass.name         ESCON
-
- baseclass.id          0x107
-&subclass.id           0x09
-+subclass.name         Myrinet
-
- baseclass.id          0x107
-&subclass.id           0x0a
-+subclass.name         WLAN
-
- baseclass.id          0x107
-&subclass.id           0x0b
-+subclass.name         XPNET
-
- baseclass.id          0x107
-&subclass.id           0x0c
-+subclass.name         USB-Link
-
- baseclass.id          0x107
-&subclass.id           0x80
-+subclass.name         Network Interface
-
- baseclass.id          0x108
-+baseclass.name                Keyboard
-
- baseclass.id          0x108
-&subclass.id           0x00
-+subclass.name         Keyboard
-
- baseclass.id          0x108
-&subclass.id           0x01
-+subclass.name         Console
-
- baseclass.id          0x109
-+baseclass.name                Printer
-
- baseclass.id          0x10a
-+baseclass.name                Hub
-
- baseclass.id          0x10a
-&subclass.id           0x01
-+subclass.name         USB Hub
-
- baseclass.id          0x10b
-+baseclass.name                Braille Display
-
- baseclass.id          0x10c
-+baseclass.name                Scanner
-
- baseclass.id          0x10c
-&subclass.id           0x01
-+subclass.name         HP OfficeJet Scanner
-
- baseclass.id          0x10d
-+baseclass.name                Joystick
-
- baseclass.id          0x10d
-&subclass.id           0x01
-+subclass.name         Gamepad
-
- baseclass.id          0x10e
-+baseclass.name                Chipcard Reader
-
- baseclass.id          0x10f
-+baseclass.name                Camera
-
- baseclass.id          0x10f
-&subclass.id           0x01
-+subclass.name         WebCam
-
- baseclass.id          0x10f
-&subclass.id           0x02
-+subclass.name         Digital Camera
-
- baseclass.id          0x110
-+baseclass.name                Framebuffer
-
- baseclass.id          0x110
-&subclass.id           0x01
-+subclass.name         VESA Framebuffer
-
- baseclass.id          0x111
-+baseclass.name                DVB Card
-
- baseclass.id          0x111
-&subclass.id           0x01
-+subclass.name         DVB-C Card
-
- baseclass.id          0x111
-&subclass.id           0x02
-+subclass.name         DVB-S Card
-
- baseclass.id          0x111
-&subclass.id           0x03
-+subclass.name         DVB-T Card
-
- baseclass.id          0x112
-+baseclass.name                TV Card
-
- baseclass.id          0x113
-+baseclass.name                Partition
-
- baseclass.id          0x114
-+baseclass.name                DSL Card
-
- baseclass.id          0x115
-+baseclass.name                Bluetooth Device
-
diff --git a/src/hwinfo/src/ids/src/dvb b/src/hwinfo/src/ids/src/dvb
deleted file mode 100644 (file)
index 7a40f03..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-# dvb cards
-
- vendor.id             pci 0x13d0
-&device.id             pci 0x2103
-|vendor.id             pci 0x13d0
-&device.id             pci 0x2200
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        skystar2
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-+driver.module.modprobe        bt878
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x0071
-&subdevice.id          pci 0x0101
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        bt878
-+subdevice.name                "Nebula Electronics DigiTV"
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x1461
-&subdevice.id          pci 0x0761
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        bt878
-+subdevice.name                "AverMedia AverTV DVB-T"
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x0026
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        bt878
-+subdevice.name                "Pinnacle PCTV SAT CI"
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x1822
-&subdevice.id          pci 0x0001
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        bt878
-+subdevice.name                "Twinhan VisionPlus DVB-T"
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0xfc00
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        bt878
-+subdevice.name                "ChainTech digitop DST-1000 DVB-S"
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x1461
-&subdevice.id          pci 0x0771
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        bt878
-+subdevice.name                "AVermedia DVB-T 771"
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x18ac
-&subdevice.id          pci 0xdb10
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        bt878
-+subdevice.name                "DVICO FusionHDTV DVB-T Lite"
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x001c
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        bt878
-+subdevice.name                "Pinnacle PCTV Sat"
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x00a1
-&subdevice.id          pci 0x00a1
-|vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x00a1
-&subdevice.id          pci 0xa1a0
-|vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x110a
-&subdevice.id          pci 0x0000
-|vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x110a
-&subdevice.id          pci 0xffff
-|vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x0000+0x0005
-|vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x0006
-|vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x0008
-|vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x000a
-|vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x1002
-|vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x1102
-|vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0xffc2
-&subdevice.id          pci 0x0000
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        dvb-ttpci
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x1131
-&subdevice.id          pci 0x4f56
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        budget-av
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x1003+0x0003
-|vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x1013
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        budget
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x100c
-|vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x100f
-|vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x1011
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        budget-ci
-
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x8802
-&subvendor.id          pci 0x17de
-&subdevice.id          pci 0x08a6
-|vendor.id             pci 0x14f1
-&device.id             pci 0x8802
-&subvendor.id          pci 0x18AC
-&subdevice.id          pci 0xDB00
-|vendor.id             pci 0x14f1
-&device.id             pci 0x8802
-&subvendor.id          pci 0x0070
-&subdevice.id          pci 0x9002
-|vendor.id             pci 0x14f1
-&device.id             pci 0x8802
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0187
-+baseclass.id          0x111
-+subclass.id           0x00
-+driver.module.modprobe        cx88-dvb
-
-
diff --git a/src/hwinfo/src/ids/src/extra b/src/hwinfo/src/ids/src/extra
deleted file mode 100644 (file)
index 323beb7..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-# some special entries
-# drop most of them???
-
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0001
-+baseclass.id          0x001
-+subclass.id           0x00
-+device.name           53c810
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000a
-+device.name           53C1510D
-
- vendor.id             pci 0x1011
-&device.id             pci 0x1065
-+device.name           DAC960
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7016
-+device.name           SiS 7016 (RealTek RTL8139) Fast Ethernet
-
- vendor.id             pci 0x103c
-&device.id             pci 0x100a
-+device.name           HP FX6 OpenGL
-
- vendor.id             pci 0x1050
-&device.id             pci 0x5a5a
-+device.name           Winbond
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0003
-+baseclass.id          0x003
-+subclass.id           0x80
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0021
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           GMAC Ethernet Controller
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0024
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           GMAC Ethernet Controller
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0022
-+device.name           Keylargo Mac I/O
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1016
-+device.name           QLA10160
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1080
-+device.name           QLA1080
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1216
-+device.name           QLA12160
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1240
-+device.name           QLA1240
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1280
-+device.name           QLA1280
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5055
-+device.name           3c555 Laptop Hurricane
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6560
-+device.name           3CCFE656 Cyclone CardBus
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x7646
-+device.name           3cSOHO100-TX Hurricane
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-+device.name           Riva TNT
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8138
-+device.name           RTL8139B
-
- vendor.id             pci 0x1101
-&device.id             pci 0x0002
-+device.name           INI-A100U2W
-
- vendor.id             pci 0x1101
-&device.id             pci 0x1060
-+device.name           INI-A100U2W
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0601
-+device.name           Pentium Host Bridge for Notebooks
-
- vendor.id             pci 0x11ad
-&device.id             pci 0xc115
-+device.name           Lite-On LC82C115 PNIC-II
-
- vendor.id             pci 0x12c3
-&device.id             pci 0x0058
-+device.name           HT80232
-
- vendor.id             pci 0x12c3
-&device.id             pci 0x5598
-+device.name           HT80229
-
- vendor.id             pci 0x12eb
-+vendor.name           Aureal Semiconductor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0001
-+device.name           AU8820 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0001
-&subvendor.id          pci 0x5053
-&subdevice.id          pci 0x3355
-+subdevice.name                TBS Montego A3D
-
- vendor.id             pci 0x134a
-&device.id             pci 0x0002
-+device.name           INI-920
-
- vendor.id             pci 0x15ad
-+vendor.name           VMWare, Inc.
-
- vendor.id             pci 0x15ad
-&device.id             pci 0x0405
-+baseclass.id          0x003
-+subclass.id           0x00
-
- vendor.id             pci 0x15ad
-&device.id             pci 0x0710
-+baseclass.id          0x003
-+subclass.id           0x00
-
-
-# internal modems
-# (just started...)
- vendor.id             pci 0x127a
-+vendor.name           Rockwell International
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1004
-+device.name           HCF 56k V90 FaxModem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-+device.name           PCI56RVP Modem
-
- vendor.id             pci 0x12b9
-+vendor.name           U.S. Robotics, Inc.
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1006
-+device.name           56k voice modem
-
- vendor.id             pci 0x1318
-&device.id             pci 0x0911
-+device.name           Hamachi GNIC-II
-
-
-# new gdth.o (21/06/2001)
- vendor.id             pci 0x1119
-&device.id             pci 0x0136
-+device.name           GDT6x13RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0137
-+device.name           GDT6x23RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x013c
-+device.name           GDT6x33RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x013d
-+device.name           GDT6x43RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x013e
-+device.name           GDT6x53RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x013f
-+device.name           GDT6x63RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01d6
-+device.name           GDT4x13RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01d7
-+device.name           GDT4x23RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01f6
-+device.name           GDT8x13RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01f7
-+device.name           GDT8x23RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01fc
-+device.name           GDT8x33RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01fd
-+device.name           GDT8x43RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01fe
-+device.name           GDT8x53RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01ff
-+device.name           GDT8x63RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0300
-+device.name           ICP vortex GDT RAID Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0600
-+device.name           RAID Controller
-
-
-# cf #9638
- vendor.id             pci 0x14e4
-+vendor.name           Broadcom
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1647
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0099
-+subdevice.name                NC7780 Gigabit Server Adapter
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1647
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x009a
-+subdevice.name                NC7770 Gigabit Server Adapter
-
-
-# IBM ServeRAID adapters (#20268)
- vendor.id             pci 0x1014
-&device.id             pci 0x002e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x022e
-+subdevice.name                ServeRAID 4H
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01be
-+subdevice.name                ServeRAID 4M
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01bf
-+subdevice.name                ServeRAID 4L
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0208
-+subdevice.name                ServeRAID 4Mx
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x020e
-+subdevice.name                ServeRAID 4Lx
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0258
-+subdevice.name                ServeRAID 5i
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0259
-+subdevice.name                ServeRAID 5i
-
- vendor.id             pci 0x1022
-+vendor.name           AMD
-
-# 63973
- vendor.id             pci 0x10a9
-+vendor.name           SGI
-
diff --git a/src/hwinfo/src/ids/src/isapnp b/src/hwinfo/src/ids/src/isapnp
deleted file mode 100644 (file)
index 87926f0..0000000
+++ /dev/null
@@ -1,545 +0,0 @@
- vendor.id             ACC
-+vendor.name           Accton
-
- vendor.id             ADD
-+vendor.name           Addtron
-
- vendor.id             ADP
-+vendor.name           Adaptec
-
- vendor.id             ADP
-&device.id             eisa 0x1505
-+baseclass.id          0x001
-+subclass.id           0x00
-+device.name           Adaptec AVA-1505AE
-
- vendor.id             ADS
-+vendor.name           Analog Devices
-
- vendor.id             ADS
-&device.id             eisa 0x7150
-|vendor.id             ADS
-&device.id             eisa 0x7181
-|vendor.id             ADV
-&device.id             eisa 0x550a
-|vendor.id             ADV
-&device.id             eisa 0x55ff
-|vendor.id             ALS
-&device.id             eisa 0x0001
-|vendor.id             ALS
-&device.id             eisa 0x0110
-|vendor.id             ALS
-&device.id             eisa 0x0120
-|vendor.id             ALS
-&device.id             eisa 0x0200
-|vendor.id             AZT
-&device.id             eisa 0x1008
-|vendor.id             AZT
-&device.id             eisa 0x2320
-|vendor.id             AZT
-&device.id             eisa 0x3000
-|vendor.id             AZT
-&device.id             eisa 0x3002
-|vendor.id             AZT
-&device.id             eisa 0x3005
-|vendor.id             AZT
-&device.id             eisa 0x3011
-|vendor.id             CDC
-&device.id             eisa 0x1111
-|vendor.id             CMI
-&device.id             eisa 0x0001
-|vendor.id             CSC
-&device.id             eisa 0x0000
-|vendor.id             CSC
-&device.id             eisa 0x0225
-|vendor.id             CSC
-&device.id             eisa 0x0437
-|vendor.id             CSC
-&device.id             eisa 0x0b35
-|vendor.id             CSC
-&device.id             eisa 0x0d32
-|vendor.id             CSC
-&device.id             eisa 0x1425
-|vendor.id             CSC
-&device.id             eisa 0x1525
-|vendor.id             CSC
-&device.id             eisa 0x1a32
-|vendor.id             CSC
-&device.id             eisa 0x1e37
-|vendor.id             CSC
-&device.id             eisa 0x4232
-|vendor.id             CSC
-&device.id             eisa 0x4236+0x0002
-|vendor.id             CSC
-&device.id             eisa 0x4336
-|vendor.id             CSC
-&device.id             eisa 0x4536
-|vendor.id             CSC
-&device.id             eisa 0x4637
-|vendor.id             CSC
-&device.id             eisa 0x4837
-|vendor.id             CSC
-&device.id             eisa 0x6835+0x0002
-|vendor.id             CSC
-&device.id             eisa 0x7532
-|vendor.id             CSC
-&device.id             eisa 0x7537
-|vendor.id             CSC
-&device.id             eisa 0x7632
-|vendor.id             CSC
-&device.id             eisa 0x8025
-|vendor.id             CSC
-&device.id             eisa 0x8037
-|vendor.id             CSC
-&device.id             eisa 0x9836+0x0002
-|vendor.id             CSC
-&device.id             eisa 0xa836
-|vendor.id             CSC
-&device.id             eisa 0xc835
-|vendor.id             CSC
-&device.id             eisa 0xd925
-|vendor.id             CSC
-&device.id             eisa 0xd937
-|vendor.id             CSC
-&device.id             eisa 0xe825
-|vendor.id             CSC
-&device.id             eisa 0xf032
-|vendor.id             CSC
-&device.id             eisa 0xf235
-|vendor.id             CSC
-&device.id             eisa 0xf238
-|vendor.id             CTL
-&device.id             eisa 0x002a
-|vendor.id             CTL
-&device.id             eisa 0x002c
-|vendor.id             CTL
-&device.id             eisa 0x0035
-|vendor.id             CTL
-&device.id             eisa 0x0045
-|vendor.id             CTL
-&device.id             eisa 0x009a
-|vendor.id             CTL
-&device.id             eisa 0x009f
-|vendor.id             CTL
-&device.id             eisa 0x00ed
-|vendor.id             DXP
-&device.id             eisa 0x3201
-|vendor.id             ESS
-&device.id             eisa 0x0003
-|vendor.id             ESS
-&device.id             eisa 0x0968
-|vendor.id             ESS
-&device.id             eisa 0x1868+0x0002
-|vendor.id             ESS
-&device.id             eisa 0x1878+0x0002
-|vendor.id             LWC
-&device.id             eisa 0x1060+0x0002
-|vendor.id             MDK
-&device.id             eisa 0x1605
-|vendor.id             NMX
-&device.id             eisa 0x2200
-|vendor.id             OPT
-&device.id             eisa 0x0924+0x0002
-|vendor.id             OPT
-&device.id             eisa 0x0931
-|vendor.id             RTL
-&device.id             eisa 0x3000
-|vendor.id             RWB
-&device.id             eisa 0x1688
-|vendor.id             SMM
-&device.id             eisa 0x7180
-|vendor.id             STB
-&device.id             eisa 0x011a
-|vendor.id             YMH
-&device.id             eisa 0x0020
-|vendor.id             YMH
-&device.id             eisa 0x0030
-|vendor.id             YMH
-&device.id             eisa 0x0800
-+baseclass.id          0x004
-+subclass.id           0x01
-
- vendor.id             ADV
-+vendor.name           Advanced Micro Devices
-
- vendor.id             ALN
-+vendor.name           Acer
-
- vendor.id             ALS
-+vendor.name           Avance Logic, Inc.
-
- vendor.id             ATI
-|vendor.id             ATK
-+vendor.name           Allied Telesyn
-
- vendor.id             AVM
-+vendor.name           AVM
-
- vendor.id             AVM
-&device.id             eisa 0x0900
-+baseclass.id          0x103
-+subclass.id           0x00
-+device.name           AVM ISDN-Controller FRITZ!Card
-
- vendor.id             AZT
-+vendor.name           Aztech Systems
-
- vendor.id             BRI
-+vendor.name           Boca Research
-
- vendor.id             CSC
-+vendor.name           Crystal Semiconductor
-
- vendor.id             CTL
-+vendor.name           Creative Technology Ltd.
-
- vendor.id             CTL
-&device.id             eisa 0x0024
-|vendor.id             CTL
-&device.id             eisa 0x0026+0x0004
-|vendor.id             CTL
-&device.id             eisa 0x002b
-+baseclass.id          0x004
-+subclass.id           0x01
-+device.name           Sound Blaster 16
-
- vendor.id             CTL
-&device.id             eisa 0x0039
-|vendor.id             CTL
-&device.id             eisa 0x0042+0x0003
-|vendor.id             CTL
-&device.id             eisa 0x0047
-|vendor.id             CTL
-&device.id             eisa 0x0054
-|vendor.id             CTL
-&device.id             eisa 0x009c
-+baseclass.id          0x004
-+subclass.id           0x01
-+device.name           Sound Blaster AWE 32
-
- vendor.id             CTL
-&device.id             eisa 0x0048
-+baseclass.id          0x004
-+subclass.id           0x01
-+device.name           Creative SB32
-
- vendor.id             CTL
-&device.id             eisa 0x0051
-+baseclass.id          0x004
-+subclass.id           0x01
-+device.name           Sound Blaster Vibra16S
-
- vendor.id             CTL
-&device.id             eisa 0x0070
-+baseclass.id          0x004
-+subclass.id           0x01
-+device.name           Sound Blaster Vibra16C
-
- vendor.id             CTL
-&device.id             eisa 0x0080
-+baseclass.id          0x004
-+subclass.id           0x01
-+device.name           Sound Blaster Vibra16CL
-
- vendor.id             CTL
-&device.id             eisa 0x009d
-|vendor.id             CTL
-&device.id             eisa 0x00c1
-|vendor.id             CTL
-&device.id             eisa 0x00c3
-|vendor.id             CTL
-&device.id             eisa 0x00c5
-|vendor.id             CTL
-&device.id             eisa 0x00c7
-|vendor.id             CTL
-&device.id             eisa 0x00e4
-+baseclass.id          0x004
-+subclass.id           0x01
-+device.name           Sound Blaster AWE 64
-
- vendor.id             CTL
-&device.id             eisa 0x009e
-|vendor.id             CTL
-&device.id             eisa 0x00b2
-+baseclass.id          0x004
-+subclass.id           0x01
-+device.name           Creative SB AWE64 Gold
-
- vendor.id             CTL
-&device.id             eisa 0x00f0
-+baseclass.id          0x004
-+subclass.id           0x01
-+device.name           Creative ViBRA16X
-
- vendor.id             DLK
-+vendor.name           D-Link Corporation
-
- vendor.id             ELS
-+vendor.name           ELSA International
-
- vendor.id             ELS
-&device.id             eisa 0x0133
-+baseclass.id          0x103
-+subclass.id           0x00
-+device.name           ELSA QuickStep 1000
-
- vendor.id             ELS
-&device.id             eisa 0x0213
-+device.name           MicroLink 33.6TQV
-
- vendor.id             ELS
-&device.id             eisa 0x0754
-+device.name           MicroLink 56k basic
-
- vendor.id             ESS
-+vendor.name           ESS Technology, Inc.
-
- vendor.id             GRV
-&device.id             eisa 0x0001
-+baseclass.id          0x004
-+subclass.id           0x01
-+device.name           Gravis Ultrasound
-
- vendor.id             GWY
-+vendor.name           Gateway
-
- vendor.id             GWY
-&device.id             eisa 0x001c
-+baseclass.id          0x102
-+subclass.id           0x01
-+device.name           Telepath for Windows with x2
-
- vendor.id             JQE
-+vendor.name           Cnet
-
- vendor.id             KYE
-+vendor.name           Genius
-
- vendor.id             KYE
-&device.id             eisa 0x0001
-+device.name           Genius PnP Mouse
-
- vendor.id             LGI
-+vendor.name           Logitech
-
- vendor.id             LGI
-&device.id             eisa 0x8001
-+device.name           Logitech First/Pilot Mouse
-
- vendor.id             LGI
-&device.id             eisa 0x800b+0x0002
-+device.name           Logitech MouseMan
-
- vendor.id             MDY
-+vendor.name           Microdyne
-
- vendor.id             NDC
-+vendor.name           NDC
-
- vendor.id             PNP
-+vendor.name           PnP
-
- vendor.id             PNP
-&device.id             eisa 0x0500
-+device.name           Standard PC COM port
-
- vendor.id             PNP
-&device.id             eisa 0x0501
-+device.name           16550A-compatible COM port
-
- vendor.id             PNP
-&device.id             eisa 0x0f00
-+device.name           Microsoft Bus Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f01
-+device.name           Microsoft Serial Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f02
-+device.name           Microsoft InPort Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f03
-+device.name           Microsoft PS/2-style Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f04
-+device.name           Mouse Systems Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f05
-+device.name           Mouse Systems 3-Button Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f06
-+device.name           Genius Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f07
-+device.name           Genius Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f08
-+device.name           Logitech Serial Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f09
-+device.name           Microsoft BallPoint Serial Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f0a
-+device.name           Microsoft Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f0b
-+device.name           Microsoft Plug and Play BallPoint Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f0c
-+device.name           MS-compatible Serial Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f0d
-+device.name           MS-compatible InPort-compatible Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f0e
-+device.name           Generic PS/2 Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f0f
-+device.name           MS-compatible Serial BallPoint-compatible Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f10
-+device.name           Texas Instruments QuickPort Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f11
-+device.name           MS-compatible Bus Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f12
-+device.name           Logitech PS/2-style Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f13
-+device.name           PS/2 Port for PS/2-style Mice
-
- vendor.id             PNP
-&device.id             eisa 0x0f14
-+device.name           Microsoft Kids Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f15
-+device.name           Logitech bus mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f16
-+device.name           Logitech SWIFT device
-
- vendor.id             PNP
-&device.id             eisa 0x0f17
-+device.name           Logitech-compatible serial mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f18
-+device.name           Logitech-compatible bus mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f19
-+device.name           Logitech-compatible PS/2-style Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f1a
-+device.name           Logitech-compatible SWIFT Device
-
- vendor.id             PNP
-&device.id             eisa 0x0f1b
-+device.name           HP Omnibook Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f1c
-+device.name           Compaq LTE Trackball PS/2-style Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f1d
-+device.name           Compaq LTE Trackball Serial Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x0f1e
-+device.name           Microsoft Kids Trackball Mouse
-
- vendor.id             PNP
-&device.id             eisa 0x80d6
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           NE2000 Compatible
-
- vendor.id             PNP
-&device.id             eisa 0x80f7
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           3Com EtherLink III
-
- vendor.id             PNP
-&device.id             eisa 0x80f8
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           3Com Generic Etherlink PnP Device
-
- vendor.id             PNP
-&device.id             eisa 0xb006
-+device.name           MPU401 compatible
-
- vendor.id             PNP
-&device.id             eisa 0xb02f
-+device.name           Joystick/Game port
-
- vendor.id             RPT
-+vendor.name           RPTI
-
- vendor.id             RTL
-+vendor.name           Realtek
-
- vendor.id             SKD
-+vendor.name           SysKonnect
-
- vendor.id             SMC
-+vendor.name           SMC
-
- vendor.id             SVE
-+vendor.name           SVEC
-
- vendor.id             TCM
-+vendor.name           3Com
-
- vendor.id             TCM
-&device.id             eisa 0x5090+0x0002
-|vendor.id             TCM
-&device.id             eisa 0x5094+0x0002
-|vendor.id             TCM
-&device.id             eisa 0x5098
-+baseclass.id          0x002
-+subclass.id           0x00
-
- vendor.id             TER
-+vendor.name           Terratec
-
- vendor.id             TER
-&device.id             eisa 0x1411
-+baseclass.id          0x004
-+subclass.id           0x01
-+device.name           Soundsystem Base 1
-
- vendor.id             USR
-+vendor.name           U.S. Robotics, Inc.
-
- vendor.id             USR
-&device.id             eisa 0x9100
-+device.name           U.S. Robotics 56K Message
-
- vendor.id             YMH
-+vendor.name           Yamaha
-
diff --git a/src/hwinfo/src/ids/src/modem b/src/hwinfo/src/ids/src/modem
deleted file mode 100644 (file)
index 95df289..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
- vendor.id             pci 0x8086
-&device.id             pci 0x1040
-+baseclass.id          0x102
-+subclass.id           0x02
-+requires              Intel-536ep
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0101
-|vendor.id             pci 0x115d
-&device.id             pci 0x0440+0x001d
-|vendor.id             pci 0x11c1
-&device.id             pci 0x0440+0x001d
-+baseclass.id          0x102
-+subclass.id           0x03
-+requires              ltmodem
-+driver.module.modprobe        lt_serial
-
diff --git a/src/hwinfo/src/ids/src/modem.i386 b/src/hwinfo/src/ids/src/modem.i386
deleted file mode 100644 (file)
index f45fe14..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-# modinfo
- subclass.id           0x03
-&vendor.id             pci 0x1039
-&device.id             pci 0x7013
-|subclass.id           0x03
-&vendor.id             pci 0x1039
-&device.id             pci 0x7018
-|vendor.id             pci 0x1022
-&device.id             pci 0x7446
-|vendor.id             pci 0x1055
-&device.id             pci 0x9178
-|vendor.id             pci 0x10a5
-&device.id             pci 0x3052
-|vendor.id             pci 0x10a5
-&device.id             pci 0x5459
-|vendor.id             pci 0x10b9
-&device.id             pci 0x5457
-|vendor.id             pci 0x10b9
-&device.id             pci 0x5459+0x0002
-|vendor.id             pci 0x10de
-&device.id             pci 0x01c1
-|vendor.id             pci 0x10ec
-&device.id             pci 0x8197
-|vendor.id             pci 0x1106
-&device.id             pci 0x3068
-|vendor.id             pci 0x1131
-&device.id             pci 0x3400
-|vendor.id             pci 0x163c
-&device.id             pci 0x3052
-|vendor.id             pci 0x163c
-&device.id             pci 0x5459
-|vendor.id             pci 0x2000
-&device.id             pci 0x2800
-|vendor.id             pci 0x2003
-&device.id             pci 0x8800
-|vendor.id             pci 0x8086
-&device.id             pci 0x2416
-|vendor.id             pci 0x8086
-&device.id             pci 0x2426
-|vendor.id             pci 0x8086
-&device.id             pci 0x2446
-|vendor.id             pci 0x8086
-&device.id             pci 0x2486
-|vendor.id             pci 0x8086
-&device.id             pci 0x24c6
-|vendor.id             pci 0x8086
-&device.id             pci 0x24d6
-|vendor.id             pci 0x8086
-&device.id             pci 0x7196
-+driver.module.modprobe        slamr
-+baseclass.id          0x102
-+subclass.id           0x04
-+requires              kernel-nongpl|smartlink-softmodem
-
- vendor.id             pci 0x1131
-&device.id             pci 0x5402
-&subvendor.id          pci 0x1244
-&subdevice.id          pci 0x0f00
-+driver.module.modprobe        fcdsl
-+requires              kernel-nongpl
-
- vendor.id             pci 0x1244
-&device.id             pci 0x0a00
-|vendor.id             pci 0x1244
-&device.id             pci 0x0e00
-+driver.module.modprobe        fcpci
-+requires              kernel-nongpl
-
- vendor.id             pci 0x1244
-&device.id             pci 0x2700
-+driver.module.modprobe        fcdslsl
-+requires              kernel-nongpl
-
- vendor.id             pci 0x1244
-&device.id             pci 0x2900
-+driver.module.modprobe        fcdsl2
-+requires              kernel-nongpl
-
- vendor.id             AVM
-&device.id             eisa 0x0900
-+driver.module.modprobe        fcpnp
-+requires              kernel-nongpl
-
- vendor.id             usb 0x0483
-&device.id             usb 0x7554
-+driver.module.modprobe        slusb
-+requires              kernel-nongpl
-
- vendor.id             usb 0x057c
-&device.id             usb 0x0c00
-+driver.module.modprobe        fcusb
-+requires              kernel-nongpl
-
- vendor.id             usb 0x057c
-&device.id             usb 0x1000
-|vendor.id             usb 0x057c
-&device.id             usb 0x1900
-+driver.module.modprobe        fcusb2
-+requires              kernel-nongpl
-
- vendor.id             usb 0x057c
-&device.id             usb 0x2000
-+driver.module.modprobe        fxusb
-+requires              kernel-nongpl
-
- vendor.id             usb 0x057c
-&device.id             usb 0x2300
-+driver.module.modprobe        fcdslusb
-+requires              kernel-nongpl
-
- vendor.id             usb 0x057c
-&device.id             usb 0x2800
-+driver.module.modprobe        fxusb_CZ
-+requires              kernel-nongpl
-
- vendor.id             usb 0x057c
-&device.id             usb 0x2805
-|vendor.id             usb 0x057c
-&device.id             usb 0x4401
-+driver.module.modprobe        e2220pc
-+requires              kernel-nongpl
-
- vendor.id             usb 0x057c
-&device.id             usb 0x2806
-|vendor.id             usb 0x057c
-&device.id             usb 0x4601
-+driver.module.modprobe        e5520pc
-+requires              kernel-nongpl
-
- vendor.id             usb 0x057c
-&device.id             usb 0x3000
-+driver.module.modprobe        fcdslusba
-+requires              kernel-nongpl
-
- vendor.id             usb 0x057c
-&device.id             usb 0x3500
-+driver.module.modprobe        fcdslslusb
-+requires              kernel-nongpl
-
- vendor.id             usb 0x057c
-&device.id             usb 0x3600
-+driver.module.modprobe        fcdslusb2
-+requires              kernel-nongpl
diff --git a/src/hwinfo/src/ids/src/monitor b/src/hwinfo/src/ids/src/monitor
deleted file mode 100644 (file)
index 5d443b2..0000000
+++ /dev/null
@@ -1,5378 +0,0 @@
-# monitors, LCDs
-
-
- vendor.id             AOC
-+vendor.name           AOC
-
- vendor.id             AOC
-&device.id             eisa 0xa566
-+device.name           SPECTRUM 5NLR
-+driver.display                1280x1024|30-64|50-100|85
-
- vendor.id             AOC
-&device.id             eisa 0xa782
-+device.name           SPECTRUM 7NLR
-+driver.display                |50-110|30-82
-
- vendor.id             AOC
-&device.id             eisa 0xd350
-+device.name           4VA
-
- vendor.id             AOC
-&device.id             eisa 0xd566
-+device.name           SPECTRUM 5VLR & 5VLRA
-+driver.display                |50-100|30-66
-
- vendor.id             AOC
-&device.id             eisa 0xe570
-+device.name           SPECTRUM 5GLR
-+driver.display                |50-120|30-64
-
- vendor.id             AOC
-&device.id             eisa 0xe750
-+device.name           SPECTRUM 7DLRA
-+driver.display                |50-120|30-68
-
- vendor.id             API
-+vendor.name           ACER
-
- vendor.id             API
-&device.id             eisa 0x0037
-+device.name           ACERVIEW 55
-+driver.display                |55-90|31-70
-
- vendor.id             API
-&device.id             eisa 0x424c
-+device.name           ACERVIEW 76IE
-+driver.display                |50-110|30-69
-
- vendor.id             API
-&device.id             eisa 0x440b
-+device.name           ACERVIEW 11D
-+driver.display                |55-90|31-40
-
- vendor.id             API
-&device.id             eisa 0x4421
-+device.name           ACERVIEW 33D
-+driver.display                |55-90|31-40
-
- vendor.id             API
-&device.id             eisa 0x4522
-+device.name           ACERVIEW 7134E
-+driver.display                |55-90|31-60
-
- vendor.id             API
-&device.id             eisa 0x4536
-+device.name           ACERVIEW 7154E
-+driver.display                |55-90|31-60
-
- vendor.id             API
-&device.id             eisa 0x4538
-+device.name           ACERVIEW 7156E
-+driver.display                |55-90|31-70
-
- vendor.id             API
-&device.id             eisa 0x454c
-+device.name           ACERVIEW 7176IE
-+driver.display                |55-90|31-70
-
- vendor.id             API
-&device.id             eisa 0x454e
-+device.name           ACERVIEW 7178IE
-+driver.display                |55-90|31-90
-
- vendor.id             API
-&device.id             eisa 0x4938
-+device.name           ACERVIEW 7156I
-+driver.display                |55-90|31-70
-
- vendor.id             API
-&device.id             eisa 0x494c
-+device.name           ACERVIEW 76I
-+driver.display                |55-90|31-70
-
- vendor.id             API
-&device.id             eisa 0x494e
-+device.name           ACERVIEW 78I
-+driver.display                |55-90|31-90
-
- vendor.id             API
-&device.id             eisa 0x4962
-+device.name           ACERVIEW 98I
-+driver.display                |55-90|31-90
-
- vendor.id             API
-&device.id             eisa 0x4c21
-+device.name           ACERVIEW 33DL
-+driver.display                |55-90|31-40
-
- vendor.id             API
-&device.id             eisa 0x4c22
-+device.name           ACERVIEW 34TL
-+driver.display                |55-90|31-50
-
- vendor.id             API
-&device.id             eisa 0x4c37
-+device.name           ACERVIEW 55L
-+driver.display                |55-90|31-70
-
- vendor.id             API
-&device.id             eisa 0x4c38
-+device.name           ACERVIEW 56L
-+driver.display                |55-90|31-70
-
- vendor.id             API
-&device.id             eisa 0x4e4c
-+device.name           ACERVIEW 76N
-+driver.display                |55-90|31-70
-
- vendor.id             API
-&device.id             eisa 0x5321
-+device.name           ACERVIEW 7133S
-+driver.display                |55-90|31-40
-
- vendor.id             API
-&device.id             eisa 0x5322
-+device.name           ACERVIEW 7134S
-+driver.display                |55-90|31-60
-
- vendor.id             API
-&device.id             eisa 0x5336
-+device.name           ACERVIEW 7154S
-+driver.display                |55-90|31-60
-
- vendor.id             API
-&device.id             eisa 0x5338
-+device.name           ACERVIEW 7156IS
-+driver.display                |55-90|31-70
-
- vendor.id             API
-&device.id             eisa 0x534c
-+device.name           ACERVIEW 7176IS
-+driver.display                |55-90|31-70
-
- vendor.id             API
-&device.id             eisa 0x5422
-+device.name           ACERVIEW 34T
-+driver.display                |55-90|31-50
-
- vendor.id             APP
-+vendor.name           Apple
-
- vendor.id             APP
-&device.id             eisa 0x0352
-+device.name           AppleVision 850
-
- vendor.id             APP
-&device.id             eisa 0x9214
-+driver.display                |50-78|31-65
-
- vendor.id             APP
-&device.id             eisa 0x9d03
-+driver.display                |58-75|31-60
-
- vendor.id             AST
-+vendor.name           AST
-
- vendor.id             AST
-&device.id             eisa 0x8001
-+device.name           4V
-
- vendor.id             AST
-&device.id             eisa 0x8002
-+device.name           4I
-+driver.display                |50-90|30-38
-
- vendor.id             AST
-&device.id             eisa 0x8003
-+device.name           4N
-+driver.display                |50-90|30-64
-
- vendor.id             AST
-&device.id             eisa 0x8004
-+device.name           ASTVISION 4L
-+driver.display                |50-90|30-64
-
- vendor.id             AST
-&device.id             eisa 0x8005
-+device.name           ASTVISION 5L
-+driver.display                |50-90|30-64
-
- vendor.id             AST
-&device.id             eisa 0x8006
-+device.name           ASTVISION 7L
-+driver.display                |50-90|30-64
-
- vendor.id             AST
-&device.id             eisa 0x8007
-+device.name           ASTVISION 7H
-+driver.display                |50-90|30-82
-
- vendor.id             AST
-&device.id             eisa 0x8008
-+device.name           ASTVISION 20H
-+driver.display                |50-150|29-82
-
- vendor.id             AST
-&device.id             eisa 0x8009
-+device.name           SABRE
-+driver.display                |50-90|30-64
-
- vendor.id             AST
-&device.id             eisa 0x800a
-+device.name           ASTVISION 5V
-+driver.display                |50-120|30-50
-
- vendor.id             BRG
-+vendor.name           BRIDGE
-
- vendor.id             BRG
-&device.id             eisa 0x00ab
-+device.name           BM17C
-+driver.display                |50-160|30-70
-
- vendor.id             CPL
-+vendor.name           Alpha
-
- vendor.id             CPL
-&device.id             eisa 0x096b
-+device.name           TH-450
-
- vendor.id             CPQ
-+vendor.name           COMPAQ
-
- vendor.id             CPQ
-&device.id             eisa 0x0011+0x0006
-+device.name           COMPAQ 1024
-
- vendor.id             CPQ
-&device.id             eisa 0x0017+0x0004
-+device.name           COMPAQ PRB
-
- vendor.id             CPQ
-&device.id             eisa 0x0020+0x0002
-+device.name           COMPAQ PRB
-
- vendor.id             CPQ
-&device.id             eisa 0x0022+0x0007
-+device.name           151FS
-
- vendor.id             CPQ
-&device.id             eisa 0x0029+0x0004
-+device.name           COMPAQ PRB
-
- vendor.id             CPQ
-&device.id             eisa 0x002d+0x0007
-+device.name           171FS
-
- vendor.id             CPQ
-&device.id             eisa 0x0040+0x0002
-+device.name           QVISION 200
-
- vendor.id             CPQ
-&device.id             eisa 0x0042
-+device.name           QVISION 172
-
- vendor.id             CPQ
-&device.id             eisa 0x0043+0x0006
-+device.name           QVISION 200
-
- vendor.id             CPQ
-&device.id             eisa 0x0049
-+device.name           QVISION 210
-
- vendor.id             CPQ
-&device.id             eisa 0x0100
-+device.name           COMPAQ 1024
-
- vendor.id             CPQ
-&device.id             eisa 0x0146
-+device.name           COMPAQ 1024
-
- vendor.id             CPQ
-&device.id             eisa 0x0147
-+device.name           1024
-
- vendor.id             CPQ
-&device.id             eisa 0x0346+0x0006
-+device.name           151FS
-
- vendor.id             CPQ
-&device.id             eisa 0x0546+0x0004
-+device.name           171FS
-
- vendor.id             CPQ
-&device.id             eisa 0x0746+0x0002
-+device.name           COMPAQ PRB
-
- vendor.id             CPQ
-&device.id             eisa 0x0846+0x0007
-+device.name           COMPAQ PRA
-
- vendor.id             CPQ
-&device.id             eisa 0x084d
-+device.name           PRESARIO 140
-+driver.display                |48-80|31-49
-
- vendor.id             CPQ
-&device.id             eisa 0x0946+0x0004
-+device.name           COMPAQ PRB
-
- vendor.id             CPQ
-&device.id             eisa 0x0a46+0x0007
-+device.name           COMPAQ PRA
-
- vendor.id             CPQ
-&device.id             eisa 0x0a4d
-+device.name           PRESARIO 150
-+driver.display                |48-80|31-49
-
- vendor.id             CPQ
-&device.id             eisa 0x0d46+0x0007
-+device.name           COMPAQ 140
-
- vendor.id             CPQ
-&device.id             eisa 0x0d4d
-+device.name           140
-+driver.display                |48-80|31-49
-
- vendor.id             CPQ
-&device.id             eisa 0x0f46+0x0007
-+device.name           COMPAQ 150
-
- vendor.id             CPQ
-&device.id             eisa 0x0f4d
-+device.name           150
-+driver.display                |48-80|31-49
-
- vendor.id             CPQ
-&device.id             eisa 0x1320
-+device.name           P70
-+driver.display                |48-150|30-92
-
- vendor.id             CPQ
-&device.id             eisa 0x1321
-+device.name           P110
-+driver.display                |48-160|30-107
-
- vendor.id             CPQ
-&device.id             eisa 0x1322
-+device.name           V50
-+driver.display                |50-125|30-60
-
- vendor.id             CPQ
-&device.id             eisa 0x1324
-+device.name           TFT500
-+driver.display                |57-85|32-60
-
- vendor.id             CPQ
-&device.id             eisa 0x1325
-+device.name           V900-
-+driver.display                |48-160|30-96
-
- vendor.id             CPQ
-&device.id             eisa 0x1327
-+device.name           P1610
-+driver.display                |48-160|30-96
-
- vendor.id             CPQ
-&device.id             eisa 0x1329
-+device.name           TFT8000-
-+driver.display                |58-85|31-80
-
- vendor.id             CPQ
-&device.id             eisa 0x1330
-+device.name           P75
-+driver.display                |50-150|30-85
-
- vendor.id             CPQ
-&device.id             eisa 0x1331
-+device.name           V55
-+driver.display                |48-125|30-60
-
- vendor.id             CPQ
-&device.id             eisa 0x1332
-+device.name           V75
-+driver.display                |48-125|30-69
-
- vendor.id             CPQ
-&device.id             eisa 0x1333
-+device.name           TFT450
-+driver.display                |57-85|32-60
-
- vendor.id             CPQ
-&device.id             eisa 0x1334
-+device.name           V40
-+driver.display                |50-100|31-48
-
- vendor.id             CPQ
-&device.id             eisa 0x1338
-+device.name           V45
-+driver.display                |50-100|31-48
-
- vendor.id             CPQ
-&device.id             eisa 0x1349
-+device.name           S700-
-+driver.display                |50-160|30-70
-
- vendor.id             CPQ
-&device.id             eisa 0x1350
-+device.name           S900-
-+driver.display                |50-160|30-95
-
- vendor.id             CPQ
-&device.id             eisa 0x170a
-+device.name           V70
-+driver.display                |50-125|30-69
-
- vendor.id             CPQ
-&device.id             eisa 0x1730
-+device.name           V90
-+driver.display                |48-160|30-94
-
- vendor.id             CPQ
-&device.id             eisa 0x3012
-+device.name           PRESARIO MV500-
-+driver.display                |50-90|31-54
-
- vendor.id             CPQ
-&device.id             eisa 0x3013
-+device.name           PRESARIO MV700-
-+driver.display                |50-100|30-70
-
- vendor.id             CPQ
-&device.id             eisa 0x3014
-+device.name           PRESARIO MV400-
-+driver.display                |50-90|31-50
-
- vendor.id             CTX
-+vendor.name           CTX
-
- vendor.id             CTX
-&device.id             eisa 0x0150
-+device.name           1569
-+driver.display                |50-130|30-70
-
- vendor.id             CTX
-&device.id             eisa 0x1451
-+device.name           1451
-+driver.display                |45-90|30-50
-
- vendor.id             CTX
-&device.id             eisa 0x1551
-+device.name           1551
-+driver.display                |45-90|30-50
-
- vendor.id             CTX
-&device.id             eisa 0x1562
-+device.name           1562
-+driver.display                |45-90|30-62
-
- vendor.id             CTX
-&device.id             eisa 0x1565
-+device.name           1565
-+driver.display                |45-90|30-65
-
- vendor.id             CTX
-&device.id             eisa 0x1569
-+device.name           CTX 1569S 15-inch
-
- vendor.id             CTX
-&device.id             eisa 0x1765
-+device.name           1765
-+driver.display                |45-110|30-65
-
- vendor.id             CTX
-&device.id             eisa 0x1785
-+device.name           1785
-+driver.display                |45-110|30-85
-
- vendor.id             CTX
-&device.id             eisa 0x2085
-+device.name           2085
-+driver.display                |45-110|30-85
-
- vendor.id             CTX
-&device.id             eisa 0x2185
-+device.name           2185
-+driver.display                |45-110|30-85
-
- vendor.id             CTX
-&device.id             eisa 0x3621
-+device.name           VL700
-+driver.display                |50-120|30-70
-
- vendor.id             DEC
-+vendor.name           DIGITAL
-
- vendor.id             DEC
-&device.id             eisa 0x043a
-+device.name           (FR-PCXAV-AZ) (24 ZOLL)
-+driver.display                |50-160|30-96
-
- vendor.id             DEC
-&device.id             eisa 0x0479
-+device.name           19 ZOLL  (FR-PCXAV-CY)
-+driver.display                |48-160|30-95
-
- vendor.id             DEC
-&device.id             eisa 0x047a
-+device.name           19 ZOLL  (FR-PCXAV-CZ)
-+driver.display                |48-160|30-95
-
- vendor.id             DEC
-&device.id             eisa 0x06fa
-+device.name           21 ZOLL  (FR-PCXAV-WZ)
-+driver.display                |50-152|30-95
-
- vendor.id             DEC
-&device.id             eisa 0x073a
-+device.name           17 ZOLL  (FR-PCXAV-YZ)
-+driver.display                |48-150|30-85
-
- vendor.id             DEC
-&device.id             eisa 0x770c
-+device.name           14 ZOLL  (FR-PCXCV-C*)
-+driver.display                |50-90|30-54
-
- vendor.id             DEC
-&device.id             eisa 0x970c
-+device.name           15 ZOLL  (FR-PCXCV-D*)
-+driver.display                |50-90|30-54
-
- vendor.id             DEC
-&device.id             eisa 0x9a06
-+device.name           (FR-PCXAV-TZ) (19 ZOLL)
-+driver.display                |50-160|30-96
-
- vendor.id             DEC
-&device.id             eisa 0xba08
-+device.name           15 ZOLL  (FR-PCXBV-E*)
-+driver.display                |50-110|30-69
-
- vendor.id             DEC
-&device.id             eisa 0xda08
-+device.name           17 ZOLL  (FR-PCXBV-F*)
-+driver.display                |50-120|30-69
-
- vendor.id             DEL
-+vendor.name           DELL
-
- vendor.id             DEL
-&device.id             eisa 0x139a+0x0003
-+device.name           Dell Ultrascan 14XE
-
- vendor.id             DEL
-&device.id             eisa 0x139d
-+device.name           ULTRASCAN 14XE
-+driver.display                |50-120|30-62
-
- vendor.id             DEL
-&device.id             eisa 0x1569
-+device.name           1569
-+driver.display                |50-110|30-69
-
- vendor.id             DEL
-&device.id             eisa 0x2210+0x0003
-+device.name           Dell Ultrascan V17X
-
- vendor.id             DEL
-&device.id             eisa 0x2213
-+device.name           ULTRASCAN V17X
-+driver.display                |50-130|30-85
-
- vendor.id             DEL
-&device.id             eisa 0x2214+0x0003
-+device.name           Dell Ultrascan 21TE
-
- vendor.id             DEL
-&device.id             eisa 0x2217
-+device.name           ULTRASCAN 21TE
-+driver.display                |50-152|30-93
-
- vendor.id             DEL
-&device.id             eisa 0x3024+0x0003
-+device.name           Dell VS17X
-
- vendor.id             DEL
-&device.id             eisa 0x3027
-+device.name           VS17X
-+driver.display                |50-120|30-65
-
- vendor.id             DEL
-&device.id             eisa 0x3276
-+device.name           D1428L
-+driver.display                |43-75|31-48
-
- vendor.id             DEL
-&device.id             eisa 0x32fe
-+device.name           D828L
-+driver.display                |50-120|31-54
-
- vendor.id             DEL
-&device.id             eisa 0x3319
-+device.name           828FI
-+driver.display                |50-120|31-70
-
- vendor.id             DEL
-&device.id             eisa 0x4273
-+device.name           V15X
-+driver.display                |55-90|47-64
-
- vendor.id             DEL
-&device.id             eisa 0x5033
-+device.name           D825HT
-+driver.display                |50-120|31-70
-
- vendor.id             DEL
-&device.id             eisa 0x5062
-+device.name           D1025HTX
-+driver.display                |50-120|31-70
-
- vendor.id             DEL
-&device.id             eisa 0x50dd
-+device.name           P990
-+driver.display                |48-120|30-96
-
- vendor.id             DEL
-&device.id             eisa 0x512c
-+device.name           D825TM
-+driver.display                |50-120|30-70
-
- vendor.id             DEL
-&device.id             eisa 0x5155
-+device.name           D1025TM
-+driver.display                |50-160|31-85
-
- vendor.id             DEL
-&device.id             eisa 0x515b
-+device.name           D1626HT
-+driver.display                |50-160|31-107
-
- vendor.id             DEL
-&device.id             eisa 0x5314
-+device.name           D2026T
-+driver.display                |50-100|31-96
-
- vendor.id             DEL
-&device.id             eisa 0x5319
-+device.name           1726T-HS/D1025HT
-+driver.display                |50-100|31-85
-
- vendor.id             DEL
-&device.id             eisa 0x5697
-+device.name           800M
-+driver.display                |50-120|30-70
-
- vendor.id             DEL
-&device.id             eisa 0x602f
-+device.name           D2128-TCO
-+driver.display                |50-150|31-102
-
- vendor.id             DEL
-&device.id             eisa 0x6124
-+device.name           D1025HE
-+driver.display                |50-120|31-92
-
- vendor.id             DEL
-&device.id             eisa 0x62ff
-+device.name           D825HR
-+driver.display                |50-120|31-70
-
- vendor.id             DEL
-&device.id             eisa 0x635e
-+device.name           ES-17
-+driver.display                |50-100|31-85
-
- vendor.id             DEL
-&device.id             eisa 0x7077
-+device.name           D1226H
-+driver.display                |50-160|30-95
-
- vendor.id             DEL
-&device.id             eisa 0x715d
-+device.name           1500FP
-+driver.display                |56-75|30-61
-
- vendor.id             DEL
-&device.id             eisa 0x71a5
-+device.name           M770
-+driver.display                |48-160|30-69
-
- vendor.id             DEL
-&device.id             eisa 0x730b
-+device.name           D1028L
-+driver.display                |50-120|31-70
-
- vendor.id             DEL
-&device.id             eisa 0x8162
-+device.name           TFT 1400FP
-+driver.display                |55-86|31-60
-
- vendor.id             DEL
-&device.id             eisa 0x93d5
-+device.name           M1110
-+driver.display                |50-160|30-107
-
- vendor.id             DPC
-+vendor.name           DELTA
-
- vendor.id             DPC
-&device.id             eisa 0x0456
-+device.name           Delta DA-456
-
- vendor.id             DPC
-&device.id             eisa 0x0570
-+device.name           DA-570
-+driver.display                |50-100|30-70
-
- vendor.id             DPC
-&device.id             eisa 0x0770
-+device.name           DB-770
-+driver.display                |50-100|30-70
-
- vendor.id             DPC
-&device.id             eisa 0x0995
-+device.name           DA-995
-+driver.display                |50-180|30-95
-
- vendor.id             DPC
-&device.id             eisa 0x1565
-+device.name           DA-1565
-+driver.display                |50-100|30-65
-
- vendor.id             DPC
-&device.id             eisa 0x1765
-+device.name           DB-1765
-+driver.display                |50-100|30-65
-
- vendor.id             DPC
-&device.id             eisa 0x1770
-+device.name           DC-770
-+driver.display                |50-120|30-70
-
- vendor.id             DPC
-&device.id             eisa 0x4570
-+device.name           DE-570
-+driver.display                |50-120|30-70
-
- vendor.id             DWE
-+vendor.name           DAEWOO
-
- vendor.id             DWE
-&device.id             eisa 0x1423
-+device.name           CMC-1423B1
-+driver.display                |50-120|30-64
-
- vendor.id             DWE
-&device.id             eisa 0x1427
-+device.name           CMC-1427X1
-+driver.display                |50-100|30-48
-
- vendor.id             DWE
-&device.id             eisa 0x1502
-+device.name           CMC-1502B1
-+driver.display                |50-120|30-64
-
- vendor.id             DWE
-&device.id             eisa 0x1505
-+device.name           CMC-1505X
-+driver.display                |50-100|30-50
-
- vendor.id             DWE
-&device.id             eisa 0x1507
-+device.name           CMC-1507X1
-+driver.display                |50-100|30-48
-
- vendor.id             DWE
-&device.id             eisa 0x1703
-+device.name           CMC-1703B
-+driver.display                |50-120|30-64
-
- vendor.id             DWE
-&device.id             eisa 0x4312
-+device.name           431X
-+driver.display                |50-120|30-54
-
- vendor.id             DWE
-&device.id             eisa 0x5093
-+device.name           1509B
-+driver.display                |50-120|30-69
-
- vendor.id             DWE
-&device.id             eisa 0x5113
-+device.name           511B
-+driver.display                |50-120|30-69
-
- vendor.id             DWE
-&device.id             eisa 0x5123
-+device.name           512B
-+driver.display                |50-120|30-69
-
- vendor.id             DWE
-&device.id             eisa 0x5133
-+device.name           Daewoo CMC-1511B
-
- vendor.id             DWE
-&device.id             eisa 0x5182
-+device.name           518X
-+driver.display                |50-120|30-54
-
- vendor.id             DWE
-&device.id             eisa 0x5183
-+device.name           518B
-+driver.display                |50-120|30-69
-
- vendor.id             DWE
-&device.id             eisa 0x5193
-+device.name           519B
-+driver.display                |50-120|30-69
-
- vendor.id             DWE
-&device.id             eisa 0x7044
-+device.name           CMC-1704C
-+driver.display                |50-150|24-86
-
- vendor.id             DWE
-&device.id             eisa 0x7053
-+device.name           1705B
-+driver.display                |50-120|30-69
-
- vendor.id             DWE
-&device.id             eisa 0x7073
-+device.name           707B
-+driver.display                |50-120|30-69
-
- vendor.id             DWE
-&device.id             eisa 0x7103
-+device.name           710B
-+driver.display                |50-160|30-69
-
- vendor.id             DWE
-&device.id             eisa 0x7104
-+device.name           710C
-+driver.display                |50-160|30-86
-
- vendor.id             DWE
-&device.id             eisa 0x9015
-+device.name           901D
-+driver.display                |50-160|30-95
-
- vendor.id             ECS
-+vendor.name           ECS
-
- vendor.id             ECS
-&device.id             eisa 0x0001
-+device.name           VERTOS 1401
-+driver.display                |50-100|30-50
-
- vendor.id             ECS
-&device.id             eisa 0x0002
-+device.name           VERTOS 1501
-+driver.display                |50-100|24-64
-
- vendor.id             ECS
-&device.id             eisa 0x0003
-+device.name           VERTOS 1502
-+driver.display                |50-100|24-64
-
- vendor.id             ECS
-&device.id             eisa 0x0004
-+device.name           VERTOS 1503
-+driver.display                |50-100|24-64
-
- vendor.id             ECS
-&device.id             eisa 0x0005
-+device.name           VERTOS 1700
-+driver.display                |50-100|24-64
-
- vendor.id             ECS
-&device.id             eisa 0x0006
-+device.name           VERTOS 1701
-+driver.display                |50-100|24-82
-
- vendor.id             ECS
-&device.id             eisa 0x0007
-+device.name           VERTOS 1702
-+driver.display                |50-100|24-64
-
- vendor.id             ECS
-&device.id             eisa 0x0008
-+device.name           VERTOS 2101
-+driver.display                |50-100|24-90
-
- vendor.id             ECS
-&device.id             eisa 0x0009
-+device.name           VERTOS 2102
-+driver.display                |50-100|24-90
-
- vendor.id             EIZ
-+vendor.name           EIZO
-
- vendor.id             EIZ
-&device.id             eisa 0x0200
-+device.name           FLEXSCAN F351
-
- vendor.id             EIZ
-&device.id             eisa 0x0201
-+device.name           FLEXSCAN F553
-
- vendor.id             EIZ
-&device.id             eisa 0x0202
-+device.name           FLEXSCAN F563
-
- vendor.id             EIZ
-&device.id             eisa 0x0203
-+device.name           FLEXSCAN F764
-+driver.display                |55-160|30-90
-
- vendor.id             EIZ
-&device.id             eisa 0x0204
-+device.name           FLEXSCAN F784
-
- vendor.id             EIZ
-&device.id             eisa 0x0206
-+device.name           FLEXSCAN 6600
-+driver.display                |70-90|56-110
-
- vendor.id             EIZ
-&device.id             eisa 0x0300
-+device.name           FLEXSCAN 6500
-+driver.display                |55-90|56-80
-
- vendor.id             EIZ
-&device.id             eisa 0x0302
-+device.name           9060S
-
- vendor.id             EIZ
-&device.id             eisa 0x0303
-+device.name           9065S
-+driver.display                |50-90|30-50
-
- vendor.id             EIZ
-&device.id             eisa 0x0305
-+device.name           FLEXSCAN T563
-
- vendor.id             EIZ
-&device.id             eisa 0x0306
-+device.name           9070S
-+driver.display                |50-90|20-50
-
- vendor.id             EIZ
-&device.id             eisa 0x0307
-+device.name           9080I
-+driver.display                |55-90|30-64
-
- vendor.id             EIZ
-&device.id             eisa 0x0308
-+device.name           9400I
-+driver.display                |55-90|30-65
-
- vendor.id             EIZ
-&device.id             eisa 0x0309
-+device.name           9500
-+driver.display                |55-90|30-78
-
- vendor.id             EIZ
-&device.id             eisa 0x030a
-+device.name           FLEXSCAN F340IW
-
- vendor.id             EIZ
-&device.id             eisa 0x030c
-+device.name           FLEXSCAN F552
-
- vendor.id             EIZ
-&device.id             eisa 0x030d
-+device.name           FLEXSCAN F560IW
-+driver.display                |55-90|30-82
-
- vendor.id             EIZ
-&device.id             eisa 0x030e
-+device.name           FLEXSCAN F750I
-+driver.display                |55-90|30-80
-
- vendor.id             EIZ
-&device.id             eisa 0x030f
-+device.name           FLEXSCAN F760IW
-+driver.display                |55-90|30-78
-
- vendor.id             EIZ
-&device.id             eisa 0x0310
-+device.name           FLEXSCAN F780IW
-+driver.display                |55-120|45-100
-
- vendor.id             EIZ
-&device.id             eisa 0x0311
-+device.name           FLEXSCAN T560I
-+driver.display                |55-90|30-82
-
- vendor.id             EIZ
-&device.id             eisa 0x0312
-+device.name           FLEXSCAN T660I
-+driver.display                |55-90|30-78
-
- vendor.id             EIZ
-&device.id             eisa 0x0313
-+device.name           FLEXSCAN T562
-+driver.display                |55-90|30-82
-
- vendor.id             EIZ
-&device.id             eisa 0x0314
-+device.name           FLEXSCAN T662
-+driver.display                |55-160|30-85
-
- vendor.id             EIZ
-&device.id             eisa 0x038c
-+device.name           FLEXSCAN F550IW
-+driver.display                |55-90|30-65
-
- vendor.id             EIZ
-&device.id             eisa 0x1012
-+device.name           FLEXSCAN L34
-+driver.display                |50-85|24-61
-
- vendor.id             EIZ
-&device.id             eisa 0x1018
-+device.name           FLEXSCAN F77S
-+driver.display                |50-160|30-110
-
- vendor.id             EIZ
-&device.id             eisa 0x1020
-+device.name           FLEXSCAN F57
-+driver.display                |50-160|30-96
-
- vendor.id             EIZ
-&device.id             eisa 0x1418
-+device.name           NANAO FLEXSCAN FX-E7S
-+driver.display                |50-160|30-110
-
- vendor.id             EIZ
-&device.id             eisa 0x1420
-+device.name           NANAO FLEXSCAN FX-C7
-+driver.display                |50-160|30-96
-
- vendor.id             ELS
-+vendor.name           ELSA
-
- vendor.id             ELS
-&device.id             eisa 0x4160
-+device.name           ECOMO OFFICE
-+driver.display                |50-130|30-86
-
- vendor.id             ELS
-&device.id             eisa 0x7617
-+device.name           ECOMO 22H99
-+driver.display                |50-160|31-121
-
- vendor.id             FCM
-+vendor.name           FUNAI
-
- vendor.id             FCM
-&device.id             eisa 0x3313
-+device.name           17GD
-+driver.display                |50-120|30-70
-
- vendor.id             FPA
-+vendor.name           FUJITSU
-
- vendor.id             FPA
-&device.id             eisa 0x0612
-+device.name           1554G+
-+driver.display                |50-120|30-54
-
- vendor.id             FPA
-&device.id             eisa 0x2d30
-+device.name           1568G1
-+driver.display                |50-120|30-69
-
- vendor.id             FPA
-&device.id             eisa 0x2df9
-+device.name           1769G
-+driver.display                |50-120|30-69
-
- vendor.id             FUJ
-+vendor.name           FUJITSU
-
- vendor.id             FUJ
-&device.id             eisa 0x0119
-+device.name           X150F
-+driver.display                |56-75|31-60
-
- vendor.id             FUJ
-&device.id             eisa 0x2118
-+device.name           X176
-+driver.display                |50-200|30-100
-
- vendor.id             FUJ
-&device.id             eisa 0x2218
-+device.name           X177
-+driver.display                |50-150|30-92
-
- vendor.id             FUJ
-&device.id             eisa 0x2318
-+device.name           X177A
-+driver.display                |50-150|30-92
-
- vendor.id             FUJ
-&device.id             eisa 0x3118
-+device.name           E155
-+driver.display                |50-100|30-54
-
- vendor.id             FUJ
-&device.id             eisa 0x5110
-+device.name           FMV-DP98X1
-+driver.display                |50-180|30-95
-
- vendor.id             FUJ
-&device.id             eisa 0x6110
-+device.name           FMV-DP97X4
-+driver.display                |50-120|30-92
-
- vendor.id             FUJ
-&device.id             eisa 0x6210
-+device.name           FMVDP97X5(G)/FMVDP97X6
-+driver.display                |50-150|30-92
-
- vendor.id             FUJ
-&device.id             eisa 0x7110
-+device.name           FMV-DP84X2
-+driver.display                |50-100|30-70
-
- vendor.id             FUJ
-&device.id             eisa 0x7210
-+device.name           FMV-DP84X3(G)
-+driver.display                |50-120|30-70
-
- vendor.id             FUJ
-&device.id             eisa 0x8111
-+device.name           VL-15TX1(G)
-
- vendor.id             FUJ
-&device.id             eisa 0x9111
-+device.name           VL-14TX1
-
- vendor.id             FUJ
-&device.id             eisa 0xa901
-+device.name           FMV-DP97X2
-+driver.display                |50-120|30-92
-
- vendor.id             FUJ
-&device.id             eisa 0xaa01
-+device.name           FMV-DP97X3
-+driver.display                |50-150|30-70
-
- vendor.id             FUJ
-&device.id             eisa 0xb801
-+device.name           FMV-DP84X1
-+driver.display                |50-100|30-70
-
- vendor.id             GSM
-+vendor.name           LG ELECTRONICS
-
- vendor.id             GSM
-&device.id             eisa 0x36b4
-+device.name           STUDIOWORKS 44M
-+driver.display                |50-90|30-50
-
- vendor.id             GSM
-&device.id             eisa 0x36b9
-+device.name           STUDIOWORKS 44I
-+driver.display                |50-89|30-50
-
- vendor.id             GSM
-&device.id             eisa 0x36bb
-+device.name           STUDIOWORKS 45I
-+driver.display                |50-90|30-54
-
- vendor.id             GSM
-&device.id             eisa 0x3aa0
-+device.name           1505S
-+driver.display                |50-90|30-50
-
- vendor.id             GSM
-&device.id             eisa 0x3aa2
-+device.name           STUDIOWORKS 56M
-+driver.display                |50-110|30-65
-
- vendor.id             GSM
-&device.id             eisa 0x3aa8
-+device.name           STUDIOWORKS 56I
-+driver.display                |50-120|30-65
-
- vendor.id             GSM
-&device.id             eisa 0x3aaf
-+device.name           STUDIOWORKS 56T
-+driver.display                |50-120|30-65
-
- vendor.id             GSM
-&device.id             eisa 0x3ab0
-+device.name           LG StudioWorks 5D
-
- vendor.id             GSM
-&device.id             eisa 0x3ab6
-+device.name           STUDIOWORKS 5D
-+driver.display                |50-120|30-65
-
- vendor.id             GSM
-&device.id             eisa 0x3abd
-+device.name           STUDIOWORKS 55I
-+driver.display                |50-90|30-54
-
- vendor.id             GSM
-&device.id             eisa 0x426c
-+device.name           STUDIOWORKS 78I
-
- vendor.id             GSM
-&device.id             eisa 0x426d
-+device.name           STUDIOWORKS 78T
-+driver.display                |50-120|30-85
-
- vendor.id             GSM
-&device.id             eisa 0x426e
-+device.name           STUDIOWORKS 76I
-+driver.display                |50-110|30-65
-
- vendor.id             GSM
-&device.id             eisa 0x4273
-+device.name           LG StudioWorks 76m
-
- vendor.id             GSM
-&device.id             eisa 0x4274
-+device.name           LG StudioWorks 78m
-
- vendor.id             GSM
-&device.id             eisa 0x4277
-+device.name           LG StudioWorks 74m
-
- vendor.id             GSM
-&device.id             eisa 0x4278
-+device.name           LG StudioWorks 74i
-
- vendor.id             GSM
-&device.id             eisa 0x427e
-+device.name           STUDIOWORKS 7D
-+driver.display                |50-120|30-65
-
- vendor.id             GSM
-&device.id             eisa 0x427f
-+device.name           STUDIOWORKS 78D
-+driver.display                |50-120|30-85
-
- vendor.id             GSM
-&device.id             eisa 0x4280
-+device.name           LG StudioWorks 78DT
-
- vendor.id             GSM
-&device.id             eisa 0x4281
-+device.name           LG StudioWorks 7DT
-
- vendor.id             GSM
-&device.id             eisa 0x4284
-+device.name           LG StudioWorks 76T
-
- vendor.id             GSM
-&device.id             eisa 0x42cf
-+device.name           1725S
-+driver.display                |50-120|30-65
-
- vendor.id             GSM
-&device.id             eisa 0x4e21
-+device.name           STUDIOWORKS 20I
-+driver.display                |50-120|30-85
-
- vendor.id             GWY
-+vendor.name           GATEWAY
-
- vendor.id             GWY
-&device.id             eisa 0x00c0
-+device.name           VX900T
-+driver.display                |48-120|30-96
-
- vendor.id             GWY
-&device.id             eisa 0x044d
-+device.name           VX700
-+driver.display                |50-130|30-86
-
- vendor.id             GWY
-&device.id             eisa 0x0454
-+device.name           VX1100
-+driver.display                |50-152|30-108
-
- vendor.id             GWY
-&device.id             eisa 0x0a8d
-+device.name           DESTINATION DL27
-+driver.display                |50-90|24-40
-
- vendor.id             GWY
-&device.id             eisa 0x0e11
-+device.name           DESTINATION DL36
-+driver.display                |50-90|24-40
-
- vendor.id             GWY
-&device.id             eisa 0x138a
-+device.name           EV500
-+driver.display                |50-110|30-70
-
- vendor.id             GWY
-&device.id             eisa 0x1b5c
-+device.name           EV700
-+driver.display                |50-120|30-70
-
- vendor.id             GWY
-&device.id             eisa 0x7659
-+device.name           EV700-H
-+driver.display                |50-120|30-70
-
- vendor.id             GWY
-&device.id             eisa 0x8883
-+device.name           EV900
-+driver.display                |50-160|30-95
-
- vendor.id             GWY
-&device.id             eisa 0x9095
-+device.name           VX900
-+driver.display                |50-160|30-95
-
- vendor.id             HEI
-+vendor.name           HYUNDAI
-
- vendor.id             HEI
-&device.id             eisa 0x0b42
-+device.name           DELUXSCAN 21
-+driver.display                |45-100|30-82
-
- vendor.id             HEI
-&device.id             eisa 0x12f0
-+device.name           DELUXSCAN 14S
-+driver.display                |50-120|30-48
-
- vendor.id             HEI
-&device.id             eisa 0x16d8
-+device.name           DELUXSCAN 15B
-+driver.display                |50-120|30-48
-
- vendor.id             HEI
-&device.id             eisa 0x16e8
-+device.name           DELUXSCAN 15G
-+driver.display                |50-90|30-64
-
- vendor.id             HEI
-&device.id             eisa 0x16ee
-+device.name           DELUXSCAN 15G+
-+driver.display                |50-120|30-70
-
- vendor.id             HEI
-&device.id             eisa 0x1e02
-+device.name           DELUXSCAN 17 PRO
-+driver.display                |45-100|30-82
-
- vendor.id             HEI
-&device.id             eisa 0x1eb8
-+device.name           DELUXSCAN 17B
-+driver.display                |50-100|30-64
-
- vendor.id             HEI
-&device.id             eisa 0x1ebe
-+device.name           DELUXSCAN 17B+
-+driver.display                |50-120|30-70
-
- vendor.id             HEI
-&device.id             eisa 0x5864
-+device.name           DELUXSCAN 15 PRO
-+driver.display                |50-120|30-64
-
- vendor.id             HEI
-&device.id             eisa 0x768b
-+device.name           7687
-+driver.display                |50-150|30-87
-
- vendor.id             HEI
-&device.id             eisa 0xb81e
-+device.name           DELUXSCAN 17
-+driver.display                |50-90|30-64
-
- vendor.id             HIG
-+vendor.name           HIGHSCREEN
-
- vendor.id             HIG
-&device.id             eisa 0x5620
-+device.name           DX1595
-+driver.display                |50-120|30-65
-
- vendor.id             HIG
-&device.id             eisa 0x5624
-+device.name           DX15T
-+driver.display                |50-100|30-64
-
- vendor.id             HIG
-&device.id             eisa 0x5626
-+device.name           DX1795
-+driver.display                |50-120|30-65
-
- vendor.id             HIT
-+vendor.name           HITACHI
-
- vendor.id             HIT
-&device.id             eisa 0x1717
-+device.name           ACCUVUE GX17L
-+driver.display                |50-100|30-64
-
- vendor.id             HIT
-&device.id             eisa 0x1727
-+device.name           HM1764
-+driver.display                |50-100|30-64
-
- vendor.id             HIT
-&device.id             eisa 0x1827
-+device.name           HM1782
-+driver.display                |50-100|30-82
-
- vendor.id             HIT
-&device.id             eisa 0x2147
-+device.name           HM4721
-+driver.display                |50-152|30-95
-
- vendor.id             HIT
-&device.id             eisa 0x2149
-+device.name           HM4921
-+driver.display                |50-152|30-107
-
- vendor.id             HIT
-&device.id             eisa 0x4020
-+device.name           HM4020
-+driver.display                |60-120|60-85
-
- vendor.id             HIT
-&device.id             eisa 0x4021
-+device.name           HM4021
-+driver.display                |60-120|60-85
-
- vendor.id             HIT
-&device.id             eisa 0x4711
-+device.name           ACCUVUE UX4721
-+driver.display                |50-152|30-95
-
- vendor.id             HIT
-&device.id             eisa 0x4810
-+device.name           ACCUVUE GX20
-+driver.display                |50-152|28-90
-
- vendor.id             HIT
-&device.id             eisa 0x4811
-+device.name           ACCUVUE GX21
-+driver.display                |50-152|28-90
-
- vendor.id             HIT
-&device.id             eisa 0x4820
-+device.name           HM4820
-+driver.display                |50-152|28-90
-
- vendor.id             HIT
-&device.id             eisa 0x4821
-+device.name           HM4821
-+driver.display                |50-152|28-90
-
- vendor.id             HIT
-&device.id             eisa 0x4830
-+device.name           ACCUVUE GX20H
-+driver.display                |50-152|28-90
-
- vendor.id             HIT
-&device.id             eisa 0x4911
-+device.name           ACCUVUE UX4921
-+driver.display                |50-152|30-107
-
- vendor.id             HIT
-&device.id             eisa 0x6421
-+device.name           HM6421
-+driver.display                |72-77|100-102
-
- vendor.id             HIT
-&device.id             eisa 0x6811
-+device.name           ACCUVUE UX6821
-+driver.display                |50-152|30-107
-
- vendor.id             HIT
-&device.id             eisa 0x6821
-+device.name           HM6821
-+driver.display                |50-152|30-107
-
- vendor.id             HSL
-+vendor.name           HANSOL
-
- vendor.id             HSL
-&device.id             eisa 0x0579
-+device.name           ELECTRONICS MAZELLAN14PX
-+driver.display                |50-120|30-54
-
- vendor.id             HSL
-&device.id             eisa 0x057a
-+device.name           ELECTRONICS MAZELLAN400A
-+driver.display                |50-120|30-50
-
- vendor.id             HSL
-&device.id             eisa 0x05dd
-+device.name           ELECTRONICS MAZELLAN15AX
-+driver.display                |50-120|30-54
-
- vendor.id             HSL
-&device.id             eisa 0x05de
-+device.name           ELECTRONICS MAZELLAN500P
-+driver.display                |50-120|30-69
-
- vendor.id             HSL
-&device.id             eisa 0x06a5
-+device.name           ELECTRONICS MAZELLAN700P
-+driver.display                |50-120|30-85
-
- vendor.id             HSL
-&device.id             eisa 0x06a6
-+device.name           ELECTRONICS MAZELLAN700A
-+driver.display                |50-120|30-69
-
- vendor.id             HSL
-&device.id             eisa 0xa605
-+device.name           ELECTRONICS MAZELLAN17PX
-+driver.display                |50-120|30-85
-
- vendor.id             HTC
-+vendor.name           HITACHI
-
- vendor.id             HTC
-&device.id             eisa 0xab6f
-+device.name           LTD CM-1711M
-
- vendor.id             HTC
-&device.id             eisa 0xabc2
-+device.name           LTD CM-2112M
-+driver.display                |50-160|31-107
-
- vendor.id             HTC
-&device.id             eisa 0xabc7
-+device.name           LTD CM-2111M
-+driver.display                |50-160|31-95
-
- vendor.id             HTC
-&device.id             eisa 0xabcc
-+device.name           LTD CM-2110M
-+driver.display                |50-160|31-85
-
- vendor.id             HTC
-&device.id             eisa 0xabe0
-+device.name           LTD CM802
-+driver.display                |50-160|31-100
-
- vendor.id             HTC
-&device.id             eisa 0xabe2
-+device.name           LTD CM801
-+driver.display                |50-160|31-96
-
- vendor.id             HTC
-&device.id             eisa 0xabe3
-+device.name           LTD CM800
-+driver.display                |50-160|31-89
-
- vendor.id             HTC
-&device.id             eisa 0xabea
-+device.name           LTD CM803
-+driver.display                |50-160|31-115
-
- vendor.id             HTC
-&device.id             eisa 0xabf4
-+device.name           LTD CM701
-+driver.display                |50-160|31-96
-
- vendor.id             HTC
-&device.id             eisa 0xac13
-+device.name           CM751
-+driver.display                |50-160|30-94
-
- vendor.id             HTC
-&device.id             eisa 0xac15
-+device.name           CM752
-+driver.display                |50-160|31-101
-
- vendor.id             HTC
-&device.id             eisa 0xac22
-+device.name           CM753
-+driver.display                |50-160|31-107
-
- vendor.id             HTC
-&device.id             eisa 0xac46
-+device.name           CM811
-+driver.display                |50-160|31-96
-
- vendor.id             HTC
-&device.id             eisa 0xac47
-+device.name           CM812
-+driver.display                |50-160|31-107
-
- vendor.id             HTC
-&device.id             eisa 0xac48
-+device.name           CM813
-+driver.display                |50-160|31-115
-
- vendor.id             HTC
-&device.id             eisa 0xac49
-+device.name           CM814
-+driver.display                |50-160|31-125
-
- vendor.id             HTC
-&device.id             eisa 0xafc8
-+device.name           LTD CM500
-+driver.display                |50-100|30-69
-
- vendor.id             HTC
-&device.id             eisa 0xafce
-+device.name           CM500E
-+driver.display                |50-100|30-69
-
- vendor.id             HTC
-&device.id             eisa 0xafd2
-+device.name           LTD CM600
-+driver.display                |47-104|30-64
-
- vendor.id             HTC
-&device.id             eisa 0xafd7
-+device.name           LTD CM611
-+driver.display                1152x870|50-120|31-92
-
- vendor.id             HTC
-&device.id             eisa 0xafdd
-+device.name           CM620
-+driver.display                |47-130|31-69
-
- vendor.id             HTC
-&device.id             eisa 0xafe2
-+device.name           CM630
-+driver.display                |47-130|31-86
-
- vendor.id             HTC
-&device.id             eisa 0xafec
-+device.name           CM641
-+driver.display                |50-130|31-95
-
- vendor.id             HWP
-+vendor.name           HP
-
- vendor.id             HWP
-&device.id             eisa 0x0af0
-+device.name           D2800A 21
-+driver.display                |50-160|30-82
-
- vendor.id             HWP
-&device.id             eisa 0x0af6
-+device.name           D2806A 15
-+driver.display                |50-100|30-64
-
- vendor.id             HWP
-&device.id             eisa 0x0af8
-+device.name           HP D2808 1024 Low Emission
-
- vendor.id             HWP
-&device.id             eisa 0x0aff
-+device.name           D1815A  14 1024
-
- vendor.id             HWP
-&device.id             eisa 0x0b0a
-+device.name           D2826-MONITOR (15 ZOLL)
-+driver.display                |50-120|31-54
-
- vendor.id             HWP
-&device.id             eisa 0x0b10
-+device.name           D2832A
-+driver.display                |50-120|30-70
-
- vendor.id             HWP
-&device.id             eisa 0x0b13
-+device.name           D2835
-+driver.display                |50-160|30-69
-
- vendor.id             HWP
-&device.id             eisa 0x0b16
-+device.name           HP D2838 M700 17"
-+driver.display                |50-160|30-86
-
- vendor.id             HWP
-&device.id             eisa 0x0b18
-+device.name           D2840 ERGO 1280
-+driver.display                |50-150|31-92
-
- vendor.id             HWP
-&device.id             eisa 0x0b1d
-+device.name           D2845 ERGO 1600
-
- vendor.id             HWP
-&device.id             eisa 0x0b1e
-+device.name           HP D2846 21
-+driver.display                1600x1200|50-160|30-107|230
-
- vendor.id             HWP
-&device.id             eisa 0x0f11
-+device.name           D3857A 15
-
- vendor.id             HWP
-&device.id             eisa 0x0f12
-+device.name           D3858A 14
-
- vendor.id             IBM
-+vendor.name           IBM
-
- vendor.id             IBM
-&device.id             eisa 0x0844
-+device.name           2116 MM55 MULTIMEDIA
-+driver.display                |50-120|30-69
-
- vendor.id             IBM
-&device.id             eisa 0x0850
-+device.name           2128 MM75 MULTIMEDIA
-+driver.display                |50-160|30-69
-
- vendor.id             IBM
-&device.id             eisa 0x08bb
-+device.name           2235 C50
-+driver.display                |50-120|30-54
-
- vendor.id             IBM
-&device.id             eisa 0x08bd
-+device.name           2237 C71
-+driver.display                |50-120|30-69
-
- vendor.id             IBM
-&device.id             eisa 0x0a2e
-+device.name           THINKPAD TFT
-+driver.display                |50-65|40-60
-
- vendor.id             IBM
-&device.id             eisa 0x0a41
-+device.name           THINKPAD DSTN
-+driver.display                |50-65|40-60
-
- vendor.id             IBM
-&device.id             eisa 0x0a4b
-+device.name           THINKPAD TFT
-+driver.display                |50-65|40-60
-
- vendor.id             IBM
-&device.id             eisa 0x0a50
-+device.name           THINKPAD DSTN
-+driver.display                |50-65|40-60
-
- vendor.id             IBM
-&device.id             eisa 0x0a55
-+device.name           THINKPAD TFT
-+driver.display                |50-65|40-60
-
- vendor.id             IBM
-&device.id             eisa 0x198c
-+device.name           6540 G42
-+driver.display                |55-100|30-50
-
- vendor.id             IBM
-&device.id             eisa 0x198d
-+device.name           6541 G51
-+driver.display                |55-100|30-54
-
- vendor.id             IBM
-&device.id             eisa 0x198e
-+device.name           G41
-
- vendor.id             IBM
-&device.id             eisa 0x198f
-+device.name           G50
-
- vendor.id             IBM
-&device.id             eisa 0x1990
-+device.name           G70
-+driver.display                |50-105|31-64
-
- vendor.id             IBM
-&device.id             eisa 0x1991
-+device.name           G200
-+driver.display                |50-120|31-82
-
- vendor.id             IBM
-&device.id             eisa 0x1992
-+device.name           6546 G52
-+driver.display                |50-120|30-69
-
- vendor.id             IBM
-&device.id             eisa 0x1993
-+device.name           6547 G72
-+driver.display                |50-120|30-69
-
- vendor.id             IBM
-&device.id             eisa 0x1995
-+device.name           6549 G94
-+driver.display                |50-160|30-95
-
- vendor.id             IBM
-&device.id             eisa 0x1999
-+device.name           P50
-+driver.display                |50-120|30-69
-
- vendor.id             IBM
-&device.id             eisa 0x199a
-+device.name           P70
-+driver.display                |50-120|29-82
-
- vendor.id             IBM
-&device.id             eisa 0x199b
-+device.name           P200
-+driver.display                |50-120|29-90
-
- vendor.id             IBM
-&device.id             eisa 0x199c
-+device.name           6556 P72
-+driver.display                |50-150|30-85
-
- vendor.id             IBM
-&device.id             eisa 0x199d
-+device.name           6557 P92
-+driver.display                |50-160|30-94
-
- vendor.id             IBM
-&device.id             eisa 0x199e
-+device.name           6558 P202
-+driver.display                |50-160|30-107
-
- vendor.id             IBM
-&device.id             eisa 0x1bb7
-+device.name           7095
-+driver.display                |50-120|30-69
-
- vendor.id             IBM
-&device.id             eisa 0x1bb9
-+device.name           7097
-+driver.display                |50-120|30-69
-
- vendor.id             IBM
-&device.id             eisa 0x2112
-+device.name           2112
-+driver.display                |50-80|31-38
-
- vendor.id             IBM
-&device.id             eisa 0x2113
-+device.name           2113
-+driver.display                |50-80|31-38
-
- vendor.id             IBM
-&device.id             eisa 0x2114
-+device.name           2114
-+driver.display                |50-120|31-62
-
- vendor.id             IBM
-&device.id             eisa 0x2115
-+device.name           2115
-+driver.display                |50-120|31-62
-
- vendor.id             IBM
-&device.id             eisa 0x2117
-+device.name           2117
-+driver.display                |50-120|31-65
-
- vendor.id             IBM
-&device.id             eisa 0x2215
-+device.name           2215
-+driver.display                |50-120|31-64
-
- vendor.id             IBM
-&device.id             eisa 0x2221
-+device.name           2122
-+driver.display                |50-120|30-54
-
- vendor.id             IBM
-&device.id             eisa 0x2236
-+device.name           2236
-+driver.display                |50-120|30-70
-
- vendor.id             IBM
-&device.id             eisa 0x2238
-+device.name           2238
-+driver.display                |50-80|31-38
-
- vendor.id             IBM
-&device.id             eisa 0x2248
-+device.name           2248
-+driver.display                |50-100|31-48
-
- vendor.id             IBM
-&device.id             eisa 0x2264
-+device.name           2264
-+driver.display                |50-120|31-64
-
- vendor.id             IBM
-&device.id             eisa 0x2421
-+device.name           2124
-+driver.display                |50-120|30-54
-
- vendor.id             IBM
-&device.id             eisa 0x2529
-+device.name           9513 T55A TFT-MONITOR
-+driver.display                |56-75|30-61
-
- vendor.id             IBM
-&device.id             eisa 0x252a
-+device.name           9514-B TFT
-+driver.display                |55-75|31-65
-
- vendor.id             IBM
-&device.id             eisa 0x2535
-+device.name           9525-0X1
-+driver.display                |50-110|30-64
-
- vendor.id             IBM
-&device.id             eisa 0x254a
-+device.name           THINKPAD LCD
-+driver.display                |50-65|40-60
-
- vendor.id             IBM
-&device.id             eisa 0x254c
-+device.name           THINKPAD TFT
-+driver.display                |50-65|40-60
-
- vendor.id             IBM
-&device.id             eisa 0x2621
-+device.name           2126
-+driver.display                |50-110|30-69
-
- vendor.id             IBM
-&device.id             eisa 0x26ac
-+device.name           APTIVA 9900
-+driver.display                |50-120|30-54
-
- vendor.id             IBM
-&device.id             eisa 0x2721
-+device.name           2127
-+driver.display                |50-120|30-72
-
- vendor.id             IBM
-&device.id             eisa 0x27ad
-+device.name           APTIVA 9901
-+driver.display                |50-120|30-54
-
- vendor.id             IBM
-&device.id             eisa 0x3121
-+device.name           2131
-+driver.display                |50-120|30-69
-
- vendor.id             IBM
-&device.id             eisa 0x3221
-+device.name           2132
-+driver.display                |50-120|30-72
-
- vendor.id             IBM
-&device.id             eisa 0x6312
-+device.name           6312
-+driver.display                |47-100|31-50
-
- vendor.id             IBM
-&device.id             eisa 0x6314
-+device.name           6314
-+driver.display                |50-120|30-60
-
- vendor.id             IBM
-&device.id             eisa 0x6315
-+device.name           6315
-
- vendor.id             IBM
-&device.id             eisa 0x6317
-+device.name           6317
-+driver.display                |50-110|30-64
-
- vendor.id             IBM
-&device.id             eisa 0x6319
-+device.name           6319
-+driver.display                |50-120|30-60
-
- vendor.id             IBM
-&device.id             eisa 0x6321
-+device.name           6321
-
- vendor.id             IBM
-&device.id             eisa 0x6322
-+device.name           6322
-
- vendor.id             IBM
-&device.id             eisa 0x6324
-+device.name           6324
-+driver.display                |50-110|30-64
-
- vendor.id             IBM
-&device.id             eisa 0x6325
-+device.name           6325
-+driver.display                |50-110|30-64
-
- vendor.id             IBM
-&device.id             eisa 0x6327
-+device.name           6327
-+driver.display                |50-130|30-64
-
- vendor.id             IBM
-&device.id             eisa 0x7234
-+device.name           2122-XXL
-+driver.display                |50-110|30-54
-
- vendor.id             IBM
-&device.id             eisa 0x7254
-+device.name           2124-XXL
-+driver.display                |50-110|30-54
-
- vendor.id             IBM
-&device.id             eisa 0x8504
-+device.name           8504
-
- vendor.id             IBM
-&device.id             eisa 0x8511
-+device.name           8511
-
- vendor.id             IBM
-&device.id             eisa 0x8512
-+device.name           8512
-
- vendor.id             IBM
-&device.id             eisa 0x8513
-+device.name           8513
-
- vendor.id             IBM
-&device.id             eisa 0x8514
-+device.name           8514
-
- vendor.id             IBM
-&device.id             eisa 0x8515
-+device.name           8515
-
- vendor.id             IBM
-&device.id             eisa 0x8517
-+device.name           8517
-
- vendor.id             IBM
-&device.id             eisa 0x8518
-+device.name           8518
-
- vendor.id             IBM
-&device.id             eisa 0x9504
-+device.name           9504
-
- vendor.id             IBM
-&device.id             eisa 0x9515
-+device.name           9515
-
- vendor.id             IBM
-&device.id             eisa 0x9517
-+device.name           9517
-+driver.display                |50-90|27-59
-
- vendor.id             IBM
-&device.id             eisa 0x9518
-+device.name           9518
-
- vendor.id             IBM
-&device.id             eisa 0x9521
-+device.name           9521
-+driver.display                |50-110|30-82
-
- vendor.id             IBM
-&device.id             eisa 0x9524
-+device.name           9524
-+driver.display                |50-110|30-64
-
- vendor.id             IBM
-&device.id             eisa 0x9525
-+device.name           9525
-+driver.display                |50-110|30-64
-
- vendor.id             IBM
-&device.id             eisa 0x9527
-+device.name           9527
-+driver.display                |50-110|30-82
-
- vendor.id             ICL
-+vendor.name           FUJITSU
-
- vendor.id             ICL
-&device.id             eisa 0x0100
-+device.name           ICL ERGOPRO 211V
-+driver.display                |50-120|24-82
-
- vendor.id             ICL
-&device.id             eisa 0x0200
-+device.name           ICL ERGOPRO 171P
-+driver.display                |50-110|30-82
-
- vendor.id             ICL
-&device.id             eisa 0x0400
-+device.name           ICL ERGOPRO 171V
-+driver.display                |50-100|30-64
-
- vendor.id             ICL
-&device.id             eisa 0x0700
-+device.name           ICL ERGOPRO 151P
-+driver.display                |48-100|30-64
-
- vendor.id             ICL
-&device.id             eisa 0x0800
-+device.name           ICL ERGOPRO 151P AUTOBRITE
-+driver.display                |48-100|30-64
-
- vendor.id             ICL
-&device.id             eisa 0x0a00
-+device.name           ICL ERGOPRO 151V
-+driver.display                |50-100|30-64
-
- vendor.id             ICL
-&device.id             eisa 0x0b00
-+device.name           ICL ERGOPRO 141V
-
- vendor.id             ICL
-&device.id             eisa 0x0d00
-+device.name           ICL ERGOPRO 141P
-
- vendor.id             ICL
-&device.id             eisa 0x0f00
-+device.name           ICL ERGOPRO 152V
-+driver.display                |50-100|30-64
-
- vendor.id             ICL
-&device.id             eisa 0x1400
-+device.name           ICL ERGOPRO 142V
-
- vendor.id             ICL
-&device.id             eisa 0x1600
-+device.name           ICL ERGOPRO E153
-+driver.display                |50-100|30-66
-
- vendor.id             ICL
-&device.id             eisa 0x1900
-+device.name           ICL ERGOPRO X173
-+driver.display                |48-100|31-85
-
- vendor.id             ICL
-&device.id             eisa 0x1a00
-+device.name           ICL ERGOPRO X173A
-+driver.display                |48-100|31-85
-
- vendor.id             ICL
-&device.id             eisa 0x1c00
-+device.name           ICL ERGOPRO X152
-+driver.display                |50-100|30-65
-
- vendor.id             ICL
-&device.id             eisa 0x1d00
-+device.name           ICL ERGOPRO E173
-+driver.display                |50-120|30-65
-
- vendor.id             ICL
-&device.id             eisa 0x2100
-+device.name           ERGOPRO X153
-+driver.display                |50-160|30-69
-
- vendor.id             ICL
-&device.id             eisa 0x2200
-+device.name           ERGOPRO E154
-+driver.display                |50-100|30-54
-
- vendor.id             ICL
-&device.id             eisa 0x2300
-+device.name           ERGOPRO E174
-+driver.display                |50-160|30-69
-
- vendor.id             ICL
-&device.id             eisa 0x2400
-+device.name           ERGOPRO X174
-+driver.display                |50-150|30-92
-
- vendor.id             ICL
-&device.id             eisa 0x2500
-+device.name           E175
-+driver.display                |50-120|30-85
-
- vendor.id             ICL
-&device.id             eisa 0x2700
-+device.name           E213
-+driver.display                |50-150|30-107
-
- vendor.id             ICL
-&device.id             eisa 0x2800
-+device.name           X191
-+driver.display                |50-160|30-96
-
- vendor.id             ICL
-&device.id             eisa 0x2900
-+device.name           X154
-+driver.display                |50-120|30-70
-
- vendor.id             ICL
-&device.id             eisa 0x2a00
-+device.name           E176
-+driver.display                |50-120|30-70
-
- vendor.id             IVM
-+vendor.name           IIYAMA
-
- vendor.id             IVM
-&device.id             eisa 0x1501
-+device.name           VISION MASTER
-+driver.display                |50-160|27-69
-
- vendor.id             IVM
-&device.id             eisa 0x1700
-+device.name           VISION MASTER (1700)
-+driver.display                |50-160|27-86
-
- vendor.id             IVM
-&device.id             eisa 0x1701
-+device.name           VISION MASTER (1701)
-+driver.display                |50-160|27-86
-
- vendor.id             IVM
-&device.id             eisa 0x1702
-+device.name           VISION MASTER 400 (2)
-+driver.display                |50-160|27-96
-
- vendor.id             IVM
-&device.id             eisa 0x1703
-+device.name           VISION MASTER 400
-+driver.display                |50-160|27-96
-
- vendor.id             IVM
-&device.id             eisa 0x1711
-+device.name           VISION MASTER PRO 400
-+driver.display                |50-160|27-96
-
- vendor.id             IVM
-&device.id             eisa 0x1740
-+device.name           VISION MASTER PRO 410
-+driver.display                |50-160|27-96
-
- vendor.id             IVM
-&device.id             eisa 0x17a8
-+device.name           S700JT1
-+driver.display                |50-100|27-90
-
- vendor.id             IVM
-&device.id             eisa 0x1900
-+device.name           VISION MASTER 450
-+driver.display                |50-160|27-102
-
- vendor.id             IVM
-&device.id             eisa 0x1901
-+device.name           VISION MASTER PRO 450
-+driver.display                1600x1200|50-160|25-115|230
-
- vendor.id             IVM
-&device.id             eisa 0x1918
-+device.name           VISION MASTER PRO 451
-+driver.display                |50-160|27-110
-
- vendor.id             IVM
-&device.id             eisa 0x2110
-+device.name           VISION MASTER 501
-+driver.display                |50-160|27-96
-
- vendor.id             IVM
-&device.id             eisa 0x2118
-+device.name           VISION MASTER PRO 501
-+driver.display                |50-160|27-96
-
- vendor.id             IVM
-&device.id             eisa 0x2120
-+device.name           VISION MASTER 502
-+driver.display                |50-160|27-110
-
- vendor.id             IVM
-&device.id             eisa 0x2128
-+device.name           VISION MASTER PRO 502
-+driver.display                |50-160|27-110
-
- vendor.id             IVM
-&device.id             eisa 0x2130
-+device.name           VISION MASTER PRO
-+driver.display                |50-160|24-94
-
- vendor.id             IVM
-&device.id             eisa 0x3601
-+device.name           PROLITE36 (3601)
-
- vendor.id             IVM
-&device.id             eisa 0x3602
-+device.name           PROLITE36
-
- vendor.id             IVM
-&device.id             eisa 0x3801
-+device.name           PROLITE38
-
- vendor.id             IVM
-&device.id             eisa 0x3808
-+device.name           PROLITE38C
-
- vendor.id             IVM
-&device.id             eisa 0x3900
-+device.name           PROLITE39
-
- vendor.id             IVM
-&device.id             eisa 0x4600
-+device.name           PROLITE46
-
- vendor.id             KDS
-+vendor.name           KOREA
-
- vendor.id             KDS
-&device.id             eisa 0x05ac
-+device.name           DATA SYSTEMS VISUAL SENSATION VS-4(KD-1452)
-+driver.display                |40-120|28-50
-
- vendor.id             KDS
-&device.id             eisa 0x05af
-+device.name           DATA SYSTEMS VISUAL SENSATION VS-4D
-+driver.display                |40-120|28-55
-
- vendor.id             KDS
-&device.id             eisa 0x05e6
-+device.name           DATA SYSTEMS VISUAL SENSATION VS-5/VS-51/VSX-5
-+driver.display                |50-120|30-70
-
- vendor.id             KDS
-&device.id             eisa 0x05f5
-+device.name           DATA SYSTEMS VISUAL SENSATION VS-55
-+driver.display                |40-120|28-55
-
- vendor.id             KDS
-&device.id             eisa 0x06c2
-+device.name           DATA SYSTEMS VISUAL SENSATION VS-7/VSX-7
-+driver.display                |50-120|30-70
-
- vendor.id             KDS
-&device.id             eisa 0x06d6
-+device.name           DATA SYSTEMS VISUAL SENSATION VS-9
-+driver.display                |50-120|31-95
-
- vendor.id             KDS
-&device.id             eisa 0x07d0
-+device.name           DATA SYSTEMS VISUAL SENSATION VS-19
-+driver.display                |50-120|31-95
-
- vendor.id             KDS
-&device.id             eisa 0x0834
-+device.name           DATA SYSTEMS VISUAL SENSATION VS-21
-+driver.display                |50-160|30-117
-
- vendor.id             KDS
-&device.id             eisa 0x1540
-+device.name           DATA SYSTEMS AVITRON AV-5T
-+driver.display                |50-120|30-70
-
- vendor.id             KDS
-&device.id             eisa 0x1740
-+device.name           DATA SYSTEMS AVITRON AV-7T
-+driver.display                |50-120|30-70
-
- vendor.id             KDS
-&device.id             eisa 0x1980
-+device.name           DATA SYSTEMS VISUAL SENSATION VS-195
-+driver.display                |50-120|30-95
-
- vendor.id             KDS
-&device.id             eisa 0x1981
-+device.name           DATA SYSTEMS VISUAL SENSATION VS-19SN
-+driver.display                |50-120|30-95
-
- vendor.id             LKM
-+vendor.name           AZALEA
-
- vendor.id             LNK
-+vendor.name           LINK Technologies, Inc.
-
- vendor.id             MAG
-+vendor.name           MAGIC
-
- vendor.id             MAG
-&device.id             eisa 0x4577
-+device.name           D410
-+driver.display                |50-100|30-54
-
- vendor.id             MAG
-&device.id             eisa 0x5620
-+device.name           DX-1595
-+driver.display                |50-120|30-64
-
- vendor.id             MAG
-&device.id             eisa 0x5624
-+device.name           DX-15T
-+driver.display                |50-120|30-64
-
- vendor.id             MAG
-&device.id             eisa 0x5626
-+device.name           DX1795
-
- vendor.id             MAG
-&device.id             eisa 0x5775
-+device.name           DJ530
-+driver.display                |50-120|30-70
-
- vendor.id             MAG
-&device.id             eisa 0x5776
-+device.name           XJ530
-+driver.display                |50-120|30-70
-
- vendor.id             MAG
-&device.id             eisa 0x5779
-+device.name           XJ500T
-+driver.display                |50-120|30-70
-
- vendor.id             MAG
-&device.id             eisa 0x5781
-+device.name           DX500T
-+driver.display                |50-120|30-70
-
- vendor.id             MAG
-&device.id             eisa 0x5801
-+device.name           XJ500
-+driver.display                |50-120|30-70
-
- vendor.id             MAG
-&device.id             eisa 0x7626
-+device.name           DX-1795
-+driver.display                |50-120|30-64
-
- vendor.id             MAG
-&device.id             eisa 0x7740
-+device.name           DX-700T
-+driver.display                |50-120|30-70
-
- vendor.id             MAG
-&device.id             eisa 0x7752
-+device.name           DJ707
-+driver.display                |50-120|30-70
-
- vendor.id             MAG
-&device.id             eisa 0x7771
-+device.name           XJ700
-+driver.display                |50-120|30-70
-
- vendor.id             MAG
-&device.id             eisa 0x7772
-+device.name           XJ707
-+driver.display                |50-120|30-70
-
- vendor.id             MAG
-&device.id             eisa 0x7780
-+device.name           XJ700T
-+driver.display                |50-120|30-70
-
- vendor.id             MAG
-&device.id             eisa 0x7842
-+device.name           DX715T
-+driver.display                |50-120|30-86
-
- vendor.id             MAG
-&device.id             eisa 0x7854
-+device.name           DJ717
-+driver.display                |50-160|30-86
-
- vendor.id             MAG
-&device.id             eisa 0x7874
-+device.name           XJ717
-+driver.display                |50-160|30-86
-
- vendor.id             MAG
-&device.id             eisa 0x8997
-+device.name           XJ810
-+driver.display                |50-160|30-95
-
- vendor.id             MAX
-+vendor.name           BELINEA
-
- vendor.id             MAX
-&device.id             eisa 0x0582
-+device.name           101410
-+driver.display                |50-77|24-61
-
- vendor.id             MAX
-&device.id             eisa 0x05e6
-+device.name           101510
-+driver.display                |50-77|30-61
-
- vendor.id             MAX
-&device.id             eisa 0x05f0
-+device.name           101520
-
- vendor.id             MAX
-&device.id             eisa 0x05fa
-+device.name           101530
-+driver.display                |50-85|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x060e
-+device.name           101550
-+driver.display                |50-85|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x0712
-+device.name           101810
-+driver.display                |50-85|31-80
-
- vendor.id             MAX
-&device.id             eisa 0x07e4
-+device.name           102020
-+driver.display                1152x864|50-120|30-70|86
-
- vendor.id             MAX
-&device.id             eisa 0x07ee
-+device.name           102030
-+driver.display                |50-120|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x07fa
-+device.name           102010
-+driver.display                |50-120|30-54
-
- vendor.id             MAX
-&device.id             eisa 0x0bc2
-+device.name           103010
-+driver.display                |50-120|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x0bc7
-+device.name           103015
-+driver.display                |50-120|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x0bcc
-+device.name           103020
-+driver.display                |50-120|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x0bd6
-+device.name           103030
-+driver.display                |50-150|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x0be0
-+device.name           103040
-+driver.display                |50-150|30-86
-
- vendor.id             MAX
-&device.id             eisa 0x0bea
-+device.name           103050
-+driver.display                1280x1024|50-160|30-95
-
- vendor.id             MAX
-&device.id             eisa 0x0bf4
-+device.name           103060
-+driver.display                |50-150|30-95
-
- vendor.id             MAX
-&device.id             eisa 0x0bfe
-+device.name           103070
-+driver.display                |50-160|30-95
-
- vendor.id             MAX
-&device.id             eisa 0x0faa
-+device.name           104010
-+driver.display                |50-120|30-54
-
- vendor.id             MAX
-&device.id             eisa 0x0fc8
-+device.name           104040
-+driver.display                |50-90|30-38
-
- vendor.id             MAX
-&device.id             eisa 0x0fe1
-+device.name           104065
-+driver.display                |50-120|30-50
-
- vendor.id             MAX
-&device.id             eisa 0x13a6
-+device.name           105030
-+driver.display                |50-100|30-64
-
- vendor.id             MAX
-&device.id             eisa 0x13ab
-+device.name           105035
-+driver.display                1024x768|50-120|30-69
-
- vendor.id             MAX
-&device.id             eisa 0x13b5
-+device.name           105045
-+driver.display                |50-120|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x13b6
-+device.name           105046
-+driver.display                |50-120|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x13ba
-+device.name           105050
-+driver.display                |50-100|30-64
-
- vendor.id             MAX
-&device.id             eisa 0x13d3
-+device.name           105075
-+driver.display                |50-120|30-69
-
- vendor.id             MAX
-&device.id             eisa 0x13d4
-+device.name           105076
-+driver.display                |50-120|30-69
-
- vendor.id             MAX
-&device.id             eisa 0x13d8
-+device.name           105080
-+driver.display                |50-120|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x15ae
-+device.name           105550
-+driver.display                |50-120|24-69
-
- vendor.id             MAX
-&device.id             eisa 0x15c2
-+device.name           105570
-+driver.display                |50-120|30-69
-
- vendor.id             MAX
-&device.id             eisa 0x15c7
-+device.name           105575
-+driver.display                |50-120|30-69
-
- vendor.id             MAX
-&device.id             eisa 0x15c8
-+device.name           105576
-+driver.display                |50-120|30-69
-
- vendor.id             MAX
-&device.id             eisa 0x15d2
-+device.name           105586
-+driver.display                |50-120|30-69
-
- vendor.id             MAX
-&device.id             eisa 0x15d6
-+device.name           105590
-+driver.display                |50-120|30-85
-
- vendor.id             MAX
-&device.id             eisa 0x15db
-+device.name           105595
-+driver.display                |50-120|30-85
-
- vendor.id             MAX
-&device.id             eisa 0x15dc
-+device.name           105596
-+driver.display                |50-120|30-85
-
- vendor.id             MAX
-&device.id             eisa 0x1784
-+device.name           106020
-+driver.display                |50-150|30-95
-
- vendor.id             MAX
-&device.id             eisa 0x17a2
-+device.name           106050
-+driver.display                |50-120|30-85
-
- vendor.id             MAX
-&device.id             eisa 0x17ac
-+device.name           106060
-+driver.display                |50-160|30-95
-
- vendor.id             MAX
-&device.id             eisa 0x17b6
-+device.name           106070
-+driver.display                |50-180|30-95
-
- vendor.id             MAX
-&device.id             eisa 0x17ca
-+device.name           106090
-+driver.display                |50-150|30-95
-
- vendor.id             MAX
-&device.id             eisa 0x1b62
-+device.name           107010
-+driver.display                |50-160|30-69
-
- vendor.id             MAX
-&device.id             eisa 0x1b67
-+device.name           107015
-+driver.display                |50-160|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x1b6c
-+device.name           107020
-+driver.display                |50-120|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x1b71
-+device.name           107025
-+driver.display                |50-180|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x1b76
-+device.name           107030
-+driver.display                |50-160|30-86
-
- vendor.id             MAX
-&device.id             eisa 0x1b7b
-+device.name           107035
-+driver.display                |50-180|30-95
-
- vendor.id             MAX
-&device.id             eisa 0x1b80
-+device.name           107040
-+driver.display                |50-120|30-85
-
- vendor.id             MAX
-&device.id             eisa 0x1b8a
-+device.name           107050
-+driver.display                |50-160|30-95
-
- vendor.id             MAX
-&device.id             eisa 0x1b94
-+device.name           107060
-+driver.display                |50-120|30-70
-
- vendor.id             MAX
-&device.id             eisa 0x1b99
-+device.name           107065
-+driver.display                |50-160|30-95
-
- vendor.id             MAX
-&device.id             eisa 0x1f4a
-+device.name           108010
-+driver.display                |50-160|30-115
-
- vendor.id             MAX
-&device.id             eisa 0x1f4f
-+device.name           108015
-+driver.display                |50-160|30-115
-
- vendor.id             MAX
-&device.id             eisa 0x1f54
-+device.name           108020
-+driver.display                |50-160|30-107
-
- vendor.id             MAX
-&device.id             eisa 0x1f72
-+device.name           108050
-+driver.display                |50-160|30-95
-
- vendor.id             MAX
-&device.id             eisa 0x1f7c
-+device.name           108060
-+driver.display                |50-160|30-115
-
- vendor.id             MAX
-&device.id             eisa 0x1f9a
-+device.name           108090
-+driver.display                |50-160|30-95
-
- vendor.id             MAX
-&device.id             eisa 0x1f9f
-+device.name           108095
-+driver.display                |50-160|30-95
-
- vendor.id             MAX
-&device.id             eisa 0x3430
-+device.name           105540
-+driver.display                |50-90|30-64
-
- vendor.id             MAX
-&device.id             eisa 0x3539
-+device.name           105095
-+driver.display                |55-90|30-64
-
- vendor.id             MAX
-&device.id             eisa 0x4065
-+device.name           10 40 65
-+driver.display                |50-120|30-50
-
- vendor.id             MAX
-&device.id             eisa 0x5620
-+device.name           105065
-+driver.display                |50-100|30-64
-
- vendor.id             MAX
-&device.id             eisa 0x5624
-+device.name           105066
-+driver.display                |50-120|30-64
-
- vendor.id             MAX
-&device.id             eisa 0x7555
-+device.name           10 55 75
-+driver.display                |50-120|30-69
-
- vendor.id             MEI
-+vendor.name           PANASONIC
-
- vendor.id             MEI
-&device.id             eisa 0x0c81
-+device.name           P70
-+driver.display                |50-180|30-95
-
- vendor.id             MEI
-&device.id             eisa 0x0c96
-+device.name           SL70I(TX-D7S36)
-+driver.display                |50-180|30-70
-
- vendor.id             MEI
-&device.id             eisa 0x0c9b
-+device.name           PL70I(TX-D7S55)
-+driver.display                |50-180|30-97
-
- vendor.id             MEI
-&device.id             eisa 0x1007
-+device.name           PF70
-+driver.display                |50-160|30-86
-
- vendor.id             MEI
-&device.id             eisa 0x120d
-+device.name           SL90 (TX-D9S54)
-+driver.display                |50-180|30-95
-
- vendor.id             MEI
-&device.id             eisa 0x1604
-+device.name           TX-D2151W-ES
-+driver.display                |50-160|30-82
-
- vendor.id             MEI
-&device.id             eisa 0x1610
-+device.name           TX-D2151NM
-+driver.display                |50-160|30-82
-
- vendor.id             MEI
-&device.id             eisa 0x1649
-+device.name           S110
-+driver.display                |50-180|30-95
-
- vendor.id             MEI
-&device.id             eisa 0x1e02
-+device.name           LC40
-+driver.display                |50-77|24-61
-
- vendor.id             MEI
-&device.id             eisa 0x1e07
-+device.name           LC50S (TX-D5L31F)
-+driver.display                |50-77|30-61
-
- vendor.id             MEI
-&device.id             eisa 0x2622
-+device.name           S15
-+driver.display                |50-120|30-67
-
- vendor.id             MEI
-&device.id             eisa 0x2632
-+device.name           P50
-+driver.display                |50-180|30-69
-
- vendor.id             MEI
-&device.id             eisa 0x2637
-+device.name           E50
-+driver.display                |50-120|30-61
-
- vendor.id             MEL
-+vendor.name           MITSUBISHI
-
- vendor.id             MEL
-&device.id             eisa 0x0040
-+device.name           DIAMOND PRO 21TX (THN9105)
-+driver.display                |50-152|30-93
-
- vendor.id             MEL
-&device.id             eisa 0x1040
-+device.name           RD21G
-+driver.display                |50-152|30-93
-
- vendor.id             MEL
-&device.id             eisa 0x2040
-+device.name           DIAMOND PRO 20X (FR8905)
-+driver.display                |50-120|30-82
-
- vendor.id             MEL
-&device.id             eisa 0x4040
-+device.name           DIAMOND PRO 17TX (TFG8705)
-+driver.display                |50-152|30-86
-
- vendor.id             MEL
-&device.id             eisa 0x4064
-+device.name           DIAMOND PRO 67TXV (TFV6705)
-+driver.display                |50-130|30-69
-
- vendor.id             MEL
-&device.id             eisa 0x4065
-+device.name           RD17GR
-+driver.display                |55-125|30-69
-
- vendor.id             MEL
-&device.id             eisa 0x408f
-+device.name           DIAMOND SCAN 15VX (SD58XX)
-+driver.display                |50-100|30-65
-
- vendor.id             MEL
-&device.id             eisa 0x409f
-+device.name           RD15M
-+driver.display                |50-100|30-65
-
- vendor.id             MEL
-&device.id             eisa 0x40c0
-+device.name           DIAMOND PRO 87TXM (TFM8705)
-+driver.display                |50-130|30-86
-
- vendor.id             MEL
-&device.id             eisa 0x40e0
-+device.name           DIAMOND PRO 91TXM (TFW9105)
-+driver.display                |50-130|30-95
-
- vendor.id             MEL
-&device.id             eisa 0x40e1
-+device.name           DIAMOND PLUS 100 (TFW1105)
-+driver.display                |50-152|30-108
-
- vendor.id             MEL
-&device.id             eisa 0x40f0
-+device.name           RD21GII
-+driver.display                |50-152|30-95
-
- vendor.id             MEL
-&device.id             eisa 0x40f1
-+device.name           RD21GX
-+driver.display                |50-132|30-86
-
- vendor.id             MEL
-&device.id             eisa 0x4100
-+device.name           DIAMOND PRO 1000 (TFX1105)
-+driver.display                |50-152|30-115
-
- vendor.id             MEL
-&device.id             eisa 0x4101
-+device.name           DIAMOND PRO 1010 (TUX1107)
-+driver.display                |50-152|30-115
-
- vendor.id             MEL
-&device.id             eisa 0x4120
-+device.name           SPECTRAVIEW 1000
-+driver.display                |50-130|30-95
-
- vendor.id             MEL
-&device.id             eisa 0x4140
-+device.name           RD21GIII
-+driver.display                |50-152|30-115
-
- vendor.id             MEL
-&device.id             eisa 0x4141
-+device.name           RD21GH
-+driver.display                |50-152|30-115
-
- vendor.id             MEL
-&device.id             eisa 0x4150
-+device.name           RD17GZ
-+driver.display                |50-130|30-86
-
- vendor.id             MEL
-&device.id             eisa 0x4160
-+device.name           DIAMOND PLUS 72 (TFV-8705)
-+driver.display                |50-130|30-86
-
- vendor.id             MEL
-&device.id             eisa 0x4190
-+device.name           DIAMOND PLUS 70 (TF-7700P)
-+driver.display                |50-180|30-70
-
- vendor.id             MEL
-&device.id             eisa 0x41b0
-+device.name           RDT151
-
- vendor.id             MEL
-&device.id             eisa 0x41b3
-+device.name           TFT MONITOR RDT150S
-
- vendor.id             MEL
-&device.id             eisa 0x41f0
-+device.name           DIAMOND SCAN 50 (SD5904)
-+driver.display                |50-100|30-70
-
- vendor.id             MEL
-&device.id             eisa 0x4210
-+device.name           DIAMOND SCAN 70 (SD7704)
-+driver.display                |50-100|30-70
-
- vendor.id             MEL
-&device.id             eisa 0x42d0
-+device.name           TFT MONITOR RDT180S
-
- vendor.id             MEL
-&device.id             eisa 0x5040
-+device.name           RD17GII
-+driver.display                |50-152|24-86
-
- vendor.id             MEL
-&device.id             eisa 0x6040
-+device.name           RD17F
-+driver.display                |50-130|30-82
-
- vendor.id             MEL
-&device.id             eisa 0x6140
-+device.name           DIAMOND SCAN 17HX (FFF8705)
-+driver.display                |50-130|30-82
-
- vendor.id             MEL
-&device.id             eisa 0x8040
-+device.name           DIAMOND SCAN 15HX (SD57XXC)
-
- vendor.id             MEL
-&device.id             eisa 0x9040
-+device.name           RD15G
-+driver.display                |50-120|30-65
-
- vendor.id             MIR
-+vendor.name           MIRO
-
- vendor.id             MIR
-&device.id             eisa 0x0721
-+device.name           PROOFSCREEN MIROC21107
-
- vendor.id             MIR
-&device.id             eisa 0x6815
-+device.name           miroD1568
-
- vendor.id             MIR
-&device.id             eisa 0x6817
-+device.name           PROOFSCREEN MIROC1768
-+driver.display                |50-100|29-68
-
- vendor.id             MIR
-&device.id             eisa 0x6917
-+device.name           miroD1769
-
- vendor.id             MIR
-&device.id             eisa 0x8217
-+device.name           PROOFSCREEN MIROC1782
-+driver.display                |50-120|29-82
-
- vendor.id             MIR
-&device.id             eisa 0x8520
-+device.name           PROOFSCREEN MIROC2085 E
-+driver.display                |50-160|29-85
-
- vendor.id             MIR
-&device.id             eisa 0x8521
-+device.name           PROOFSCREEN MIROC2185
-+driver.display                |50-152|30-85
-
- vendor.id             MIR
-&device.id             eisa 0x9321
-+device.name           PROOFSCREEN MIROC2193
-+driver.display                |50-150|30-93
-
- vendor.id             MIR
-&device.id             eisa 0xa785
-+device.name           A1785F
-+driver.display                |50-100|30-85
-
- vendor.id             MTC
-+vendor.name           MITAC
-
- vendor.id             MTC
-&device.id             eisa 0x0001
-+device.name           1450FV
-+driver.display                |50-90|31-50
-
- vendor.id             MTC
-&device.id             eisa 0x0002
-+device.name           1564FD/1564FS
-+driver.display                |50-100|30-66
-
- vendor.id             MTC
-&device.id             eisa 0x0003
-+device.name           1450FD
-+driver.display                |50-90|31-50
-
- vendor.id             NAN
-+vendor.name           NANAO
-
- vendor.id             NAN
-&device.id             eisa 0x0000
-+device.name           USA FLEXSCAN T2-20
-+driver.display                |55-160|30-85
-
- vendor.id             NAN
-&device.id             eisa 0x0400
-+device.name           USA F2-15
-
- vendor.id             NAN
-&device.id             eisa 0x0401
-+device.name           USA F2-17
-
- vendor.id             NAN
-&device.id             eisa 0x0402
-+device.name           USA F2-17EX
-
- vendor.id             NAN
-&device.id             eisa 0x0403
-+device.name           USA F2-21
-
- vendor.id             NAN
-&device.id             eisa 0x0404
-+device.name           USA FX2-21
-
- vendor.id             NAN
-&device.id             eisa 0x0405
-+device.name           USA FLEXSCAN T2-17TS
-
- vendor.id             NAN
-&device.id             eisa 0x0406
-+device.name           FLEXSCAN 6600
-+driver.display                |70-90|56-110
-
- vendor.id             NAN
-&device.id             eisa 0x0502
-+device.name           NANAO 9060S
-
- vendor.id             NAN
-&device.id             eisa 0x0503
-+device.name           9065S
-+driver.display                |50-90|30-50
-
- vendor.id             NAN
-&device.id             eisa 0x0506
-+device.name           NANAO 9070U
-
- vendor.id             NAN
-&device.id             eisa 0x0507
-+device.name           NANAO 9080i
-
- vendor.id             NAN
-&device.id             eisa 0x0508
-+device.name           9400I
-+driver.display                |55-90|30-65
-
- vendor.id             NAN
-&device.id             eisa 0x0509
-+device.name           9500
-+driver.display                |55-90|30-78
-
- vendor.id             NAN
-&device.id             eisa 0x050a
-+device.name           FLEXSCAN F340IW
-
- vendor.id             NAN
-&device.id             eisa 0x050b
-+device.name           NANAO FlexScan F550i
-
- vendor.id             NAN
-&device.id             eisa 0x050c
-+device.name           FLEXSCAN F550IW
-+driver.display                |55-90|30-65
-
- vendor.id             NAN
-&device.id             eisa 0x050d
-+device.name           FLEXSCAN F560IW
-+driver.display                |55-90|30-82
-
- vendor.id             NAN
-&device.id             eisa 0x050e
-+device.name           FLEXSCAN F750I
-+driver.display                |55-90|30-80
-
- vendor.id             NAN
-&device.id             eisa 0x050f
-+device.name           FLEXSCAN F760IW
-+driver.display                |55-90|30-78
-
- vendor.id             NAN
-&device.id             eisa 0x0510
-+device.name           FLEXSCAN F780IW
-+driver.display                |55-120|45-100
-
- vendor.id             NAN
-&device.id             eisa 0x0511
-+device.name           FLEXSCAN T560I
-+driver.display                |55-90|30-82
-
- vendor.id             NAN
-&device.id             eisa 0x0512
-+device.name           FLEXSCAN T660I
-+driver.display                |55-90|30-78
-
- vendor.id             NAN
-&device.id             eisa 0x0513
-+device.name           USA FLEXSCAN T2-17
-+driver.display                |55-160|30-85
-
- vendor.id             NAN
-&device.id             eisa 0x0514
-+device.name           NANAO USA FlexScan T2-20
-
- vendor.id             NAN
-&device.id             eisa 0x0580
-+device.name           USA FLEXSCAN 6300
-+driver.display                |55-90|56-80
-
- vendor.id             NAN
-&device.id             eisa 0x0800
-+device.name           FLEXSCAN 33F
-
- vendor.id             NAN
-&device.id             eisa 0x0802
-+device.name           FLEXSCAN 88F
-
- vendor.id             NAN
-&device.id             eisa 0x0805
-+device.name           FLEXSCAN 54T
-
- vendor.id             NAN
-&device.id             eisa 0x0882
-+device.name           FLEXSCAN 52F
-
- vendor.id             NAN
-&device.id             eisa 0x0900
-+device.name           FLEXSCAN 6500
-+driver.display                |55-90|56-80
-
- vendor.id             NAN
-&device.id             eisa 0x0902
-+device.name           9060S
-
- vendor.id             NAN
-&device.id             eisa 0x0906
-+device.name           9070U
-+driver.display                |50-90|20-50
-
- vendor.id             NAN
-&device.id             eisa 0x0907
-+device.name           9080I
-+driver.display                |55-90|30-64
-
- vendor.id             NAN
-&device.id             eisa 0x090a
-+device.name           FLEXSCAN F347
-
- vendor.id             NAN
-&device.id             eisa 0x090b
-+device.name           FLEXSCAN F550I
-+driver.display                |55-90|30-65
-
- vendor.id             NAN
-&device.id             eisa 0x090c
-+device.name           FLEXSCAN F557
-
- vendor.id             NAN
-&device.id             eisa 0x090f
-+device.name           FLEXSCAN 77F
-
- vendor.id             NAN
-&device.id             eisa 0x0910
-+device.name           FLEXSCAN F780IJ
-+driver.display                |55-120|45-100
-
- vendor.id             NAN
-&device.id             eisa 0x0911
-+device.name           FLEXSCAN T560IJ
-+driver.display                |55-90|30-82
-
- vendor.id             NAN
-&device.id             eisa 0x0912
-+device.name           FLEXSCAN T660IJ
-+driver.display                |55-90|30-82
-
- vendor.id             NAN
-&device.id             eisa 0x0913
-+device.name           FLEXSCAN 56T
-+driver.display                |55-160|30-85
-
- vendor.id             NAN
-&device.id             eisa 0x0914
-+device.name           FLEXSCAN 68T
-+driver.display                |55-160|30-85
-
- vendor.id             NAN
-&device.id             eisa 0x098a
-+device.name           FLEXSCAN F347II
-
- vendor.id             NAN
-&device.id             eisa 0x098c
-+device.name           FLEXSCAN 55F
-
- vendor.id             NAN
-&device.id             eisa 0x098f
-+device.name           FLEXSCAN 76F
-+driver.display                |55-90|30-78
-
- vendor.id             NAN
-&device.id             eisa 0x0991
-+device.name           FLEXSCAN T567
-+driver.display                |55-90|30-82
-
- vendor.id             NAN
-&device.id             eisa 0x0993
-+device.name           FLEXSCAN 53T
-+driver.display                |55-160|30-85
-
- vendor.id             NAN
-&device.id             eisa 0x1212
-+device.name           FLEXSCAN E151L
-+driver.display                |50-85|24-61
-
- vendor.id             NAN
-&device.id             eisa 0x1218
-+device.name           FLEXSCAN E76F
-+driver.display                |50-160|30-110
-
- vendor.id             NAN
-&device.id             eisa 0x1220
-+device.name           FLEXSCAN E54F
-+driver.display                |50-160|30-96
-
- vendor.id             NEC
-+vendor.name           NEC
-
- vendor.id             NEC
-&device.id             eisa 0x000a
-+device.name           INTEGRIERTER PC-9821XC13/S5
-+driver.display                |50-63|27-59
-
- vendor.id             NEC
-&device.id             eisa 0x0014
-+device.name           D171
-+driver.display                |50-63|27-59
-
- vendor.id             NEC
-&device.id             eisa 0x001e
-+device.name           NEC INTEGRIERTER PC-9821CT16
-+driver.display                |50-70|27-59
-
- vendor.id             NEC
-&device.id             eisa 0x0032
-+device.name           D17A1
-+driver.display                |50-63|27-59
-
- vendor.id             NEC
-&device.id             eisa 0x0046
-+device.name           D17C2
-+driver.display                |50-63|27-59
-
- vendor.id             NEC
-&device.id             eisa 0x0050
-+device.name           D15A1
-+driver.display                |50-63|27-59
-
- vendor.id             NEC
-&device.id             eisa 0x005a
-+device.name           D17B1
-+driver.display                |50-63|27-59
-
- vendor.id             NEC
-&device.id             eisa 0x006e
-+device.name           DV15A1
-+driver.display                |60-75|30-63
-
- vendor.id             NEC
-&device.id             eisa 0x0078
-+device.name           DV17A1
-+driver.display                |60-75|30-67
-
- vendor.id             NEC
-&device.id             eisa 0x0082
-+device.name           DV17B1
-+driver.display                |60-75|30-67
-
- vendor.id             NEC
-&device.id             eisa 0x008c
-+device.name           DV17C1
-+driver.display                |60-75|30-67
-
- vendor.id             NEC
-&device.id             eisa 0x0096
-+device.name           DV17C2
-+driver.display                |60-75|30-83
-
- vendor.id             NEC
-&device.id             eisa 0x00a0
-+device.name           F14T1
-+driver.display                |60-75|24-63
-
- vendor.id             NEC
-&device.id             eisa 0x00aa
-+device.name           DV15D1
-+driver.display                |60-75|30-63
-
- vendor.id             NEC
-&device.id             eisa 0x00c8
-+device.name           PK-DH172
-+driver.display                |60-85|30-63
-
- vendor.id             NEC
-&device.id             eisa 0x00dc
-+device.name           F14T2H
-+driver.display                |59-76|31-61
-
- vendor.id             NEC
-&device.id             eisa 0x00e6
-+device.name           F14T2L
-+driver.display                |59-76|31-61
-
- vendor.id             NEC
-&device.id             eisa 0x0190
-+device.name           D172
-+driver.display                |50-63|27-59
-
- vendor.id             NEC
-&device.id             eisa 0x019a
-+device.name           DV15A2
-+driver.display                |59-86|30-71
-
- vendor.id             NEC
-&device.id             eisa 0x01a4
-+device.name           DV17C3
-+driver.display                |59-86|30-71
-
- vendor.id             NEC
-&device.id             eisa 0x01ae
-+device.name           DV17B2
-+driver.display                |59-86|30-71
-
- vendor.id             NEC
-&device.id             eisa 0x0320
-+device.name           MULTISYNC LT80
-+driver.display                |50-85|15-60
-
- vendor.id             NEC
-&device.id             eisa 0x0afa
-+device.name           DH28W2
-+driver.display                |60-75|30-38
-
- vendor.id             NEC
-&device.id             eisa 0x0c8a
-+device.name           DH32W2
-+driver.display                |60-75|30-38
-
- vendor.id             NEC
-&device.id             eisa 0x1d4d
-+device.name           MULTISYNC 50
-+driver.display                |55-120|31-69
-
- vendor.id             NEC
-&device.id             eisa 0x1e15
-+device.name           MULTISYNC 70
-+driver.display                |55-120|31-69
-
- vendor.id             NEC
-&device.id             eisa 0x1fa4
-+device.name           MULTISYNC MT810
-+driver.display                |50-85|15-60
-
- vendor.id             NEC
-&device.id             eisa 0x2710
-+device.name           MULTISYNC MT1000
-+driver.display                |50-85|15-80
-
- vendor.id             NEC
-&device.id             eisa 0x2fb2
-+device.name           LCD200
-+driver.display                |53-85|24-62
-
- vendor.id             NEC
-&device.id             eisa 0x3782
-+device.name           MULTISYNC LCD400
-+driver.display                |55-86|24-60
-
- vendor.id             NEC
-&device.id             eisa 0x378c
-+device.name           MULTISYNC LCD400V
-+driver.display                |55-86|24-60
-
- vendor.id             NEC
-&device.id             eisa 0x37fa
-+device.name           NEC MultiSync XV14
-
- vendor.id             NEC
-&device.id             eisa 0x37fb
-+device.name           MULTISYNC XV14
-+driver.display                |55-100|30-57
-
- vendor.id             NEC
-&device.id             eisa 0x3a66
-+device.name           MULTISYNC C400
-+driver.display                |47-120|30-64
-
- vendor.id             NEC
-&device.id             eisa 0x3c00
-+device.name           NEC MultiSync XE15
-
- vendor.id             NEC
-&device.id             eisa 0x3c0a
-+device.name           MULTISYNC XP15
-+driver.display                |55-160|31-65
-
- vendor.id             NEC
-&device.id             eisa 0x3c14
-+device.name           MULTISYNC XV15
-+driver.display                |55-100|31-65
-
- vendor.id             NEC
-&device.id             eisa 0x3c1e
-+device.name           MULTISYNC XE15
-+driver.display                |55-120|31-65
-
- vendor.id             NEC
-&device.id             eisa 0x3d5e
-+device.name           MULTISYNC XV15+
-+driver.display                |55-100|31-65
-
- vendor.id             NEC
-&device.id             eisa 0x3d68
-+device.name           MULTISYNC M500
-+driver.display                |55-120|30-69
-
- vendor.id             NEC
-&device.id             eisa 0x3d7c
-+device.name           MULTISYNC V500
-+driver.display                |55-100|31-65
-
- vendor.id             NEC
-&device.id             eisa 0x3d86
-+device.name           MULTISYNC E500
-+driver.display                |55-120|31-69
-
- vendor.id             NEC
-&device.id             eisa 0x3d90
-+device.name           MULTISYNC A500
-+driver.display                |55-120|31-65
-
- vendor.id             NEC
-&device.id             eisa 0x3e4e
-+device.name           MULTISYNC C500
-+driver.display                |47-120|30-64
-
- vendor.id             NEC
-&device.id             eisa 0x3e53
-+device.name           CS500-MULTIMEDIAMONITOR
-+driver.display                |50-120|30-64
-
- vendor.id             NEC
-&device.id             eisa 0x43a8
-+device.name           NEC MultiSync XE17
-
- vendor.id             NEC
-&device.id             eisa 0x43b2
-+device.name           MULTISYNC XE17
-+driver.display                |55-120|31-65
-
- vendor.id             NEC
-&device.id             eisa 0x43bc
-+device.name           MULTISYNC XV17
-+driver.display                |55-100|31-65
-
- vendor.id             NEC
-&device.id             eisa 0x43c6
-+device.name           MULTISYNC M700
-+driver.display                |55-120|30-69
-
- vendor.id             NEC
-&device.id             eisa 0x43d0
-+device.name           MULTISYNC A700
-+driver.display                |55-120|31-65
-
- vendor.id             NEC
-&device.id             eisa 0x4416
-+device.name           MULTISYNC XP17
-+driver.display                |55-160|31-82
-
- vendor.id             NEC
-&device.id             eisa 0x4420
-+device.name           MULTISYNC P750
-+driver.display                |55-160|31-94
-
- vendor.id             NEC
-&device.id             eisa 0x442a
-+device.name           MULTISYNC XV17+ (-2)
-+driver.display                |55-100|31-82
-
- vendor.id             NEC
-&device.id             eisa 0x4434
-+device.name           MULTISYNC E700
-+driver.display                |55-120|31-82
-
- vendor.id             NEC
-&device.id             eisa 0x4bd2
-+device.name           MULTISYNC E900
-+driver.display                |55-120|31-92
-
- vendor.id             NEC
-&device.id             eisa 0x4bdc
-+device.name           MULTISYNC E900+
-+driver.display                |55-160|31-96
-
- vendor.id             NEC
-&device.id             eisa 0x4be6
-+device.name           MULTISYNC A900
-+driver.display                |55-160|31-92
-
- vendor.id             NEC
-&device.id             eisa 0x4bf0
-+device.name           MULTISYNC 90
-+driver.display                |55-160|31-92
-
- vendor.id             NEC
-&device.id             eisa 0x4f56
-+device.name           MULTISYNC LCD2000
-+driver.display                |55-85|24-81
-
- vendor.id             NEC
-&device.id             eisa 0x4f60
-+device.name           MULTISYNC LCD2010
-+driver.display                |55-85|24-81
-
- vendor.id             NEC
-&device.id             eisa 0x533e
-+device.name           MULTISYNC XE21
-+driver.display                |55-120|31-69
-
- vendor.id             NEC
-&device.id             eisa 0x53b6
-+device.name           MULTISYNC XP21
-+driver.display                |55-160|31-89
-
- vendor.id             NEC
-&device.id             eisa 0x53c0
-+device.name           MULTISYNC E1100
-+driver.display                |55-120|31-82
-
- vendor.id             NEC
-&device.id             eisa 0x53ca
-+device.name           MULTISYNC P1150
-+driver.display                |55-160|31-94
-
- vendor.id             NEC
-&device.id             eisa 0x53de
-+device.name           MULTISYNC E1100+
-+driver.display                |55-160|31-96
-
- vendor.id             NEC
-&device.id             eisa 0x53e8
-+device.name           MULTISYNC P1250+
-+driver.display                |55-160|31-110
-
- vendor.id             NEC
-&device.id             eisa 0xea69
-+device.name           C900
-+driver.display                |50-150|30-95
-
- vendor.id             NEC
-&device.id             eisa 0xea8b
-+device.name           VISTASCAN 7000
-+driver.display                |50-120|30-69
-
- vendor.id             NOK
-+vendor.name           NOKIA
-
- vendor.id             NOK
-&device.id             eisa 0x008d
-+device.name           NOKIA 449M
-
- vendor.id             NOK
-&device.id             eisa 0x0098
-+device.name           NOKIA 449X
-
- vendor.id             NOK
-&device.id             eisa 0x00a3
-+device.name           NOKIA 447KC
-
- vendor.id             NOK
-&device.id             eisa 0x00a9
-+device.name           447XI
-+driver.display                |45-150|31-92
-
- vendor.id             NOK
-&device.id             eisa 0x00ab
-+device.name           NOKIA 447KA
-
- vendor.id             NOK
-&device.id             eisa 0x00ad
-+device.name           447M
-+driver.display                |55-110|31-64
-
- vendor.id             NOK
-&device.id             eisa 0x00b7
-+device.name           447W
-+driver.display                |48-100|31-85
-
- vendor.id             NOK
-&device.id             eisa 0x00b8
-+device.name           NOKIA 447X
-
- vendor.id             NOK
-&device.id             eisa 0x00bb
-+device.name           NOKIA 447XAV
-
- vendor.id             NOK
-&device.id             eisa 0x00bc
-+device.name           NOKIA 447K
-
- vendor.id             NOK
-&device.id             eisa 0x00d2
-+device.name           NOKIA 445R
-
- vendor.id             OQI
-+vendor.name           OPTIQUEST
-
- vendor.id             OQI
-&device.id             eisa 0x3138
-+device.name           VA656
-+driver.display                |50-120|30-69
-
- vendor.id             OQI
-&device.id             eisa 0x3141
-+device.name           OPTIQUEST 14ES
-
- vendor.id             OQI
-&device.id             eisa 0x3232
-+device.name           1562A-2
-
- vendor.id             OQI
-&device.id             eisa 0x3233
-+device.name           OPTIQUEST 1769DC
-
- vendor.id             OQI
-&device.id             eisa 0x3234
-+device.name           1000S
-
- vendor.id             OQI
-&device.id             eisa 0x3332
-+device.name           V655
-+driver.display                |50-100|30-66
-
- vendor.id             OQI
-&device.id             eisa 0x3333
-+device.name           V775
-+driver.display                |50-130|30-82
-
- vendor.id             OQI
-&device.id             eisa 0x3432
-+device.name           OPTIQUEST V650
-
- vendor.id             OQI
-&device.id             eisa 0x3832
-+device.name           OPTIQUEST V665
-
- vendor.id             OQI
-&device.id             eisa 0x4132
-+device.name           V641
-
- vendor.id             OQI
-&device.id             eisa 0x4136
-+device.name           Q41
-+driver.display                |50-90|30-48
-
- vendor.id             OQI
-&device.id             eisa 0x4432
-+device.name           V655-2
-+driver.display                |50-100|30-65
-
- vendor.id             OQI
-&device.id             eisa 0x4433
-+device.name           Q53
-+driver.display                |50-100|30-70
-
- vendor.id             OQI
-&device.id             eisa 0x4434
-+device.name           V655-3
-+driver.display                |50-100|30-70
-
- vendor.id             OQI
-&device.id             eisa 0x4435
-+device.name           Q51
-+driver.display                |50-100|30-54
-
- vendor.id             OQI
-&device.id             eisa 0x4436
-+device.name           V55
-+driver.display                |50-160|30-70
-
- vendor.id             OQI
-&device.id             eisa 0x4637
-+device.name           1769DC
-+driver.display                |50-120|30-69
-
- vendor.id             OQI
-&device.id             eisa 0x4732
-+device.name           V775-2
-+driver.display                |50-120|30-85
-
- vendor.id             OQI
-&device.id             eisa 0x4733
-+device.name           V773
-+driver.display                |50-160|30-69
-
- vendor.id             OQI
-&device.id             eisa 0x4735
-+device.name           Q71
-+driver.display                |50-120|30-70
-
- vendor.id             OQI
-&device.id             eisa 0x4736
-+device.name           V773-2
-+driver.display                |50-180|30-70
-
- vendor.id             OQI
-&device.id             eisa 0x4738
-+device.name           Q71-2
-+driver.display                |50-120|30-70
-
- vendor.id             OQI
-&device.id             eisa 0x4739
-+device.name           V75
-+driver.display                |50-160|30-96
-
- vendor.id             OQI
-&device.id             eisa 0x4a31
-+device.name           Q100
-+driver.display                |50-120|30-86
-
- vendor.id             OQI
-&device.id             eisa 0x4a32
-+device.name           V95
-+driver.display                |50-150|30-95
-
- vendor.id             OQI
-&device.id             eisa 0x4d31
-+device.name           V115
-+driver.display                |50-160|30-95
-
- vendor.id             OQI
-&device.id             eisa 0x4d32
-+device.name           V115T
-+driver.display                |50-150|30-96
-
- vendor.id             OQI
-&device.id             eisa 0x5634
-+device.name           V73
-+driver.display                |50-160|30-70
-
- vendor.id             PBN
-+vendor.name           PACKARD
-
- vendor.id             PBN
-&device.id             eisa 0x4234
-+device.name           BELL 1024S
-+driver.display                |50-90|30-50
-
- vendor.id             PBN
-&device.id             eisa 0x4483
-+device.name           BELL PLUG & PLAY 4480
-+driver.display                |55-75|30-50
-
- vendor.id             PBN
-&device.id             eisa 0x5234
-+device.name           BELL PLUG & PLAY 2024S
-+driver.display                |50-90|30-54
-
- vendor.id             PBN
-&device.id             eisa 0x5483
-+device.name           BELL PLUG & PLAY 5480
-+driver.display                |50-90|30-69
-
- vendor.id             PBN
-&device.id             eisa 0x7483
-+device.name           BELL PLUG & PLAY 7480
-+driver.display                |50-90|30-69
-
- vendor.id             PGS
-+vendor.name           PRINCETON
-
- vendor.id             PGS
-&device.id             eisa 0x003b
-+device.name           GRAPHIC SYSTEMS EO15
-+driver.display                |50-120|30-70
-
- vendor.id             PGS
-&device.id             eisa 0x003c
-+device.name           GRAPHIC SYSTEMS EO75
-+driver.display                |50-120|30-95
-
- vendor.id             PGS
-&device.id             eisa 0x003d
-+device.name           GRAPHIC SYSTEMS EO17
-+driver.display                |50-120|30-70
-
- vendor.id             PGS
-&device.id             eisa 0x004d
-+device.name           GRAPHIC SYSTEMS ULTRA 50
-+driver.display                |50-90|30-50
-
- vendor.id             PGS
-&device.id             eisa 0x004e
-+device.name           GRAPHIC SYSTEMS EO40
-+driver.display                |50-90|30-50
-
- vendor.id             PGS
-&device.id             eisa 0x004f
-+device.name           GRAPHIC SYSTEMS EO50
-+driver.display                |50-120|30-70
-
- vendor.id             PGS
-&device.id             eisa 0x0050
-+device.name           GRAPHIC SYSTEMS EO70
-+driver.display                |50-120|30-70
-
- vendor.id             PGS
-&device.id             eisa 0x0051
-+device.name           GRAPHIC SYSTEMS ULTRA 40
-+driver.display                |50-90|30-50
-
- vendor.id             PGS
-&device.id             eisa 0x0052
-+device.name           GRAPHIC SYSTEMS EO72
-+driver.display                |50-120|30-70
-
- vendor.id             PGS
-&device.id             eisa 0x008b
-+device.name           GRAPHIC SYSTEMS C2001
-+driver.display                |50-160|30-107
-
- vendor.id             PGS
-&device.id             eisa 0x008e
-+device.name           GRAPHIC SYSTEMS EO500
-+driver.display                |50-120|30-70
-
- vendor.id             PGS
-&device.id             eisa 0x008f
-+device.name           GRAPHIC SYSTEMS EO710
-+driver.display                |50-120|30-70
-
- vendor.id             PGS
-&device.id             eisa 0x009d
-+device.name           GRAPHIC SYSTEMS EO400
-+driver.display                |50-90|30-54
-
- vendor.id             PGS
-&device.id             eisa 0x00b6
-+device.name           GRAPHIC SYSTEMS EO700
-+driver.display                |50-120|30-70
-
- vendor.id             PGS
-&device.id             eisa 0x00b7
-+device.name           GRAPHIC SYSTEMS EO720
-+driver.display                |50-120|30-70
-
- vendor.id             PHL
-+vendor.name           PHILIPS
-
- vendor.id             PHL
-&device.id             eisa 0x0107
-+device.name           BRILLIANCE 107 (17 ZOLL/CM8800)
-+driver.display                |50-160|30-86
-
- vendor.id             PHL
-&device.id             eisa 0x0200
-+device.name           CM0200 (15C)
-+driver.display                |50-100|31-48
-
- vendor.id             PHL
-&device.id             eisa 0x0201
-+device.name           BRILLIANCE 201CS
-+driver.display                |50-170|30-107
-
- vendor.id             PHL
-&device.id             eisa 0x0500
-+device.name           CM0500 (20C)
-+driver.display                |50-120|31-64
-
- vendor.id             PHL
-&device.id             eisa 0x0700
-+device.name           CM0700 (20T)
-+driver.display                |50-160|30-90
-
- vendor.id             PHL
-&device.id             eisa 0x0800
-+device.name           CM0800 (15B)
-+driver.display                |50-100|30-58
-
- vendor.id             PHL
-&device.id             eisa 0x104b
-+device.name           104B (14 ZOLL/CM1300)
-+driver.display                |50-110|30-54
-
- vendor.id             PHL
-&device.id             eisa 0x105a
-+device.name           BRILLIANCE 105 (15 ZOLL/CM2200)
-+driver.display                |50-120|30-69
-
- vendor.id             PHL
-&device.id             eisa 0x105c
-+device.name           105S (15 ZOLL/CM1300)
-+driver.display                |50-110|30-54
-
- vendor.id             PHL
-&device.id             eisa 0x107c
-+device.name           107S (17 ZOLL/CM6800)
-+driver.display                |50-130|30-66
-
- vendor.id             PHL
-&device.id             eisa 0x1107
-+device.name           BRILLIANCE 107 (PRODUCT ID 17A58...)
-+driver.display                |50-160|30-95
-
- vendor.id             PHL
-&device.id             eisa 0x1109
-+device.name           BRILLIANCE 109 (PRODUCT ID 19A58...)
-+driver.display                |50-160|30-95
-
- vendor.id             PHL
-&device.id             eisa 0x1200
-+device.name           CM1200 (15A)
-+driver.display                |50-110|31-66
-
- vendor.id             PHL
-&device.id             eisa 0x1800
-+device.name           CM1800 (15A)
-+driver.display                |50-110|31-66
-
- vendor.id             PHL
-&device.id             eisa 0x2000
-+device.name           CM0200 (14B)
-+driver.display                |50-100|31-48
-
- vendor.id             PHL
-&device.id             eisa 0x200d
-+device.name           200T (20 ZOLL/CM0700)
-+driver.display                |50-160|30-90
-
- vendor.id             PHL
-&device.id             eisa 0x201a
-+device.name           BRILLIANCE 201 (21 ZOLL/CM1700)
-
- vendor.id             PHL
-&device.id             eisa 0x201b
-+device.name           201B (21 ZOLL/CM0770)
-+driver.display                |48-160|30-94
-
- vendor.id             PHL
-&device.id             eisa 0x2600
-+device.name           17TCM26
-+driver.display                |50-100|30-66
-
- vendor.id             PHL
-&device.id             eisa 0x2800
-+device.name           17BCM28
-+driver.display                |50-130|30-66
-
- vendor.id             PHL
-&device.id             eisa 0x3109
-+device.name           MAGNAVOX 109S
-+driver.display                |50-160|30-95
-
- vendor.id             PHL
-&device.id             eisa 0x3800
-+device.name           17ACM38
-+driver.display                |50-160|30-82
-
- vendor.id             PHL
-&device.id             eisa 0x4109
-+device.name           109S
-+driver.display                |50-160|30-95
-
- vendor.id             PHL
-&device.id             eisa 0x4500
-+device.name           BRILLIANCE AX4500 (14.5 LCD-MONITOR)
-+driver.display                |56-75|30-60
-
- vendor.id             PHL
-&device.id             eisa 0x5600
-+device.name           CM5600 (20B)
-+driver.display                |50-120|31-82
-
- vendor.id             PHL
-&device.id             eisa 0x5f1f
-+device.name           29PX8031 MONITOR/TV
-
- vendor.id             PHL
-&device.id             eisa 0x6800
-+device.name           107B (17 ZOLL/CM6800)
-+driver.display                |50-130|30-69
-
- vendor.id             PHL
-&device.id             eisa 0x700b
-+device.name           CM0700 (21B)
-+driver.display                |50-160|30-94
-
- vendor.id             PHL
-&device.id             eisa 0x8000
-+device.name           CM0800 (14A)
-+driver.display                |50-100|30-58
-
- vendor.id             PHL
-&device.id             eisa 0xa15b
-+device.name           105B (15 ZOLL/CM1200)
-+driver.display                |50-110|30-66
-
- vendor.id             PHL
-&device.id             eisa 0xa17b
-+device.name           MAGNAVOX MB7000 (17 ZOLL/CM6800)
-+driver.display                |50-130|30-66
-
- vendor.id             PHL
-&device.id             eisa 0xa17c
-+device.name           107S (17 ZOLL/CM1300)
-+driver.display                |50-120|30-69
-
- vendor.id             PHL
-&device.id             eisa 0xa513
-+device.name           PD5029S MONITOR/TV
-
- vendor.id             PHL
-&device.id             eisa 0xb14b
-+device.name           104B (14-ZOLL/CM2300)
-+driver.display                |50-120|30-54
-
- vendor.id             PHL
-&device.id             eisa 0xb15c
-+device.name           105S (15 ZOLL/CM2300)
-+driver.display                |50-120|30-60
-
- vendor.id             PLB
-+vendor.name           PLB
-
- vendor.id             PLB
-&device.id             eisa 0x1410
-+device.name           1410 MODEL
-+driver.display                |50-120|30-54
-
- vendor.id             PLB
-&device.id             eisa 0x1510
-+device.name           1510 MODEL
-+driver.display                |50-120|30-69
-
- vendor.id             PLB
-&device.id             eisa 0x1710
-+device.name           1710
-+driver.display                |50-120|30-70
-
- vendor.id             PLB
-&device.id             eisa 0x1910
-+device.name           1910
-+driver.display                |50-150|30-95
-
- vendor.id             PTS
-+vendor.name           PROVIEW
-
- vendor.id             PTS
-&device.id             eisa 0x023a
-+device.name           570
-+driver.display                |50-150|30-70
-
- vendor.id             PTS
-&device.id             eisa 0x0302
-+device.name           770
-+driver.display                |50-150|30-76
-
- vendor.id             PTS
-&device.id             eisa 0x035c
-+device.name           860
-+driver.display                |50-150|30-54
-
- vendor.id             REL
-+vendor.name           RELISYS
-
- vendor.id             REL
-&device.id             eisa 0x0451
-+device.name           RE451
-+driver.display                |50-100|30-54
-
- vendor.id             REL
-&device.id             eisa 0x0518
-+device.name           RE518
-+driver.display                |50-100|30-69
-
- vendor.id             REL
-&device.id             eisa 0x0550
-+device.name           RE550
-+driver.display                |50-100|30-50
-
- vendor.id             REL
-&device.id             eisa 0x0551
-+device.name           RE551
-+driver.display                |50-100|30-54
-
- vendor.id             REL
-&device.id             eisa 0x0767
-+device.name           RE767
-+driver.display                |50-100|30-69
-
- vendor.id             SAM
-+vendor.name           SAMSUNG
-
- vendor.id             SAM
-&device.id             eisa 0x0000
-+device.name           SYNCMASTER 3NE
-
- vendor.id             SAM
-&device.id             eisa 0x0100
-+device.name           SYNCMASTER 4S
-
- vendor.id             SAM
-&device.id             eisa 0x0cf1
-+device.name           SYNCMASTER 1000S (CGP1607*)
-+driver.display                |50-160|30-96
-
- vendor.id             SAM
-&device.id             eisa 0x0d65
-+device.name           SYNCMASTER 500(M)S PLUS (CKE5507*)
-+driver.display                |50-120|30-60
-
- vendor.id             SAM
-&device.id             eisa 0x0d66
-+device.name           SYNCMASTER 500B PLUS (CKF5607*)
-+driver.display                |50-160|30-69
-
- vendor.id             SAM
-&device.id             eisa 0x0d67
-+device.name           SYNCMASTER 700(M)S PLUS (CKG7507*)
-+driver.display                |50-160|30-69
-
- vendor.id             SAM
-&device.id             eisa 0x1530
-+device.name           15GLSI
-+driver.display                |50-100|24-66
-
- vendor.id             SAM
-&device.id             eisa 0x1c53
-+device.name           SYNCMASTER 500B
-+driver.display                |50-160|30-69
-
- vendor.id             SAM
-&device.id             eisa 0x1c54
-+device.name           SAMTRON 5(M)B (CGB5617*)
-+driver.display                |50-160|30-69
-
- vendor.id             SAM
-&device.id             eisa 0x1c73
-+device.name           SYNCMASTER 500(M)P (CGC5607*)
-+driver.display                |50-160|30-69
-
- vendor.id             SAM
-&device.id             eisa 0x1cb3
-+device.name           SYNCMASTER 700(M)S (CGE7507*)
-+driver.display                |50-160|30-69
-
- vendor.id             SAM
-&device.id             eisa 0x1d73
-+device.name           SYNCMASTER 500(M)S (CGK5507*)
-+driver.display                |50-120|30-54
-
- vendor.id             SAM
-&device.id             eisa 0x1d74
-+device.name           SAMTRON 5(M)E (CGK5517*)
-+driver.display                |50-120|30-54
-
- vendor.id             SAM
-&device.id             eisa 0x1db3
-+device.name           SYNCMASTER 700(M)B (CGM7607*)
-+driver.display                |50-160|30-69
-
- vendor.id             SAM
-&device.id             eisa 0x1f13
-+device.name           SYNCMASTER 1000P
-+driver.display                |50-160|30-107
-
- vendor.id             SAM
-&device.id             eisa 0x1f14
-+device.name           SYNCMASTER 1000B (CGX1607*)
-+driver.display                |50-160|30-107
-
- vendor.id             SAM
-&device.id             eisa 0x202e
-+device.name           SAMTRON 40BN
-+driver.display                |50-120|30-55
-
- vendor.id             SAM
-&device.id             eisa 0x2033
-+device.name           SYNCMASTER 410B(CHA4217*)
-+driver.display                |50-120|30-55
-
- vendor.id             SAM
-&device.id             eisa 0x2034
-+device.name           SAMTRON 40B
-+driver.display                |50-120|30-55
-
- vendor.id             SAM
-&device.id             eisa 0x2035
-+device.name           SYNCMASTER 510(M)S (CHA5807*)
-+driver.display                |50-120|30-61
-
- vendor.id             SAM
-&device.id             eisa 0x2036
-+device.name           SAMTRON 50(M)E
-+driver.display                |50-120|30-61
-
- vendor.id             SAM
-&device.id             eisa 0x2041
-+device.name           SYNCMASTER 610(M)B(CHB6107*)
-+driver.display                |50-160|30-70
-
- vendor.id             SAM
-&device.id             eisa 0x2042
-+device.name           SAMTRON 60(M)B
-+driver.display                |50-160|30-70
-
- vendor.id             SAM
-&device.id             eisa 0x2055
-+device.name           SYNCMASTER 510B(CHB5707*)
-+driver.display                |50-160|30-70
-
- vendor.id             SAM
-&device.id             eisa 0x2056
-+device.name           SAMTRON 50B
-+driver.display                |50-160|30-70
-
- vendor.id             SAM
-&device.id             eisa 0x2057
-+device.name           SYNCMASTER 710(M)S (CHB7707*)
-+driver.display                |50-160|30-70
-
- vendor.id             SAM
-&device.id             eisa 0x2058
-+device.name           SAMTRON 70(M)E
-+driver.display                |50-160|30-70
-
- vendor.id             SAM
-&device.id             eisa 0x2059
-+device.name           SYNCMASTER 710(M)B (CHB7709*)
-+driver.display                |50-160|30-70
-
- vendor.id             SAM
-&device.id             eisa 0x2c33
-+device.name           SAMTRON 4BI
-+driver.display                |50-120|30-55
-
- vendor.id             SAM
-&device.id             eisa 0x2c34
-+device.name           SYNCMASTER 400B (CKA4217*)
-+driver.display                |50-120|30-55
-
- vendor.id             SAM
-&device.id             eisa 0x2c35
-+device.name           SAMTRON 5EI
-+driver.display                |50-120|30-55
-
- vendor.id             SAM
-&device.id             eisa 0x2c36
-+device.name           5E (CKA52*)
-+driver.display                |50-120|30-55
-
- vendor.id             SAM
-&device.id             eisa 0x2c55
-+device.name           SAMTRON 5BI
-+driver.display                |50-120|30-70
-
- vendor.id             SAM
-&device.id             eisa 0x2c56
-+device.name           5B (CKB52*)
-+driver.display                |50-120|30-70
-
- vendor.id             SAM
-&device.id             eisa 0x2c57
-+device.name           SAMTRON 7EI
-+driver.display                |50-120|30-70
-
- vendor.id             SAM
-&device.id             eisa 0x2c58
-+device.name           7E (CKB72*)
-+driver.display                |50-120|30-70
-
- vendor.id             SAM
-&device.id             eisa 0x2cf8
-+device.name           SYNCMASTER 700B PLUS
-+driver.display                |50-160|30-70
-
- vendor.id             SAM
-&device.id             eisa 0x4610
-+device.name           SYNCMASTER 21GLS
-+driver.display                |50-160|30-85
-
- vendor.id             SAM
-&device.id             eisa 0x4690
-+device.name           SYNCMASTER 20GLSI
-+driver.display                |50-120|30-82
-
- vendor.id             SAM
-&device.id             eisa 0x49d5
-+device.name           SYNCMASTER 570 B TFT
-+driver.display                |50-75|30-61
-
- vendor.id             SAM
-&device.id             eisa 0x4d50
-+device.name           SYNCMASTER 15GLE
-
- vendor.id             SAM
-&device.id             eisa 0x4d51
-+device.name           SYNCMASTER 15GLI
-+driver.display                |50-120|30-65
-
- vendor.id             SAM
-&device.id             eisa 0x4d52
-+device.name           SYNCMASTER 15M
-+driver.display                |50-120|30-65
-
- vendor.id             SAM
-&device.id             eisa 0x4d70
-+device.name           SYNCMASTER 17GLI
-+driver.display                |50-120|30-65
-
- vendor.id             SAM
-&device.id             eisa 0x4d71
-+device.name           SYNCMASTER 17GLSI
-+driver.display                |50-120|30-85
-
- vendor.id             SAM
-&device.id             eisa 0x4d72
-+device.name           SYNCMASTER 6NE
-+driver.display                |50-100|30-65
-
- vendor.id             SAM
-&device.id             eisa 0x4d73
-+device.name           17GLI
-+driver.display                |50-120|24-65
-
- vendor.id             SAM
-&device.id             eisa 0x4d74
-+device.name           17GLSI
-+driver.display                |50-120|24-85
-
- vendor.id             SAM
-&device.id             eisa 0x4db9
-+device.name           SYNCMASTER 900SL (CSM92*)
-+driver.display                |50-160|30-96
-
- vendor.id             SAM
-&device.id             eisa 0x4ee6
-+device.name           SYNCMASTER 700P PLUS (CSH7839*)
-+driver.display                |50-160|30-96
-
- vendor.id             SAM
-&device.id             eisa 0x4ee9
-+device.name           SYNCMASTER 700IFT (CSH780B*)
-+driver.display                |50-160|30-96
-
- vendor.id             SAM
-&device.id             eisa 0x4f26
-+device.name           SYNCMASTER 900P (CSH9839*)
-+driver.display                |50-160|30-96
-
- vendor.id             SAM
-&device.id             eisa 0x4f27
-+device.name           SAMTRON 9P
-+driver.display                |50-160|30-96
-
- vendor.id             SAM
-&device.id             eisa 0x4f29
-+device.name           SYNCMASTER 900IFT
-+driver.display                |50-160|30-96
-
- vendor.id             SAM
-&device.id             eisa 0x5450
-+device.name           SYNCMASTER 15ME
-+driver.display                |50-120|30-50
-
- vendor.id             SAM
-&device.id             eisa 0x6053
-+device.name           SYNCMASTER 320TFT (LXB310*)
-+driver.display                |50-75|30-61
-
- vendor.id             SAM
-&device.id             eisa 0x6054
-+device.name           SYNCMASTER 330/331TFT (LXB350*)
-+driver.display                |50-75|30-61
-
- vendor.id             SAM
-&device.id             eisa 0x6055
-+device.name           SYNCMASTER 520TFT (LXB530*)
-+driver.display                |50-75|30-61
-
- vendor.id             SAM
-&device.id             eisa 0x6056
-+device.name           SYNCMASTER 530/531TFT (LXB550*)
-+driver.display                |50-75|30-61
-
- vendor.id             SAM
-&device.id             eisa 0x6d20
-+device.name           SYNCMASTER 15GLE
-+driver.display                |50-120|30-50
-
- vendor.id             SDI
-+vendor.name           SAMTRON
-
- vendor.id             SDI
-&device.id             eisa 0x1428
-+device.name           428PT/PTL
-
- vendor.id             SDI
-&device.id             eisa 0x1528
-+device.name           SC-528TXL
-+driver.display                |50-100|30-48
-
- vendor.id             SDI
-&device.id             eisa 0x1529
-+device.name           SC-528UXL
-+driver.display                |50-120|30-65
-
- vendor.id             SDI
-&device.id             eisa 0x1530
-+device.name           SC-528MXLJ
-+driver.display                |50-100|24-66
-
- vendor.id             SDI
-&device.id             eisa 0x4690
-+device.name           SC-208DXL+
-+driver.display                |50-120|30-82
-
- vendor.id             SDI
-&device.id             eisa 0x4d70
-+device.name           SC-728FXL
-+driver.display                |50-120|30-65
-
- vendor.id             SDI
-&device.id             eisa 0x4d71
-+device.name           SC-726GXL
-+driver.display                |50-120|30-85
-
- vendor.id             SDI
-&device.id             eisa 0x4d73
-+device.name           SC-728FXLJ
-+driver.display                |50-120|24-65
-
- vendor.id             SDI
-&device.id             eisa 0x5451
-+device.name           SC-528MDL
-+driver.display                |50-120|30-48
-
- vendor.id             SML
-+vendor.name           SMILE
-
- vendor.id             SML
-&device.id             eisa 0x6425
-+device.name           CA6425DL/CB6425DL
-+driver.display                |50-100|30-54
-
- vendor.id             SML
-&device.id             eisa 0x6525
-+device.name           CA6525DL/CB6525DL
-+driver.display                |50-100|30-54
-
- vendor.id             SML
-&device.id             eisa 0x6546
-+device.name           CA6546SL/CB6546SL
-+driver.display                |50-120|30-69
-
- vendor.id             SML
-&device.id             eisa 0x6719
-+device.name           CA6719SL/CB6719SL
-+driver.display                |50-150|30-95
-
- vendor.id             SML
-&device.id             eisa 0x6738
-+device.name           85KHZ-MONITOR
-+driver.display                |50-150|30-86
-
- vendor.id             SML
-&device.id             eisa 0x6746
-+device.name           CA6746SL/CB6746SL
-+driver.display                |50-120|30-69
-
- vendor.id             SML
-&device.id             eisa 0x6748
-+device.name           CA6748SL/CB6748SL
-+driver.display                |50-150|30-86
-
- vendor.id             SML
-&device.id             eisa 0x6919
-+device.name           CA6919SL/CB6919SL
-+driver.display                |50-150|30-95
-
- vendor.id             SNI
-+vendor.name           Siemens Nixdorf
-
- vendor.id             SNY
-+vendor.name           SONY
-
- vendor.id             SNY
-&device.id             eisa 0x0030
-+device.name           CPD-L133
-+driver.display                |50-65|30-70
-
- vendor.id             SNY
-&device.id             eisa 0x0071
-+device.name           CPD-220GS
-+driver.display                |48-120|30-85
-
- vendor.id             SNY
-&device.id             eisa 0x0090
-+device.name           GDM-400PS/400PST/19PS
-+driver.display                |48-160|30-95
-
- vendor.id             SNY
-&device.id             eisa 0x0091
-+device.name           CPD-420GS
-+driver.display                |48-120|30-96
-
- vendor.id             SNY
-&device.id             eisa 0x00b0
-+device.name           GDM-500PS
-+driver.display                |48-160|30-107
-
- vendor.id             SNY
-&device.id             eisa 0x00e0
-+device.name           GDM-W900
-+driver.display                |50-160|30-96
-
- vendor.id             SNY
-&device.id             eisa 0x0150
-+device.name           CPD-100SF
-+driver.display                |50-120|30-70
-
- vendor.id             SNY
-&device.id             eisa 0x0170
-+device.name           GDM-17SE2T
-+driver.display                |48-150|30-85
-
- vendor.id             SNY
-&device.id             eisa 0x017b
-+device.name           CPD-2003GT
-+driver.display                |50-120|30-85
-
- vendor.id             SNY
-&device.id             eisa 0x0270
-+device.name           CPD-200SF
-+driver.display                |50-120|30-80
-
- vendor.id             SNY
-&device.id             eisa 0x02b0
-+device.name           CPD-520GS/520GST/21GS2
-+driver.display                |48-160|30-96
-
- vendor.id             SNY
-&device.id             eisa 0x0370
-+device.name           CPD-200SFT
-+driver.display                |50-120|30-80
-
- vendor.id             SNY
-&device.id             eisa 0x03a0
-+device.name           CPD-300SFT
-+driver.display                |48-150|30-86
-
- vendor.id             SNY
-&device.id             eisa 0x0450
-+device.name           CPD-100ES
-+driver.display                |50-120|30-70
-
- vendor.id             SNY
-&device.id             eisa 0x0470
-+device.name           CPD-17SF9
-+driver.display                |50-120|24-80
-
- vendor.id             SNY
-&device.id             eisa 0x0550
-+device.name           CPD-100GS
-+driver.display                |50-120|30-70
-
- vendor.id             SNY
-&device.id             eisa 0x0570
-+device.name           CPD-200SX
-+driver.display                |50-150|30-70
-
- vendor.id             SNY
-&device.id             eisa 0x0650
-+device.name           CPD-120VS
-+driver.display                |50-120|30-70
-
- vendor.id             SNY
-&device.id             eisa 0x0670
-+device.name           CPD-220VS
-+driver.display                |50-120|30-70
-
- vendor.id             SNY
-&device.id             eisa 0x0770
-+device.name           CPD-200ES
-+driver.display                |50-120|30-70
-
- vendor.id             SNY
-&device.id             eisa 0x0950
-+device.name           CPD-L150
-+driver.display                |50-65|30-70
-
- vendor.id             SNY
-&device.id             eisa 0x0a50
-+device.name           CPD-101VS IGPE
-+driver.display                |50-120|30-70
-
- vendor.id             SNY
-&device.id             eisa 0x0a70
-+device.name           CPD-200GS
-+driver.display                |50-120|30-85
-
- vendor.id             SNY
-&device.id             eisa 0x0c70
-+device.name           GDM-200PS
-+driver.display                |48-160|30-92
-
- vendor.id             SNY
-&device.id             eisa 0x8050
-+device.name           CPD-100SX
-+driver.display                |50-120|30-65
-
- vendor.id             STC
-+vendor.name           ALPHASCAN
-
- vendor.id             STC
-&device.id             eisa 0x02c7
-+device.name           711
-+driver.display                |50-120|30-70
-
- vendor.id             STC
-&device.id             eisa 0x02c8
-+device.name           712
-+driver.display                |50-120|30-70
-
- vendor.id             STC
-&device.id             eisa 0x032b
-+device.name           811
-+driver.display                |50-150|30-95
-
- vendor.id             STC
-&device.id             eisa 0x0800
-+device.name           800S
-+driver.display                |50-150|30-95
-
- vendor.id             SUN
-+vendor.name           Sun
-
- vendor.id             SUN
-&device.id             eisa 0x0567
-+device.name           21" Premium Color Monitor
-
- vendor.id             TAT
-+vendor.name           TATUNG
-
- vendor.id             TAT
-&device.id             eisa 0x1f65
-+device.name           TM651X SERIE
-+driver.display                |50-90|31-65
-
- vendor.id             TAT
-&device.id             eisa 0x1f67
-+device.name           TM671X SERIE
-+driver.display                |50-110|31-65
-
- vendor.id             TAT
-&device.id             eisa 0x2f44
-+device.name           TM442X SERIE
-+driver.display                |50-100|30-50
-
- vendor.id             TAT
-&device.id             eisa 0x2f45
-+device.name           TM452X SERIE
-+driver.display                |50-100|30-50
-
- vendor.id             TAT
-&device.id             eisa 0x3044
-+device.name           C5D
-+driver.display                |50-100|30-54
-
- vendor.id             TAT
-&device.id             eisa 0x3054
-+device.name           PC DIVISION V70 (XJ63754)
-+driver.display                |50-100|30-70
-
- vendor.id             TAT
-&device.id             eisa 0x434d
-+device.name           CM-17MC
-
- vendor.id             TAT
-&device.id             eisa 0x4855
-+device.name           CM-14UH
-
- vendor.id             TAX
-+vendor.name           ERGOVISION
-
- vendor.id             TAX
-&device.id             eisa 0xe430
-+device.name           430LR
-+driver.display                |50-110|30-54
-
- vendor.id             TAX
-&device.id             eisa 0xe550
-+device.name           550TCO95/TCO95-S
-+driver.display                |55-110|30-69
-
- vendor.id             TAX
-&device.id             eisa 0xe730
-+device.name           730TCO95/TCO95-S
-+driver.display                |50-120|30-69
-
- vendor.id             TAX
-&device.id             eisa 0xe740
-+device.name           740TCO95/TCO95-S
-+driver.display                |55-120|30-85
-
- vendor.id             TAX
-&device.id             eisa 0xe750
-+device.name           750TCO95
-+driver.display                |50-130|30-86
-
- vendor.id             TAX
-&device.id             eisa 0xe760
-+device.name           760TCO95/TCO95-S
-+driver.display                |50-120|30-70
-
- vendor.id             TAX
-&device.id             eisa 0xe975
-+device.name           975TCO95
-+driver.display                |50-150|30-95
-
- vendor.id             TOS
-+vendor.name           TOSHIBA
-
- vendor.id             TOS
-&device.id             eisa 0x5000
-+device.name           CRT17002
-+driver.display                |50-130|30-66
-
- vendor.id             TOS
-&device.id             eisa 0x5001
-+device.name           CRT15003
-+driver.display                |50-110|30-66
-
- vendor.id             TOS
-&device.id             eisa 0x5002
-+device.name           CRT21002
-+driver.display                |50-152|30-95
-
- vendor.id             TRL
-+vendor.name           TRL/RIC
-
- vendor.id             TRL
-&device.id             eisa 0x0010
-+device.name           RH-1450
-+driver.display                |47-90|29-50
-
- vendor.id             TRL
-&device.id             eisa 0x0110
-+device.name           DL-1564M/DL-1564
-+driver.display                |47-120|29-64
-
- vendor.id             TRL
-&device.id             eisa 0x0310
-+device.name           DL-1750MU
-+driver.display                |47-120|29-70
-
- vendor.id             TRL
-&device.id             eisa 0x0410
-+device.name           DH-1570M/DH-1570
-+driver.display                |47-120|29-70
-
- vendor.id             TRL
-&device.id             eisa 0x0510
-+device.name           DH-1764M/DH-1764
-+driver.display                |47-120|29-70
-
- vendor.id             TRL
-&device.id             eisa 0x0610
-+device.name           DH-1764UM/DH-1764U
-+driver.display                |47-120|29-85
-
- vendor.id             TRL
-&device.id             eisa 0x061c
-+device.name           DL-1564
-+driver.display                |47-100|29-64
-
- vendor.id             TRL
-&device.id             eisa 0x0622
-+device.name           DH-1570
-+driver.display                |47-120|29-64
-
- vendor.id             TSB
-+vendor.name           TOSHIBA
-
- vendor.id             TSB
-&device.id             eisa 0x5002
-+device.name           EQUIUM 15-ZOLL MONITOR
-+driver.display                |50-100|30-66
-
- vendor.id             TSB
-&device.id             eisa 0x5003
-+device.name           EQUIUM 17-ZOLL MONITOR
-+driver.display                |50-160|30-82
-
- vendor.id             TSB
-&device.id             eisa 0x5004
-+device.name           DR569M (PV2001U)
-+driver.display                |50-110|30-69
-
- vendor.id             TSB
-&device.id             eisa 0x5005
-+device.name           DR769MF (PV2002U)
-+driver.display                |50-110|30-69
-
- vendor.id             TVM
-+vendor.name           TVM
-
- vendor.id             TVM
-&device.id             eisa 0x0487
-+device.name           AS4DP/LR4DP-MODELL
-+driver.display                |50-120|30-55
-
- vendor.id             TVM
-&device.id             eisa 0x0588
-+device.name           AS5S-MODELL
-+driver.display                |50-120|30-69
-
- vendor.id             TVM
-&device.id             eisa 0x0589
-+device.name           TCO5S-MODELL
-+driver.display                |50-120|30-69
-
- vendor.id             TVM
-&device.id             eisa 0x0688
-+device.name           TCO6S-MODELL
-+driver.display                |50-120|30-69
-
- vendor.id             UNM
-+vendor.name           UNISYS
-
- vendor.id             UNM
-&device.id             eisa 0x1002
-+device.name           EVG1000-E2
-+driver.display                |50-65|30-50
-
- vendor.id             UNM
-&device.id             eisa 0x2001
-+device.name           EVG2000-E
-+driver.display                |50-130|30-54
-
- vendor.id             UNM
-&device.id             eisa 0x2002
-+device.name           EVG2000-P
-+driver.display                |50-150|30-70
-
- vendor.id             UNM
-&device.id             eisa 0x2014
-+device.name           EVG-142-COL
-+driver.display                |50-120|30-48
-
- vendor.id             UNM
-&device.id             eisa 0x2015
-+device.name           EVG-152-COL
-+driver.display                |50-130|30-48
-
- vendor.id             UNM
-&device.id             eisa 0x2101
-+device.name           EVG2100-E
-+driver.display                |50-130|30-54
-
- vendor.id             UNM
-&device.id             eisa 0x2102
-+device.name           EVG2100-P
-+driver.display                |50-150|30-70
-
- vendor.id             UNM
-&device.id             eisa 0x3001
-+device.name           EVG3000-E
-+driver.display                |50-160|30-69
-
- vendor.id             UNM
-&device.id             eisa 0x3002
-+device.name           EVG3000-P
-+driver.display                |50-160|30-95
-
- vendor.id             UNM
-&device.id             eisa 0x3015
-+device.name           EVG-153-COL
-+driver.display                |50-120|30-65
-
- vendor.id             UNM
-&device.id             eisa 0x3101
-+device.name           EVG3100-E
-+driver.display                |50-75|30-65
-
- vendor.id             UNM
-&device.id             eisa 0x3102
-+device.name           EVG3100-P
-+driver.display                |50-160|30-95
-
- vendor.id             UNM
-&device.id             eisa 0x4002
-+device.name           EVG4000-P
-+driver.display                |50-160|30-95
-
- vendor.id             UNM
-&device.id             eisa 0x4017
-+device.name           EVG-174-COL
-+driver.display                |50-120|30-85
-
- vendor.id             UNM
-&device.id             eisa 0x5002
-+device.name           EVG5000-P
-+driver.display                |50-160|30-95
-
- vendor.id             UNM
-&device.id             eisa 0x5021
-+device.name           EVG-215-COL
-+driver.display                |50-160|30-95
-
- vendor.id             VSC
-+vendor.name           VIEWSONIC
-
- vendor.id             VSC
-&device.id             eisa 0x0c00
-+device.name           17GS
-+driver.display                |50-160|30-69
-
- vendor.id             VSC
-&device.id             eisa 0x0c0f
-+device.name           17PS
-+driver.display                |50-160|30-82
-
- vendor.id             VSC
-&device.id             eisa 0x0c1f
-+device.name           17GA
-+driver.display                |50-160|30-69
-
- vendor.id             VSC
-&device.id             eisa 0x1600
-+device.name           21PS
-+driver.display                |50-160|30-82
-
- vendor.id             VSC
-&device.id             eisa 0x2600
-+device.name           ViewSonic 15GS-2
-
- vendor.id             VSC
-&device.id             eisa 0x2601
-+device.name           ViewSonic 15GS
-
- vendor.id             VSC
-&device.id             eisa 0x3141
-+device.name           14ES
-+driver.display                |50-75|31-51
-
- vendor.id             VSC
-&device.id             eisa 0x3142+0x0002
-+device.name           ViewSonic 14ES
-
- vendor.id             VSC
-&device.id             eisa 0x3145
-+device.name           15GS-3
-+driver.display                |50-120|30-69
-
- vendor.id             VSC
-&device.id             eisa 0x3252+0x0002
-+device.name           ViewSonic 21PS-2
-
- vendor.id             VSC
-&device.id             eisa 0x3254
-+device.name           PJ800
-
- vendor.id             VSC
-&device.id             eisa 0x334b+0x0002
-+device.name           ViewSonic 17GS-2
-
- vendor.id             VSC
-&device.id             eisa 0x3351
-+device.name           PT810
-+driver.display                |50-130|30-86
-
- vendor.id             VSC
-&device.id             eisa 0x3441
-+device.name           E641
-+driver.display                |50-100|30-54
-
- vendor.id             VSC
-&device.id             eisa 0x344b+0x0002
-+device.name           ViewSonic 17PS-2
-
- vendor.id             VSC
-&device.id             eisa 0x3451
-+device.name           PT810-2
-+driver.display                |50-130|30-95
-
- vendor.id             VSC
-&device.id             eisa 0x3454
-+device.name           PJ1000
-+driver.display                |50-85|31-64
-
- vendor.id             VSC
-&device.id             eisa 0x354d
-+device.name           GT800
-+driver.display                |50-150|30-85
-
- vendor.id             VSC
-&device.id             eisa 0x354e
-+device.name           ViewSonic GT800
-
- vendor.id             VSC
-&device.id             eisa 0x3550
-+device.name           ViewSonic GT800
-
- vendor.id             VSC
-&device.id             eisa 0x3551
-+device.name           P810
-+driver.display                |50-160|30-95
-
- vendor.id             VSC
-&device.id             eisa 0x3552
-+device.name           P810-E
-+driver.display                |50-160|30-95
-
- vendor.id             VSC
-&device.id             eisa 0x3554
-+device.name           PJL802
-+driver.display                |50-85|31-61
-
- vendor.id             VSC
-&device.id             eisa 0x3641
-+device.name           E641-2
-+driver.display                |50-100|30-54
-
- vendor.id             VSC
-&device.id             eisa 0x3644
-+device.name           15GA
-+driver.display                |50-160|30-69
-
- vendor.id             VSC
-&device.id             eisa 0x3645
-+device.name           G653
-+driver.display                |50-120|30-70
-
- vendor.id             VSC
-&device.id             eisa 0x3646
-+device.name           ViewSonic 15GA
-
- vendor.id             VSC
-&device.id             eisa 0x3648
-+device.name           ViewSonic 15GA
-
- vendor.id             VSC
-&device.id             eisa 0x364a
-+device.name           PT770
-+driver.display                |50-130|30-82
-
- vendor.id             VSC
-&device.id             eisa 0x364b+0x0002
-+device.name           ViewSonic PT770
-
- vendor.id             VSC
-&device.id             eisa 0x3651
-+device.name           P815
-+driver.display                |50-160|30-115
-
- vendor.id             VSC
-&device.id             eisa 0x3744
-+device.name           15G-2
-+driver.display                |50-100|30-66
-
- vendor.id             VSC
-&device.id             eisa 0x3745
-+device.name           E655-2
-+driver.display                |50-100|30-70
-
- vendor.id             VSC
-&device.id             eisa 0x3746
-+device.name           ViewSonic 15G-2
-
- vendor.id             VSC
-&device.id             eisa 0x3748
-+device.name           ViewSonic 15G-2
-
- vendor.id             VSC
-&device.id             eisa 0x374b+0x0002
-+device.name           ViewSonic 17GA
-
- vendor.id             VSC
-&device.id             eisa 0x374d
-+device.name           G800
-+driver.display                |50-120|30-86
-
- vendor.id             VSC
-&device.id             eisa 0x3751
-+device.name           G810
-+driver.display                |50-160|30-89
-
- vendor.id             VSC
-&device.id             eisa 0x3844
-+device.name           15ES-2
-+driver.display                |50-100|31-62
-
- vendor.id             VSC
-&device.id             eisa 0x3845
-+device.name           VP150
-+driver.display                |50-77|30-61
-
- vendor.id             VSC
-&device.id             eisa 0x3846
-+device.name           ViewSonic 15ES-2
-
- vendor.id             VSC
-&device.id             eisa 0x3848
-+device.name           ViewSonic 15ES-2
-
- vendor.id             VSC
-&device.id             eisa 0x384a
-+device.name           17EA
-+driver.display                |50-120|30-65
-
- vendor.id             VSC
-&device.id             eisa 0x384b+0x0002
-+device.name           ViewSonic 17EA
-
- vendor.id             VSC
-&device.id             eisa 0x384d
-+device.name           G790
-+driver.display                |50-180|30-95
-
- vendor.id             VSC
-&device.id             eisa 0x3851
-+device.name           PT810-3
-+driver.display                |50-160|30-96
-
- vendor.id             VSC
-&device.id             eisa 0x3854
-+device.name           PJ820
-+driver.display                |50-85|30-69
-
- vendor.id             VSC
-&device.id             eisa 0x3944
-+device.name           ViewSonic 15GS-2
-
- vendor.id             VSC
-&device.id             eisa 0x3946
-+device.name           ViewSonic 15GS-2
-
- vendor.id             VSC
-&device.id             eisa 0x3948
-+device.name           ViewSonic 15GS-2
-
- vendor.id             VSC
-&device.id             eisa 0x394a
-+device.name           17GS-2
-+driver.display                |50-160|30-69
-
- vendor.id             VSC
-&device.id             eisa 0x394b+0x0002
-+device.name           ViewSonic 17GS-2
-
- vendor.id             VSC
-&device.id             eisa 0x4145
-+device.name           GA655
-+driver.display                |50-180|30-70
-
- vendor.id             VSC
-&device.id             eisa 0x4151
-+device.name           PT813
-+driver.display                |50-160|30-107
-
- vendor.id             VSC
-&device.id             eisa 0x4244
-+device.name           EA771B
-+driver.display                |50-120|30-70
-
- vendor.id             VSC
-&device.id             eisa 0x4245
-+device.name           P655
-+driver.display                |50-180|30-70
-
- vendor.id             VSC
-&device.id             eisa 0x424a
-+device.name           GT770
-+driver.display                |50-120|30-65
-
- vendor.id             VSC
-&device.id             eisa 0x424b+0x0002
-+device.name           ViewSonic GT770
-
- vendor.id             VSC
-&device.id             eisa 0x434a
-+device.name           17PS-2
-+driver.display                |50-160|30-86
-
- vendor.id             VSC
-&device.id             eisa 0x434b+0x0002
-+device.name           ViewSonic 17PS-2
-
- vendor.id             VSC
-&device.id             eisa 0x434d
-+device.name           PS790
-+driver.display                |50-180|30-95
-
- vendor.id             VSC
-&device.id             eisa 0x4439
-+device.name           ViewSonic 15GS-2
-
- vendor.id             VSC
-&device.id             eisa 0x444a
-+device.name           17GA-2
-+driver.display                |50-160|30-69
-
- vendor.id             VSC
-&device.id             eisa 0x4637
-+device.name           ViewSonic 1769DC
-
- vendor.id             VSC
-&device.id             eisa 0x474a
-+device.name           PT775
-+driver.display                |50-160|30-96
-
- vendor.id             VSC
-&device.id             eisa 0x4851
-+device.name           P810-3
-+driver.display                |50-180|30-95
-
- vendor.id             VSC
-&device.id             eisa 0x4951
-+device.name           G810-2
-+driver.display                |50-180|30-92
-
- vendor.id             VSC
-&device.id             eisa 0x4b4a
-+device.name           GT775
-+driver.display                |50-160|30-86
-
- vendor.id             VSC
-&device.id             eisa 0x4c4a
-+device.name           G771
-+driver.display                |50-180|30-70
-
- vendor.id             VSC
-&device.id             eisa 0x4d4a
-+device.name           EA771
-+driver.display                |50-120|30-70
-
- vendor.id             VSC
-&device.id             eisa 0x504a
-+device.name           P775
-+driver.display                |50-180|30-95
-
- vendor.id             VSC
-&device.id             eisa 0x514a
-+device.name           GA771
-+driver.display                |50-180|30-70
-
- vendor.id             VSC
-&device.id             eisa 0x524a
-+device.name           G773
-+driver.display                |50-160|30-70
-
- vendor.id             VSC
-&device.id             eisa 0x564a
-+device.name           E771
-+driver.display                |50-120|30-70
-
- vendor.id             VSC
-&device.id             eisa 0x594a
-+device.name           GS771
-+driver.display                |50-180|30-70
-
- vendor.id             VSC
-&device.id             eisa 0x5a4a
-+device.name           PT771
-+driver.display                |50-160|30-92
-
diff --git a/src/hwinfo/src/ids/src/mouse b/src/hwinfo/src/ids/src/mouse
deleted file mode 100644 (file)
index 6e82a0e..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-# mice
-
-
-# KYE: protocol info not verified
- vendor.id             KYE
-&device.id             eisa 0x0001
-|vendor.id             LGI
-&device.id             eisa 0x8001
-+driver.mouse          microsoft|ms|3|0
-
- vendor.id             LGI
-&device.id             eisa 0x800b+0x0002
-+driver.mouse          mouseman|mman|3|0
-
- vendor.id             PNP
-&device.id             eisa 0x0f04
-|vendor.id             PNP
-&device.id             eisa 0x0f05
-+driver.mouse          mousesystems|msc|3|0
-
- vendor.id             PNP
-&device.id             eisa 0x0f01
-|vendor.id             PNP
-&device.id             eisa 0x0f02
-|vendor.id             PNP
-&device.id             eisa 0x0f0a
-|vendor.id             PNP
-&device.id             eisa 0x0f0b
-|vendor.id             PNP
-&device.id             eisa 0x0f0c
-|vendor.id             PNP
-&device.id             eisa 0x0f0d
-|vendor.id             special 0x0200
-&device.id             special 0x0003
-+driver.mouse          microsoft|ms
-
- vendor.id             PNP
-&device.id             eisa 0x0f0e
-+driver.mouse          ps/2|ps2||0
-
- vendor.id             special 0x0200
-&device.id             special 0x0002
-+driver.mouse          explorerps/2|exps2||0
-
-# genius usb netmouse pro
- vendor.id             usb 0x0458
-&device.id             usb 0x0002
-+driver.mouse          explorerps/2|exps2|4|0
-
-# MS IntelliMouse Explorer
- vendor.id             usb 0x045e
-&device.id             usb 0x001e
-# Logitech Wheelmouse Model M-BB48
-|vendor.id             usb 0x046d
-&device.id             usb 0xc001
-# Optical(?) Logitech Wheel Mouse
-|vendor.id             usb 0x046d
-&device.id             usb 0xc00c
-# Optical Logitech Wheel Mouse (#16003)
-|vendor.id             usb 0x046d
-&device.id             usb 0xc00e
-# Optical Logitech Wheel Mouse (#22797)
-|vendor.id             usb 0x046d
-&device.id             usb 0xc030
-# some mouse (#29468)
-|vendor.id             usb 0x046d
-&device.id             usb 0xc404
-# some mouse (#29719)
-|vendor.id             usb 0x0461
-&device.id             usb 0x4d03
-+driver.mouse          explorerps/2|exps2|3|1
-
-# MouseMan Dual Optical (#18296)
-# http://www.logitech.com/index.cfm?page=products/details&CRID=3&CONTENTID=4984&countryid=7&languageid=4
- vendor.id             usb 0x046d
-&device.id             usb 0xc012
-+driver.mouse          explorerps/2|exps2|4|1
-
- vendor.id             usb 0x05fe
-&device.id             usb 0x0005
-+driver.mouse          explorerps/2|exps2|3|1
-
-# apple/logitech usb mouse
- vendor.id             usb 0x05ac
-&device.id             usb 0x0301
-+driver.mouse          explorerps/2|exps2|1|0
-
-# Razer Boomslang USB Mouse
- vendor.id             usb 0x05e3
-&device.id             usb 0x000b
-+driver.mouse          explorerps/2|exps2|5|1
-
-# ADB mice
- vendor.id             special 0x0100
-&device.id             special 0x0300+0x0100
-+driver.mouse          explorerps/2|exps2|1|0
-
-# general USB mice
- vendor.id             special 0x0200
-&device.id             special 0x0001
-+driver.mouse          explorerps/2|exps2
-
- vendor.id             special 0x0200
-&device.id             special 0x0004
-+driver.mouse          explorerps/2|exps2|3|1
-
- vendor.id             special 0x0200
-&device.id             special 0x0005
-+driver.mouse          explorerps/2|exps2|5|1
-
- vendor.id             special 0x0200
-&device.id             special 0x0006
-+driver.mouse          ps/2|ps2|2|0
-
- vendor.id             special 0x0200
-&device.id             special 0x0007
-+driver.mouse          ps/2|ps2|3|0
-
-# Sun Mouse (/dev/sunmouse)
- vendor.id             special 0x0202
-&device.id             special 0x0000
-+driver.mouse          mousesystems|sun|3|0
-
-# very special (mouse devices)
- vendor.id             special 0x0210
-&device.id             special 0x0000+0x0100
-+driver.mouse          explorerps/2|exps2
-
-# A4Tech 4D++ super whatever mouse (#24137)
- vendor.name           A4W
-+vendor.name           A4Tech
-
- device.id             eisa 0x0005
-&vendor.name           A4Tech
-+device.name           Serial Wheel Mouse
-+driver.mouse          intellimouse|ms3|3|2
-
diff --git a/src/hwinfo/src/ids/src/network b/src/hwinfo/src/ids/src/network
deleted file mode 100644 (file)
index 71e644e..0000000
+++ /dev/null
@@ -1,1330 +0,0 @@
-# network adapter
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# pci/isapnp/sbus adapter
-
-# modinfo
- vendor.id             pci 0x14e4
-&device.id             pci 0x4401+2
-|vendor.id             pci 0x14e4
-&device.id             pci 0x170c
-+driver.module.modprobe        b44
-
-# pcimap
- vendor.id             pci 0x10de
-&device.id             pci 0x0066
-|vendor.id             pci 0x10de
-&device.id             pci 0x00d6
-|vendor.id             pci 0x10de
-&device.id             pci 0x01c3
-+driver.module.modprobe        forcedeth
-
-# net/r8169.c
- vendor.id             pci 0x10ec
-&device.id             pci 0x8169
-+driver.module.modprobe        r8169
-
-# net/tokenring/tmspci.c
- vendor.id             pci 0x0e11
-&device.id             pci 0x0508
-|vendor.id             pci 0x10b7
-&device.id             pci 0x3390
-|vendor.id             pci 0x10da
-&device.id             pci 0x0508
-|vendor.id             pci 0x1148
-&device.id             pci 0x4200
-+driver.module.modprobe        tmspci
-
-# net/tlan.c
- vendor.id             pci 0x0e11
-&device.id             pci 0xae32
-|vendor.id             pci 0x0e11
-&device.id             pci 0xae34+0x0002
-|vendor.id             pci 0x0e11
-&device.id             pci 0xae40
-|vendor.id             pci 0x0e11
-&device.id             pci 0xae43
-|vendor.id             pci 0x0e11
-&device.id             pci 0xb011+0x0002
-|vendor.id             pci 0x0e11
-&device.id             pci 0xb030
-|vendor.id             pci 0x0e11
-&device.id             pci 0xf130
-|vendor.id             pci 0x0e11
-&device.id             pci 0xf150
-|vendor.id             pci 0x108d
-&device.id             pci 0x0012+0x0003
-+driver.module.modprobe        tlan
-
-# net/yellowfin.c
- vendor.id             pci 0x1000
-&device.id             pci 0x0701+0x0002
-+driver.module.modprobe        yellowfin
-
-# net/natsemi.c
- vendor.id             pci 0x100b
-&device.id             pci 0x0020
-+driver.module.modprobe        natsemi
-
-# net/ns83820.c
- vendor.id             pci 0x100b
-&device.id             pci 0x0022
-+driver.module.modprobe        ns83820
-
-# for an overview of de4x5 vs. tulip see bugs:
-# #7317, #11093, #15303, #16036, #17303, #39127
-
-# net/de4x5.c
-# net/tulip.c
- vendor.id             pci 0x1011
-&device.id             pci 0x0014
-|vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1113
-&subdevice.id          pci 0x1207
-|vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x146c
-&subdevice.id          pci 0x1430
-+driver.module.modprobe        de4x5
-+driver.module.modprobe        tulip
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0002
-|vendor.id             pci 0x1011
-&device.id             pci 0x0009
-|vendor.id             pci 0x1011
-&device.id             pci 0x0019
-+driver.module.modprobe        tulip
-+driver.module.modprobe        de4x5
-
-#pcimap
- vendor.id             pci 0x1011
-&device.id             pci 0x0002
-|vendor.id             pci 0x1011
-&device.id             pci 0x0009
-|vendor.id             pci 0x1011
-&device.id             pci 0x0014
-|vendor.id             pci 0x1011
-&device.id             pci 0x0019
-|vendor.id             pci 0x104a
-&device.id             pci 0x0981
-|vendor.id             pci 0x104a
-&device.id             pci 0x2774
-|vendor.id             pci 0x10d9
-&device.id             pci 0x0512
-|vendor.id             pci 0x10d9
-&device.id             pci 0x0531
-|vendor.id             pci 0x1113
-&device.id             pci 0x1216+0x0002
-|vendor.id             pci 0x1113
-&device.id             pci 0x9511
-|vendor.id             pci 0x1186
-&device.id             pci 0x1561
-|vendor.id             pci 0x11ad
-&device.id             pci 0x0002
-|vendor.id             pci 0x11ad
-&device.id             pci 0xc115
-|vendor.id             pci 0x11f6
-&device.id             pci 0x9881
-|vendor.id             pci 0x1259
-&device.id             pci 0xa120
-|vendor.id             pci 0x125b
-&device.id             pci 0x1400
-|vendor.id             pci 0x1317
-&device.id             pci 0x0981
-|vendor.id             pci 0x1317
-&device.id             pci 0x0985
-|vendor.id             pci 0x1317
-&device.id             pci 0x1985
-|vendor.id             pci 0x1317
-&device.id             pci 0x9511
-|vendor.id             pci 0x13d1
-&device.id             pci 0xab02+0x0002
-|vendor.id             pci 0x13d1
-&device.id             pci 0xab08
-|vendor.id             pci 0x14f1
-&device.id             pci 0x1803
-|vendor.id             pci 0x1626
-&device.id             pci 0x8410
-|vendor.id             pci 0x1737
-&device.id             pci 0xab09
-|vendor.id             pci 0x17b3
-&device.id             pci 0xab08
-|vendor.id             pci 0x8086
-&device.id             pci 0x0039
-+driver.module.modprobe        tulip
-
-# pcimap
- vendor.id             pci 0x10b9
-&device.id             pci 0x5261
-|vendor.id             pci 0x1282
-&device.id             pci 0x9009
-|vendor.id             pci 0x1282
-&device.id             pci 0x9132
-+driver.module.modprobe        dmfe
-
-# see #19271
- vendor.id             pci 0x1282
-&device.id             pci 0x9102
-+driver.module.modprobe        dmfe
-+driver.module.modprobe        tulip
-
- vendor.id             pci 0x1282
-&device.id             pci 0x9100
-+driver.module.modprobe        tulip
-+driver.module.modprobe        dmfe
-
-# net/wan/lmc/lmc_main.c
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1379
-+driver.module.modprobe        lmc
-
-# net/defxx.c
- vendor.id             pci 0x1011
-&device.id             pci 0x000f
-+driver.module.modprobe        defxx
-
-# pcimap
- vendor.id             pci 0x1011
-&device.id             pci 0x001a
-|vendor.id             pci 0x10a9
-&device.id             pci 0x0009
-|vendor.id             pci 0x10b7
-&device.id             pci 0x0001
-|vendor.id             pci 0x12ae
-&device.id             pci 0x0001+0x0002
-|vendor.id             pci 0x12ae
-&device.id             pci 0x00fa
-|vendor.id             pci 0x1385
-&device.id             pci 0x620a
-|vendor.id             pci 0x1385
-&device.id             pci 0x630a
-+driver.module.modprobe        acenic
-
-# net/tokenring/lanstreamer.c 
- vendor.id             pci 0x1014
-&device.id             pci 0x0018
-+driver.module.modprobe        lanstreamer
-
-# net/olympic.c
- vendor.id             pci 0x1014
-&device.id             pci 0x003e
-+driver.module.modprobe        olympic
-
-# net/hp100.c
- vendor.id             pci 0x101a
-&device.id             pci 0x0005
-|vendor.id             pci 0x103c
-&device.id             pci 0x1030+0x0002
-|vendor.id             pci 0x11f6
-&device.id             pci 0x0112
-+driver.module.modprobe        hp100
-
-# net/pcnet32.c
- vendor.id             pci 0x1022
-&device.id             pci 0x2000+0x0002
-+driver.module.modprobe        pcnet32
-
-# net/amd8111e.c
- vendor.id             pci 0x1022
-&device.id             pci 0x7462
-+driver.module.modprobe        amd8111e
-
-# net/sis900.c
- vendor.id             pci 0x1039
-&device.id             pci 0x0900
-|vendor.id             pci 0x1039
-&device.id             pci 0x7016
-+driver.module.modprobe        sis900
-
-# net/winbond-840.c
- vendor.id             pci 0x1050
-&device.id             pci 0x0840
-|vendor.id             pci 0x11f6
-&device.id             pci 0x2011
-+driver.module.modprobe        winbond-840
-
-# net/ne2k-pci.c
- vendor.id             pci 0x1050
-&device.id             pci 0x0940
-|vendor.id             pci 0x1050
-&device.id             pci 0x5a5a
-|vendor.id             pci 0x10bd
-&device.id             pci 0x0e34
-|vendor.id             pci 0x10ec
-&device.id             pci 0x8029
-|vendor.id             pci 0x1106
-&device.id             pci 0x0926
-|vendor.id             pci 0x11f6
-&device.id             pci 0x1401
-|vendor.id             pci 0x12c3
-&device.id             pci 0x0058
-|vendor.id             pci 0x12c3
-&device.id             pci 0x5598
-|vendor.id             pci 0x4a14
-&device.id             pci 0x5000
-|vendor.id             pci 0x8e2e
-&device.id             pci 0x3000
-+driver.module.modprobe        ne2k-pci
-
-# net/sungem.c (pci)
-# (used to be gmac)
- vendor.id             pci 0x106b
-&device.id             pci 0x0021
-|vendor.id             pci 0x106b
-&device.id             pci 0x0024
-|vendor.id             pci 0x108e
-&device.id             pci 0x1101
-|vendor.id             pci 0x108e
-&device.id             pci 0x2bad
-+driver.module.modprobe        sungem
-
-# net/fc/iph5526.c
- vendor.id             pci 0x107e
-&device.id             pci 0x0004+0x0002
-+driver.module.modprobe        iph5526
-
-# net/sunhme.c (pci, sbus)
- vendor.id             pci 0x108e
-&device.id             pci 0x1001
-|vendor.id             special 0x4001
-&device.id             special 0x3001
-+driver.module.modprobe        sunhme
-
-# net/tokenring/abyss.c
- vendor.id             pci 0x10b6
-&device.id             pci 0x0002
-+driver.module.modprobe        abyss
-
-# pcimap
- vendor.id             pci 0x10b7
-&device.id             pci 0x4500
-|vendor.id             pci 0x10b7
-&device.id             pci 0x5055
-|vendor.id             pci 0x10b7
-&device.id             pci 0x5057
-|vendor.id             pci 0x10b7
-&device.id             pci 0x5157
-|vendor.id             pci 0x10b7
-&device.id             pci 0x5257
-|vendor.id             pci 0x10b7
-&device.id             pci 0x5900
-|vendor.id             pci 0x10b7
-&device.id             pci 0x5920
-|vendor.id             pci 0x10b7
-&device.id             pci 0x5950+0x0003
-|vendor.id             pci 0x10b7
-&device.id             pci 0x5970
-|vendor.id             pci 0x10b7
-&device.id             pci 0x5b57
-|vendor.id             pci 0x10b7
-&device.id             pci 0x6055+0x0002
-|vendor.id             pci 0x10b7
-&device.id             pci 0x6560
-|vendor.id             pci 0x10b7
-&device.id             pci 0x6562
-|vendor.id             pci 0x10b7
-&device.id             pci 0x6564
-|vendor.id             pci 0x10b7
-&device.id             pci 0x7646
-|vendor.id             pci 0x10b7
-&device.id             pci 0x9000+0x0002
-|vendor.id             pci 0x10b7
-&device.id             pci 0x9004+0x0003
-|vendor.id             pci 0x10b7
-&device.id             pci 0x900a
-|vendor.id             pci 0x10b7
-&device.id             pci 0x9050+0x0002
-|vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-|vendor.id             pci 0x10b7
-&device.id             pci 0x9058
-|vendor.id             pci 0x10b7
-&device.id             pci 0x905a
-|vendor.id             pci 0x10b7
-&device.id             pci 0x9200+0x0002
-|vendor.id             pci 0x10b7
-&device.id             pci 0x9800
-|vendor.id             pci 0x10b7
-&device.id             pci 0x9805
-+driver.module.modprobe        3c59x
-
-# net/epic100.c
- vendor.id             pci 0x10b8
-&device.id             pci 0x0005+0x0002
-+driver.module.modprobe        epic100
-
-# modules.alias
- vendor.id             pci 0x018a
-&device.id             pci 0x0106
-|vendor.id             pci 0x021b
-&device.id             pci 0x8139
-|vendor.id             pci 0x02ac
-&device.id             pci 0x1012
-|vendor.id             pci 0x10ec
-&device.id             pci 0x8129
-|vendor.id             pci 0x10ec
-&device.id             pci 0x8138
-|vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&rev.id                        0x0000+0x0020
-|vendor.id             pci 0x1113
-&device.id             pci 0x1211
-|vendor.id             pci 0x1186
-&device.id             pci 0x1300
-|vendor.id             pci 0x1186
-&device.id             pci 0x1340
-|vendor.id             pci 0x11db
-&device.id             pci 0x1234
-|vendor.id             pci 0x1259
-&device.id             pci 0xa117
-|vendor.id             pci 0x1259
-&device.id             pci 0xa11e
-|vendor.id             pci 0x126c
-&device.id             pci 0x1211
-|vendor.id             pci 0x13d1
-&device.id             pci 0xab06
-|vendor.id             pci 0x1432
-&device.id             pci 0x9130
-|vendor.id             pci 0x14ea
-&device.id             pci 0xab06+0x0002
-|vendor.id             pci 0x1500
-&device.id             pci 0x1360
-|vendor.id             pci 0x1743
-&device.id             pci 0x8139
-|vendor.id             pci 0x4033
-&device.id             pci 0x1360
-|device.id             pci 0x8139
-&subvendor.id          pci 0x10ec
-&subdevice.id          pci 0x8139
-|device.id             pci 0x8139
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1300
-|device.id             pci 0x8139
-&subvendor.id          pci 0x13d1
-&subdevice.id          pci 0xab06
-+driver.module.modprobe        8139too
-
-# modules.alias
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&rev.id                        0x0020+0x00e0
-+driver.module.modprobe        8139cp
-
-# net/via_rhine.c
- vendor.id             pci 0x1106
-&device.id             pci 0x3043
-|vendor.id             pci 0x1106
-&device.id             pci 0x3065
-|vendor.id             pci 0x1106
-&device.id             pci 0x6100
-+driver.module.modprobe        via-rhine
-
-# net/skfp/
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-+driver.module.modprobe        skfp
-
-# net/sk98lin/h/skdrv2nd.h::SK_PCI_ISCOMPLIANT()
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-|vendor.id             pci 0x1148
-&device.id             pci 0x4320
-|vendor.id             pci 0x10b7
-&device.id             pci 0x1700
-|vendor.id             pci 0x1186
-&device.id             pci 0x4c00
-|vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-|vendor.id             pci 0x1371
-&device.id             pci 0x434e
-|vendor.id             pci 0x1737
-&device.id             pci 0x1032
-|vendor.id             pci 0x1737
-&device.id             pci 0x1064
-+driver.module.modprobe        sk98lin
-
-# net/dgrs.c
- vendor.id             pci 0x114f
-&device.id             pci 0x0003
-+driver.module.modprobe        dgrs
-
-# net/irda/toshoboe.c
- vendor.id             pci 0x1179
-&device.id             pci 0x0701
-+driver.module.modprobe        toshoboe
-
-# net/sundance.c
- vendor.id             pci 0x1186
-&device.id             pci 0x1002
-|vendor.id             pci 0x13f0
-&device.id             pci 0x0201
-+driver.module.modprobe        sundance
-
-# net/dl2k.c
- vendor.id             pci 0x1186
-&device.id             pci 0x4000
-+driver.module.modprobe        dl2k
-
-# net/wan/sdladrv.c
- vendor.id             pci 0x11b0
-&device.id             pci 0x0002
-+driver.module.modprobe        sdladrv
-
-# net/rrunner.c
- vendor.id             pci 0x120f
-&device.id             pci 0x0001
-+driver.module.modprobe        rrunner
-
-# net/hamachi.c
- vendor.id             pci 0x1318
-&device.id             pci 0x0911
-+driver.module.modprobe        hamachi
-
-# see #14848
- vendor.id             pci 0x1385
-&device.id             pci 0x4100
-+driver.module.modprobe        prism2_plx
-
-# net/aironet4500_card.c
- vendor.id             pci 0x14b9
-&device.id             pci 0x0001
-|vendor.id             pci 0x14b9
-&device.id             pci 0x4500
-|vendor.id             pci 0x14b9
-&device.id             pci 0x4800
-+driver.module.modprobe        aironet4500
-
-# modules.alias
- vendor.id             pci 0x106b
-&device.id             pci 0x1645
-|vendor.id             pci 0x1148
-&device.id             pci 0x4400
-|vendor.id             pci 0x1148
-&device.id             pci 0x4500
-|vendor.id             pci 0x14e4
-&device.id             pci 0x164d
-|vendor.id             pci 0x173b
-&device.id             pci 0x03e8+0x0004
-+driver.module.modprobe        tg3
-
-# modules.alias
-# tg3 vs. bcm5700: #34486, #36992
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644+0x0006
-|vendor.id             pci 0x14e4
-&device.id             pci 0x1653+0x0002
-|vendor.id             pci 0x14e4
-&device.id             pci 0x165d+0x0002
-|vendor.id             pci 0x14e4
-&device.id             pci 0x166e
-|vendor.id             pci 0x14e4
-&device.id             pci 0x1696
-|vendor.id             pci 0x14e4
-&device.id             pci 0x169c
-|vendor.id             pci 0x14e4
-&device.id             pci 0x16a6+0x0003
-|vendor.id             pci 0x14e4
-&device.id             pci 0x16c6+0x0002
-|vendor.id             pci 0x14e4
-&device.id             pci 0x170d+0x0002
-+driver.module.modprobe        tg3
-+driver.module.modprobe        bcm5700
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4401
-+driver.module.modprobe        bcm4400
-
-# net/arcnet/com20020-pci.c
- vendor.id             pci 0x1571
-&device.id             pci 0xa001+0x0013
-|vendor.id             pci 0x1571
-&device.id             pci 0xa201+0x0006
-+driver.module.modprobe        om20020-pci
-
-# net/rcpci45.c
- vendor.id             pci 0x4916
-&device.id             pci 0x1960
-+driver.module.modprobe        rcpci45
-
-# pcimap
- vendor.id             pci 0x8086
-&device.id             pci 0x1050+0x0006
-+driver.module.modprobe        e100
-
-# pcimap
- vendor.id             pci 0x8086
-&device.id             pci 0x1035+0x0003
-|vendor.id             pci 0x8086
-&device.id             pci 0x1227+0x0002
-|vendor.id             pci 0x8086
-&device.id             pci 0x5200+0x0002
-+driver.module.modprobe        eepro100
-
-# pcimap
- vendor.id             pci 0x8086
-&device.id             pci 0x1029
-|vendor.id             pci 0x8086
-&device.id             pci 0x1030+0x0005
-|vendor.id             pci 0x8086
-&device.id             pci 0x1038+0x0007
-|vendor.id             pci 0x8086
-&device.id             pci 0x1059
-|vendor.id             pci 0x8086
-&device.id             pci 0x1209
-|vendor.id             pci 0x8086
-&device.id             pci 0x1229
-|vendor.id             pci 0x8086
-&device.id             pci 0x2449
-|vendor.id             pci 0x8086
-&device.id             pci 0x2459
-|vendor.id             pci 0x8086
-&device.id             pci 0x245d
-+driver.module.modprobe        e100
-+driver.module.modprobe        eepro100
-
-# pcimap
- vendor.id             pci 0x8086
-&device.id             pci 0x1000+0x0002
-|vendor.id             pci 0x8086
-&device.id             pci 0x1004
-|vendor.id             pci 0x8086
-&device.id             pci 0x1008+0x0002
-|vendor.id             pci 0x8086
-&device.id             pci 0x100c+0x000e
-|vendor.id             pci 0x8086
-&device.id             pci 0x101d+0x0002
-|vendor.id             pci 0x8086
-&device.id             pci 0x1026+0x0003
-|vendor.id             pci 0x8086
-&device.id             pci 0x1075+0x0007
-+driver.module.modprobe        e1000
-
-# net/starfire.c
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-+driver.module.modprobe        starfire
-
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1043
-+driver.module.modprobe        ipw2100
-
-
-# make it an ethernet card explicitly (#65852)
- vendor.id             pci 0x10de
-&device.id             pci 0x0037+0x0002
-|vendor.id             pci 0x10de
-&device.id             pci 0x0056+0x0002
-|vendor.id             pci 0x10de
-&device.id             pci 0x0066
-|vendor.id             pci 0x10de
-&device.id             pci 0x0086
-|vendor.id             pci 0x10de
-&device.id             pci 0x008c
-|vendor.id             pci 0x10de
-&device.id             pci 0x00d6
-|vendor.id             pci 0x10de
-&device.id             pci 0x00df
-|vendor.id             pci 0x10de
-&device.id             pci 0x00e6
-|vendor.id             pci 0x10de
-&device.id             pci 0x01c3
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        forcedeth
-
-
-# net/ne.c
- vendor.id             AXE
-&device.id             eisa 0x2201
-|vendor.id             PNP
-&device.id             eisa 0x80d6
-+driver.module.modprobe        ne
-+driver.module.config  options ne              io=<io0> irq=<irq0>
-+driver.module.insmod  8390|ne io=<io0> irq=<irq0>
-
-# net/3c509.c
- vendor.id             PNP
-&device.id             eisa 0x80f7+0x0002
-|vendor.id             TCM
-&device.id             eisa 0x5090+0x0002
-|vendor.id             TCM
-&device.id             eisa 0x5094+0x0002
-|vendor.id             TCM
-&device.id             eisa 0x5098
-+driver.module.modprobe        3c509
-
-# mac ethernet controller
- vendor.id             special 0x0401
-&device.id             special 0x0020
-+driver.module.modprobe        mace
-
-# mac ethernet controller
- vendor.id             special 0x0401
-&device.id             special 0x0021+0x0002
-+driver.module.modprobe        bmac
-
-# net/sunqe.c (sbus)
- vendor.id             special 0x4001
-&device.id             special 0x3003
-+driver.module.modprobe        sunqe
-
-# net/myri_sbus.c (sbus)
- vendor.id             special 0x4001
-&device.id             special 0x3004
-+driver.module.modprobe        myri_sbus
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# usb network adapter
-
- vendor.id             usb 0x0411
-+vendor.name           MELCO
-
- vendor.id             usb 0x0411
-&device.id             usb 0x0001
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           BUFFALO LUA-TX
-
- vendor.id             usb 0x04bb
-+vendor.name           IO Data
-
- vendor.id             usb 0x04bb
-&device.id             usb 0x0904
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           USB ET/TX
-
- vendor.id             usb 0x056e
-+vendor.name           LANEED
-
- vendor.id             usb 0x056e
-&device.id             usb 0x4002
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           LD-USB/TX
-
- vendor.id             usb 0x05e9
-+vendor.name           SONY
-
- vendor.id             usb 0x05e9
-&device.id             usb 0x0009
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           Ethernet USB
-
- vendor.id             usb 0x066b
-+vendor.name           Linksys
-
- vendor.id             usb 0x066b
-&device.id             usb 0x2203+0x0002
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           USB100TX
-
- vendor.id             usb 0x066b
-&device.id             usb 0x2206
-+baseclass.id          0x002
-+subclass.id           0x00
-
- vendor.id             usb 0x0707
-+vendor.name           SMC
-
- vendor.id             usb 0x0707
-&device.id             usb 0x0100
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           2102 EZ Ethernet USB
-
- vendor.id             usb 0x0707
-&device.id             usb 0x0200
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           202 USB Ethernet
-
- vendor.id             usb 0x07a6
-+vendor.name           ADMtek
-
- vendor.id             usb 0x07a6
-&device.id             usb 0x0986
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           AN986 USB Ethernet
-
- vendor.id             usb 0x07aa
-+vendor.name           Corega
-
- vendor.id             usb 0x07aa
-&device.id             usb 0x0001
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           FEther USB-T
-
- vendor.id             usb 0x07aa
-&device.id             usb 0x0004
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           FEther USB-TX
-
- vendor.id             usb 0x07b8
-|vendor.id             usb 0x2001
-+vendor.name           D-Link
-
- vendor.id             usb 0x07b8
-&device.id             usb 0x4002
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           DRU-E100
-
- vendor.id             usb 0x07b8
-&device.id             usb 0xabc1
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           DU-10
-
- vendor.id             usb 0x083a
-+vendor.name           Accton
-
- vendor.id             usb 0x083a
-&device.id             usb 0x1046
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           USB 10/100 Ethernet Adapter
-
- vendor.id             usb 0x08dd
-+vendor.name           Billionton
-
- vendor.id             usb 0x08dd
-&device.id             usb 0x0986
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           USB-100
-
- vendor.id             usb 0x2001
-&device.id             usb 0x4001+0x0002
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           DSB-650X
-
- vendor.id             usb 0x2001
-&device.id             usb 0x4003
-+baseclass.id          0x002
-+subclass.id           0x00
-+device.name           DSB-650X(PNA)
-
-
- vendor.id             usb 0x03e8
-&device.id             usb 0x0008
-|vendor.id             usb 0x04bb
-&device.id             usb 0x0901
-|vendor.id             usb 0x0506
-&device.id             usb 0x03e8
-|vendor.id             usb 0x0506
-&device.id             usb 0x11f8
-|vendor.id             usb 0x0557
-&device.id             usb 0x2002
-|vendor.id             usb 0x0557
-&device.id             usb 0x4000
-|vendor.id             usb 0x0565
-&device.id             usb 0x0002+0x0002
-|vendor.id             usb 0x0565
-&device.id             usb 0x0005
-|vendor.id             usb 0x05e9
-&device.id             usb 0x0008+0x0002
-|vendor.id             usb 0x06e1
-&device.id             usb 0x0008+0x0002
-|vendor.id             usb 0x0707
-&device.id             usb 0x0100
-|vendor.id             usb 0x07aa
-&device.id             usb 0x0001
-|vendor.id             usb 0x07b8
-&device.id             usb 0x4000
-|vendor.id             usb 0x0846
-&device.id             usb 0x1001+0x0002
-|vendor.id             usb 0x085a
-&device.id             usb 0x0008+0x0002
-|vendor.id             usb 0x087d
-&device.id             usb 0x5704
-|vendor.id             usb 0x0951
-&device.id             usb 0x0008
-|vendor.id             usb 0x095a
-&device.id             usb 0x3003
-|vendor.id             usb 0x10bd
-&device.id             usb 0x1427
-|vendor.id             usb 0x1342
-&device.id             usb 0x0204
-|vendor.id             usb 0x13d2
-&device.id             usb 0x0400
-|vendor.id             usb 0x1485
-&device.id             usb 0x0001
-|vendor.id             usb 0x1645
-&device.id             usb 0x0005
-|vendor.id             usb 0x1645
-&device.id             usb 0x0008
-|vendor.id             usb 0x1645
-&device.id             usb 0x8005
-|vendor.id             usb 0x2001
-&device.id             usb 0x4000
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        kaweth
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x811c
-|vendor.id             usb 0x0411
-&device.id             usb 0x0001
-|vendor.id             usb 0x0411
-&device.id             usb 0x0005
-|vendor.id             usb 0x0411
-&device.id             usb 0x0009
-|vendor.id             usb 0x045e
-&device.id             usb 0x007a
-|vendor.id             usb 0x049f
-&device.id             usb 0x8511
-|vendor.id             usb 0x04bb
-&device.id             usb 0x0904
-|vendor.id             usb 0x04bb
-&device.id             usb 0x0913
-|vendor.id             usb 0x0506
-&device.id             usb 0x4601
-|vendor.id             usb 0x050d
-&device.id             usb 0x0121
-|vendor.id             usb 0x0557
-&device.id             usb 0x2007
-|vendor.id             usb 0x056e
-&device.id             usb 0x200c
-|vendor.id             usb 0x056e
-&device.id             usb 0x4002
-|vendor.id             usb 0x056e
-&device.id             usb 0x400b
-|vendor.id             usb 0x056e
-&device.id             usb 0xabc1
-|vendor.id             usb 0x05cc
-&device.id             usb 0x3000
-|vendor.id             usb 0x066b
-&device.id             usb 0x200c
-|vendor.id             usb 0x066b
-&device.id             usb 0x2203+0x0002
-|vendor.id             usb 0x066b
-&device.id             usb 0x2206
-|vendor.id             usb 0x066b
-&device.id             usb 0x400b
-|vendor.id             usb 0x067c
-&device.id             usb 0x1001
-|vendor.id             usb 0x0707
-&device.id             usb 0x0200+0x0002
-|vendor.id             usb 0x07a6
-&device.id             usb 0x07c2
-|vendor.id             usb 0x07a6
-&device.id             usb 0x0986
-|vendor.id             usb 0x07a6
-&device.id             usb 0x8511
-|vendor.id             usb 0x07a6
-&device.id             usb 0x8513
-|vendor.id             usb 0x07a6
-&device.id             usb 0x8515
-|vendor.id             usb 0x07aa
-&device.id             usb 0x0004
-|vendor.id             usb 0x07aa
-&device.id             usb 0x000d
-|vendor.id             usb 0x07b8
-&device.id             usb 0x110c
-|vendor.id             usb 0x07b8
-&device.id             usb 0x200c
-|vendor.id             usb 0x07b8
-&device.id             usb 0x4002
-|vendor.id             usb 0x07b8
-&device.id             usb 0x4004
-|vendor.id             usb 0x07b8
-&device.id             usb 0x4007
-|vendor.id             usb 0x07b8
-&device.id             usb 0x400b+0x0002
-|vendor.id             usb 0x07b8
-&device.id             usb 0x4102
-|vendor.id             usb 0x07b8
-&device.id             usb 0x4104
-|vendor.id             usb 0x07b8
-&device.id             usb 0xabc1
-|vendor.id             usb 0x07c9
-&device.id             usb 0xb100
-|vendor.id             usb 0x083a
-&device.id             usb 0x1046
-|vendor.id             usb 0x083a
-&device.id             usb 0x5046
-|vendor.id             usb 0x0846
-&device.id             usb 0x1020
-|vendor.id             usb 0x08d1
-&device.id             usb 0x0003
-|vendor.id             usb 0x08dd
-&device.id             usb 0x0986+0x0003
-|vendor.id             usb 0x08dd
-&device.id             usb 0x8511
-|vendor.id             usb 0x0951
-&device.id             usb 0x000a
-|vendor.id             usb 0x0b39
-&device.id             usb 0x0109
-|vendor.id             usb 0x0b39
-&device.id             usb 0x0901
-|vendor.id             usb 0x0db7
-&device.id             usb 0x0002
-|vendor.id             usb 0x0e66
-&device.id             usb 0x400c
-|vendor.id             usb 0x1044
-&device.id             usb 0x8002
-|vendor.id             usb 0x1342
-&device.id             usb 0x0304
-|vendor.id             usb 0x15e8
-&device.id             usb 0x9100
-|vendor.id             usb 0x15e8
-&device.id             usb 0x9110
-|vendor.id             usb 0x2001
-&device.id             usb 0x200c
-|vendor.id             usb 0x2001
-&device.id             usb 0x4001+0x0003
-|vendor.id             usb 0x2001
-&device.id             usb 0x400b
-|vendor.id             usb 0x2001
-&device.id             usb 0x4102
-|vendor.id             usb 0x2001
-&device.id             usb 0xabc1
-|vendor.id             usb 0x3334
-&device.id             usb 0x1701
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        pegasus
-
- vendor.id             usb 0x0411
-&device.id             usb 0x0012
-|vendor.id             usb 0x07b8
-&device.id             usb 0x401a
-|vendor.id             usb 0x0bda
-&device.id             usb 0x8150
-|vendor.id             usb 0x3980
-&device.id             usb 0x0003
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        rtl8150
-
- vendor.id             usb 0x0423
-&device.id             usb 0x000a
-|vendor.id             usb 0x0423
-&device.id             usb 0x000c
-|vendor.id             usb 0x08d1
-&device.id             usb 0x0001
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        catc
-
- vendor.id             usb 0x066b
-&device.id             usb 0x2202
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        pegasus
-+driver.module.modprobe        kaweth
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# myrinet adapter
-
- vendor.id             pci 0x14c1
-+vendor.name           Myricom, Inc.
-
- vendor.id             pci 0x14c1
-&device.id             pci 0x8043
-+baseclass.id          0x002
-+subclass.id           0x81
-+driver.module.modprobe        gm
-+device.name           Myrinet Adapter
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# bluetooth usb devices
- vendor.id             usb 0x044e
-&device.id             usb 0x3001+0x0002
-|vendor.id             usb 0x04bf
-&device.id             usb 0x030a
-|vendor.id             usb 0x057c
-&device.id             usb 0x3800
-|vendor.id             usb 0x0bdb
-&device.id             usb 0x1002
-+driver.module.modprobe        hci_usb
-+baseclass.id          0x115
-+subclass.id           0x00
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# firmware 
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x2741
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2701+0x0002
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2711+0x0002
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2721+0x0002
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2731+0x0002
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2741+0x0002
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2751+0x0004
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2761+0x0002
-|vendor.id             pci 0x8086
-&device.id             pci 0x104f
-|vendor.id             pci 0x8086
-&device.id             pci 0x4220
-|vendor.id             pci 0x8086
-&device.id             pci 0x4223
-+driver.module.modprobe        ipw2200
-+requires              ipw-firmware
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2520+0x000a
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x252b+0x0003
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2550+0x0002
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2553+0x0003
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2560+0x0004
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2565+0x0003
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2570
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2580+0x0004
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2585+0x0003
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2590+0x0004
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2596
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2598
-|vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x25a0
-+driver.module.modprobe        ipw2100
-+requires              ipw-firmware
-
-
- vendor.id             usb 0x03eb
-&device.id             usb 0x4102
-|vendor.id             usb 0x03eb
-&device.id             usb 0x7605
-|vendor.id             usb 0x049f
-&device.id             usb 0x0032
-|vendor.id             usb 0x04a5
-&device.id             usb 0x9001
-|vendor.id             usb 0x0506
-&device.id             usb 0x0a01
-|vendor.id             usb 0x050d
-&device.id             usb 0x0050
-|vendor.id             usb 0x0681
-&device.id             usb 0x001b
-|vendor.id             usb 0x069a
-&device.id             usb 0x0321
-|vendor.id             usb 0x077b
-&device.id             usb 0x2219
-|vendor.id             usb 0x077b
-&device.id             usb 0x2227
-|vendor.id             usb 0x07b8
-&device.id             usb 0xb000
-|vendor.id             usb 0x0864
-&device.id             usb 0x4102
-|vendor.id             usb 0x1044
-&device.id             usb 0x8003
-|vendor.id             usb 0x1371
-&device.id             usb 0x0002
-|vendor.id             usb 0x1371
-&device.id             usb 0x5743
-|vendor.id             usb 0x1668
-&device.id             usb 0x7605
-|vendor.id             usb 0x2001
-&device.id             usb 0x3200
-|vendor.id             usb 0x2019
-&device.id             usb 0x3220
-+driver.module.modprobe        at76c503-rfmd
-+requires              atmel-firmware
-
- vendor.id             usb 0x03eb
-&device.id             usb 0x7603
-|vendor.id             usb 0x03f0
-&device.id             usb 0x011c
-|vendor.id             usb 0x04a5
-&device.id             usb 0x9000
-|vendor.id             usb 0x04bb
-&device.id             usb 0x0919
-|vendor.id             usb 0x05dd
-&device.id             usb 0xff31
-|vendor.id             usb 0x066b
-&device.id             usb 0x2211
-|vendor.id             usb 0x069a
-&device.id             usb 0x0320
-|vendor.id             usb 0x069a
-&device.id             usb 0x0821
-|vendor.id             usb 0x0864
-&device.id             usb 0x4100
-|vendor.id             usb 0x0b3b
-&device.id             usb 0x1612
-|vendor.id             usb 0x0cde
-&device.id             usb 0x0001
-|vendor.id             usb 0x0d5c
-&device.id             usb 0xa001
-|vendor.id             usb 0x0d8e
-&device.id             usb 0x7100
-|vendor.id             usb 0x0d8e
-&device.id             usb 0x7110
-|vendor.id             usb 0x8086
-&device.id             usb 0x0200
-+driver.module.modprobe        at76c503-i3861
-+requires              atmel-firmware
-
- vendor.id             usb 0x03eb
-&device.id             usb 0x7604
-|vendor.id             usb 0x055d
-&device.id             usb 0xa000
-+driver.module.modprobe        at76c503-i3863
-+requires              atmel-firmware
-
- vendor.id             usb 0x03eb
-&device.id             usb 0x7606
-+driver.module.modprobe        at76c505-rfmd
-+requires              atmel-firmware
-
- vendor.id             usb 0x03eb
-&device.id             usb 0x7613
-|vendor.id             usb 0x07aa
-&device.id             usb 0x7613
-|vendor.id             usb 0x0db0
-&device.id             usb 0x1020
-|vendor.id             usb 0x12fd
-&device.id             usb 0x1001
-|vendor.id             usb 0x1371
-&device.id             usb 0x0013+0x0002
-|vendor.id             usb 0x1915
-&device.id             usb 0x2233
-+driver.module.modprobe        at76c505-rfmd2958
-+requires              atmel-firmware
-
- vendor.id             usb 0x03eb
-&device.id             usb 0x7614
-|vendor.id             usb 0x03eb
-&device.id             usb 0x7617
-+driver.module.modprobe        at76c505a-rfmd2958
-+requires              atmel-firmware
-
- vendor.id             usb 0x083a
-&device.id             usb 0x3501
-|vendor.id             usb 0x0d5c
-&device.id             usb 0xa002
-+driver.module.modprobe        at76c503-rfmd-acc
-+requires              atmel-firmware
-
- vendor.id             usb 0x0a5c
-&device.id             usb 0x2033
-+requires              bluez-firmware
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# usbnet devices
-
- vendor.id             usb 0x0402
-&device.id             usb 0x5632
-|vendor.id             usb 0x0411
-&device.id             usb 0x003d
-|vendor.id             usb 0x049f
-&device.id             usb 0x505a
-|vendor.id             usb 0x050d
-&device.id             usb 0x0004
-|vendor.id             usb 0x0525
-&device.id             usb 0x1080
-|vendor.id             usb 0x0525
-&device.id             usb 0x2888
-|vendor.id             usb 0x0525
-&device.id             usb 0x9901
-|vendor.id             usb 0x0547
-&device.id             usb 0x2720
-|vendor.id             usb 0x0547
-&device.id             usb 0x2727
-|vendor.id             usb 0x0557
-&device.id             usb 0x2009
-|vendor.id             usb 0x056c
-&device.id             usb 0x8100
-|vendor.id             usb 0x05e3
-&device.id             usb 0x0502
-|vendor.id             usb 0x067b
-&device.id             usb 0x0000+0x0002
-|vendor.id             usb 0x06d0
-&device.id             usb 0x0622
-|vendor.id             usb 0x077b
-&device.id             usb 0x2226
-|vendor.id             usb 0x07b8
-&device.id             usb 0x420a
-|vendor.id             usb 0x0846
-&device.id             usb 0x1040
-|vendor.id             usb 0x08dd
-&device.id             usb 0x90ff
-|vendor.id             usb 0x0b95
-&device.id             usb 0x1720
-|vendor.id             usb 0x0e7e
-&device.id             usb 0x1001
-|vendor.id             usb 0x2001
-&device.id             usb 0x1a00
-|vendor.id             usb 0x6189
-&device.id             usb 0x182d
-|vendor.id             usb 0x8086
-&device.id             usb 0x07d3
-+driver.module.modprobe        usbnet
-+baseclass.id          0x002
-+subclass.id           0x91
-
diff --git a/src/hwinfo/src/ids/src/pci b/src/hwinfo/src/ids/src/pci
deleted file mode 100644 (file)
index 4cd40d7..0000000
+++ /dev/null
@@ -1,43466 +0,0 @@
- vendor.id             pci 0x0000
-+vendor.name           Gammagraphx, Inc.
-
- vendor.id             pci 0x001a
-+vendor.name           Ascend Communications, Inc.
-
- vendor.id             pci 0x0033
-+vendor.name           Paradyne corp.
-
- vendor.id             pci 0x003d
-+vendor.name           Lockheed Martin-Marietta Corp
-
- vendor.id             pci 0x0059
-+vendor.name           Tiger Jet Network Inc. (Wrong ID)
-
- vendor.id             pci 0x0070
-+vendor.name           Hauppauge computer works Inc.
-
- vendor.id             pci 0x0070
-&device.id             pci 0x4000
-+device.name           WinTV PVR-350
-
- vendor.id             pci 0x0070
-&device.id             pci 0x4001
-+device.name           WinTV PVR-250 (v1)
-
- vendor.id             pci 0x0070
-&device.id             pci 0x4009
-+device.name           WinTV PVR-250
-
- vendor.id             pci 0x0070
-&device.id             pci 0x4801
-+device.name           WinTV PVR-250 MCE
-
- vendor.id             pci 0x0071
-+vendor.name           Nebula Electronics Ltd.
-
- vendor.id             pci 0x0095
-+vendor.name           Silicon Image, Inc. (Wrong ID)
-
- vendor.id             pci 0x0095
-&device.id             pci 0x0680
-+device.name           Ultra ATA/133 IDE RAID CONTROLLER CARD
-
- vendor.id             pci 0x0100
-+vendor.name           Ncipher Corp Ltd
-
- vendor.id             pci 0x018a
-+vendor.name           LevelOne
-
- vendor.id             pci 0x018a
-&device.id             pci 0x0106
-+device.name           FPC-0106TX misprogrammed [RTL81xx]
-
- vendor.id             pci 0x021b
-+vendor.name           Compaq Computer Corporation
-
- vendor.id             pci 0x021b
-&device.id             pci 0x8139
-+device.name           HNE-300 (RealTek RTL8139c) [iPaq Networking]
-
- vendor.id             pci 0x0291
-+vendor.name           Davicom Semiconductor, Inc.
-
- vendor.id             pci 0x0291
-&device.id             pci 0x8212
-+device.name           DM9102A(DM9102AE, SM9102AF) Ethernet 100/10 MBit(Rev 40)
-
- vendor.id             pci 0x02ac
-+vendor.name           SpeedStream
-
- vendor.id             pci 0x02ac
-&device.id             pci 0x1012
-+device.name           1012 PCMCIA 10/100 Ethernet Card [RTL81xx]
-
- vendor.id             pci 0x0357
-+vendor.name           TTTech AG
-
- vendor.id             pci 0x0357
-&device.id             pci 0x000a
-+device.name           TTP-Monitoring Card V2.0
-
- vendor.id             pci 0x0432
-+vendor.name           SCM Microsystems, Inc.
-
- vendor.id             pci 0x05e3
-+vendor.name           CyberDoor
-
- vendor.id             pci 0x05e3
-&device.id             pci 0x0701
-+device.name           CBD516
-
- vendor.id             pci 0x0675
-+vendor.name           Dynalink
-
- vendor.id             pci 0x0675
-&device.id             pci 0x1700
-+device.name           IS64PH ISDN Adapter
-
- vendor.id             pci 0x0675
-&device.id             pci 0x1702
-+device.name           IS64PH ISDN Adapter
-
- vendor.id             pci 0x0925
-+vendor.name           VIA Technologies, Inc. (Wrong ID)
-
- vendor.id             pci 0x09c1
-+vendor.name           Arris
-
- vendor.id             pci 0x09c1
-&device.id             pci 0x0704
-+device.name           CM 200E Cable Modem
-
- vendor.id             pci 0x0a89
-+vendor.name           BREA Technologies Inc
-
- vendor.id             pci 0x0b49
-+vendor.name           ASCII Corporation
-
- vendor.id             pci 0x0b49
-&device.id             pci 0x064f
-+device.name           Trance Vibrator
-
- vendor.id             pci 0x0e11
-+vendor.name           Compaq Computer Corporation
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x0001
-+device.name           PCI to EISA Bridge
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x0002
-+device.name           PCI to ISA Bridge
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x0046
-+device.name           Smart Array 64xx
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x0046
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x409a
-+subdevice.name                Smart Array 641
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x0046
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x409b
-+subdevice.name                Smart Array 642
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x0046
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x409c
-+subdevice.name                Smart Array 6400
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x0046
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x409d
-+subdevice.name                Smart Array 6400 EM
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x0049
-+device.name           NC7132 Gigabit Upgrade Module
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x004a
-+device.name           NC6136 Gigabit Server Adapter
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x007c
-+device.name           NC7770 1000BaseTX
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x007d
-+device.name           NC6770 1000BaseTX
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x0085
-+device.name           NC7780 1000BaseTX
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x00bb
-+device.name           NC7760
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x00ca
-+device.name           NC7771
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x00cb
-+device.name           NC7781
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x00cf
-+device.name           NC7772
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x00d0
-+device.name           NC7782
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x00d1
-+device.name           NC7783
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x00e3
-+device.name           NC7761
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x0508
-+device.name           Netelligent 4/16 Token Ring
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x1000
-+device.name           Triflex/Pentium Bridge, Model 1000
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x2000
-+device.name           Triflex/Pentium Bridge, Model 2000
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x3032
-+device.name           QVision 1280/p
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x3033
-+device.name           QVision 1280/p
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x3034
-+device.name           QVision 1280/p
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4000
-+device.name           4000 [Triflex]
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4030
-+device.name           SMART-2/P
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4031
-+device.name           SMART-2SL
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4032
-+device.name           Smart Array 3200
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4033
-+device.name           Smart Array 3100ES
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4034
-+device.name           Smart Array 221
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4040
-+device.name           Integrated Array
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4048
-+device.name           Compaq Raid LC2
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4050
-+device.name           Smart Array 4200
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4051
-+device.name           Smart Array 4250ES
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4058
-+device.name           Smart Array 431
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4070
-+device.name           Smart Array 5300
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4080
-+device.name           Smart Array 5i
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4082
-+device.name           Smart Array 532
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4083
-+device.name           Smart Array 5312
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x4091
-+device.name           Smart Array 6i
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x409a
-+device.name           Smart Array 641
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x409b
-+device.name           Smart Array 642
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x409c
-+device.name           Smart Array 6400
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x409d
-+device.name           Smart Array 6400 EM
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x6010
-+device.name           HotPlug PCI Bridge 6010
-
- vendor.id             pci 0x0e11
-&device.id             pci 0x7020
-+device.name           USB Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xa0ec
-+device.name           Fibre Channel Host Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xa0f0
-+device.name           Advanced System Management Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xa0f3
-+device.name           Triflex PCI to ISA Bridge
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xa0f7
-+device.name           PCI Hotplug Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xa0f7
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x002a
-+subdevice.name                PCI Hotplug Controller A
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xa0f7
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x002b
-+subdevice.name                PCI Hotplug Controller B
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xa0f8
-+device.name           ZFMicro Chipset USB
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xa0fc
-+device.name           FibreChannel HBA Tachyon
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae10
-+device.name           Smart-2/P RAID Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae10
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4030
-+subdevice.name                Smart-2/P Array Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae10
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4031
-+subdevice.name                Smart-2SL Array Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae10
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4032
-+subdevice.name                Smart Array Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae10
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4033
-+subdevice.name                Smart 3100ES Array Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae29
-+device.name           MIS-L
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae2a
-+device.name           MPC
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae2b
-+device.name           MIS-E
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae31
-+device.name           System Management Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae32
-+device.name           Compaq Netelligent 10/100 TX PCI UTP TLAN 2.3
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae33
-+device.name           Triflex Dual EIDE Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae34
-+device.name           Compaq Netelligent 10 T PCI UTP TLAN 2.3
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae35
-+device.name           Compaq Integrated NetFlex-3/P ThunderLAN 2.3
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae40
-+device.name           Compaq Netelligent Dual 10/100 TX PCI TLAN 3.03
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae43
-+device.name           Compaq Integrated Netelligent 10/100 TX PCI TLAN 2.3
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae69
-+device.name           CETUS-L
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae6c
-+device.name           Northstar
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xae6d
-+device.name           NorthStar CPU to PCI Bridge
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb011
-+device.name           Netelligent 10/100 TX Embedded UTP
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb012
-+device.name           Compaq Netelligent 10 T/2 UTP/Coax PCI
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb01e
-+device.name           NC3120 Fast Ethernet NIC
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb01f
-+device.name           NC3122 Fast Ethernet NIC
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb02f
-+device.name           NC1120 Ethernet NIC
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb030
-+device.name           Compaq Netelligent 10/100 TX Embedded UTP/Coax Controller (5100)
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb04a
-+device.name           10/100 TX PCI Intel WOL UTP Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb060
-+device.name           Smart Array 5300 Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb0c6
-+device.name           NC3161 Fast Ethernet NIC
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb0c7
-+device.name           NC3160 Fast Ethernet NIC
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb0d7
-+device.name           NC3121 Fast Ethernet NIC
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb0dd
-+device.name           NC3131 Fast Ethernet NIC
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb0de
-+device.name           NC3132 Fast Ethernet Module
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb0df
-+device.name           NC6132 Gigabit Module
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb0e0
-+device.name           NC6133 Gigabit Module
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb0e1
-+device.name           NC3133 Fast Ethernet Module
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb123
-+device.name           NC6134 Gigabit NIC
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb134
-+device.name           NC3163 Fast Ethernet NIC
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb13c
-+device.name           NC3162 Fast Ethernet NIC
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb144
-+device.name           NC3123 Fast Ethernet NIC
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb163
-+device.name           NC3134 Fast Ethernet NIC
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb164
-+device.name           NC3165 Fast Ethernet Upgrade Module
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb178
-+device.name           Smart Array 5i/532
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb178
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4080
-+subdevice.name                Smart Array 5i
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb178
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4082
-+subdevice.name                Smart Array 532
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb178
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4083
-+subdevice.name                Smart Array 5312
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb1a4
-+device.name           NC7131 Gigabit Server Adapter
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb200
-+device.name           Memory Hot-Plug Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb203
-+device.name           Integrated Lights Out Controller
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xb204
-+device.name           Integrated Lights Out  Processor
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xf130
-+device.name           Compaq NetFlex-3/P ThunderLAN 1.0
-
- vendor.id             pci 0x0e11
-&device.id             pci 0xf150
-+device.name           Compaq NetFlex-3/P ThunderLAN 2.3
-
- vendor.id             pci 0x0e55
-+vendor.name           HaSoTec GmbH
-
- vendor.id             pci 0x1000
-+vendor.name           LSI Logic / Symbios Logic
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0001
-+device.name           53c810
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0001
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1000
-+subdevice.name                LSI53C810AE PCI to SCSI I/O Processor
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0002
-+device.name           53c820
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0003
-+device.name           53c825
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1000
-+subdevice.name                LSI53C825AE PCI to SCSI I/O Processor (Ultra Wide)
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0004
-+device.name           53c815
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0005
-+device.name           53c810AP
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0006
-+device.name           53c860
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0006
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1000
-+subdevice.name                LSI53C860E PCI to Ultra SCSI I/O Processor
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000a
-+device.name           53c1510
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000a
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1000
-+subdevice.name                LSI53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Nonintelligent mode)
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000b
-+device.name           53C896/897
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000b
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x6004
-+subdevice.name                EOB003 Series SCSI host adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000b
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1000
-+subdevice.name                LSI53C896/7 PCI to Dual Channel Ultra2 SCSI Multifunction Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000b
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1010
-+subdevice.name                LSI22910 PCI to Dual Channel Ultra2 SCSI host adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000b
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1020
-+subdevice.name                LSI21002 PCI to Dual Channel Ultra2 SCSI host adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000b
-&subvendor.id          pci 0x13e9
-&subdevice.id          pci 0x1000
-+subdevice.name                6221L-4U
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000c
-+device.name           53c895
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000c
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1010
-+subdevice.name                LSI8951U PCI to Ultra2 SCSI host adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000c
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1020
-+subdevice.name                LSI8952U PCI to Ultra2 SCSI host adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000c
-&subvendor.id          pci 0x1de1
-&subdevice.id          pci 0x3906
-+subdevice.name                DC-390U2B SCSI adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000c
-&subvendor.id          pci 0x1de1
-&subdevice.id          pci 0x3907
-+subdevice.name                DC-390U2W
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000d
-+device.name           53c885
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000f
-+device.name           53c875
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000f
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x7004
-+subdevice.name                Embedded Ultra Wide SCSI Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000f
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1000
-+subdevice.name                LSI53C876/E PCI to Dual Channel SCSI Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000f
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1010
-+subdevice.name                LSI22801 PCI to Dual Channel Ultra SCSI host adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000f
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1020
-+subdevice.name                LSI22802 PCI to Dual Channel Ultra SCSI host adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000f
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x8760
-+subdevice.name                FirePort 40 Dual SCSI Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000f
-&subvendor.id          pci 0x1de1
-&subdevice.id          pci 0x3904
-+subdevice.name                DC390F/U Ultra Wide SCSI Adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000f
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1000
-+subdevice.name                CC7/CR7/CP7/VC7/VP7/VR7 mainboard
-
- vendor.id             pci 0x1000
-&device.id             pci 0x000f
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1050
-+subdevice.name                CT7 mainboard
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0010
-+device.name           53C1510
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0010
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4040
-+subdevice.name                Integrated Array Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0010
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4048
-+subdevice.name                RAID LC2 Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0010
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1000
-+subdevice.name                53C1510 PCI to Dual Channel Wide Ultra2 SCSI Controller (Intelligent mode)
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0012
-+device.name           53c895a
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0012
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1000
-+subdevice.name                LSI53C895A PCI to Ultra2 SCSI Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0013
-+device.name           53c875a
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0013
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1000
-+subdevice.name                LSI53C875A PCI to Ultra SCSI Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0020
-+device.name           53c1010 Ultra3 SCSI Adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1000
-+subdevice.name                LSI53C1010-33 PCI to Dual Channel Ultra160 SCSI Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1de1
-&subdevice.id          pci 0x1020
-+subdevice.name                DC-390U3W
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0021
-+device.name           53c1010 66MHz  Ultra3 SCSI Adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0021
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1000
-+subdevice.name                LSI53C1000/1000R/1010R/1010-66 PCI to Ultra160 SCSI Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0021
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1010
-+subdevice.name                Asus TR-DLS onboard 53C1010-66
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0021
-&subvendor.id          pci 0x124b
-&subdevice.id          pci 0x1070
-+subdevice.name                PMC-USCSI3
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0021
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1080
-+subdevice.name                CT8 mainboard
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0021
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1300
-+subdevice.name                P017 mezzanine (32-bit PMC)
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0021
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1310
-+subdevice.name                P017 mezzanine (64-bit PMC)
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0030
-+device.name           53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0030
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0123
-+subdevice.name                PowerEdge 2600
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0030
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x014a
-+subdevice.name                PowerEdge 1750
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0030
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x016c
-+subdevice.name                PowerEdge 1850 MPT Fusion SCSI/RAID (Perc 4)
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0030
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x1010
-+subdevice.name                LSI U320 SCSI Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0031
-+device.name           53c1030ZC PCI-X Fusion-MPT Dual Ultra320 SCSI
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0032
-+device.name           53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0032
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1000
-+subdevice.name                LSI53C1020/1030 PCI-X to Ultra320 SCSI Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0033
-+device.name           1030ZC_53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0040
-+device.name           53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0040
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0033
-+subdevice.name                MegaRAID SCSI 320-2XR
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0040
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0066
-+subdevice.name                MegaRAID SCSI 320-2XRWS
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0041
-+device.name           53C1035ZC PCI-X Fusion-MPT Dual Ultra320 SCSI
-
- vendor.id             pci 0x1000
-&device.id             pci 0x008f
-+device.name           53c875J
-
- vendor.id             pci 0x1000
-&device.id             pci 0x008f
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x8000
-+subdevice.name                FirePort 40 SCSI Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x008f
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x8760
-+subdevice.name                FirePort 40 Dual SCSI Host Adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0407
-+device.name           MegaRAID
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0407
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0530
-+subdevice.name                MegaRAID 530 SCSI 320-0X RAID Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0407
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0531
-+subdevice.name                MegaRAID 531 SCSI 320-4X RAID Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0407
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0532
-+subdevice.name                MegaRAID 532 SCSI 320-2X RAID Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0407
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0531
-+subdevice.name                PowerEdge Expandable RAID Controller 4/QC
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0407
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0533
-+subdevice.name                PowerEdge Expandable RAID Controller 4/QC
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0407
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0530
-+subdevice.name                MegaRAID Intel RAID Controller SRCZCRX
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0407
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0532
-+subdevice.name                MegaRAID Intel RAID Controller SRCU42X
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0408
-+device.name           MegaRAID
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0001
-+subdevice.name                MegaRAID SCSI 320-1E RAID Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0002
-+subdevice.name                MegaRAID SCSI 320-2E RAID Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x004d
-+subdevice.name                MegaRAID ACER ROMB-2E RAID Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0001
-+subdevice.name                PowerEdge RAID Controller PERC4e/SC
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0002
-+subdevice.name                PowerEdge RAID Controller PERC4e/DC
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x1734
-&subdevice.id          pci 0x1065
-+subdevice.name                FSC MegaRAID PCI Express ROMB
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0002
-+subdevice.name                MegaRAID Intel RAID Controller SRCU42E
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0409
-+device.name           MegaRAID
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0409
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x3004
-+subdevice.name                MegaRAID SATA 300-4X RAID Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0409
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x3008
-+subdevice.name                MegaRAID SATA 300-8X RAID Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0409
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3008
-+subdevice.name                MegaRAID RAID Controller SRCS28X
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0409
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3431
-+subdevice.name                MegaRAID RAID Controller Alief SROMBU42E
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0409
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3499
-+subdevice.name                MegaRAID RAID Controller Harwich SROMBU42E
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0621
-+device.name           FC909 Fibre Channel Adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0622
-+device.name           FC929 Fibre Channel Adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0622
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1020
-+subdevice.name                44929 O Dual Fibre Channel card
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0623
-+device.name           FC929 LAN
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0624
-+device.name           FC919 Fibre Channel Adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0625
-+device.name           FC919 LAN
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0626
-+device.name           FC929X Fibre Channel Adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0626
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x1010
-+subdevice.name                7202-XP-LC Dual Fibre Channel card
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0627
-+device.name           FC929X LAN
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0628
-+device.name           FC919X Fibre Channel Adapter
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0629
-+device.name           FC919X LAN
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0701
-+device.name           83C885 NT50 DigitalScape Fast Ethernet
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0702
-+device.name           Yellowfin G-NIC gigabit ethernet
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0702
-&subvendor.id          pci 0x1318
-&subdevice.id          pci 0x0000
-+subdevice.name                PEI100X
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0804
-+device.name           SA2010
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0805
-+device.name           SA2010ZC
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0806
-+device.name           SA2020
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0807
-+device.name           SA2020ZC
-
- vendor.id             pci 0x1000
-&device.id             pci 0x0901
-+device.name           61C102
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1000
-+device.name           63C815
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1960
-+device.name           MegaRAID
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0518
-+subdevice.name                MegaRAID 518 SCSI 320-2 Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0520
-+subdevice.name                MegaRAID 520 SCSI 320-1 Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0522
-+subdevice.name                MegaRAID 522 i4 133 RAID Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0523
-+subdevice.name                MegaRAID SATA 150-6 RAID Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x4523
-+subdevice.name                MegaRAID SATA 150-4 RAID Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0xa520
-+subdevice.name                MegaRAID ZCR SCSI 320-0 Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0518
-+subdevice.name                MegaRAID 518 DELL PERC 4/DC RAID Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0520
-+subdevice.name                MegaRAID 520 DELL PERC 4/SC RAID Controller
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0531
-+subdevice.name                PowerEdge Expandable RAID Controller 4/QC
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0533
-+subdevice.name                PowerEdge Expandable RAID Controller 4/QC
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0520
-+subdevice.name                MegaRAIDRAID Controller SRCU41L
-
- vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0523
-+subdevice.name                MegaRAID RAID Controller SRCS16
-
- vendor.id             pci 0x1001
-+vendor.name           Kolter Electronic
-
- vendor.id             pci 0x1001
-&device.id             pci 0x0010
-+device.name           PCI 1616 Measurement card with 32 digital I/O lines
-
- vendor.id             pci 0x1001
-&device.id             pci 0x0011
-+device.name           OPTO-PCI Opto-Isolated digital I/O board
-
- vendor.id             pci 0x1001
-&device.id             pci 0x0012
-+device.name           PCI-AD/DA Analogue I/O board
-
- vendor.id             pci 0x1001
-&device.id             pci 0x0013
-+device.name           PCI-OPTO-RELAIS Digital I/O board with relay outputs
-
- vendor.id             pci 0x1001
-&device.id             pci 0x0014
-+device.name           PCI-Counter/Timer Counter Timer board
-
- vendor.id             pci 0x1001
-&device.id             pci 0x0015
-+device.name           PCI-DAC416 Analogue output board
-
- vendor.id             pci 0x1001
-&device.id             pci 0x0016
-+device.name           PCI-MFB Analogue I/O board
-
- vendor.id             pci 0x1001
-&device.id             pci 0x0017
-+device.name           PROTO-3 PCI Prototyping board
-
- vendor.id             pci 0x1001
-&device.id             pci 0x9100
-+device.name           INI-9100/9100W SCSI Host
-
- vendor.id             pci 0x1002
-+vendor.name           ATI Technologies Inc
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3150
-+device.name           M24 1P [Radeon Mobility X600]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3154
-+device.name           M24 1T [FireGL M24 GL]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3e50
-+device.name           RV380 0x3e50 [Radeon X600]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3e54
-+device.name           RV380 0x3e54 [FireGL V3200]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3e70
-+device.name           RV380 [Radeon X600] Secondary
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4136
-+device.name           Radeon IGP 320 M
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4137
-+device.name           Radeon IGP330/340/350
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4144
-+device.name           R300 AD [Radeon 9500 Pro]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4145
-+device.name           R300 AE [Radeon 9700 Pro]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4146
-+device.name           R300 AF [Radeon 9700 Pro]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4147
-+device.name           R300 AG [FireGL Z1/X1]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4148
-+device.name           R350 AH [Radeon 9800]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4149
-+device.name           R350 AI [Radeon 9800]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x414a
-+device.name           R350 AJ [Radeon 9800]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x414b
-+device.name           R350 AK [Fire GL X2]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-+device.name           RV350 AP [Radeon 9600]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0002
-+subdevice.name                R9600 Pro primary (Asus OEM for HP)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0003
-+subdevice.name                R9600 Pro secondary (Asus OEM for HP)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x4024
-+subdevice.name                Giga-Byte GV-R96128D Primary
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-&subvendor.id          pci 0x148c
-&subdevice.id          pci 0x2064
-+subdevice.name                PowerColor R96A-C3N
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-&subvendor.id          pci 0x148c
-&subdevice.id          pci 0x2066
-+subdevice.name                PowerColor R96A-C3N
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7c19
-+subdevice.name                Sapphire Atlantis Radeon 9600 Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7c29
-+subdevice.name                GC-R9600PRO Primary [Sapphire]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-&subvendor.id          pci 0x17ee
-&subdevice.id          pci 0x2002
-+subdevice.name                Radeon 9600 256Mb Primary
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-&subvendor.id          pci 0x18bc
-&subdevice.id          pci 0x0101
-+subdevice.name                GC-R9600PRO Primary
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4151
-+device.name           RV350 AQ [Radeon 9600]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4151
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0xc004
-+subdevice.name                A9600SE
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4152
-+device.name           RV350 AR [Radeon 9600]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4152
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0002
-+subdevice.name                Radeon 9600XT
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4152
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0xc002
-+subdevice.name                Radeon 9600 XT TVD
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4153
-+device.name           RV350 AS [Radeon 9600 AS]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4154
-+device.name           RV350 AT [Fire GL T2]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4155
-+device.name           RV350 AU [Fire GL T2]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4156
-+device.name           RV350 AV [Fire GL T2]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4157
-+device.name           RV350 AW [Fire GL T2]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4158
-+device.name           68800AX [Mach32]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4164
-+device.name           R300 AD [Radeon 9500 Pro] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4165
-+device.name           R300 AE [Radeon 9700 Pro] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4166
-+device.name           R300 AF [Radeon 9700 Pro] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4168
-+device.name           Radeon R350 [Radeon 9800] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4170
-+device.name           RV350 AP [Radeon 9600] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4170
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x4025
-+subdevice.name                Giga-Byte GV-R96128D Secondary
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4170
-&subvendor.id          pci 0x148c
-&subdevice.id          pci 0x2067
-+subdevice.name                PowerColor R96A-C3N (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4170
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7c28
-+subdevice.name                GC-R9600PRO Secondary [Sapphire]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4170
-&subvendor.id          pci 0x17ee
-&subdevice.id          pci 0x2003
-+subdevice.name                Radeon 9600 256Mb Secondary
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4170
-&subvendor.id          pci 0x18bc
-&subdevice.id          pci 0x0100
-+subdevice.name                GC-R9600PRO Secondary
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4171
-+device.name           RV350 AQ [Radeon 9600] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4171
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0xc005
-+subdevice.name                A9600SE (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4172
-+device.name           RV350 AR [Radeon 9600] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4172
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0003
-+subdevice.name                Radeon 9600XT (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4172
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0xc003
-+subdevice.name                A9600XT (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4173
-+device.name           RV350 ?? [Radeon 9550] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4237
-+device.name           Radeon 7000 IGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4242
-+device.name           R200 BB [Radeon All in Wonder 8500DV]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4242
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x02aa
-+subdevice.name                Radeon 8500 AIW DV Edition
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4243
-+device.name           R200 BC [Radeon All in Wonder 8500]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4336
-+device.name           Radeon Mobility U1
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4336
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0024
-+subdevice.name                Pavilion ze4400 builtin Video
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4337
-+device.name           Radeon IGP 330M/340M/350M
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4337
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x053a
-+subdevice.name                ThinkPad R40e (2684-HVG) builtin VGA controller
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4337
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0850
-+subdevice.name                Radeon IGP 345M
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4341
-+device.name           IXP150 AC'97 Audio Controller
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4345
-+device.name           EHCI USB Controller
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4347
-+device.name           OHCI USB Controller #1
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4348
-+device.name           OHCI USB Controller #2
-
- vendor.id             pci 0x1002
-&device.id             pci 0x434d
-+device.name           IXP AC'97 Modem
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4353
-+device.name           ATI SMBus
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4354
-+device.name           215CT [Mach64 CT]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4358
-+device.name           210888CX [Mach64 CX]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4437
-+device.name           Radeon Mobility 7000 IGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4554
-+device.name           210888ET [Mach64 ET]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4654
-+device.name           Mach64 VT
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-+device.name           3D Rage Pro AGP 1X/2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0040
-+subdevice.name                Rage Pro Turbo AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0044
-+subdevice.name                Rage Pro Turbo AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0061
-+subdevice.name                Rage Pro AIW AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0062
-+subdevice.name                Rage Pro AIW AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0063
-+subdevice.name                Rage Pro AIW AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0080
-+subdevice.name                Rage Pro Turbo AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0084
-+subdevice.name                Rage Pro Turbo AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x4742
-+subdevice.name                Rage Pro Turbo AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x8001
-+subdevice.name                Rage Pro Turbo AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0082
-+subdevice.name                Rage Pro Turbo AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x4082
-+subdevice.name                Optiplex GX1 Onboard Display Adapter
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x8082
-+subdevice.name                Rage Pro Turbo AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0xc082
-+subdevice.name                Rage Pro Turbo AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4152
-+subdevice.name                Xpert 98D AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x464a
-+subdevice.name                Rage Pro Turbo AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4744
-+device.name           3D Rage Pro AGP 1X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4744
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x4744
-+subdevice.name                Rage Pro Turbo AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4747
-+device.name           3D Rage Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4749
-+device.name           3D Rage Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4749
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0061
-+subdevice.name                Rage Pro AIW
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4749
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0062
-+subdevice.name                Rage Pro AIW
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474c
-+device.name           Rage XC
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474d
-+device.name           Rage XL AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474d
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0004
-+subdevice.name                Xpert 98 RXL AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474d
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0008
-+subdevice.name                Xpert 98 RXL AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474d
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0080
-+subdevice.name                Rage XL AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474d
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0084
-+subdevice.name                Xpert 98 AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474d
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x474d
-+subdevice.name                Rage XL AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474d
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x806a
-+subdevice.name                Rage XL AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474e
-+device.name           Rage XC AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474e
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x474e
-+subdevice.name                Rage XC AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474f
-+device.name           Rage XL
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474f
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0008
-+subdevice.name                Rage XL
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474f
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x474f
-+subdevice.name                Rage XL
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4750
-+device.name           3D Rage Pro 215GP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4750
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0040
-+subdevice.name                Rage Pro Turbo
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4750
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0044
-+subdevice.name                Rage Pro Turbo
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4750
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0080
-+subdevice.name                Rage Pro Turbo
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4750
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0084
-+subdevice.name                Rage Pro Turbo
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4750
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x4750
-+subdevice.name                Rage Pro Turbo
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4751
-+device.name           3D Rage Pro 215GQ
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4752
-+device.name           Rage XL
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4752
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0008
-+subdevice.name                Rage XL
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4752
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x4752
-+subdevice.name                Rage XL
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4752
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x8008
-+subdevice.name                Rage XL
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4752
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00ce
-+subdevice.name                PowerEdge 1400
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4752
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00d1
-+subdevice.name                PowerEdge 2550
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4752
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00d9
-+subdevice.name                PowerEdge 2500
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4752
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3411
-+subdevice.name                SDS2 Mainboard
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4752
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3427
-+subdevice.name                S875WP1-E mainboard
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4753
-+device.name           Rage XC
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4753
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x4753
-+subdevice.name                Rage XC
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4754
-+device.name           3D Rage I/II 215GT [Mach64 GT]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4755
-+device.name           3D Rage II+ 215GTB [Mach64 GTB]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4756
-+device.name           3D Rage IIC 215IIC [Mach64 GT IIC]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4756
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x4756
-+subdevice.name                Rage IIC
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4757
-+device.name           3D Rage IIC AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4757
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x4757
-+subdevice.name                Rage IIC AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4757
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0089
-+subdevice.name                Rage 3D IIC
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4757
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x4082
-+subdevice.name                Rage 3D IIC
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4757
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x8082
-+subdevice.name                Rage 3D IIC
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4757
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0xc082
-+subdevice.name                Rage 3D IIC
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4758
-+device.name           210888GX [Mach64 GX]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4759
-+device.name           3D Rage IIC
-
- vendor.id             pci 0x1002
-&device.id             pci 0x475a
-+device.name           3D Rage IIC AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x475a
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0084
-+subdevice.name                Rage 3D Pro AGP 2x XPERT 98
-
- vendor.id             pci 0x1002
-&device.id             pci 0x475a
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0087
-+subdevice.name                Rage 3D IIC
-
- vendor.id             pci 0x1002
-&device.id             pci 0x475a
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x475a
-+subdevice.name                Rage IIC AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4964
-+device.name           Radeon RV250 Id [Radeon 9000]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4965
-+device.name           Radeon RV250 Ie [Radeon 9000]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-+device.name           Radeon RV250 If [Radeon 9000]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-&subvendor.id          pci 0x10f1
-&subdevice.id          pci 0x0002
-+subdevice.name                RV250 If [Tachyon G9000 PRO]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-&subvendor.id          pci 0x148c
-&subdevice.id          pci 0x2039
-+subdevice.name                RV250 If [Radeon 9000 Pro "Evil Commando"]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-&subvendor.id          pci 0x1509
-&subdevice.id          pci 0x9a00
-+subdevice.name                RV250 If [Radeon 9000 "AT009"]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-&subvendor.id          pci 0x1681
-&subdevice.id          pci 0x0040
-+subdevice.name                RV250 If [3D prophet 9000]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7176
-+subdevice.name                RV250 If [Sapphire Radeon 9000 Pro]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7192
-+subdevice.name                RV250 If [Radeon 9000 "Atlantis"]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-&subvendor.id          pci 0x17af
-&subdevice.id          pci 0x2005
-+subdevice.name                RV250 If [Excalibur Radeon 9000 Pro]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-&subvendor.id          pci 0x17af
-&subdevice.id          pci 0x2006
-+subdevice.name                RV250 If [Excalibur Radeon 9000]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4967
-+device.name           Radeon RV250 Ig [Radeon 9000]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x496e
-+device.name           Radeon RV250 [Radeon 9000] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a48
-+device.name           R420 JH [Radeon X800]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a49
-+device.name           R420 JI [Radeon X800PRO]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4a
-+device.name           R420 JJ [Radeon X800SE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4b
-+device.name           R420 JK [Radeon X800]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4c
-+device.name           R420 JL [Radeon X800]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4d
-+device.name           R420 JM [FireGL X3]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4e
-+device.name           M18 JN [Radeon Mobility 9800]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a50
-+device.name           R420 JP [Radeon X800XT]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a70
-+device.name           R420 [X800XT-PE] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-+device.name           3D Rage LT Pro AGP-133
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb0e7
-+subdevice.name                Rage LT Pro (Compaq Presario 5240)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb0e8
-+subdevice.name                Rage 3D LT Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb10e
-+subdevice.name                3D Rage LT Pro (Compaq Armada 1750)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0040
-+subdevice.name                Rage LT Pro AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0044
-+subdevice.name                Rage LT Pro AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x4c42
-+subdevice.name                Rage LT Pro AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x8001
-+subdevice.name                Rage LT Pro AGP 2X
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0085
-+subdevice.name                Rage 3D LT Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c44
-+device.name           3D Rage LT Pro AGP-66
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c45
-+device.name           Rage Mobility M3 AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c46
-+device.name           Rage Mobility M3 AGP 2x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c46
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00b1
-+subdevice.name                Latitude C600
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c47
-+device.name           3D Rage LT-G 215LG
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c49
-+device.name           3D Rage LT Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c49
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0004
-+subdevice.name                Rage LT Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c49
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0040
-+subdevice.name                Rage LT Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c49
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0044
-+subdevice.name                Rage LT Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c49
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x4c49
-+subdevice.name                Rage LT Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-+device.name           Rage Mobility P/M AGP 2x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb111
-+subdevice.name                Armada M700
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb160
-+subdevice.name                Armada E500
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0084
-+subdevice.name                Xpert 98 AGP 2X (Mobility)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0154
-+subdevice.name                ThinkPad A20m
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00aa
-+subdevice.name                Latitude CPt
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4e
-+device.name           Rage Mobility L AGP 2x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c50
-+device.name           3D Rage LT Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c50
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x4c50
-+subdevice.name                Rage LT Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c51
-+device.name           3D Rage LT Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c52
-+device.name           Rage Mobility P/M
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c52
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8112
-+subdevice.name                Versa Note VXi
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c53
-+device.name           Rage Mobility L
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c54
-+device.name           264LT [Mach64 LT]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c57
-+device.name           Radeon Mobility M7 LW [Radeon Mobility 7500]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c57
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0517
-+subdevice.name                ThinkPad T30
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c57
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00e6
-+subdevice.name                Radeon Mobility M7 LW (Dell Inspiron 8100)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c57
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x012a
-+subdevice.name                Latitude C640
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c57
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0xc006
-+subdevice.name                Radeon Mobility M7 LW in vpr Matrix 170B4
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c58
-+device.name           Radeon RV200 LX [Mobility FireGL 7800 M7]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c59
-+device.name           Radeon Mobility M6 LY
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c59
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0235
-+subdevice.name                ThinkPad A30/A30p (2652/2653)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c59
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0239
-+subdevice.name                ThinkPad X22/X23/X24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c59
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80e7
-+subdevice.name                VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c5a
-+device.name           Radeon Mobility M6 LZ
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c64
-+device.name           Radeon R250 Ld [Radeon Mobility 9000 M9]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c65
-+device.name           Radeon R250 Le [Radeon Mobility 9000 M9]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c66
-+device.name           Radeon R250 Lf [FireGL 9000]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c67
-+device.name           Radeon R250 Lg [Radeon Mobility 9000 M9]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c6e
-+device.name           Radeon R250 Ln [Radeon Mobility 9000 M9] [Secondary]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4d46
-+device.name           Rage Mobility M4 AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4d4c
-+device.name           Rage Mobility M4 AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e44
-+device.name           Radeon R300 ND [Radeon 9700 Pro]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e45
-+device.name           Radeon R300 NE [Radeon 9500 Pro]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e45
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0002
-+subdevice.name                Radeon R300 NE [Radeon 9500 Pro]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e45
-&subvendor.id          pci 0x1681
-&subdevice.id          pci 0x0002
-+subdevice.name                Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e46
-+device.name           RV350 NF [Radeon 9600]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e47
-+device.name           Radeon R300 NG [FireGL X1]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e48
-+device.name           Radeon R350 [Radeon 9800 Pro]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e49
-+device.name           Radeon R350 [Radeon 9800]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e4a
-+device.name           RV350 NJ [Radeon 9800 XT]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e4b
-+device.name           R350 NK [Fire GL X2]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e50
-+device.name           RV350 [Mobility Radeon 9600 M10]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e50
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x005a
-+subdevice.name                TravelMate 290
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e50
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0890
-+subdevice.name                NC6000 laptop
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e50
-&subvendor.id          pci 0x1734
-&subdevice.id          pci 0x1055
-+subdevice.name                Amilo M1420W
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e51
-+device.name           M10 NQ [Radeon Mobility 9600]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e52
-+device.name           RV350 [Mobility Radeon 9600 M10]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e53
-+device.name           M10 NS [Radeon Mobility 9600]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e54
-+device.name           M10 NT [FireGL Mobility T2]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e56
-+device.name           M11 NV [FireGL Mobility T2e]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e64
-+device.name           Radeon R300 [Radeon 9700 Pro] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e65
-+device.name           Radeon R300 [Radeon 9500 Pro] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e65
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0003
-+subdevice.name                Radeon R300 NE [Radeon 9500 Pro]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e65
-&subvendor.id          pci 0x1681
-&subdevice.id          pci 0x0003
-+subdevice.name                Hercules 3D Prophet 9500 PRO [Radeon 9500 Pro] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e66
-+device.name           RV350 NF [Radeon 9600] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e67
-+device.name           Radeon R300 [FireGL X1] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e68
-+device.name           Radeon R350 [Radeon 9800 Pro] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e69
-+device.name           Radeon R350 [Radeon 9800] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e6a
-+device.name           RV350 NJ [Radeon 9800 XT] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5041
-+device.name           Rage 128 PA/PRO
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5042
-+device.name           Rage 128 PB/PRO AGP 2x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5043
-+device.name           Rage 128 PC/PRO AGP 4x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5044
-+device.name           Rage 128 PD/PRO TMDS
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5044
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0028
-+subdevice.name                Rage 128 AIW
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5044
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0029
-+subdevice.name                Rage 128 AIW
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5045
-+device.name           Rage 128 PE/PRO AGP 2x TMDS
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-+device.name           Rage 128 PF/PRO AGP 4x TMDS
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0004
-+subdevice.name                Rage Fury Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0008
-+subdevice.name                Rage Fury Pro/Xpert 2000 Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0014
-+subdevice.name                Rage Fury Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0018
-+subdevice.name                Rage Fury Pro/Xpert 2000 Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0028
-+subdevice.name                Rage 128 Pro AIW AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x002a
-+subdevice.name                Rage 128 Pro AIW AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0048
-+subdevice.name                Rage Fury Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x2000
-+subdevice.name                Rage Fury MAXX AGP 4x (TMDS) (VGA device)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x2001
-+subdevice.name                Rage Fury MAXX AGP 4x (TMDS) (Extra device?!)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5047
-+device.name           Rage 128 PG/PRO
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5048
-+device.name           Rage 128 PH/PRO AGP 2x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5049
-+device.name           Rage 128 PI/PRO AGP 4x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504a
-+device.name           Rage 128 PJ/PRO TMDS
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504b
-+device.name           Rage 128 PK/PRO AGP 2x TMDS
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504c
-+device.name           Rage 128 PL/PRO AGP 4x TMDS
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504d
-+device.name           Rage 128 PM/PRO
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504e
-+device.name           Rage 128 PN/PRO AGP 2x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504f
-+device.name           Rage 128 PO/PRO AGP 4x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5050
-+device.name           Rage 128 PP/PRO TMDS [Xpert 128]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5050
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0008
-+subdevice.name                Xpert 128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5051
-+device.name           Rage 128 PQ/PRO AGP 2x TMDS
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5052
-+device.name           Rage 128 PR/PRO AGP 4x TMDS
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5053
-+device.name           Rage 128 PS/PRO
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5054
-+device.name           Rage 128 PT/PRO AGP 2x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5055
-+device.name           Rage 128 PU/PRO AGP 4x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5056
-+device.name           Rage 128 PV/PRO TMDS
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5057
-+device.name           Rage 128 PW/PRO AGP 2x TMDS
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5058
-+device.name           Rage 128 PX/PRO AGP 4x TMDS
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-+device.name           Radeon R100 QD [Radeon 7200]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0008
-+subdevice.name                Radeon 7000/Radeon VE
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0009
-+subdevice.name                Radeon 7000/Radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x000a
-+subdevice.name                Radeon 7000/Radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x001a
-+subdevice.name                Radeon 7000/Radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0029
-+subdevice.name                Radeon AIW
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0038
-+subdevice.name                Radeon 7000/Radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0039
-+subdevice.name                Radeon 7000/Radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x008a
-+subdevice.name                Radeon 7000/Radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x00ba
-+subdevice.name                Radeon 7000/Radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0139
-+subdevice.name                Radeon 7000/Radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x028a
-+subdevice.name                Radeon 7000/Radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x02aa
-+subdevice.name                Radeon AIW
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x053a
-+subdevice.name                Radeon 7000/Radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5145
-+device.name           Radeon R100 QE
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5146
-+device.name           Radeon R100 QF
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5147
-+device.name           Radeon R100 QG
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-+device.name           Radeon R200 QH [Radeon 8500]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x010a
-+subdevice.name                FireGL 8800 64Mb
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0152
-+subdevice.name                FireGL 8800 128Mb
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0162
-+subdevice.name                FireGL 8700 32Mb
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0172
-+subdevice.name                FireGL 8700 64Mb
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5149
-+device.name           Radeon R200 QI
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514a
-+device.name           Radeon R200 QJ
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514b
-+device.name           Radeon R200 QK
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514c
-+device.name           Radeon R200 QL [Radeon 8500 LE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514c
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x003a
-+subdevice.name                Radeon R200 QL [Radeon 8500 LE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514c
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x013a
-+subdevice.name                Radeon 8500
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514c
-&subvendor.id          pci 0x148c
-&subdevice.id          pci 0x2026
-+subdevice.name                R200 QL [Radeon 8500 Evil Master II Multi Display Edition]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514c
-&subvendor.id          pci 0x1681
-&subdevice.id          pci 0x0010
-+subdevice.name                Radeon 8500 [3D Prophet 8500 128Mb]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514c
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7149
-+subdevice.name                Radeon R200 QL [Sapphire Radeon 8500 LE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514d
-+device.name           Radeon R200 QM [Radeon 9100]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514e
-+device.name           Radeon R200 QN [Radeon 8500LE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514f
-+device.name           Radeon R200 QO [Radeon 8500LE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5154
-+device.name           R200 QT [Radeon 8500]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5155
-+device.name           R200 QU [Radeon 9100]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-+device.name           Radeon RV200 QW [Radeon 7500]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x013a
-+subdevice.name                Radeon 7500
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x103a
-+subdevice.name                Dell Optiplex GX260
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x4000
-+subdevice.name                RV200 QW [RADEON 7500 PRO MAYA AR]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x148c
-&subdevice.id          pci 0x2024
-+subdevice.name                RV200 QW [Radeon 7500LE Dual Display]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x148c
-&subdevice.id          pci 0x2025
-+subdevice.name                RV200 QW [Radeon 7500 Evil Master Multi Display Edition]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x148c
-&subdevice.id          pci 0x2036
-+subdevice.name                RV200 QW [Radeon 7500 PCI Dual Display]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7146
-+subdevice.name                RV200 QW [Radeon 7500 LE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7147
-+subdevice.name                RV200 QW [Sapphire Radeon 7500LE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7161
-+subdevice.name                Radeon RV200 QW [Radeon 7500 LE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x17af
-&subdevice.id          pci 0x0202
-+subdevice.name                RV200 QW [Excalibur Radeon 7500LE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5158
-+device.name           Radeon RV200 QX [Radeon 7500]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-+device.name           Radeon RV100 QY [Radeon 7000/VE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x000a
-+subdevice.name                Radeon 7000/Radeon VE
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x000b
-+subdevice.name                Radeon 7000
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0038
-+subdevice.name                Radeon 7000/Radeon VE
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x003a
-+subdevice.name                Radeon 7000/Radeon VE
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x00ba
-+subdevice.name                Radeon 7000/Radeon VE
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x013a
-+subdevice.name                Radeon 7000/Radeon VE
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x4002
-+subdevice.name                RV100 QY [RADEON 7000 PRO MAYA AV Series]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x148c
-&subdevice.id          pci 0x2003
-+subdevice.name                RV100 QY [Radeon 7000 Multi-Display Edition]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x148c
-&subdevice.id          pci 0x2023
-+subdevice.name                RV100 QY [Radeon 7000 Evil Master Multi-Display]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7112
-+subdevice.name                RV100 QY [Sapphire Radeon VE 7000]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7c28
-+subdevice.name                Sapphire Radeon VE 7000 DDR
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x1787
-&subdevice.id          pci 0x0202
-+subdevice.name                RV100 QY [Excalibur Radeon 7000]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x515a
-+device.name           Radeon RV100 QZ [Radeon 7000/VE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5168
-+device.name           Radeon R200 Qh
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5169
-+device.name           Radeon R200 Qi
-
- vendor.id             pci 0x1002
-&device.id             pci 0x516a
-+device.name           Radeon R200 Qj
-
- vendor.id             pci 0x1002
-&device.id             pci 0x516b
-+device.name           Radeon R200 Qk
-
- vendor.id             pci 0x1002
-&device.id             pci 0x516c
-+device.name           Radeon R200 Ql
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5245
-+device.name           Rage 128 RE/SG
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5245
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0008
-+subdevice.name                Xpert 128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5245
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0028
-+subdevice.name                Rage 128 AIW
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5245
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0029
-+subdevice.name                Rage 128 AIW
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5245
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0068
-+subdevice.name                Rage 128 AIW
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5246
-+device.name           Rage 128 RF/SG AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5246
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0004
-+subdevice.name                Magnum/Xpert 128/Xpert 99
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5246
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0008
-+subdevice.name                Magnum/Xpert128/X99/Xpert2000
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5246
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0028
-+subdevice.name                Rage 128 AIW AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5246
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0044
-+subdevice.name                Rage Fury/Xpert 128/Xpert 2000
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5246
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0068
-+subdevice.name                Rage 128 AIW AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5246
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0448
-+subdevice.name                Rage Fury
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5247
-+device.name           Rage 128 RG
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524b
-+device.name           Rage 128 RK/VR
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524c
-+device.name           Rage 128 RL/VR AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524c
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0008
-+subdevice.name                Xpert 99/Xpert 2000
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524c
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0088
-+subdevice.name                Xpert 99
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5345
-+device.name           Rage 128 SE/4x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5346
-+device.name           Rage 128 SF/4x AGP 2x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5346
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0048
-+subdevice.name                RAGE 128 16MB VGA TVOUT AMC PAL
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5347
-+device.name           Rage 128 SG/4x AGP 4x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5348
-+device.name           Rage 128 SH
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534b
-+device.name           Rage 128 SK/4x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534c
-+device.name           Rage 128 SL/4x AGP 2x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534d
-+device.name           Rage 128 SM/4x AGP 4x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534d
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0008
-+subdevice.name                Xpert 99/Xpert 2000
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534d
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0018
-+subdevice.name                Xpert 2000
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534e
-+device.name           Rage 128 4x
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5354
-+device.name           Mach 64 VT
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5354
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x5654
-+subdevice.name                Mach 64 reference
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5446
-+device.name           Rage 128 Pro Ultra TF
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5446
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0004
-+subdevice.name                Rage Fury Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5446
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0008
-+subdevice.name                Rage Fury Pro/Xpert 2000 Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5446
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0018
-+subdevice.name                Rage Fury Pro/Xpert 2000 Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5446
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0028
-+subdevice.name                Rage 128 AIW Pro AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5446
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0029
-+subdevice.name                Rage 128 AIW
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5446
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x002a
-+subdevice.name                Rage 128 AIW Pro AGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5446
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x002b
-+subdevice.name                Rage 128 AIW
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5446
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0048
-+subdevice.name                Xpert 2000 Pro
-
- vendor.id             pci 0x1002
-&device.id             pci 0x544c
-+device.name           Rage 128 Pro Ultra TL
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5452
-+device.name           Rage 128 Pro Ultra TR
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5452
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x001c
-+subdevice.name                Rage 128 Pro 4XL
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5452
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x1279
-+subdevice.name                Rage 128 Pro 4XL
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5453
-+device.name           Rage 128 Pro Ultra TS
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5454
-+device.name           Rage 128 Pro Ultra TT
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5455
-+device.name           Rage 128 Pro Ultra TU
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5460
-+device.name           M22 [Radeon Mobility M300]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5464
-+device.name           M22 [FireGL GL]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5548
-+device.name           R423 UH [Radeon X800 (PCIE)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5549
-+device.name           R423 UI [Radeon X800PRO (PCIE)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x554a
-+device.name           R423 UJ [Radeon X800LE (PCIE)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x554b
-+device.name           R423 UK [Radeon X800SE (PCIE)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5551
-+device.name           R423 UQ [FireGL V7200 (PCIE)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5552
-+device.name           R423 UR [FireGL V5100 (PCIE)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5554
-+device.name           R423 UT [FireGL V7100 (PCIE)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x556b
-+device.name           Radeon R423 UK (PCIE) [X800 SE] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5654
-+device.name           264VT [Mach64 VT]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5654
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x5654
-+subdevice.name                Mach64VT Reference
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5655
-+device.name           264VT3 [Mach64 VT3]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5656
-+device.name           264VT4 [Mach64 VT4]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5830
-+device.name           RS300 Host Bridge
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5831
-+device.name           RS300 Host Bridge
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5832
-+device.name           RS300 Host Bridge
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5833
-+device.name           Radeon 9100 IGP Host Bridge
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5834
-+device.name           Radeon 9100 IGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5835
-+device.name           RS300M AGP [Radeon Mobility 9100IGP]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5838
-+device.name           Radeon 9100 IGP AGP Bridge
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5941
-+device.name           RV280 [Radeon 9200] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5941
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7c12
-+subdevice.name                Sapphire Radeon 9200
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5941
-&subvendor.id          pci 0x17af
-&subdevice.id          pci 0x200d
-+subdevice.name                Excalibur Radeon 9200
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5941
-&subvendor.id          pci 0x18bc
-&subdevice.id          pci 0x0050
-+subdevice.name                GeXcube GC-R9200-C3 (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5944
-+device.name           RV280 [Radeon 9200 SE (PCI)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5960
-+device.name           RV280 [Radeon 9200 PRO]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5961
-+device.name           RV280 [Radeon 9200]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5961
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x2f72
-+subdevice.name                All-in-Wonder 9200 Series
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5961
-&subvendor.id          pci 0x12ab
-&subdevice.id          pci 0x5961
-+subdevice.name                YUAN SMARTVGA Radeon 9200
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5961
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x4018
-+subdevice.name                Gigabyte Radeon 9200
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5961
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7c13
-+subdevice.name                Sapphire Radeon 9200
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5961
-&subvendor.id          pci 0x17af
-&subdevice.id          pci 0x200c
-+subdevice.name                Excalibur Radeon 9200
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5961
-&subvendor.id          pci 0x18bc
-&subdevice.id          pci 0x0050
-+subdevice.name                Radeon 9200 Game Buster
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5961
-&subvendor.id          pci 0x18bc
-&subdevice.id          pci 0x0051
-+subdevice.name                GeXcube GC-R9200-C3
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5961
-&subvendor.id          pci 0x18bc
-&subdevice.id          pci 0x0053
-+subdevice.name                Radeon 9200 Game Buster VIVO
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5962
-+device.name           RV280 [Radeon 9200]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-+device.name           RV280 [Radeon 9200 SE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0xc006
-+subdevice.name                ASUS Radeon 9200 SE / TD / 128M
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x4018
-+subdevice.name                Radeon 9200 SE
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-&subvendor.id          pci 0x148c
-&subdevice.id          pci 0x2073
-+subdevice.name                CN-AG92E
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7c13
-+subdevice.name                Sapphire Radeon 9200 SE
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-&subvendor.id          pci 0x1787
-&subdevice.id          pci 0x5964
-+subdevice.name                Excalibur 9200SE VIVO 128M
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-&subvendor.id          pci 0x17af
-&subdevice.id          pci 0x2012
-+subdevice.name                Radeon 9200 SE Excalibur
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-&subvendor.id          pci 0x18bc
-&subdevice.id          pci 0x0170
-+subdevice.name                Sapphire Radeon 9200 SE 128MB Game Buster
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-&subvendor.id          pci 0x18bc
-&subdevice.id          pci 0x0173
-+subdevice.name                GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b60
-+device.name           RV370 5B60 [Radeon X300 (PCIE)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b60
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x002a
-+subdevice.name                EAX300SE
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b62
-+device.name           RV370 5B62 [Radeon X600 (PCIE)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b64
-+device.name           RV370 5B64 [FireGL V3100 (PCIE)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b65
-+device.name           RV370 5B65 [FireGL D1100 (PCIE)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5c61
-+device.name           M9+ 5C61 [Radeon Mobility 9200 (AGP)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5c63
-+device.name           M9+ 5C63 [Radeon Mobility 9200 (AGP)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5d44
-+device.name           RV280 [Radeon 9200 SE] (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5d44
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x4019
-+subdevice.name                Radeon 9200 SE (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5d44
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7c12
-+subdevice.name                Sapphire Radeon 9200 SE (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5d44
-&subvendor.id          pci 0x1787
-&subdevice.id          pci 0x5965
-+subdevice.name                Excalibur 9200SE VIVO 128M (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5d44
-&subvendor.id          pci 0x17af
-&subdevice.id          pci 0x2013
-+subdevice.name                Radeon 9200 SE Excalibur (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5d44
-&subvendor.id          pci 0x18bc
-&subdevice.id          pci 0x0171
-+subdevice.name                Radeon 9200 SE 128MB Game Buster (Secondary)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5d44
-&subvendor.id          pci 0x18bc
-&subdevice.id          pci 0x0172
-+subdevice.name                GC-R9200L(SE)-C3H [Radeon 9200 Game Buster]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5d57
-+device.name           R423 5F57 [Radeon X800XT (PCIE)]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x700f
-+device.name           PCI Bridge [IGP 320M]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x7010
-+device.name           PCI Bridge [IGP 340M]
-
- vendor.id             pci 0x1002
-&device.id             pci 0x7834
-+device.name           Radeon 9100 PRO IGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x7835
-+device.name           Radeon Mobility 9200 IGP
-
- vendor.id             pci 0x1002
-&device.id             pci 0x7c37
-+device.name           RV350 AQ [Radeon 9600 SE]
-
- vendor.id             pci 0x1002
-&device.id             pci 0xcab0
-+device.name           AGP Bridge [IGP 320M]
-
- vendor.id             pci 0x1002
-&device.id             pci 0xcab2
-+device.name           RS200/RS200M AGP Bridge [IGP 340M]
-
- vendor.id             pci 0x1002
-&device.id             pci 0xcbb2
-+device.name           RS200/RS200M AGP Bridge [IGP 340M]
-
- vendor.id             pci 0x1003
-+vendor.name           ULSI Systems
-
- vendor.id             pci 0x1003
-&device.id             pci 0x0201
-+device.name           US201
-
- vendor.id             pci 0x1004
-+vendor.name           VLSI Technology Inc
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0005
-+device.name           82C592-FC1
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0006
-+device.name           82C593-FC1
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0007
-+device.name           82C594-AFC2
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0008
-+device.name           82C596/7 [Wildcat]
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0009
-+device.name           82C597-AFC2
-
- vendor.id             pci 0x1004
-&device.id             pci 0x000c
-+device.name           82C541 [Lynx]
-
- vendor.id             pci 0x1004
-&device.id             pci 0x000d
-+device.name           82C543 [Lynx]
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0101
-+device.name           82C532
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0102
-+device.name           82C534 [Eagle]
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0103
-+device.name           82C538
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0104
-+device.name           82C535
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0105
-+device.name           82C147
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0200
-+device.name           82C975
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0280
-+device.name           82C925
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0304
-+device.name           QSound ThunderBird PCI Audio
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0304
-&subvendor.id          pci 0x1004
-&subdevice.id          pci 0x0304
-+subdevice.name                QSound ThunderBird PCI Audio
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0304
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x1206
-+subdevice.name                DSP368 Audio
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0304
-&subvendor.id          pci 0x1483
-&subdevice.id          pci 0x5020
-+subdevice.name                XWave Thunder 3D Audio
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0305
-+device.name           QSound ThunderBird PCI Audio Gameport
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0305
-&subvendor.id          pci 0x1004
-&subdevice.id          pci 0x0305
-+subdevice.name                QSound ThunderBird PCI Audio Gameport
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0305
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x1207
-+subdevice.name                DSP368 Audio Gameport
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0305
-&subvendor.id          pci 0x1483
-&subdevice.id          pci 0x5021
-+subdevice.name                XWave Thunder 3D Audio Gameport
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0306
-+device.name           QSound ThunderBird PCI Audio Support Registers
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0306
-&subvendor.id          pci 0x1004
-&subdevice.id          pci 0x0306
-+subdevice.name                QSound ThunderBird PCI Audio Support Registers
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0306
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x1208
-+subdevice.name                DSP368 Audio Support Registers
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0306
-&subvendor.id          pci 0x1483
-&subdevice.id          pci 0x5022
-+subdevice.name                XWave Thunder 3D Audio Support Registers
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0307
-+device.name           Thunderbird
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0308
-+device.name           Thunderbird
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0702
-+device.name           VAS96011 [Golden Gate II]
-
- vendor.id             pci 0x1004
-&device.id             pci 0x0703
-+device.name           Tollgate
-
- vendor.id             pci 0x1005
-+vendor.name           Avance Logic Inc. [ALI]
-
- vendor.id             pci 0x1005
-&device.id             pci 0x2064
-+device.name           ALG2032/2064
-
- vendor.id             pci 0x1005
-&device.id             pci 0x2128
-+device.name           ALG2364A
-
- vendor.id             pci 0x1005
-&device.id             pci 0x2301
-+device.name           ALG2301
-
- vendor.id             pci 0x1005
-&device.id             pci 0x2302
-+device.name           ALG2302
-
- vendor.id             pci 0x1005
-&device.id             pci 0x2364
-+device.name           ALG2364
-
- vendor.id             pci 0x1005
-&device.id             pci 0x2464
-+device.name           ALG2364A
-
- vendor.id             pci 0x1005
-&device.id             pci 0x2501
-+device.name           ALG2564A/25128A
-
- vendor.id             pci 0x1006
-+vendor.name           Reply Group
-
- vendor.id             pci 0x1007
-+vendor.name           NetFrame Systems Inc
-
- vendor.id             pci 0x1008
-+vendor.name           Epson
-
- vendor.id             pci 0x100a
-+vendor.name           Phoenix Technologies
-
- vendor.id             pci 0x100b
-+vendor.name           National Semiconductor Corporation
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0001
-+device.name           DP83810
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0002
-+device.name           87415/87560 IDE
-
- vendor.id             pci 0x100b
-&device.id             pci 0x000e
-+device.name           87560 Legacy I/O
-
- vendor.id             pci 0x100b
-&device.id             pci 0x000f
-+device.name           FireWire Controller
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0011
-+device.name           NS87560 National PCI System I/O
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0012
-+device.name           USB Controller
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0020
-+device.name           DP83815 (MacPhyter) Ethernet Controller
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0020
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0024
-+subdevice.name                Pavilion ze4400 builtin Network
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1385
-&subdevice.id          pci 0xf311
-+subdevice.name                FA311 / FA312 (FA311 with WoL HW)
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0022
-+device.name           DP83820 10/100/1000 Ethernet Controller
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0028
-+device.name           CS5535 Host bridge
-
- vendor.id             pci 0x100b
-&device.id             pci 0x002b
-+device.name           CS5535 ISA bridge
-
- vendor.id             pci 0x100b
-&device.id             pci 0x002d
-+device.name           CS5535 IDE
-
- vendor.id             pci 0x100b
-&device.id             pci 0x002e
-+device.name           CS5535 Audio
-
- vendor.id             pci 0x100b
-&device.id             pci 0x002f
-+device.name           CS5535 USB
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0030
-+device.name           CS5535 Video
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0035
-+device.name           DP83065 [Saturn] 10/100/1000 Ethernet Controller
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0500
-+device.name           SCx200 Bridge
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0501
-+device.name           SCx200 SMI
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0502
-+device.name           SCx200 IDE
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0503
-+device.name           SCx200 Audio
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0504
-+device.name           SCx200 Video
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0505
-+device.name           SCx200 XBus
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0510
-+device.name           SC1100 Bridge
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0511
-+device.name           SC1100 SMI
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0515
-+device.name           SC1100 XBus
-
- vendor.id             pci 0x100b
-&device.id             pci 0xd001
-+device.name           87410 IDE
-
- vendor.id             pci 0x100c
-+vendor.name           Tseng Labs Inc
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3202
-+device.name           ET4000/W32p rev A
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3205
-+device.name           ET4000/W32p rev B
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3206
-+device.name           ET4000/W32p rev C
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3207
-+device.name           ET4000/W32p rev D
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3208
-+device.name           ET6000
-
- vendor.id             pci 0x100c
-&device.id             pci 0x4702
-+device.name           ET6300
-
- vendor.id             pci 0x100d
-+vendor.name           AST Research Inc
-
- vendor.id             pci 0x100e
-+vendor.name           Weitek
-
- vendor.id             pci 0x100e
-&device.id             pci 0x9000
-+device.name           P9000 Viper
-
- vendor.id             pci 0x100e
-&device.id             pci 0x9001
-+device.name           P9000 Viper
-
- vendor.id             pci 0x100e
-&device.id             pci 0x9002
-+device.name           P9000 Viper
-
- vendor.id             pci 0x100e
-&device.id             pci 0x9100
-+device.name           P9100 Viper Pro/SE
-
- vendor.id             pci 0x1010
-+vendor.name           Video Logic, Ltd.
-
- vendor.id             pci 0x1011
-+vendor.name           Digital Equipment Corporation
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0001
-+device.name           DECchip 21050
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0002
-+device.name           DECchip 21040 [Tulip]
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0004
-+device.name           DECchip 21030 [TGA]
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0007
-+device.name           NVRAM [Zephyr NVRAM]
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0008
-+device.name           KZPSA [KZPSA]
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-+device.name           DECchip 21140 [FasterNet]
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x0310
-+subdevice.name                21140 Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0x2001
-+subdevice.name                SMC9332BDT EtherPower 10/100
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0x2002
-+subdevice.name                SMC9332BVT EtherPower T4 10/100
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0x2003
-+subdevice.name                SMC9334BDT EtherPower 10/100 (1-port)
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1109
-&subdevice.id          pci 0x2400
-+subdevice.name                ANA-6944A/TX Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1112
-&subdevice.id          pci 0x2300
-+subdevice.name                RNS2300 Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1112
-&subdevice.id          pci 0x2320
-+subdevice.name                RNS2320 Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1112
-&subdevice.id          pci 0x2340
-+subdevice.name                RNS2340 Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1113
-&subdevice.id          pci 0x1207
-+subdevice.name                EN-1207-TX Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1100
-+subdevice.name                DFE-500TX Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1112
-+subdevice.name                DFE-570TX Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1140
-+subdevice.name                DFE-660 Cardbus Ethernet 10/100
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1142
-+subdevice.name                DFE-660 Cardbus Ethernet 10/100
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x11f6
-&subdevice.id          pci 0x0503
-+subdevice.name                Freedomline Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1282
-&subdevice.id          pci 0x9100
-+subdevice.name                AEF-380TXD Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1385
-&subdevice.id          pci 0x1100
-+subdevice.name                FA310TX Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0009
-&subvendor.id          pci 0x2646
-&subdevice.id          pci 0x0001
-+subdevice.name                KNE100TX Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x000a
-+device.name           21230 Video Codec
-
- vendor.id             pci 0x1011
-&device.id             pci 0x000d
-+device.name           PBXGB [TGA2]
-
- vendor.id             pci 0x1011
-&device.id             pci 0x000f
-+device.name           DEFPA
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0014
-+device.name           DECchip 21041 [Tulip Pass 3]
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0014
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x0100
-+subdevice.name                DE-530+
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0016
-+device.name           DGLPB [OPPO]
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0017
-+device.name           PV-PCI Graphics Controller (ZLXp-L)
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-+device.name           DECchip 21142/43
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1011
-&subdevice.id          pci 0x500a
-+subdevice.name                DE500A Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1011
-&subdevice.id          pci 0x500b
-+subdevice.name                DE500B Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0001
-+subdevice.name                10/100 EtherJet Cardbus
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x0315
-+subdevice.name                ALN315 Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x800c
-+subdevice.name                PC-9821-CS01 100BASE-TX Interface Card
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x800d
-+subdevice.name                PC-9821NR-B06 100BASE-TX Interface Card
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x108d
-&subdevice.id          pci 0x0016
-+subdevice.name                Rapidfire 2327 10/100 Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x108d
-&subdevice.id          pci 0x0017
-+subdevice.name                GoCard 2250 Ethernet 10/100 Cardbus
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0x2005
-+subdevice.name                SMC8032DT Extreme Ethernet 10/100
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0x8034
-+subdevice.name                SMC8034 Extreme Ethernet 10/100
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x10ef
-&subdevice.id          pci 0x8169
-+subdevice.name                Cardbus Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1109
-&subdevice.id          pci 0x2a00
-+subdevice.name                ANA-6911A/TX Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1109
-&subdevice.id          pci 0x2b00
-+subdevice.name                ANA-6911A/TXC Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1109
-&subdevice.id          pci 0x3000
-+subdevice.name                ANA-6922/TX Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1113
-&subdevice.id          pci 0x1207
-+subdevice.name                Cheetah Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1113
-&subdevice.id          pci 0x2220
-+subdevice.name                Cardbus Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x115d
-&subdevice.id          pci 0x0002
-+subdevice.name                Cardbus Ethernet 10/100
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0203
-+subdevice.name                Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0204
-+subdevice.name                Cardbus Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1100
-+subdevice.name                DFE-500TX Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1101
-+subdevice.name                DFE-500TX Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1102
-+subdevice.name                DFE-500TX Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1112
-+subdevice.name                DFE-570TX Quad Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2800
-+subdevice.name                AT-2800Tx Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1266
-&subdevice.id          pci 0x0004
-+subdevice.name                Eagle Fast EtherMAX
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x12af
-&subdevice.id          pci 0x0019
-+subdevice.name                NetFlyer Cardbus Fast Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1374
-&subdevice.id          pci 0x0001
-+subdevice.name                Cardbus Ethernet Card 10/100
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1374
-&subdevice.id          pci 0x0002
-+subdevice.name                Cardbus Ethernet Card 10/100
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1374
-&subdevice.id          pci 0x0007
-+subdevice.name                Cardbus Ethernet Card 10/100
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1374
-&subdevice.id          pci 0x0008
-+subdevice.name                Cardbus Ethernet Card 10/100
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1385
-&subdevice.id          pci 0x2100
-+subdevice.name                FA510
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x1395
-&subdevice.id          pci 0x0001
-+subdevice.name                10/100 Ethernet CardBus PC Card
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x13d1
-&subdevice.id          pci 0xab01
-+subdevice.name                EtherFast 10/100 Cardbus (PCMPC200)
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x14cb
-&subdevice.id          pci 0x0100
-+subdevice.name                LNDL-100N 100Base-TX Ethernet PC Card
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0019
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0001
-+subdevice.name                EtherExpress PRO/100 Mobile CardBus 32
-
- vendor.id             pci 0x1011
-&device.id             pci 0x001a
-+device.name           Farallon PN9000SX Gigabit Ethernet
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0021
-+device.name           DECchip 21052
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0022
-+device.name           DECchip 21150
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0023
-+device.name           DECchip 21150
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0024
-+device.name           DECchip 21152
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0025
-+device.name           DECchip 21153
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0026
-+device.name           DECchip 21154
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0034
-+device.name           56k Modem Cardbus
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0034
-&subvendor.id          pci 0x1374
-&subdevice.id          pci 0x0003
-+subdevice.name                56k Modem Cardbus
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0045
-+device.name           DECchip 21553
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0046
-+device.name           DECchip 21554
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4050
-+subdevice.name                Integrated Smart Array
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4051
-+subdevice.name                Integrated Smart Array
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4058
-+subdevice.name                Integrated Smart Array
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10c2
-+subdevice.name                Hewlett-Packard NetRAID-4M
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x12d9
-&subdevice.id          pci 0x000a
-+subdevice.name                IP Telephony card
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1050
-+subdevice.name                CT7 mainboard
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1051
-+subdevice.name                CE7 mainboard
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0364
-+subdevice.name                5400S (Mustang)
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0365
-+subdevice.name                5400S (Mustang)
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x1364
-+subdevice.name                Dell PowerEdge RAID Controller 2
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x1365
-+subdevice.name                Dell PowerEdge RAID Controller 2
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0xe4bf
-&subdevice.id          pci 0x1000
-+subdevice.name                CC8-1-BLUES
-
- vendor.id             pci 0x1011
-&device.id             pci 0x1065
-+device.name           StrongARM DC21285
-
- vendor.id             pci 0x1011
-&device.id             pci 0x1065
-&subvendor.id          pci 0x1069
-&subdevice.id          pci 0x0020
-+subdevice.name                DAC960P / DAC1164P
-
- vendor.id             pci 0x1012
-+vendor.name           Micronics Computers Inc
-
- vendor.id             pci 0x1013
-+vendor.name           Cirrus Logic
-
- vendor.id             pci 0x1013
-&device.id             pci 0x0038
-+device.name           GD 7548
-
- vendor.id             pci 0x1013
-&device.id             pci 0x0040
-+device.name           GD 7555 Flat Panel GUI Accelerator
-
- vendor.id             pci 0x1013
-&device.id             pci 0x004c
-+device.name           GD 7556 Video/Graphics LCD/CRT Ctrlr
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00a0
-+device.name           GD 5430/40 [Alpine]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00a2
-+device.name           GD 5432 [Alpine]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00a4
-+device.name           GD 5434-4 [Alpine]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00a8
-+device.name           GD 5434-8 [Alpine]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00ac
-+device.name           GD 5436 [Alpine]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00b0
-+device.name           GD 5440
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00b8
-+device.name           GD 5446
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00bc
-+device.name           GD 5480
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00bc
-&subvendor.id          pci 0x1013
-&subdevice.id          pci 0x00bc
-+subdevice.name                CL-GD5480
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d0
-+device.name           GD 5462
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d2
-+device.name           GD 5462 [Laguna I]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d4
-+device.name           GD 5464 [Laguna]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d5
-+device.name           GD 5464 BD [Laguna]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d6
-+device.name           GD 5465 [Laguna]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d6
-&subvendor.id          pci 0x13ce
-&subdevice.id          pci 0x8031
-+subdevice.name                Barco Metheus 2 Megapixel, Dual Head
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d6
-&subvendor.id          pci 0x13cf
-&subdevice.id          pci 0x8031
-+subdevice.name                Barco Metheus 2 Megapixel, Dual Head
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00e8
-+device.name           GD 5436U
-
- vendor.id             pci 0x1013
-&device.id             pci 0x1100
-+device.name           CL 6729
-
- vendor.id             pci 0x1013
-&device.id             pci 0x1110
-+device.name           PD 6832 PCMCIA/CardBus Ctrlr
-
- vendor.id             pci 0x1013
-&device.id             pci 0x1112
-+device.name           PD 6834 PCMCIA/CardBus Ctrlr
-
- vendor.id             pci 0x1013
-&device.id             pci 0x1113
-+device.name           PD 6833 PCMCIA/CardBus Ctrlr
-
- vendor.id             pci 0x1013
-&device.id             pci 0x1200
-+device.name           GD 7542 [Nordic]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x1202
-+device.name           GD 7543 [Viking]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x1204
-+device.name           GD 7541 [Nordic Light]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x4400
-+device.name           CD 4400
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6001
-+device.name           CS 4610/11 [CrystalClear SoundFusion Audio Accelerator]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6001
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x1010
-+subdevice.name                CS4610 SoundFusion Audio Accelerator
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6003
-+device.name           CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6003
-&subvendor.id          pci 0x1013
-&subdevice.id          pci 0x4280
-+subdevice.name                Crystal SoundFusion PCI Audio Accelerator
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6003
-&subvendor.id          pci 0x1681
-&subdevice.id          pci 0x0050
-+subdevice.name                Game Theater XP
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6003
-&subvendor.id          pci 0x1681
-&subdevice.id          pci 0xa011
-+subdevice.name                Fortissimo III 7.1
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6004
-+device.name           CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6005
-+device.name           Crystal CS4281 PCI Audio
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6005
-&subvendor.id          pci 0x1013
-&subdevice.id          pci 0x4281
-+subdevice.name                Crystal CS4281 PCI Audio
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6005
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x10a8
-+subdevice.name                Crystal CS4281 PCI Audio
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6005
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x10a9
-+subdevice.name                Crystal CS4281 PCI Audio
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6005
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x10aa
-+subdevice.name                Crystal CS4281 PCI Audio
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6005
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x10ab
-+subdevice.name                Crystal CS4281 PCI Audio
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6005
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x10ac
-+subdevice.name                Crystal CS4281 PCI Audio
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6005
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x10ad
-+subdevice.name                Crystal CS4281 PCI Audio
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6005
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x10b4
-+subdevice.name                Crystal CS4281 PCI Audio
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6005
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Crystal CS4281 PCI Audio
-
- vendor.id             pci 0x1013
-&device.id             pci 0x6005
-&subvendor.id          pci 0x14c0
-&subdevice.id          pci 0x000c
-+subdevice.name                Crystal CS4281 PCI Audio
-
- vendor.id             pci 0x1014
-+vendor.name           IBM
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0002
-+device.name           PCI to MCA Bridge
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0005
-+device.name           Alta Lite
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0007
-+device.name           Alta MP
-
- vendor.id             pci 0x1014
-&device.id             pci 0x000a
-+device.name           Fire Coral
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0017
-+device.name           CPU to PCI Bridge
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0018
-+device.name           TR Auto LANstreamer
-
- vendor.id             pci 0x1014
-&device.id             pci 0x001b
-+device.name           GXT-150P
-
- vendor.id             pci 0x1014
-&device.id             pci 0x001c
-+device.name           Carrera
-
- vendor.id             pci 0x1014
-&device.id             pci 0x001d
-+device.name           82G2675
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0020
-+device.name           GXT1000 Graphics Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0022
-+device.name           IBM27-82351
-
- vendor.id             pci 0x1014
-&device.id             pci 0x002d
-+device.name           Python
-
- vendor.id             pci 0x1014
-&device.id             pci 0x002e
-+device.name           SCSI RAID Adapter [ServeRAID]
-
- vendor.id             pci 0x1014
-&device.id             pci 0x002e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x002e
-+subdevice.name                ServeRAID-3x
-
- vendor.id             pci 0x1014
-&device.id             pci 0x002e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x022e
-+subdevice.name                ServeRAID-4H
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0031
-+device.name           2 Port Serial Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0031
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0031
-+subdevice.name                2721 WAN IOA - 2 Port Sync Serial Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0036
-+device.name           Miami
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0037
-+device.name           82660 CPU to PCI Bridge
-
- vendor.id             pci 0x1014
-&device.id             pci 0x003a
-+device.name           CPU to PCI Bridge
-
- vendor.id             pci 0x1014
-&device.id             pci 0x003c
-+device.name           GXT250P/GXT255P Graphics Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x003e
-+device.name           16/4 Token ring UTP/STP controller
-
- vendor.id             pci 0x1014
-&device.id             pci 0x003e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x003e
-+subdevice.name                Token-Ring Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x003e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x00cd
-+subdevice.name                Token-Ring Adapter + Wake-On-LAN
-
- vendor.id             pci 0x1014
-&device.id             pci 0x003e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x00ce
-+subdevice.name                16/4 Token-Ring Adapter 2
-
- vendor.id             pci 0x1014
-&device.id             pci 0x003e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x00cf
-+subdevice.name                16/4 Token-Ring Adapter Special
-
- vendor.id             pci 0x1014
-&device.id             pci 0x003e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x00e4
-+subdevice.name                High-Speed 100/16/4 Token-Ring Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x003e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x00e5
-+subdevice.name                16/4 Token-Ring Adapter 2 + Wake-On-LAN
-
- vendor.id             pci 0x1014
-&device.id             pci 0x003e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x016d
-+subdevice.name                iSeries 2744 Card
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0045
-+device.name           SSA Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0046
-+device.name           MPIC interrupt controller
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0047
-+device.name           PCI to PCI Bridge
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0048
-+device.name           PCI to PCI Bridge
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0049
-+device.name           Warhead SCSI Controller
-
- vendor.id             pci 0x1014
-&device.id             pci 0x004e
-+device.name           ATM Controller (14104e00)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x004f
-+device.name           ATM Controller (14104f00)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0050
-+device.name           ATM Controller (14105000)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0053
-+device.name           25 MBit ATM Controller
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0054
-+device.name           GXT500P/GXT550P Graphics Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0057
-+device.name           MPEG PCI Bridge
-
- vendor.id             pci 0x1014
-&device.id             pci 0x005c
-+device.name           i82557B 10/100
-
- vendor.id             pci 0x1014
-&device.id             pci 0x005e
-+device.name           GXT800P Graphics Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x007c
-+device.name           ATM Controller (14107c00)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x007d
-+device.name           3780IDSP [MWave]
-
- vendor.id             pci 0x1014
-&device.id             pci 0x008b
-+device.name           EADS PCI to PCI Bridge
-
- vendor.id             pci 0x1014
-&device.id             pci 0x008e
-+device.name           GXT3000P Graphics Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0090
-+device.name           GXT 3000P
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0090
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x008e
-+subdevice.name                GXT-3000P
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0091
-+device.name           SSA Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0095
-+device.name           20H2999 PCI Docking Bridge
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0096
-+device.name           Chukar chipset SCSI controller
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0096
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0097
-+subdevice.name                iSeries 2778 DASD IOA
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0096
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0098
-+subdevice.name                iSeries 2763 DASD IOA
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0096
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0099
-+subdevice.name                iSeries 2748 DASD IOA
-
- vendor.id             pci 0x1014
-&device.id             pci 0x009f
-+device.name           PCI 4758 Cryptographic Accelerator
-
- vendor.id             pci 0x1014
-&device.id             pci 0x00a5
-+device.name           ATM Controller (1410a500)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x00a6
-+device.name           ATM 155MBPS MM Controller (1410a600)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x00b7
-+device.name           256-bit Graphics Rasterizer [Fire GL1]
-
- vendor.id             pci 0x1014
-&device.id             pci 0x00b7
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x00b8
-+subdevice.name                FireGL1 AGP 32Mb
-
- vendor.id             pci 0x1014
-&device.id             pci 0x00b8
-+device.name           GXT2000P Graphics Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x00be
-+device.name           ATM 622MBPS Controller (1410be00)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x00dc
-+device.name           Advanced Systems Management Adapter (ASMA)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x00fc
-+device.name           CPC710 Dual Bridge and Memory Controller (PCI-64)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0104
-+device.name           Gigabit Ethernet-SX Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0105
-+device.name           CPC710 Dual Bridge and Memory Controller (PCI-32)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x010f
-+device.name           Remote Supervisor Adapter (RSA)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0142
-+device.name           Yotta Video Compositor Input
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0142
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0143
-+subdevice.name                Yotta Input Controller (ytin)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0144
-+device.name           Yotta Video Compositor Output
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0144
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0145
-+subdevice.name                Yotta Output Controller (ytout)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0156
-+device.name           405GP PLB to PCI Bridge
-
- vendor.id             pci 0x1014
-&device.id             pci 0x015e
-+device.name           622Mbps ATM PCI Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0160
-+device.name           64bit/66MHz PCI ATM 155 MMF
-
- vendor.id             pci 0x1014
-&device.id             pci 0x016e
-+device.name           GXT4000P Graphics Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0170
-+device.name           GXT6000P Graphics Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x017d
-+device.name           GXT300P Graphics Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0180
-+device.name           Snipe chipset SCSI controller
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0180
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0241
-+subdevice.name                iSeries 2757 DASD IOA
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0180
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0264
-+subdevice.name                Quad Channel PCI-X U320 SCSI RAID Adapter (2780)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0188
-+device.name           EADS-X PCI-X to PCI-X Bridge
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01a7
-+device.name           PCI-X to PCI-X Bridge
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-+device.name           ServeRAID Controller
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01be
-+subdevice.name                ServeRAID-4M
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01bf
-+subdevice.name                ServeRAID-4L
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0208
-+subdevice.name                ServeRAID-4Mx
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x020e
-+subdevice.name                ServeRAID-4Lx
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x022e
-+subdevice.name                ServeRAID-4H
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0258
-+subdevice.name                ServeRAID-5i
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01bd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0259
-+subdevice.name                ServeRAID-5i
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01c1
-+device.name           64bit/66MHz PCI ATM 155 UTP
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01e6
-+device.name           Cryptographic Accelerator
-
- vendor.id             pci 0x1014
-&device.id             pci 0x01ff
-+device.name           10/100 Mbps Ethernet
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0219
-+device.name           Multiport Serial Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0219
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x021a
-+subdevice.name                Dual RVX
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0219
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0251
-+subdevice.name                Internal Modem/RVX
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0219
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0252
-+subdevice.name                Quad Internal Modem
-
- vendor.id             pci 0x1014
-&device.id             pci 0x021b
-+device.name           GXT6500P Graphics Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x021c
-+device.name           GXT4500P Graphics Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0233
-+device.name           GXT135P Graphics Adapter
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0266
-+device.name           PCI-X Dual Channel SCSI
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0268
-+device.name           Gigabit Ethernet-SX Adapter (PCI-X)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0269
-+device.name           10/100/1000 Base-TX Ethernet Adapter (PCI-X)
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0302
-+device.name           Winnipeg PCI-X Host Bridge
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0314
-+device.name           ZISC 036 Neural accelerator card
-
- vendor.id             pci 0x1014
-&device.id             pci 0xffff
-+device.name           MPIC-2 interrupt controller
-
- vendor.id             pci 0x1015
-+vendor.name           LSI Logic Corp of Canada
-
- vendor.id             pci 0x1016
-+vendor.name           ICL Personal Systems
-
- vendor.id             pci 0x1017
-+vendor.name           SPEA Software AG
-
- vendor.id             pci 0x1017
-&device.id             pci 0x5343
-+device.name           SPEA 3D Accelerator
-
- vendor.id             pci 0x1018
-+vendor.name           Unisys Systems
-
- vendor.id             pci 0x1019
-+vendor.name           Elitegroup Computer Systems
-
- vendor.id             pci 0x101a
-+vendor.name           AT&T GIS (NCR)
-
- vendor.id             pci 0x101a
-&device.id             pci 0x0005
-+device.name           100VG ethernet
-
- vendor.id             pci 0x101b
-+vendor.name           Vitesse Semiconductor
-
- vendor.id             pci 0x101c
-+vendor.name           Western Digital
-
- vendor.id             pci 0x101c
-&device.id             pci 0x0193
-+device.name           33C193A
-
- vendor.id             pci 0x101c
-&device.id             pci 0x0196
-+device.name           33C196A
-
- vendor.id             pci 0x101c
-&device.id             pci 0x0197
-+device.name           33C197A
-
- vendor.id             pci 0x101c
-&device.id             pci 0x0296
-+device.name           33C296A
-
- vendor.id             pci 0x101c
-&device.id             pci 0x3193
-+device.name           7193
-
- vendor.id             pci 0x101c
-&device.id             pci 0x3197
-+device.name           7197
-
- vendor.id             pci 0x101c
-&device.id             pci 0x3296
-+device.name           33C296A
-
- vendor.id             pci 0x101c
-&device.id             pci 0x4296
-+device.name           34C296
-
- vendor.id             pci 0x101c
-&device.id             pci 0x9710
-+device.name           Pipeline 9710
-
- vendor.id             pci 0x101c
-&device.id             pci 0x9712
-+device.name           Pipeline 9712
-
- vendor.id             pci 0x101c
-&device.id             pci 0xc24a
-+device.name           90C
-
- vendor.id             pci 0x101e
-+vendor.name           American Megatrends Inc.
-
- vendor.id             pci 0x101e
-&device.id             pci 0x1960
-+device.name           MegaRAID
-
- vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0471
-+subdevice.name                MegaRAID 471 Enterprise 1600 RAID Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0475
-+subdevice.name                MegaRAID 475 Express 500/500LC RAID Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0477
-+subdevice.name                MegaRAID 477 Elite 3100 RAID Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0493
-+subdevice.name                MegaRAID 493 Elite 1600 RAID Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0494
-+subdevice.name                MegaRAID 494 Elite 1650 RAID Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0503
-+subdevice.name                MegaRAID 503 Enterprise 1650 RAID Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0511
-+subdevice.name                MegaRAID 511 i4 IDE RAID Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0522
-+subdevice.name                MegaRAID 522 i4133 RAID Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0471
-+subdevice.name                PowerEdge RAID Controller 3/QC
-
- vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0475
-+subdevice.name                PowerEdge RAID Controller 3/SC
-
- vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0493
-+subdevice.name                PowerEdge RAID Controller 3/DC
-
- vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0511
-+subdevice.name                PowerEdge Cost Effective RAID Controller ATA100/4Ch
-
- vendor.id             pci 0x101e
-&device.id             pci 0x9010
-+device.name           MegaRAID 428 Ultra RAID Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x9030
-+device.name           EIDE Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x9031
-+device.name           EIDE Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x9032
-+device.name           EIDE & SCSI Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x9033
-+device.name           SCSI Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x9040
-+device.name           Multimedia card
-
- vendor.id             pci 0x101e
-&device.id             pci 0x9060
-+device.name           MegaRAID 434 Ultra GT RAID Controller
-
- vendor.id             pci 0x101e
-&device.id             pci 0x9063
-+device.name           MegaRAC
-
- vendor.id             pci 0x101e
-&device.id             pci 0x9063
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0767
-+subdevice.name                Dell Remote Assistant Card 2
-
- vendor.id             pci 0x101f
-+vendor.name           PictureTel
-
- vendor.id             pci 0x1020
-+vendor.name           Hitachi Computer Products
-
- vendor.id             pci 0x1021
-+vendor.name           OKI Electric Industry Co. Ltd.
-
- vendor.id             pci 0x1022
-+vendor.name           Advanced Micro Devices [AMD]
-
- vendor.id             pci 0x1022
-&device.id             pci 0x1100
-+device.name           K8 [Athlon64/Opteron] HyperTransport Technology Configuration
-
- vendor.id             pci 0x1022
-&device.id             pci 0x1101
-+device.name           K8 [Athlon64/Opteron] Address Map
-
- vendor.id             pci 0x1022
-&device.id             pci 0x1102
-+device.name           K8 [Athlon64/Opteron] DRAM Controller
-
- vendor.id             pci 0x1022
-&device.id             pci 0x1103
-+device.name           K8 [Athlon64/Opteron] Miscellaneous Control
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-+device.name           79c970 [PCnet32 LANCE]
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x2000
-+subdevice.name                NetFinity 10/100 Fast Ethernet
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x1022
-&subdevice.id          pci 0x2000
-+subdevice.name                PCnet - Fast 79C971
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x104c
-+subdevice.name                Ethernet with LAN remote power Adapter
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x1064
-+subdevice.name                Ethernet with LAN remote power Adapter
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x1065
-+subdevice.name                Ethernet with LAN remote power Adapter
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x106c
-+subdevice.name                Ethernet with LAN remote power Adapter
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x106e
-+subdevice.name                Ethernet with LAN remote power Adapter
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10ea
-+subdevice.name                Ethernet with LAN remote power Adapter
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x1113
-&subdevice.id          pci 0x1220
-+subdevice.name                EN1220 10/100 Fast Ethernet
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2450
-+subdevice.name                AT-2450 10/100 Fast Ethernet
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2454
-+subdevice.name                AT-2450v4 10Mb Ethernet Adapter
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2700
-+subdevice.name                AT-2700TX 10/100 Fast Ethernet
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2701
-+subdevice.name                AT-2700FX 100Mb Ethernet
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1000
-+subdevice.name                CC7/CR7/CP7/VC7/VP7/VR7 mainboard
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1010
-+subdevice.name                CP5/CR6 mainboard
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1020
-+subdevice.name                VR6 mainboard
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1030
-+subdevice.name                PC5 mainboard
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1040
-+subdevice.name                CL7 mainboard
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2000
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1060
-+subdevice.name                PC7 mainboard
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2001
-+device.name           79c978 [HomePNA]
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2001
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0a78
-+subdevice.name                Multimedia Home Network Adapter
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2001
-&subvendor.id          pci 0x1668
-&subdevice.id          pci 0x0299
-+subdevice.name                ActionLink Home Network Adapter
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2003
-+device.name           Am 1771 MBW [Alchemy]
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2020
-+device.name           53c974 [PCscsi]
-
- vendor.id             pci 0x1022
-&device.id             pci 0x2040
-+device.name           79c974
-
- vendor.id             pci 0x1022
-&device.id             pci 0x3000
-+device.name           ELanSC520 Microcontroller
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7006
-+device.name           AMD-751 [Irongate] System Controller
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7007
-+device.name           AMD-751 [Irongate] AGP Bridge
-
- vendor.id             pci 0x1022
-&device.id             pci 0x700a
-+device.name           AMD-IGR4 AGP Host to PCI Bridge
-
- vendor.id             pci 0x1022
-&device.id             pci 0x700b
-+device.name           AMD-IGR4 PCI to PCI Bridge
-
- vendor.id             pci 0x1022
-&device.id             pci 0x700c
-+device.name           AMD-760 MP [IGD4-2P] System Controller
-
- vendor.id             pci 0x1022
-&device.id             pci 0x700d
-+device.name           AMD-760 MP [IGD4-2P] AGP Bridge
-
- vendor.id             pci 0x1022
-&device.id             pci 0x700e
-+device.name           AMD-760 [IGD4-1P] System Controller
-
- vendor.id             pci 0x1022
-&device.id             pci 0x700f
-+device.name           AMD-760 [IGD4-1P] AGP Bridge
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7400
-+device.name           AMD-755 [Cobra] ISA
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7401
-+device.name           AMD-755 [Cobra] IDE
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7403
-+device.name           AMD-755 [Cobra] ACPI
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7404
-+device.name           AMD-755 [Cobra] USB
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7408
-+device.name           AMD-756 [Viper] ISA
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7409
-+device.name           AMD-756 [Viper] IDE
-
- vendor.id             pci 0x1022
-&device.id             pci 0x740b
-+device.name           AMD-756 [Viper] ACPI
-
- vendor.id             pci 0x1022
-&device.id             pci 0x740c
-+device.name           AMD-756 [Viper] USB
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7410
-+device.name           AMD-766 [ViperPlus] ISA
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7411
-+device.name           AMD-766 [ViperPlus] IDE
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7413
-+device.name           AMD-766 [ViperPlus] ACPI
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7414
-+device.name           AMD-766 [ViperPlus] USB
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7440
-+device.name           AMD-768 [Opus] ISA
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7440
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8044
-+subdevice.name                A7M-D Mainboard
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7441
-+device.name           AMD-768 [Opus] IDE
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7443
-+device.name           AMD-768 [Opus] ACPI
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7443
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8044
-+subdevice.name                A7M-D Mainboard
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7445
-+device.name           AMD-768 [Opus] Audio
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7446
-+device.name           AMD-768 [Opus] MC97 Modem (Smart Link HAMR5600 compatible)
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7448
-+device.name           AMD-768 [Opus] PCI
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7449
-+device.name           AMD-768 [Opus] USB
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7450
-+device.name           AMD-8131 PCI-X Bridge
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7451
-+device.name           AMD-8131 PCI-X APIC
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7454
-+device.name           AMD-8151 System Controller
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7455
-+device.name           AMD-8151 AGP Bridge
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7460
-+device.name           AMD-8111 PCI
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7460
-&subvendor.id          pci 0x161f
-&subdevice.id          pci 0x3017
-+subdevice.name                HDAMB
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7461
-+device.name           AMD-8111 USB
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7462
-+device.name           AMD-8111 Ethernet
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7464
-+device.name           AMD-8111 USB
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7464
-&subvendor.id          pci 0x161f
-&subdevice.id          pci 0x3017
-+subdevice.name                HDAMB
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7468
-+device.name           AMD-8111 LPC
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7468
-&subvendor.id          pci 0x161f
-&subdevice.id          pci 0x3017
-+subdevice.name                HDAMB
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7469
-+device.name           AMD-8111 IDE
-
- vendor.id             pci 0x1022
-&device.id             pci 0x7469
-&subvendor.id          pci 0x161f
-&subdevice.id          pci 0x3017
-+subdevice.name                HDAMB
-
- vendor.id             pci 0x1022
-&device.id             pci 0x746a
-+device.name           AMD-8111 SMBus 2.0
-
- vendor.id             pci 0x1022
-&device.id             pci 0x746b
-+device.name           AMD-8111 ACPI
-
- vendor.id             pci 0x1022
-&device.id             pci 0x746b
-&subvendor.id          pci 0x161f
-&subdevice.id          pci 0x3017
-+subdevice.name                HDAMB
-
- vendor.id             pci 0x1022
-&device.id             pci 0x746d
-+device.name           AMD-8111 AC97 Audio
-
- vendor.id             pci 0x1022
-&device.id             pci 0x746d
-&subvendor.id          pci 0x161f
-&subdevice.id          pci 0x3017
-+subdevice.name                HDAMB
-
- vendor.id             pci 0x1022
-&device.id             pci 0x746e
-+device.name           AMD-8111 MC97 Modem
-
- vendor.id             pci 0x1022
-&device.id             pci 0x756b
-+device.name           AMD-8111 ACPI
-
- vendor.id             pci 0x1023
-+vendor.name           Trident Microsystems
-
- vendor.id             pci 0x1023
-&device.id             pci 0x0194
-+device.name           82C194
-
- vendor.id             pci 0x1023
-&device.id             pci 0x2000
-+device.name           4DWave DX
-
- vendor.id             pci 0x1023
-&device.id             pci 0x2001
-+device.name           4DWave NX
-
- vendor.id             pci 0x1023
-&device.id             pci 0x2001
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x1400
-+subdevice.name                Trident PCI288-Q3DII (NX)
-
- vendor.id             pci 0x1023
-&device.id             pci 0x2100
-+device.name           CyberBlade XP4m32
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8400
-+device.name           CyberBlade/i7
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8400
-&subvendor.id          pci 0x1023
-&subdevice.id          pci 0x8400
-+subdevice.name                CyberBlade i7 AGP
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8420
-+device.name           CyberBlade/i7d
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8420
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb15a
-+subdevice.name                CyberBlade i7 AGP
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8500
-+device.name           CyberBlade/i1
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8520
-+device.name           CyberBlade i1
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8520
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb16e
-+subdevice.name                CyberBlade i1 AGP
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8520
-&subvendor.id          pci 0x1023
-&subdevice.id          pci 0x8520
-+subdevice.name                CyberBlade i1 AGP
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8620
-+device.name           CyberBlade/i1
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8620
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0502
-+subdevice.name                ThinkPad R30/T30
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8820
-+device.name           CyberBlade XPAi1
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9320
-+device.name           TGUI 9320
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9350
-+device.name           GUI Accelerator
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9360
-+device.name           Flat panel GUI Accelerator
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9382
-+device.name           Cyber 9382 [Reference design]
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9383
-+device.name           Cyber 9383 [Reference design]
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9385
-+device.name           Cyber 9385 [Reference design]
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9386
-+device.name           Cyber 9386
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9388
-+device.name           Cyber 9388
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9397
-+device.name           Cyber 9397
-
- vendor.id             pci 0x1023
-&device.id             pci 0x939a
-+device.name           Cyber 9397DVD
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9420
-+device.name           TGUI 9420
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9430
-+device.name           TGUI 9430
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9440
-+device.name           TGUI 9440
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9460
-+device.name           TGUI 9460
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9470
-+device.name           TGUI 9470
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9520
-+device.name           Cyber 9520
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9525
-+device.name           Cyber 9525
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9525
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1094
-+subdevice.name                Lifebook C6155
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9540
-+device.name           Cyber 9540
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9660
-+device.name           TGUI 9660/938x/968x
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9680
-+device.name           TGUI 9680
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9682
-+device.name           TGUI 9682
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9683
-+device.name           TGUI 9683
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9685
-+device.name           ProVIDIA 9685
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9750
-+device.name           3DImage 9750
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9750
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x9750
-+subdevice.name                3DImage 9750
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9750
-&subvendor.id          pci 0x1023
-&subdevice.id          pci 0x9750
-+subdevice.name                3DImage 9750
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9753
-+device.name           TGUI 9753
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9754
-+device.name           TGUI 9754
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9759
-+device.name           TGUI 975
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9783
-+device.name           TGUI 9783
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9785
-+device.name           TGUI 9785
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9850
-+device.name           3DImage 9850
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9880
-+device.name           Blade 3D PCI/AGP
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9880
-&subvendor.id          pci 0x1023
-&subdevice.id          pci 0x9880
-+subdevice.name                Blade 3D
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9910
-+device.name           CyberBlade/XP
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9930
-+device.name           CyberBlade/XPm
-
- vendor.id             pci 0x1024
-+vendor.name           Zenith Data Systems
-
- vendor.id             pci 0x1025
-+vendor.name           Acer Incorporated [ALI]
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1435
-+device.name           M1435
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1445
-+device.name           M1445
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1449
-+device.name           M1449
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1451
-+device.name           M1451
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1461
-+device.name           M1461
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1489
-+device.name           M1489
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1511
-+device.name           M1511
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1512
-+device.name           ALI M1512 Aladdin
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1513
-+device.name           M1513
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1521
-+device.name           ALI M1521 Aladdin III CPU Bridge
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1521
-&subvendor.id          pci 0x10b9
-&subdevice.id          pci 0x1521
-+subdevice.name                ALI M1521 Aladdin III CPU Bridge
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1523
-+device.name           ALI M1523 ISA Bridge
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1523
-&subvendor.id          pci 0x10b9
-&subdevice.id          pci 0x1523
-+subdevice.name                ALI M1523 ISA Bridge
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1531
-+device.name           M1531 Northbridge [Aladdin IV/IV+]
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1533
-+device.name           M1533 PCI-to-ISA Bridge
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1533
-&subvendor.id          pci 0x10b9
-&subdevice.id          pci 0x1533
-+subdevice.name                ALI M1533 Aladdin IV/V ISA South Bridge
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1535
-+device.name           M1535 PCI Bridge + Super I/O + FIR
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1541
-+device.name           M1541 Northbridge [Aladdin V]
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1541
-&subvendor.id          pci 0x10b9
-&subdevice.id          pci 0x1541
-+subdevice.name                ALI M1541 Aladdin V/V+ AGP+PCI North Bridge
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1542
-+device.name           M1542 Northbridge [Aladdin V]
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1543
-+device.name           M1543 PCI-to-ISA Bridge + Super I/O + FIR
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1561
-+device.name           M1561 Northbridge [Aladdin 7]
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1621
-+device.name           M1621 Northbridge [Aladdin-Pro II]
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1631
-+device.name           M1631 Northbridge+3D Graphics [Aladdin TNT2]
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1641
-+device.name           M1641 Northbridge [Aladdin-Pro IV]
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1647
-+device.name           M1647 [MaGiK1] PCI North Bridge
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1671
-+device.name           M1671 Northbridge [ALADDiN-P4]
-
- vendor.id             pci 0x1025
-&device.id             pci 0x1672
-+device.name           Northbridge [CyberALADDiN-P4]
-
- vendor.id             pci 0x1025
-&device.id             pci 0x3141
-+device.name           M3141
-
- vendor.id             pci 0x1025
-&device.id             pci 0x3143
-+device.name           M3143
-
- vendor.id             pci 0x1025
-&device.id             pci 0x3145
-+device.name           M3145
-
- vendor.id             pci 0x1025
-&device.id             pci 0x3147
-+device.name           M3147
-
- vendor.id             pci 0x1025
-&device.id             pci 0x3149
-+device.name           M3149
-
- vendor.id             pci 0x1025
-&device.id             pci 0x3151
-+device.name           M3151
-
- vendor.id             pci 0x1025
-&device.id             pci 0x3307
-+device.name           M3307 MPEG-I Video Controller
-
- vendor.id             pci 0x1025
-&device.id             pci 0x3309
-+device.name           M3309 MPEG-II Video w/ Software Audio Decoder
-
- vendor.id             pci 0x1025
-&device.id             pci 0x3321
-+device.name           M3321 MPEG-II Audio/Video Decoder
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5212
-+device.name           M4803
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5215
-+device.name           ALI PCI EIDE Controller
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5217
-+device.name           M5217H
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5219
-+device.name           M5219
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5225
-+device.name           M5225
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5229
-+device.name           M5229
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5235
-+device.name           M5235
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5237
-+device.name           M5237 PCI USB Host Controller
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5240
-+device.name           EIDE Controller
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5241
-+device.name           PCMCIA Bridge
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5242
-+device.name           General Purpose Controller
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5243
-+device.name           PCI to PCI Bridge Controller
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5244
-+device.name           Floppy Disk Controller
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5247
-+device.name           M1541 PCI to PCI Bridge
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5251
-+device.name           M5251 P1394 Controller
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5427
-+device.name           PCI to AGP Bridge
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5451
-+device.name           M5451 PCI AC-Link Controller Audio Device
-
- vendor.id             pci 0x1025
-&device.id             pci 0x5453
-+device.name           M5453 PCI AC-Link Controller Modem Device
-
- vendor.id             pci 0x1025
-&device.id             pci 0x7101
-+device.name           M7101 PCI PMU Power Management Controller
-
- vendor.id             pci 0x1025
-&device.id             pci 0x7101
-&subvendor.id          pci 0x10b9
-&subdevice.id          pci 0x7101
-+subdevice.name                M7101 PCI PMU Power Management Controller
-
- vendor.id             pci 0x1028
-+vendor.name           Dell
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0001
-+device.name           PowerEdge Expandable RAID Controller 2/Si
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0001
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0001
-+subdevice.name                PowerEdge 2400
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0002
-+device.name           PowerEdge Expandable RAID Controller 3/Di
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0002
-+subdevice.name                PowerEdge 4400
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0003
-+device.name           PowerEdge Expandable RAID Controller 3/Si
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0003
-+subdevice.name                PowerEdge 2450
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0006
-+device.name           PowerEdge Expandable RAID Controller 3/Di
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0007
-+device.name           Remote Access Card III
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0008
-+device.name           Remote Access Card III
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0009
-+device.name           Remote Access Card III: BMC/SMIC device not present
-
- vendor.id             pci 0x1028
-&device.id             pci 0x000a
-+device.name           PowerEdge Expandable RAID Controller 3/Di
-
- vendor.id             pci 0x1028
-&device.id             pci 0x000c
-+device.name           Embedded Remote Access or ERA/O
-
- vendor.id             pci 0x1028
-&device.id             pci 0x000d
-+device.name           Embedded Remote Access: BMC/SMIC device
-
- vendor.id             pci 0x1028
-&device.id             pci 0x000e
-+device.name           PowerEdge Expandable RAID controller 4/Di
-
- vendor.id             pci 0x1028
-&device.id             pci 0x000f
-+device.name           PowerEdge Expandable RAID controller 4/Di
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0010
-+device.name           Remote Access Card 4
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0011
-+device.name           Remote Access Card 4 Daughter Card
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0012
-+device.name           Remote Access Card 4 Daughter Card Virtual UART
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0013
-+device.name           PowerEdge Expandable RAID controller 4
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0013
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x016c
-+subdevice.name                PowerEdge Expandable RAID Controller 4e/Si
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0013
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x016d
-+subdevice.name                PowerEdge Expandable RAID Controller 4e/Di
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0013
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x016e
-+subdevice.name                PowerEdge Expandable RAID Controller 4e/Di
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0013
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x016f
-+subdevice.name                PowerEdge Expandable RAID Controller 4e/Di
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0013
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0170
-+subdevice.name                PowerEdge Expandable RAID Controller 4e/Di
-
- vendor.id             pci 0x1028
-&device.id             pci 0x0014
-+device.name           Remote Access Card 4 Daughter Card SMIC interface
-
- vendor.id             pci 0x1029
-+vendor.name           Siemens Nixdorf IS
-
- vendor.id             pci 0x102a
-+vendor.name           LSI Logic
-
- vendor.id             pci 0x102a
-&device.id             pci 0x0000
-+device.name           HYDRA
-
- vendor.id             pci 0x102a
-&device.id             pci 0x0010
-+device.name           ASPEN
-
- vendor.id             pci 0x102a
-&device.id             pci 0x001f
-+device.name           AHA-2940U2/U2W /7890/7891 SCSI Controllers
-
- vendor.id             pci 0x102a
-&device.id             pci 0x001f
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x000f
-+subdevice.name                2940U2W SCSI Controller
-
- vendor.id             pci 0x102a
-&device.id             pci 0x001f
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0106
-+subdevice.name                2940U2W SCSI Controller
-
- vendor.id             pci 0x102a
-&device.id             pci 0x001f
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0xa180
-+subdevice.name                2940U2W SCSI Controller
-
- vendor.id             pci 0x102a
-&device.id             pci 0x00c5
-+device.name           AIC-7899 U160/m SCSI Controller
-
- vendor.id             pci 0x102a
-&device.id             pci 0x00c5
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00c5
-+subdevice.name                PowerEdge 2550/2650/4600
-
- vendor.id             pci 0x102a
-&device.id             pci 0x00cf
-+device.name           AIC-7899P U160/m
-
- vendor.id             pci 0x102a
-&device.id             pci 0x00cf
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0106
-+subdevice.name                PowerEdge 4600
-
- vendor.id             pci 0x102a
-&device.id             pci 0x00cf
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0121
-+subdevice.name                PowerEdge 2650
-
- vendor.id             pci 0x102b
-+vendor.name           Matrox Graphics, Inc.
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0010
-+device.name           MGA-I [Impression?]
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0100
-+device.name           MGA 1064SG [Mystique]
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0518
-+device.name           MGA-II [Athena]
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0519
-+device.name           MGA 2064W [Millennium]
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051a
-+device.name           MGA 1064SG [Mystique]
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051a
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0100
-+subdevice.name                MGA-1064SG Mystique
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051a
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x1100
-+subdevice.name                MGA-1084SG Mystique
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051a
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x1200
-+subdevice.name                MGA-1084SG Mystique
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051a
-&subvendor.id          pci 0x1100
-&subdevice.id          pci 0x102b
-+subdevice.name                MGA-1084SG Mystique
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051a
-&subvendor.id          pci 0x110a
-&subdevice.id          pci 0x0018
-+subdevice.name                Scenic Pro C5 (D1025)
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051b
-+device.name           MGA 2164W [Millennium II]
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051b
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x051b
-+subdevice.name                MGA-2164W Millennium II
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051b
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x1100
-+subdevice.name                MGA-2164W Millennium II
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051b
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x1200
-+subdevice.name                MGA-2164W Millennium II
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051e
-+device.name           MGA 1064SG [Mystique] AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051f
-+device.name           MGA 2164W [Millennium II] AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0520
-+device.name           MGA G200
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0520
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbc2
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0520
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbc8
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0520
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbe2
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0520
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbe8
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0520
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xff03
-+subdevice.name                Millennium G200 SD
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0520
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xff04
-+subdevice.name                Marvel G200
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-+device.name           MGA G200 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0xff03
-+subdevice.name                Millennium G200 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x48e9
-+subdevice.name                Mystique G200 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x48f8
-+subdevice.name                Millennium G200 SD AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x4a60
-+subdevice.name                Millennium G200 LE AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x4a64
-+subdevice.name                Millennium G200 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xc93c
-+subdevice.name                Millennium G200 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xc9b0
-+subdevice.name                Millennium G200 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xc9bc
-+subdevice.name                Millennium G200 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xca60
-+subdevice.name                Millennium G250 LE AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xca6c
-+subdevice.name                Millennium G250 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbbc
-+subdevice.name                Millennium G200 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbc2
-+subdevice.name                Millennium G200 MMS (Dual G200)
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbc3
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbc8
-+subdevice.name                Millennium G200 MMS (Dual G200)
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbd2
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbd3
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbd4
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbd5
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbd8
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbd9
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbe2
-+subdevice.name                Millennium G200 MMS (Quad G200)
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbe3
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbe8
-+subdevice.name                Millennium G200 MMS (Quad G200)
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbf2
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbf3
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbf4
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbf5
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbf8
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xdbf9
-+subdevice.name                G200 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xf806
-+subdevice.name                Mystique G200 Video AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xff00
-+subdevice.name                MGA-G200 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xff02
-+subdevice.name                Mystique G200 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xff03
-+subdevice.name                Millennium G200 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xff04
-+subdevice.name                Marvel G200 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-&subvendor.id          pci 0x110a
-&subdevice.id          pci 0x0032
-+subdevice.name                MGA-G200 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-+device.name           MGA G400 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb16f
-+subdevice.name                MGA-G400 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0328
-+subdevice.name                Millennium G400 16Mb SDRAM
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0338
-+subdevice.name                Millennium G400 16Mb SDRAM
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0378
-+subdevice.name                Millennium G400 32Mb SDRAM
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0541
-+subdevice.name                Millennium G450 Dual Head
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0542
-+subdevice.name                Millennium G450 Dual Head LX
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0543
-+subdevice.name                Millennium G450 Single Head LX
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0641
-+subdevice.name                Millennium G450 32Mb SDRAM Dual Head
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0642
-+subdevice.name                Millennium G450 32Mb SDRAM Dual Head LX
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0643
-+subdevice.name                Millennium G450 32Mb SDRAM Single Head LX
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x07c0
-+subdevice.name                Millennium G450 Dual Head LE
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x07c1
-+subdevice.name                Millennium G450 SDR Dual Head LE
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0d41
-+subdevice.name                Millennium G450 Dual Head PCI
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0d42
-+subdevice.name                Millennium G450 Dual Head LX PCI
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0d43
-+subdevice.name                Millennium G450 32Mb Dual Head PCI
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0e00
-+subdevice.name                Marvel G450 eTV
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0e01
-+subdevice.name                Marvel G450 eTV
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0e02
-+subdevice.name                Marvel G450 eTV
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0e03
-+subdevice.name                Marvel G450 eTV
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0f80
-+subdevice.name                Millennium G450 Low Profile
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0f81
-+subdevice.name                Millennium G450 Low Profile
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0f82
-+subdevice.name                Millennium G450 Low Profile DVI
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0f83
-+subdevice.name                Millennium G450 Low Profile DVI
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x19d8
-+subdevice.name                Millennium G400 16Mb SGRAM
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x19f8
-+subdevice.name                Millennium G400 32Mb SGRAM
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x2159
-+subdevice.name                Millennium G400 Dual Head 16Mb
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x2179
-+subdevice.name                Millennium G400 MAX/Dual Head 32Mb
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x217d
-+subdevice.name                Millennium G400 Dual Head Max
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x23c0
-+subdevice.name                Millennium G450
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x23c1
-+subdevice.name                Millennium G450
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x23c2
-+subdevice.name                Millennium G450 DVI
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x23c3
-+subdevice.name                Millennium G450 DVI
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x2f58
-+subdevice.name                Millennium G400
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x2f78
-+subdevice.name                Millennium G400
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x3693
-+subdevice.name                Marvel G400 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x5dd0
-+subdevice.name                4Sight II
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x5f50
-+subdevice.name                4Sight II
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x5f51
-+subdevice.name                4Sight II
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x5f52
-+subdevice.name                4Sight II
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x9010
-+subdevice.name                Millennium G400 Dual Head
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x0400
-+subdevice.name                GA-G400
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x1705
-&subdevice.id          pci 0x0001
-+subdevice.name                Millennium G450 32MB SGRAM
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x1705
-&subdevice.id          pci 0x0002
-+subdevice.name                Millennium G450 16MB SGRAM
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x1705
-&subdevice.id          pci 0x0003
-+subdevice.name                Millennium G450 32MB
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x1705
-&subdevice.id          pci 0x0004
-+subdevice.name                Millennium G450 16MB
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0527
-+device.name           MGA Parhelia AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0527
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0840
-+subdevice.name                Parhelia 128Mb
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0d10
-+device.name           MGA Ultima/Impression
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1000
-+device.name           MGA G100 [Productiva]
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1000
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xff01
-+subdevice.name                Productiva G100
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1000
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xff05
-+subdevice.name                Productiva G100 Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1001
-+device.name           MGA G100 [Productiva] AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1001
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x1001
-+subdevice.name                MGA-G100 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1001
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xff00
-+subdevice.name                MGA-G100 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1001
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xff01
-+subdevice.name                MGA-G100 Productiva AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1001
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xff03
-+subdevice.name                Millennium G100 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1001
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xff04
-+subdevice.name                MGA-G100 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1001
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0xff05
-+subdevice.name                MGA-G100 Productiva AGP Multi-Monitor
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1001
-&subvendor.id          pci 0x110a
-&subdevice.id          pci 0x001e
-+subdevice.name                MGA-G100 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x2007
-+device.name           MGA Mistral
-
- vendor.id             pci 0x102b
-&device.id             pci 0x2527
-+device.name           MGA G550 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x2527
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0f83
-+subdevice.name                Millennium G550
-
- vendor.id             pci 0x102b
-&device.id             pci 0x2527
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0f84
-+subdevice.name                Millennium G550 Dual Head DDR 32Mb
-
- vendor.id             pci 0x102b
-&device.id             pci 0x2527
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x1e41
-+subdevice.name                Millennium G550
-
- vendor.id             pci 0x102b
-&device.id             pci 0x2537
-+device.name           MGA G650 AGP
-
- vendor.id             pci 0x102b
-&device.id             pci 0x4536
-+device.name           VIA Framegrabber
-
- vendor.id             pci 0x102b
-&device.id             pci 0x6573
-+device.name           Shark 10/100 Multiport SwitchNIC
-
- vendor.id             pci 0x102c
-+vendor.name           Chips and Technologies
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00b8
-+device.name           F64310
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00c0
-+device.name           F69000 HiQVideo
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00c0
-&subvendor.id          pci 0x102c
-&subdevice.id          pci 0x00c0
-+subdevice.name                F69000 HiQVideo
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00c0
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1000
-+subdevice.name                CC7/CR7/CP7/VC7/VP7/VR7 mainboard
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00c0
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1010
-+subdevice.name                CP5/CR6 mainboard
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00c0
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1020
-+subdevice.name                VR6 mainboard
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00c0
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1030
-+subdevice.name                PC5 mainboard
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00c0
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1050
-+subdevice.name                CT7 mainboard
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00c0
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1051
-+subdevice.name                CE7 mainboard
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00d0
-+device.name           F65545
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00d8
-+device.name           F65545
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00dc
-+device.name           F65548
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e0
-+device.name           F65550
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e4
-+device.name           F65554
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e5
-+device.name           F65555 HiQVPro
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e5
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb049
-+subdevice.name                Armada 1700 Laptop Display Controller
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00f0
-+device.name           F68554
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00f4
-+device.name           F68554 HiQVision
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00f5
-+device.name           F68555
-
- vendor.id             pci 0x102c
-&device.id             pci 0x0c30
-+device.name           F69030
-
- vendor.id             pci 0x102c
-&device.id             pci 0x0c30
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1000
-+subdevice.name                CC7/CR7/CP7/VC7/VP7/VR7 mainboard
-
- vendor.id             pci 0x102c
-&device.id             pci 0x0c30
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1050
-+subdevice.name                CT7 mainboard
-
- vendor.id             pci 0x102c
-&device.id             pci 0x0c30
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1051
-+subdevice.name                CE7 mainboard
-
- vendor.id             pci 0x102c
-&device.id             pci 0x0c30
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1080
-+subdevice.name                CT8 mainboard
-
- vendor.id             pci 0x102d
-+vendor.name           Wyse Technology Inc.
-
- vendor.id             pci 0x102d
-&device.id             pci 0x50dc
-+device.name           3328 Audio
-
- vendor.id             pci 0x102e
-+vendor.name           Olivetti Advanced Technology
-
- vendor.id             pci 0x102f
-+vendor.name           Toshiba America
-
- vendor.id             pci 0x102f
-&device.id             pci 0x0009
-+device.name           r4x00
-
- vendor.id             pci 0x102f
-&device.id             pci 0x000a
-+device.name           TX3927 MIPS RISC PCI Controller
-
- vendor.id             pci 0x102f
-&device.id             pci 0x0020
-+device.name           ATM Meteor 155
-
- vendor.id             pci 0x102f
-&device.id             pci 0x0020
-&subvendor.id          pci 0x102f
-&subdevice.id          pci 0x00f8
-+subdevice.name                ATM Meteor 155
-
- vendor.id             pci 0x102f
-&device.id             pci 0x0030
-+device.name           TC35815CF PCI 10/100 Mbit Ethernet Controller
-
- vendor.id             pci 0x102f
-&device.id             pci 0x0031
-+device.name           TC35815CF PCI 10/100 Mbit Ethernet Controller with WOL
-
- vendor.id             pci 0x102f
-&device.id             pci 0x0105
-+device.name           TC86C001 [goku-s] IDE
-
- vendor.id             pci 0x102f
-&device.id             pci 0x0106
-+device.name           TC86C001 [goku-s] USB 1.1 Host
-
- vendor.id             pci 0x102f
-&device.id             pci 0x0107
-+device.name           TC86C001 [goku-s] USB Device Controller
-
- vendor.id             pci 0x102f
-&device.id             pci 0x0108
-+device.name           TC86C001 [goku-s] I2C/SIO/GPIO Controller
-
- vendor.id             pci 0x102f
-&device.id             pci 0x0180
-+device.name           TX4927/38 MIPS RISC PCI Controller
-
- vendor.id             pci 0x102f
-&device.id             pci 0x0181
-+device.name           TX4925 MIPS RISC PCI Controller
-
- vendor.id             pci 0x102f
-&device.id             pci 0x0182
-+device.name           TX4937 MIPS RISC PCI Controller
-
- vendor.id             pci 0x1030
-+vendor.name           TMC Research
-
- vendor.id             pci 0x1031
-+vendor.name           Miro Computer Products AG
-
- vendor.id             pci 0x1031
-&device.id             pci 0x5601
-+device.name           DC20 ASIC
-
- vendor.id             pci 0x1031
-&device.id             pci 0x5607
-+device.name           Video I/O & motion JPEG compressor
-
- vendor.id             pci 0x1031
-&device.id             pci 0x5631
-+device.name           Media 3D
-
- vendor.id             pci 0x1031
-&device.id             pci 0x6057
-+device.name           MiroVideo DC10/DC30+
-
- vendor.id             pci 0x1032
-+vendor.name           Compaq
-
- vendor.id             pci 0x1033
-+vendor.name           NEC Corporation
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0000
-+device.name           Vr4181A USB Host or Function Control Unit
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0001
-+device.name           PCI to 486-like bus Bridge
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0002
-+device.name           PCI to VL98 Bridge
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0003
-+device.name           ATM Controller
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0004
-+device.name           R4000 PCI Bridge
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0005
-+device.name           PCI to 486-like bus Bridge
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0006
-+device.name           PC-9800 Graphic Accelerator
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0007
-+device.name           PCI to UX-Bus Bridge
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0008
-+device.name           PC-9800 Graphic Accelerator
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0009
-+device.name           PCI to PC9800 Core-Graph Bridge
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0016
-+device.name           PCI to VL Bridge
-
- vendor.id             pci 0x1033
-&device.id             pci 0x001a
-+device.name           [Nile II]
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0021
-+device.name           Vrc4373 [Nile I]
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0029
-+device.name           PowerVR PCX1
-
- vendor.id             pci 0x1033
-&device.id             pci 0x002a
-+device.name           PowerVR 3D
-
- vendor.id             pci 0x1033
-&device.id             pci 0x002c
-+device.name           Star Alpha 2
-
- vendor.id             pci 0x1033
-&device.id             pci 0x002d
-+device.name           PCI to C-bus Bridge
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0035
-+device.name           USB
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0035
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                USB
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0035
-&subvendor.id          pci 0x12ee
-&subdevice.id          pci 0x7000
-+subdevice.name                Root Hub
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0035
-&subvendor.id          pci 0x1799
-&subdevice.id          pci 0x0001
-+subdevice.name                Root Hub
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0035
-&subvendor.id          pci 0x807d
-&subdevice.id          pci 0x0035
-+subdevice.name                PCI-USB2 (OHCI subsystem)
-
- vendor.id             pci 0x1033
-&device.id             pci 0x003b
-+device.name           PCI to C-bus Bridge
-
- vendor.id             pci 0x1033
-&device.id             pci 0x003e
-+device.name           NAPCCARD Cardbus Controller
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0046
-+device.name           PowerVR PCX2 [midas]
-
- vendor.id             pci 0x1033
-&device.id             pci 0x005a
-+device.name           Vrc5074 [Nile 4]
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0063
-+device.name           Firewarden
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0067
-+device.name           PowerVR Neon 250 Chipset
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0067
-&subvendor.id          pci 0x1010
-&subdevice.id          pci 0x0020
-+subdevice.name                PowerVR Neon 250 AGP 32Mb
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0067
-&subvendor.id          pci 0x1010
-&subdevice.id          pci 0x0080
-+subdevice.name                PowerVR Neon 250 AGP 16Mb
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0067
-&subvendor.id          pci 0x1010
-&subdevice.id          pci 0x0088
-+subdevice.name                PowerVR Neon 250 16Mb
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0067
-&subvendor.id          pci 0x1010
-&subdevice.id          pci 0x0090
-+subdevice.name                PowerVR Neon 250 AGP 16Mb
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0067
-&subvendor.id          pci 0x1010
-&subdevice.id          pci 0x0098
-+subdevice.name                PowerVR Neon 250 16Mb
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0067
-&subvendor.id          pci 0x1010
-&subdevice.id          pci 0x00a0
-+subdevice.name                PowerVR Neon 250 AGP 32Mb
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0067
-&subvendor.id          pci 0x1010
-&subdevice.id          pci 0x00a8
-+subdevice.name                PowerVR Neon 250 32Mb
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0067
-&subvendor.id          pci 0x1010
-&subdevice.id          pci 0x0120
-+subdevice.name                PowerVR Neon 250 AGP 32Mb
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0074
-+device.name           56k Voice Modem
-
- vendor.id             pci 0x1033
-&device.id             pci 0x0074
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8014
-+subdevice.name                RCV56ACF 56k Voice Modem
-
- vendor.id             pci 0x1033
-&device.id             pci 0x009b
-+device.name           Vrc5476
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00a5
-+device.name           VRC4173
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00a6
-+device.name           VRC5477 AC97
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00cd
-+device.name           IEEE 1394 [OrangeLink] Host Controller
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00cd
-&subvendor.id          pci 0x12ee
-&subdevice.id          pci 0x8011
-+subdevice.name                Root hub
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00ce
-+device.name           IEEE 1394 Host Controller
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00df
-+device.name           Vr4131
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00e0
-+device.name           USB 2.0
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00e0
-&subvendor.id          pci 0x0ee4
-&subdevice.id          pci 0x3383
-+subdevice.name                Sitecom IEEE 1394 / USB2.0 Combo Card
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00e0
-&subvendor.id          pci 0x12ee
-&subdevice.id          pci 0x7001
-+subdevice.name                Root hub
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00e0
-&subvendor.id          pci 0x1799
-&subdevice.id          pci 0x0002
-+subdevice.name                Root Hub
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00e0
-&subvendor.id          pci 0x807d
-&subdevice.id          pci 0x1043
-+subdevice.name                PCI-USB2 (EHCI subsystem)
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00e7
-+device.name           IEEE 1394 Host Controller
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00f2
-+device.name           uPD72874 IEEE1394 OHCI 1.1 3-port PHY-Link Ctrlr
-
- vendor.id             pci 0x1033
-&device.id             pci 0x00f3
-+device.name           uPD6113x Multimedia Decoder/Processor [EMMA2]
-
- vendor.id             pci 0x1033
-&device.id             pci 0x010c
-+device.name           VR7701
-
- vendor.id             pci 0x1034
-+vendor.name           Framatome Connectors USA Inc.
-
- vendor.id             pci 0x1035
-+vendor.name           Comp. & Comm. Research Lab
-
- vendor.id             pci 0x1036
-+vendor.name           Future Domain Corp.
-
- vendor.id             pci 0x1036
-&device.id             pci 0x0000
-+device.name           TMC-18C30 [36C70]
-
- vendor.id             pci 0x1037
-+vendor.name           Hitachi Micro Systems
-
- vendor.id             pci 0x1038
-+vendor.name           AMP, Inc
-
- vendor.id             pci 0x1039
-+vendor.name           Silicon Integrated Systems [SiS]
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0001
-+device.name           Virtual PCI-to-PCI bridge (AGP)
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0002
-+device.name           SG86C202
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0006
-+device.name           85C501/2/3
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0008
-+device.name           SiS85C503/5513 (LPC Bridge)
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0009
-+device.name           ACPI
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0016
-+device.name           SiS961/2 SMBus Controller
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0018
-+device.name           SiS85C503/5513 (LPC Bridge)
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0180
-+device.name           RAID bus controller 180 SATA/PATA  [SiS]
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0181
-+device.name           SiS SATA
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0200
-+device.name           5597/5598/6326 VGA
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0200
-&subvendor.id          pci 0x1039
-&subdevice.id          pci 0x0000
-+subdevice.name                SiS5597 SVGA (Shared RAM)
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0204
-+device.name           82C204
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0205
-+device.name           SG86C205
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0300
-+device.name           300/305 PCI/AGP VGA Display Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0300
-&subvendor.id          pci 0x107d
-&subdevice.id          pci 0x2720
-+subdevice.name                Leadtek WinFast VR300
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0310
-+device.name           315H PCI/AGP VGA Display Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0315
-+device.name           315 PCI/AGP VGA Display Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0325
-+device.name           315PRO PCI/AGP VGA Display Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0330
-+device.name           330 [Xabre] PCI/AGP VGA Display Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0406
-+device.name           85C501/2
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0496
-+device.name           85C496
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0530
-+device.name           530 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0540
-+device.name           540 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0550
-+device.name           550 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0597
-+device.name           5513C
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0601
-+device.name           85C601
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0620
-+device.name           620 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0630
-+device.name           630 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0633
-+device.name           633 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0635
-+device.name           635 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0645
-+device.name           SiS645 Host & Memory & AGP Controller
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0646
-+device.name           SiS645DX Host & Memory & AGP Controller
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0648
-+device.name           SiS 645xx
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0650
-+device.name           650/M650 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0651
-+device.name           651 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0655
-+device.name           655 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0660
-+device.name           660 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0661
-+device.name           661FX/M661FX/M661MX Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0730
-+device.name           730 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0733
-+device.name           733 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0735
-+device.name           735 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0740
-+device.name           740 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0741
-+device.name           741/741GX/M741 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0745
-+device.name           745 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0746
-+device.name           746 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0755
-+device.name           755 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0760
-+device.name           760/M760 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0900
-+device.name           SiS900 PCI Fast Ethernet
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0900
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0a14
-+subdevice.name                K7S5A motherboard
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0900
-&subvendor.id          pci 0x1039
-&subdevice.id          pci 0x0900
-+subdevice.name                SiS900 10/100 Ethernet Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0900
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8035
-+subdevice.name                CUSI-FX motherboard
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0961
-+device.name           SiS961 [MuTIOL Media IO]
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0962
-+device.name           SiS962 [MuTIOL Media IO]
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0963
-+device.name           SiS963 [MuTIOL Media IO]
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0964
-+device.name           SiS964 [MuTIOL Media IO]
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0965
-+device.name           SiS965 [MuTIOL Media IO]
-
- vendor.id             pci 0x1039
-&device.id             pci 0x3602
-+device.name           83C602
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5107
-+device.name           5107
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5300
-+device.name           SiS540 PCI Display Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5315
-+device.name           550 PCI/AGP VGA Display Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5401
-+device.name           486 PCI Chipset
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5511
-+device.name           5511/5512
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5513
-+device.name           5513 [IDE]
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5513
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0970
-+subdevice.name                P6STP-FL motherboard
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5513
-&subvendor.id          pci 0x1039
-&subdevice.id          pci 0x5513
-+subdevice.name                SiS5513 EIDE Controller (A,B step)
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5513
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8035
-+subdevice.name                CUSI-FX motherboard
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5517
-+device.name           5517
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5571
-+device.name           5571
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5581
-+device.name           5581 Pentium Chipset
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5582
-+device.name           5582
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5591
-+device.name           5591/5592 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5596
-+device.name           5596 Pentium Chipset
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5597
-+device.name           5597 [SiS5582]
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5600
-+device.name           5600 Host
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6204
-+device.name           Video decoder & MPEG interface
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6205
-+device.name           VGA Controller
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6236
-+device.name           6236 3D-AGP
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6300
-+device.name           630/730 PCI/AGP VGA Display Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6300
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0970
-+subdevice.name                P6STP-FL motherboard
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6300
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8035
-+subdevice.name                CUSI-FX motherboard
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6306
-+device.name           530/620 PCI/AGP VGA Display Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6306
-&subvendor.id          pci 0x1039
-&subdevice.id          pci 0x6306
-+subdevice.name                SiS530,620 GUI Accelerator+3D
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6325
-+device.name           65x/M650/740 PCI/AGP VGA Display Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6326
-+device.name           86C326 5598/6326
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6326
-&subvendor.id          pci 0x1039
-&subdevice.id          pci 0x6326
-+subdevice.name                SiS6326 GUI Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6326
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0a50
-+subdevice.name                SpeedStar A50
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6326
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0a70
-+subdevice.name                SpeedStar A70
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6326
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4910
-+subdevice.name                SpeedStar A70
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6326
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4920
-+subdevice.name                SpeedStar A70
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6326
-&subvendor.id          pci 0x1569
-&subdevice.id          pci 0x6326
-+subdevice.name                SiS6326 GUI Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6330
-+device.name           661/741/760 PCI/AGP VGA Display Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6330
-&subvendor.id          pci 0x1039
-&subdevice.id          pci 0x6330
-+subdevice.name                [M]661xX/[M]741[GX]/[M]760 PCI/AGP VGA Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7001
-+device.name           USB 1.0 Controller
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7001
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0a14
-+subdevice.name                K7S5A motherboard
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7001
-&subvendor.id          pci 0x1039
-&subdevice.id          pci 0x7000
-+subdevice.name                Onboard USB Controller
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7002
-+device.name           USB 2.0 Controller
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7002
-&subvendor.id          pci 0x1509
-&subdevice.id          pci 0x7002
-+subdevice.name                Onboard USB Controller
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7007
-+device.name           FireWire Controller
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7012
-+device.name           Sound Controller
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7013
-+device.name           AC'97 Modem Controller
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7016
-+device.name           SiS7016 PCI Fast Ethernet Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7016
-&subvendor.id          pci 0x1039
-&subdevice.id          pci 0x7016
-+subdevice.name                SiS7016 10/100 Ethernet Adapter
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-+device.name           SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01b6
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01b7
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x7018
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x000e
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x0018
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x1039
-&subdevice.id          pci 0x7018
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x800b
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x1054
-&subdevice.id          pci 0x7018
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x107d
-&subdevice.id          pci 0x5330
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x107d
-&subdevice.id          pci 0x5350
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x1170
-&subdevice.id          pci 0x3209
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x400a
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x14a4
-&subdevice.id          pci 0x2089
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x14cd
-&subdevice.id          pci 0x2194
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x14ff
-&subdevice.id          pci 0x1100
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x152d
-&subdevice.id          pci 0x8808
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x1558
-&subdevice.id          pci 0x1103
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x1558
-&subdevice.id          pci 0x2200
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x1563
-&subdevice.id          pci 0x7018
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x15c5
-&subdevice.id          pci 0x0111
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0xa171
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7018
-&subvendor.id          pci 0xa0a0
-&subdevice.id          pci 0x0022
-+subdevice.name                SiS PCI Audio Accelerator
-
- vendor.id             pci 0x1039
-&device.id             pci 0x7019
-+device.name           SiS7019 Audio Accelerator
-
- vendor.id             pci 0x103a
-+vendor.name           Seiko Epson Corporation
-
- vendor.id             pci 0x103b
-+vendor.name           Tatung Co. of America
-
- vendor.id             pci 0x103c
-+vendor.name           Hewlett-Packard Company
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1005
-+device.name           A4977A Visualize EG
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1006
-+device.name           Visualize FX6
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1008
-+device.name           Visualize FX4
-
- vendor.id             pci 0x103c
-&device.id             pci 0x100a
-+device.name           Visualize FX2
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1028
-+device.name           Tach TL Fibre Channel Host Adapter
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1029
-+device.name           Tach XL2 Fibre Channel Host Adapter
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1029
-&subvendor.id          pci 0x107e
-&subdevice.id          pci 0x000f
-+subdevice.name                Interphase 5560 Fibre Channel Adapter
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1029
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x9210
-+subdevice.name                1Gb/2Gb Family Fibre Channel Controller
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1029
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x9211
-+subdevice.name                1Gb/2Gb Family Fibre Channel Controller
-
- vendor.id             pci 0x103c
-&device.id             pci 0x102a
-+device.name           Tach TS Fibre Channel Host Adapter
-
- vendor.id             pci 0x103c
-&device.id             pci 0x102a
-&subvendor.id          pci 0x107e
-&subdevice.id          pci 0x000e
-+subdevice.name                Interphase 5540/5541 Fibre Channel Adapter
-
- vendor.id             pci 0x103c
-&device.id             pci 0x102a
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x9110
-+subdevice.name                1Gb/2Gb Family Fibre Channel Controller
-
- vendor.id             pci 0x103c
-&device.id             pci 0x102a
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x9111
-+subdevice.name                1Gb/2Gb Family Fibre Channel Controller
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1030
-+device.name           J2585A DeskDirect 10/100VG NIC
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1031
-+device.name           J2585B HP 10/100VG PCI LAN Adapter
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1031
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x1040
-+subdevice.name                J2973A DeskDirect 10BaseT NIC
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1031
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x1041
-+subdevice.name                J2585B DeskDirect 10/100VG NIC
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1031
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x1042
-+subdevice.name                J2970A DeskDirect 10BaseT/2 NIC
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1040
-+device.name           J2973A DeskDirect 10BaseT NIC
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1041
-+device.name           J2585B DeskDirect 10/100 NIC
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1042
-+device.name           J2970A DeskDirect 10BaseT/2 NIC
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1048
-+device.name           Diva Serial [GSP] Multiport UART
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1048
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x1049
-+subdevice.name                Tosca Console
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1048
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x104a
-+subdevice.name                Tosca Secondary
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1048
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x104b
-+subdevice.name                Maestro SP2
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1048
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x1223
-+subdevice.name                Superdome Console
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1048
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x1226
-+subdevice.name                Keystone SP2
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1048
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x1227
-+subdevice.name                Powerbar SP2
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1048
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x1282
-+subdevice.name                Everest SP2
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1054
-+device.name           PCI Local Bus Adapter
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1064
-+device.name           79C970 PCnet Ethernet Controller
-
- vendor.id             pci 0x103c
-&device.id             pci 0x108b
-+device.name           Visualize FXe
-
- vendor.id             pci 0x103c
-&device.id             pci 0x10c1
-+device.name           NetServer Smart IRQ Router
-
- vendor.id             pci 0x103c
-&device.id             pci 0x10ed
-+device.name           TopTools Remote Control
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1200
-+device.name           82557B 10/100 NIC
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1219
-+device.name           NetServer PCI Hot-Plug Controller
-
- vendor.id             pci 0x103c
-&device.id             pci 0x121a
-+device.name           NetServer SMIC Controller
-
- vendor.id             pci 0x103c
-&device.id             pci 0x121b
-+device.name           NetServer Legacy COM Port Decoder
-
- vendor.id             pci 0x103c
-&device.id             pci 0x121c
-+device.name           NetServer PCI COM Port Decoder
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1229
-+device.name           zx1 System Bus Adapter
-
- vendor.id             pci 0x103c
-&device.id             pci 0x122a
-+device.name           zx1 I/O Controller
-
- vendor.id             pci 0x103c
-&device.id             pci 0x122e
-+device.name           zx1 Local Bus Adapter
-
- vendor.id             pci 0x103c
-&device.id             pci 0x127c
-+device.name           sx1000 I/O Controller
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1290
-+device.name           Auxiliary Diva Serial Port
-
- vendor.id             pci 0x103c
-&device.id             pci 0x1291
-+device.name           Auxiliary Diva Serial Port
-
- vendor.id             pci 0x103c
-&device.id             pci 0x2910
-+device.name           E2910A PCIBus Exerciser
-
- vendor.id             pci 0x103c
-&device.id             pci 0x2925
-+device.name           E2925A 32 Bit, 33 MHzPCI Exerciser & Analyzer
-
- vendor.id             pci 0x103e
-+vendor.name           Solliday Engineering
-
- vendor.id             pci 0x103f
-+vendor.name           Synopsys/Logic Modeling Group
-
- vendor.id             pci 0x1040
-+vendor.name           Accelgraphics Inc.
-
- vendor.id             pci 0x1041
-+vendor.name           Computrend
-
- vendor.id             pci 0x1042
-+vendor.name           Micron
-
- vendor.id             pci 0x1042
-&device.id             pci 0x1000
-+device.name           PC Tech RZ1000
-
- vendor.id             pci 0x1042
-&device.id             pci 0x1001
-+device.name           PC Tech RZ1001
-
- vendor.id             pci 0x1042
-&device.id             pci 0x3000
-+device.name           Samurai_0
-
- vendor.id             pci 0x1042
-&device.id             pci 0x3010
-+device.name           Samurai_1
-
- vendor.id             pci 0x1042
-&device.id             pci 0x3020
-+device.name           Samurai_IDE
-
- vendor.id             pci 0x1043
-+vendor.name           ASUSTeK Computer Inc.
-
- vendor.id             pci 0x1043
-&device.id             pci 0x0675
-+device.name           ISDNLink P-IN100-ST-D
-
- vendor.id             pci 0x1043
-&device.id             pci 0x4015
-+device.name           v7100 SDRAM [GeForce2 MX]
-
- vendor.id             pci 0x1043
-&device.id             pci 0x4021
-+device.name           v7100 Combo Deluxe [GeForce2 MX + TV tuner]
-
- vendor.id             pci 0x1043
-&device.id             pci 0x4057
-+device.name           v8200 GeForce 3
-
- vendor.id             pci 0x1043
-&device.id             pci 0x8043
-+device.name           v8240 PAL 128M [P4T] Motherboard
-
- vendor.id             pci 0x1043
-&device.id             pci 0x807b
-+device.name           v9280/TD [Geforce4 TI4200 8X With TV-Out and DVI]
-
- vendor.id             pci 0x1043
-&device.id             pci 0x80bb
-+device.name           v9180 Magic/T [GeForce4 MX440 AGP 8x 64MB TV-out]
-
- vendor.id             pci 0x1044
-+vendor.name           Adaptec (formerly DPT)
-
- vendor.id             pci 0x1044
-&device.id             pci 0x1012
-+device.name           Domino RAID Engine
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa400
-+device.name           SmartCache/Raid I-IV Controller
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa500
-+device.name           PCI Bridge
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-+device.name           SmartRAID V Controller
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc001
-+subdevice.name                PM1554U2 Ultra2 Single Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc002
-+subdevice.name                PM1654U2 Ultra2 Single Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc003
-+subdevice.name                PM1564U3 Ultra3 Single Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc004
-+subdevice.name                PM1564U3 Ultra3 Dual Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc005
-+subdevice.name                PM1554U2 Ultra2 Single Channel (NON ACPI)
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc00a
-+subdevice.name                PM2554U2 Ultra2 Single Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc00b
-+subdevice.name                PM2654U2 Ultra2 Single Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc00c
-+subdevice.name                PM2664U3 Ultra3 Single Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc00d
-+subdevice.name                PM2664U3 Ultra3 Dual Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc00e
-+subdevice.name                PM2554U2 Ultra2 Single Channel (NON ACPI)
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc00f
-+subdevice.name                PM2654U2 Ultra2 Single Channel (NON ACPI)
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc014
-+subdevice.name                PM3754U2 Ultra2 Single Channel (NON ACPI)
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc015
-+subdevice.name                PM3755U2B Ultra2 Single Channel (NON ACPI)
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc016
-+subdevice.name                PM3755F Fibre Channel (NON ACPI)
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc01e
-+subdevice.name                PM3757U2 Ultra2 Single Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc01f
-+subdevice.name                PM3757U2 Ultra2 Dual Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc020
-+subdevice.name                PM3767U3 Ultra3 Dual Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc021
-+subdevice.name                PM3767U3 Ultra3 Quad Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc028
-+subdevice.name                PM2865U3 Ultra3 Single Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc029
-+subdevice.name                PM2865U3 Ultra3 Dual Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc02a
-+subdevice.name                PM2865F Fibre Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc03c
-+subdevice.name                2000S Ultra3 Single Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc03d
-+subdevice.name                2000S Ultra3 Dual Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc03e
-+subdevice.name                2000F Fibre Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc046
-+subdevice.name                3000S Ultra3 Single Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc047
-+subdevice.name                3000S Ultra3 Dual Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc048
-+subdevice.name                3000F Fibre Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc050
-+subdevice.name                5000S Ultra3 Single Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc051
-+subdevice.name                5000S Ultra3 Dual Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc052
-+subdevice.name                5000F Fibre Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc05a
-+subdevice.name                2400A UDMA Four Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc05b
-+subdevice.name                2400A UDMA Four Channel DAC
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc064
-+subdevice.name                3010S Ultra3 Dual Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc065
-+subdevice.name                3010S Ultra3 Four Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa501
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc066
-+subdevice.name                3010S Fibre Channel
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa511
-+device.name           SmartRAID V Controller
-
- vendor.id             pci 0x1044
-&device.id             pci 0xa511
-&subvendor.id          pci 0x1044
-&subdevice.id          pci 0xc032
-+subdevice.name                ASR-2005S I2O Zero Channel
-
- vendor.id             pci 0x1045
-+vendor.name           OPTi Inc.
-
- vendor.id             pci 0x1045
-&device.id             pci 0xa0f8
-+device.name           82C750 [Vendetta] USB Controller
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc101
-+device.name           92C264
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc178
-+device.name           92C178
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc556
-+device.name           82X556 [Viper]
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc557
-+device.name           82C557 [Viper-M]
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc558
-+device.name           82C558 [Viper-M ISA+IDE]
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc567
-+device.name           82C750 [Vendetta], device 0
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc568
-+device.name           82C750 [Vendetta], device 1
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc569
-+device.name           82C579 [Viper XPress+ Chipset]
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc621
-+device.name           82C621 [Viper-M/N+]
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc700
-+device.name           82C700 [FireStar]
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc701
-+device.name           82C701 [FireStar Plus]
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc814
-+device.name           82C814 [Firebridge 1]
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc822
-+device.name           82C822
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc824
-+device.name           82C824
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc825
-+device.name           82C825 [Firebridge 2]
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc832
-+device.name           82C832
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc861
-+device.name           82C861
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc895
-+device.name           82C895
-
- vendor.id             pci 0x1045
-&device.id             pci 0xc935
-+device.name           EV1935 ECTIVA MachOne PCIAudio
-
- vendor.id             pci 0x1045
-&device.id             pci 0xd568
-+device.name           82C825 [Firebridge 2]
-
- vendor.id             pci 0x1045
-&device.id             pci 0xd721
-+device.name           IDE [FireStar]
-
- vendor.id             pci 0x1046
-+vendor.name           IPC Corporation, Ltd.
-
- vendor.id             pci 0x1047
-+vendor.name           Genoa Systems Corp
-
- vendor.id             pci 0x1048
-+vendor.name           Elsa AG
-
- vendor.id             pci 0x1048
-&device.id             pci 0x0c60
-+device.name           Gladiac MX
-
- vendor.id             pci 0x1048
-&device.id             pci 0x0d22
-+device.name           Quadro4 900XGL [ELSA GLoria4 900XGL]
-
- vendor.id             pci 0x1048
-&device.id             pci 0x1000
-+device.name           QuickStep 1000
-
- vendor.id             pci 0x1048
-&device.id             pci 0x3000
-+device.name           QuickStep 3000
-
- vendor.id             pci 0x1048
-&device.id             pci 0x8901
-+device.name           Gloria XL
-
- vendor.id             pci 0x1049
-+vendor.name           Fountain Technologies, Inc.
-
- vendor.id             pci 0x104a
-+vendor.name           STMicroelectronics
-
- vendor.id             pci 0x104a
-&device.id             pci 0x0008
-+device.name           STG 2000X
-
- vendor.id             pci 0x104a
-&device.id             pci 0x0009
-+device.name           STG 1764X
-
- vendor.id             pci 0x104a
-&device.id             pci 0x0010
-+device.name           STG4000 [3D Prophet Kyro Series]
-
- vendor.id             pci 0x104a
-&device.id             pci 0x0209
-+device.name           STPC Consumer/Industrial North- and Southbridge
-
- vendor.id             pci 0x104a
-&device.id             pci 0x020a
-+device.name           STPC Atlas/ConsumerS/Consumer IIA Northbridge
-
- vendor.id             pci 0x104a
-&device.id             pci 0x0210
-+device.name           STPC Atlas ISA Bridge
-
- vendor.id             pci 0x104a
-&device.id             pci 0x021a
-+device.name           STPC Consumer S Southbridge
-
- vendor.id             pci 0x104a
-&device.id             pci 0x021b
-+device.name           STPC Consumer IIA Southbridge
-
- vendor.id             pci 0x104a
-&device.id             pci 0x0500
-+device.name           ST70137 [Unicorn] ADSL DMT Transceiver
-
- vendor.id             pci 0x104a
-&device.id             pci 0x0564
-+device.name           STPC Client Northbridge
-
- vendor.id             pci 0x104a
-&device.id             pci 0x0981
-+device.name           21x4x DEC-Tulip compatible 10/100 Ethernet
-
- vendor.id             pci 0x104a
-&device.id             pci 0x1746
-+device.name           STG 1764X
-
- vendor.id             pci 0x104a
-&device.id             pci 0x2774
-+device.name           21x4x DEC-Tulip compatible 10/100 Ethernet
-
- vendor.id             pci 0x104a
-&device.id             pci 0x3520
-+device.name           MPEG-II decoder card
-
- vendor.id             pci 0x104a
-&device.id             pci 0x55cc
-+device.name           STPC Client Southbridge
-
- vendor.id             pci 0x104b
-+vendor.name           BusLogic
-
- vendor.id             pci 0x104b
-&device.id             pci 0x0140
-+device.name           BT-946C (old) [multimaster  01]
-
- vendor.id             pci 0x104b
-&device.id             pci 0x1040
-+device.name           BT-946C (BA80C30) [MultiMaster 10]
-
- vendor.id             pci 0x104b
-&device.id             pci 0x8130
-+device.name           Flashpoint LT
-
- vendor.id             pci 0x104c
-+vendor.name           Texas Instruments
-
- vendor.id             pci 0x104c
-&device.id             pci 0x0500
-+device.name           100 MBit LAN Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0x0508
-+device.name           TMS380C2X Compressor Interface
-
- vendor.id             pci 0x104c
-&device.id             pci 0x1000
-+device.name           Eagle i/f AS
-
- vendor.id             pci 0x104c
-&device.id             pci 0x104c
-+device.name           PCI1510 PC card Cardbus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d04
-+device.name           TVP4010 [Permedia]
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-+device.name           TVP4020 [Permedia 2]
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1011
-&subdevice.id          pci 0x4d10
-+subdevice.name                Comet
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1040
-&subdevice.id          pci 0x000f
-+subdevice.name                AccelStar II
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1040
-&subdevice.id          pci 0x0011
-+subdevice.name                AccelStar II
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1048
-&subdevice.id          pci 0x0a31
-+subdevice.name                WINNER 2000
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1048
-&subdevice.id          pci 0x0a32
-+subdevice.name                GLoria Synergy
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1048
-&subdevice.id          pci 0x0a35
-+subdevice.name                GLoria Synergy
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x107d
-&subdevice.id          pci 0x2633
-+subdevice.name                WinFast 3D L2300
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0127
-+subdevice.name                FIRE GL 1000 PRO
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0136
-+subdevice.name                FIRE GL 1000 PRO
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0141
-+subdevice.name                FIRE GL 1000 PRO
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0146
-+subdevice.name                FIRE GL 1000 PRO
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0148
-+subdevice.name                FIRE GL 1000 PRO
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0149
-+subdevice.name                FIRE GL 1000 PRO
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0152
-+subdevice.name                FIRE GL 1000 PRO
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0154
-+subdevice.name                FIRE GL 1000 PRO
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0155
-+subdevice.name                FIRE GL 1000 PRO
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0156
-+subdevice.name                FIRE GL 1000 PRO
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0157
-+subdevice.name                FIRE GL 1000 PRO
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1097
-&subdevice.id          pci 0x3d01
-+subdevice.name                Jeronimo Pro
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x100f
-+subdevice.name                Graphics Blaster Extreme
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-&subvendor.id          pci 0x3d3d
-&subdevice.id          pci 0x0100
-+subdevice.name                Reference Permedia 2 3D
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8000
-+device.name           PCILynx/PCILynx2 IEEE 1394 Link Layer Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8000
-&subvendor.id          pci 0xe4bf
-&subdevice.id          pci 0x1010
-+subdevice.name                CF1-1-SNARE
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8000
-&subvendor.id          pci 0xe4bf
-&subdevice.id          pci 0x1020
-+subdevice.name                CF1-2-SNARE
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8009
-+device.name           FireWire Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8009
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8032
-+subdevice.name                8032 OHCI i.LINK (IEEE 1394) Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8017
-+device.name           PCI4410 FireWire Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8019
-+device.name           TSB12LV23 IEEE-1394 Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8019
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x000a
-+subdevice.name                Studio DV500-1394
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8019
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x000e
-+subdevice.name                Studio DV
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8019
-&subvendor.id          pci 0xe4bf
-&subdevice.id          pci 0x1010
-+subdevice.name                CF2-1-CYMBAL
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8020
-+device.name           TSB12LV26 IEEE-1394 Controller (Link)
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8021
-+device.name           TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated)
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8021
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80df
-+subdevice.name                Vaio PCG-FX403
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8021
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80e7
-+subdevice.name                VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8022
-+device.name           TSB43AB22 IEEE-1394a-2000 Controller (PHY/Link)
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8023
-+device.name           TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8024
-+device.name           TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link)
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8025
-+device.name           TSB82AA2 IEEE-1394b Link Layer Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8025
-&subvendor.id          pci 0x55aa
-&subdevice.id          pci 0x55aa
-+subdevice.name                FireWire 800 PCI Card
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8026
-+device.name           TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link)
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8027
-+device.name           PCI4451 IEEE-1394 Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8027
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00e6
-+subdevice.name                PCI4451 IEEE-1394 Controller (Dell Inspiron 8100)
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8029
-+device.name           PCI4510 IEEE-1394 Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8029
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0163
-+subdevice.name                Latitude D505
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8029
-&subvendor.id          pci 0x1071
-&subdevice.id          pci 0x8160
-+subdevice.name                MIM2900
-
- vendor.id             pci 0x104c
-&device.id             pci 0x802e
-+device.name           PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8201
-+device.name           PCI1620 Firmware Loading Function
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8400
-+device.name           ACX 100 22Mbps Wireless Interface
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8400
-&subvendor.id          pci 0x00fc
-&subdevice.id          pci 0x16ec
-+subdevice.name                U.S. Robotics 22 Mbps Wireless PC Card (model 2210)
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8400
-&subvendor.id          pci 0x00fd
-&subdevice.id          pci 0x16ec
-+subdevice.name                U.S. Robotics 22Mbps Wireless PCI Adapter (model 2216)
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8400
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x3b00
-+subdevice.name                DWL-650+ PC Card cardbus 22Mbs Wireless Adapter [AirPlus]
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8400
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x3b01
-+subdevice.name                DWL-520+ 22Mbps PCI Wireless Adapter
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8401
-+device.name           ACX 100 22Mbps Wireless Interface
-
- vendor.id             pci 0x104c
-&device.id             pci 0x9000
-+device.name           Wireless Interface (of unknown type)
-
- vendor.id             pci 0x104c
-&device.id             pci 0x9066
-+device.name           ACX 111 54Mbps Wireless Interface
-
- vendor.id             pci 0x104c
-&device.id             pci 0xa001
-+device.name           TDC1570
-
- vendor.id             pci 0x104c
-&device.id             pci 0xa100
-+device.name           TDC1561
-
- vendor.id             pci 0x104c
-&device.id             pci 0xa102
-+device.name           TNETA1575 HyperSAR Plus w/PCI Host i/f & UTOPIA i/f
-
- vendor.id             pci 0x104c
-&device.id             pci 0xa106
-+device.name           TMS320C6205 Fixed Point DSP
-
- vendor.id             pci 0x104c
-&device.id             pci 0xa106
-&subvendor.id          pci 0x175c
-&subdevice.id          pci 0x5000
-+subdevice.name                ASI50xx Audio Adapter
-
- vendor.id             pci 0x104c
-&device.id             pci 0xa106
-&subvendor.id          pci 0x175c
-&subdevice.id          pci 0x8700
-+subdevice.name                ASI87xx Radio Tuner card
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac10
-+device.name           PCI1050
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac11
-+device.name           PCI1053
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac12
-+device.name           PCI1130
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac13
-+device.name           PCI1031
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac15
-+device.name           PCI1131
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac16
-+device.name           PCI1250
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac16
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0092
-+subdevice.name                ThinkPad 600
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac17
-+device.name           PCI1220
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac18
-+device.name           PCI1260
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac19
-+device.name           PCI1221
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac1a
-+device.name           PCI1210
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac1b
-+device.name           PCI1450
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac1b
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb113
-+subdevice.name                Armada M700
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac1c
-+device.name           PCI1225
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac1c
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb121
-+subdevice.name                Armada E500
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac1c
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0088
-+subdevice.name                Dell  Computer Corporation  Latitude CPi A400XT
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac1d
-+device.name           PCI1251A
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac1e
-+device.name           PCI1211
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac1f
-+device.name           PCI1251B
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac20
-+device.name           TI 2030
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac21
-+device.name           PCI2031
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac22
-+device.name           PCI2032 PCI Docking Bridge
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac23
-+device.name           PCI2250 PCI-to-PCI Bridge
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac28
-+device.name           PCI2050 PCI-to-PCI Bridge
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac30
-+device.name           PCI1260 PC card Cardbus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac40
-+device.name           PCI4450 PC card Cardbus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac41
-+device.name           PCI4410 PC card Cardbus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac42
-+device.name           PCI4451 PC card Cardbus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac42
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00e6
-+subdevice.name                PCI4451 PC card CardBus Controller (Dell Inspiron 8100)
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac44
-+device.name           PCI4510 PC card Cardbus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac44
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0163
-+subdevice.name                Latitude D505
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac44
-&subvendor.id          pci 0x1071
-&subdevice.id          pci 0x8160
-+subdevice.name                MIM2000
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac46
-+device.name           PCI4520 PC card Cardbus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac50
-+device.name           PCI1410 PC card Cardbus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac51
-+device.name           PCI1420
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac51
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x023b
-+subdevice.name                ThinkPad T23 (2647-4MG)
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac51
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00b1
-+subdevice.name                Latitude C600
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac51
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x012a
-+subdevice.name                Latitude C640
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac51
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x80cd
-+subdevice.name                Versa Note VXi
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac51
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1095
-+subdevice.name                Lifebook C6155
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac51
-&subvendor.id          pci 0xe4bf
-&subdevice.id          pci 0x1000
-+subdevice.name                CP2-2-HIPHOP
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac52
-+device.name           PCI1451 PC card Cardbus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac53
-+device.name           PCI1421 PC card Cardbus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac54
-+device.name           PCI1620 PC Card Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac55
-+device.name           PCI1520 PC card Cardbus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac55
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0512
-+subdevice.name                ThinkPad T30/T40
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac56
-+device.name           PCI1510 PC card Cardbus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac56
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0528
-+subdevice.name                ThinkPad R40e (2684-HVG) Cardbus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac60
-+device.name           PCI2040 PCI to DSP Bridge Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac60
-&subvendor.id          pci 0x175c
-&subdevice.id          pci 0x5100
-+subdevice.name                ASI51xx Audio Adapter
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac60
-&subvendor.id          pci 0x175c
-&subdevice.id          pci 0x6100
-+subdevice.name                ASI61xx Audio Adapter
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac60
-&subvendor.id          pci 0x175c
-&subdevice.id          pci 0x6200
-+subdevice.name                ASI62xx Audio Adapter
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac8d
-+device.name           PCI 7620
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac8e
-+device.name           PCI7420 CardBus Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xac8f
-+device.name           PCI7420/PCI7620 Dual Socket CardBus and Smart Card Cont. w/ 1394a-2000 OHCI Two-Port  PHY/Link-Layer Cont. and SD/MS-Pro Sockets
-
- vendor.id             pci 0x104c
-&device.id             pci 0xfe00
-+device.name           FireWire Host Controller
-
- vendor.id             pci 0x104c
-&device.id             pci 0xfe03
-+device.name           12C01A FireWire Host Controller
-
- vendor.id             pci 0x104d
-+vendor.name           Sony Corporation
-
- vendor.id             pci 0x104d
-&device.id             pci 0x8009
-+device.name           CXD1947Q i.LINK Controller
-
- vendor.id             pci 0x104d
-&device.id             pci 0x8039
-+device.name           CXD3222 i.LINK Controller
-
- vendor.id             pci 0x104d
-&device.id             pci 0x8056
-+device.name           Rockwell HCF 56K modem
-
- vendor.id             pci 0x104d
-&device.id             pci 0x808a
-+device.name           Memory Stick Controller
-
- vendor.id             pci 0x104e
-+vendor.name           Oak Technology, Inc
-
- vendor.id             pci 0x104e
-&device.id             pci 0x0017
-+device.name           OTI-64017
-
- vendor.id             pci 0x104e
-&device.id             pci 0x0107
-+device.name           OTI-107 [Spitfire]
-
- vendor.id             pci 0x104e
-&device.id             pci 0x0109
-+device.name           Video Adapter
-
- vendor.id             pci 0x104e
-&device.id             pci 0x0111
-+device.name           OTI-64111 [Spitfire]
-
- vendor.id             pci 0x104e
-&device.id             pci 0x0217
-+device.name           OTI-64217
-
- vendor.id             pci 0x104e
-&device.id             pci 0x0317
-+device.name           OTI-64317
-
- vendor.id             pci 0x104f
-+vendor.name           Co-time Computer Ltd
-
- vendor.id             pci 0x1050
-+vendor.name           Winbond Electronics Corp
-
- vendor.id             pci 0x1050
-&device.id             pci 0x0000
-+device.name           NE2000
-
- vendor.id             pci 0x1050
-&device.id             pci 0x0001
-+device.name           W83769F
-
- vendor.id             pci 0x1050
-&device.id             pci 0x0105
-+device.name           W82C105
-
- vendor.id             pci 0x1050
-&device.id             pci 0x0840
-+device.name           W89C840
-
- vendor.id             pci 0x1050
-&device.id             pci 0x0840
-&subvendor.id          pci 0x1050
-&subdevice.id          pci 0x0001
-+subdevice.name                W89C840 Ethernet Adapter
-
- vendor.id             pci 0x1050
-&device.id             pci 0x0840
-&subvendor.id          pci 0x1050
-&subdevice.id          pci 0x0840
-+subdevice.name                W89C840 Ethernet Adapter
-
- vendor.id             pci 0x1050
-&device.id             pci 0x0940
-+device.name           W89C940
-
- vendor.id             pci 0x1050
-&device.id             pci 0x5a5a
-+device.name           W89C940F
-
- vendor.id             pci 0x1050
-&device.id             pci 0x6692
-+device.name           W6692
-
- vendor.id             pci 0x1050
-&device.id             pci 0x9921
-+device.name           W99200F MPEG-1 Video Encoder
-
- vendor.id             pci 0x1050
-&device.id             pci 0x9922
-+device.name           W99200F/W9922PF MPEG-1/2 Video Encoder
-
- vendor.id             pci 0x1050
-&device.id             pci 0x9970
-+device.name           W9970CF
-
- vendor.id             pci 0x1051
-+vendor.name           Anigma, Inc.
-
- vendor.id             pci 0x1052
-+vendor.name           ?Young Micro Systems
-
- vendor.id             pci 0x1053
-+vendor.name           Young Micro Systems
-
- vendor.id             pci 0x1054
-+vendor.name           Hitachi, Ltd
-
- vendor.id             pci 0x1055
-+vendor.name           Efar Microsystems
-
- vendor.id             pci 0x1055
-&device.id             pci 0x9130
-+device.name           SLC90E66 [Victory66] IDE
-
- vendor.id             pci 0x1055
-&device.id             pci 0x9460
-+device.name           SLC90E66 [Victory66] ISA
-
- vendor.id             pci 0x1055
-&device.id             pci 0x9462
-+device.name           SLC90E66 [Victory66] USB
-
- vendor.id             pci 0x1055
-&device.id             pci 0x9463
-+device.name           SLC90E66 [Victory66] ACPI
-
- vendor.id             pci 0x1056
-+vendor.name           ICL
-
- vendor.id             pci 0x1057
-+vendor.name           Motorola
-
- vendor.id             pci 0x1057
-&device.id             pci 0x0001
-+device.name           MPC105 [Eagle]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x0002
-+device.name           MPC106 [Grackle]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x0003
-+device.name           MPC8240 [Kahlua]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x0004
-+device.name           MPC107
-
- vendor.id             pci 0x1057
-&device.id             pci 0x0006
-+device.name           MPC8245 [Unity]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x0008
-+device.name           MPC8540
-
- vendor.id             pci 0x1057
-&device.id             pci 0x0009
-+device.name           MPC8560
-
- vendor.id             pci 0x1057
-&device.id             pci 0x0100
-+device.name           MC145575 [HFC-PCI]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x0431
-+device.name           KTI829c 100VG
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-+device.name           DSP56301 Digital Signal Processor
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0x14fb
-&subdevice.id          pci 0x0101
-+subdevice.name                Transas Radar Imitator Board [RIM]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0x14fb
-&subdevice.id          pci 0x0102
-+subdevice.name                Transas Radar Imitator Board [RIM-2]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0x14fb
-&subdevice.id          pci 0x0202
-+subdevice.name                Transas Radar Integrator Board [RIB-2]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0x14fb
-&subdevice.id          pci 0x0611
-+subdevice.name                1 channel CAN bus Controller [CanPci-1]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0x14fb
-&subdevice.id          pci 0x0612
-+subdevice.name                2 channels CAN bus Controller [CanPci-2]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0x14fb
-&subdevice.id          pci 0x0613
-+subdevice.name                3 channels CAN bus Controller [CanPci-3]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0x14fb
-&subdevice.id          pci 0x0614
-+subdevice.name                4 channels CAN bus Controller [CanPci-4]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0x14fb
-&subdevice.id          pci 0x0621
-+subdevice.name                1 channel CAN bus Controller [CanPci2-1]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0x14fb
-&subdevice.id          pci 0x0622
-+subdevice.name                2 channels CAN bus Controller [CanPci2-2]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0x14fb
-&subdevice.id          pci 0x0810
-+subdevice.name                Transas VTS Radar Integrator Board [RIB-4]
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0x175c
-&subdevice.id          pci 0x4200
-+subdevice.name                ASI4215 Audio Adapter
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0x175c
-&subdevice.id          pci 0x4300
-+subdevice.name                ASI43xx Audio Adapter
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0x175c
-&subdevice.id          pci 0x4400
-+subdevice.name                ASI4401 Audio Adapter
-
- vendor.id             pci 0x1057
-&device.id             pci 0x1801
-&subvendor.id          pci 0xecc0
-&subdevice.id          pci 0x0030
-+subdevice.name                Layla
-
- vendor.id             pci 0x1057
-&device.id             pci 0x18c0
-+device.name           MPC8265A/MPC8266
-
- vendor.id             pci 0x1057
-&device.id             pci 0x18c1
-+device.name           MPC8271/MPC8272
-
- vendor.id             pci 0x1057
-&device.id             pci 0x4801
-+device.name           Raven
-
- vendor.id             pci 0x1057
-&device.id             pci 0x4802
-+device.name           Falcon
-
- vendor.id             pci 0x1057
-&device.id             pci 0x4803
-+device.name           Hawk
-
- vendor.id             pci 0x1057
-&device.id             pci 0x4806
-+device.name           CPX8216
-
- vendor.id             pci 0x1057
-&device.id             pci 0x4d68
-+device.name           20268
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-+device.name           SM56 PCI Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x1057
-&subdevice.id          pci 0x0300
-+subdevice.name                SM56 PCI Speakerphone Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x1057
-&subdevice.id          pci 0x0301
-+subdevice.name                SM56 PCI Voice Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x1057
-&subdevice.id          pci 0x0302
-+subdevice.name                SM56 PCI Fax Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x1057
-&subdevice.id          pci 0x5600
-+subdevice.name                SM56 PCI Voice modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x13d2
-&subdevice.id          pci 0x0300
-+subdevice.name                SM56 PCI Speakerphone Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x13d2
-&subdevice.id          pci 0x0301
-+subdevice.name                SM56 PCI Voice modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x13d2
-&subdevice.id          pci 0x0302
-+subdevice.name                SM56 PCI Fax Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x1436
-&subdevice.id          pci 0x0300
-+subdevice.name                SM56 PCI Speakerphone Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x1436
-&subdevice.id          pci 0x0301
-+subdevice.name                SM56 PCI Voice modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x1436
-&subdevice.id          pci 0x0302
-+subdevice.name                SM56 PCI Fax Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x100c
-+subdevice.name                SM56 PCI Fax Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x1494
-&subdevice.id          pci 0x0300
-+subdevice.name                SM56 PCI Speakerphone Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x1494
-&subdevice.id          pci 0x0301
-+subdevice.name                SM56 PCI Voice modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x14c8
-&subdevice.id          pci 0x0300
-+subdevice.name                SM56 PCI Speakerphone Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x14c8
-&subdevice.id          pci 0x0302
-+subdevice.name                SM56 PCI Fax Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x1668
-&subdevice.id          pci 0x0300
-+subdevice.name                SM56 PCI Speakerphone Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5600
-&subvendor.id          pci 0x1668
-&subdevice.id          pci 0x0302
-+subdevice.name                SM56 PCI Fax Modem
-
- vendor.id             pci 0x1057
-&device.id             pci 0x5803
-+device.name           MPC5200
-
- vendor.id             pci 0x1057
-&device.id             pci 0x6400
-+device.name           MPC190 Security Processor (S1 family, encryption)
-
- vendor.id             pci 0x1057
-&device.id             pci 0x6405
-+device.name           MPC184 Security Processor (S1 family)
-
- vendor.id             pci 0x1058
-+vendor.name           Electronics & Telecommunications RSH
-
- vendor.id             pci 0x1059
-+vendor.name           Teknor Industrial Computers Inc
-
- vendor.id             pci 0x105a
-+vendor.name           Promise Technology, Inc.
-
- vendor.id             pci 0x105a
-&device.id             pci 0x0d30
-+device.name           PDC20265 (FastTrak100 Lite/Ultra100)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x0d30
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x4d33
-+subdevice.name                Ultra100
-
- vendor.id             pci 0x105a
-&device.id             pci 0x0d38
-+device.name           20263
-
- vendor.id             pci 0x105a
-&device.id             pci 0x0d38
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x4d39
-+subdevice.name                Fasttrak66
-
- vendor.id             pci 0x105a
-&device.id             pci 0x1275
-+device.name           20275
-
- vendor.id             pci 0x105a
-&device.id             pci 0x3318
-+device.name           PDC20318 (SATA150 TX4)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x3319
-+device.name           PDC20319 (FastTrak S150 TX4)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x3319
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3427
-+subdevice.name                S875WP1-E mainboard
-
- vendor.id             pci 0x105a
-&device.id             pci 0x3371
-+device.name           PDC20371 (FastTrak S150 TX2plus)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x3373
-+device.name           PDC20378 (FastTrak 378/SATA 378)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x3373
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80f5
-+subdevice.name                PC-DL Deluxe motherboard
-
- vendor.id             pci 0x105a
-&device.id             pci 0x3373
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x702e
-+subdevice.name                K8T NEO FIS2R motherboard
-
- vendor.id             pci 0x105a
-&device.id             pci 0x3375
-+device.name           PDC20375 (SATA150 TX2plus)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x3376
-+device.name           PDC20376 (FastTrak 376)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x3376
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x809e
-+subdevice.name                A7V8X motherboard
-
- vendor.id             pci 0x105a
-&device.id             pci 0x3574
-+device.name           PDC20579 SATAII 150 IDE Controller
-
- vendor.id             pci 0x105a
-&device.id             pci 0x3d18
-+device.name           PDC20518 SATAII 150 IDE Controller
-
- vendor.id             pci 0x105a
-&device.id             pci 0x4d30
-+device.name           PDC20267 (FastTrak100/Ultra100)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x4d30
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x4d33
-+subdevice.name                Ultra100
-
- vendor.id             pci 0x105a
-&device.id             pci 0x4d30
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x4d39
-+subdevice.name                FastTrak100
-
- vendor.id             pci 0x105a
-&device.id             pci 0x4d33
-+device.name           20246
-
- vendor.id             pci 0x105a
-&device.id             pci 0x4d33
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x4d33
-+subdevice.name                20246 IDE Controller
-
- vendor.id             pci 0x105a
-&device.id             pci 0x4d38
-+device.name           PDC20262 (FastTrak66/Ultra66)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x4d38
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x4d30
-+subdevice.name                Ultra Device on SuperTrak
-
- vendor.id             pci 0x105a
-&device.id             pci 0x4d38
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x4d33
-+subdevice.name                Ultra66
-
- vendor.id             pci 0x105a
-&device.id             pci 0x4d38
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x4d39
-+subdevice.name                FastTrak66
-
- vendor.id             pci 0x105a
-&device.id             pci 0x4d68
-+device.name           PDC20268 (Ultra100 TX2)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x4d68
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x4d68
-+subdevice.name                Ultra100TX2
-
- vendor.id             pci 0x105a
-&device.id             pci 0x4d69
-+device.name           20269
-
- vendor.id             pci 0x105a
-&device.id             pci 0x4d69
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x4d68
-+subdevice.name                Ultra133TX2
-
- vendor.id             pci 0x105a
-&device.id             pci 0x5275
-+device.name           PDC20276 (MBFastTrak133 Lite)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x5275
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x0275
-+subdevice.name                SuperTrak SX6000 IDE
-
- vendor.id             pci 0x105a
-&device.id             pci 0x5275
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x1275
-+subdevice.name                MBFastTrak133 Lite (tm) Controller (RAID mode)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x5275
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0xb001
-+subdevice.name                MBUltra 133
-
- vendor.id             pci 0x105a
-&device.id             pci 0x5300
-+device.name           DC5300
-
- vendor.id             pci 0x105a
-&device.id             pci 0x6268
-+device.name           PDC20270 (FastTrak100 LP/TX2/TX4)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x6268
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x4d68
-+subdevice.name                FastTrak100 TX2
-
- vendor.id             pci 0x105a
-&device.id             pci 0x6269
-+device.name           PDC20271 (FastTrak TX2000)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x6269
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x6269
-+subdevice.name                FastTrak TX2/TX2000
-
- vendor.id             pci 0x105a
-&device.id             pci 0x6621
-+device.name           PDC20621 (FastTrak S150 SX4/FastTrak SX4000 lite)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x6622
-+device.name           PDC20621 [SATA150 SX4] 4 Channel IDE RAID Controller
-
- vendor.id             pci 0x105a
-&device.id             pci 0x6626
-+device.name           PDC20618 (Ultra 618)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x6629
-+device.name           PDC20619 (FastTrak TX4000)
-
- vendor.id             pci 0x105a
-&device.id             pci 0x7275
-+device.name           PDC20277 (SBFastTrak133 Lite)
-
- vendor.id             pci 0x105b
-+vendor.name           Foxconn International, Inc.
-
- vendor.id             pci 0x105c
-+vendor.name           Wipro Infotech Limited
-
- vendor.id             pci 0x105d
-+vendor.name           Number 9 Computer Company
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2309
-+device.name           Imagine 128
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-+device.name           Imagine 128-II
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x0000
-+subdevice.name                Imagine 128 series 2 4Mb VRAM
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x0001
-+subdevice.name                Imagine 128 series 2 4Mb VRAM
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x0002
-+subdevice.name                Imagine 128 series 2 4Mb VRAM
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x0003
-+subdevice.name                Imagine 128 series 2 4Mb VRAM
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x0004
-+subdevice.name                Imagine 128 series 2 4Mb VRAM
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x0005
-+subdevice.name                Imagine 128 series 2 4Mb VRAM
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x0006
-+subdevice.name                Imagine 128 series 2 4Mb VRAM
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x0007
-+subdevice.name                Imagine 128 series 2 4Mb VRAM
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x0008
-+subdevice.name                Imagine 128 series 2e 4Mb DRAM
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x0009
-+subdevice.name                Imagine 128 series 2e 4Mb DRAM
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x000a
-+subdevice.name                Imagine 128 series 2 8Mb VRAM
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x000b
-+subdevice.name                Imagine 128 series 2 8Mb H-VRAM
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x11a4
-&subdevice.id          pci 0x000a
-+subdevice.name                Barco Metheus 5 Megapixel
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x0000
-+subdevice.name                Barco Metheus 5 Megapixel
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x0004
-+subdevice.name                Barco Metheus 5 Megapixel
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x0005
-+subdevice.name                Barco Metheus 5 Megapixel
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x0006
-+subdevice.name                Barco Metheus 5 Megapixel
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x0008
-+subdevice.name                Barco Metheus 5 Megapixel
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x0009
-+subdevice.name                Barco Metheus 5 Megapixel
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x000a
-+subdevice.name                Barco Metheus 5 Megapixel
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x000c
-+subdevice.name                Barco Metheus 5 Megapixel
-
- vendor.id             pci 0x105d
-&device.id             pci 0x493d
-+device.name           Imagine 128 T2R [Ticket to Ride]
-
- vendor.id             pci 0x105d
-&device.id             pci 0x493d
-&subvendor.id          pci 0x11a4
-&subdevice.id          pci 0x000a
-+subdevice.name                Barco Metheus 5 Megapixel, Dual Head
-
- vendor.id             pci 0x105d
-&device.id             pci 0x493d
-&subvendor.id          pci 0x11a4
-&subdevice.id          pci 0x000b
-+subdevice.name                Barco Metheus 5 Megapixel, Dual Head
-
- vendor.id             pci 0x105d
-&device.id             pci 0x493d
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x0002
-+subdevice.name                Barco Metheus 4 Megapixel, Dual Head
-
- vendor.id             pci 0x105d
-&device.id             pci 0x493d
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x0003
-+subdevice.name                Barco Metheus 5 Megapixel, Dual Head
-
- vendor.id             pci 0x105d
-&device.id             pci 0x493d
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x0007
-+subdevice.name                Barco Metheus 5 Megapixel, Dual Head
-
- vendor.id             pci 0x105d
-&device.id             pci 0x493d
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x0008
-+subdevice.name                Barco Metheus 5 Megapixel, Dual Head
-
- vendor.id             pci 0x105d
-&device.id             pci 0x493d
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x0009
-+subdevice.name                Barco Metheus 5 Megapixel, Dual Head
-
- vendor.id             pci 0x105d
-&device.id             pci 0x493d
-&subvendor.id          pci 0x13cc
-&subdevice.id          pci 0x000a
-+subdevice.name                Barco Metheus 5 Megapixel, Dual Head
-
- vendor.id             pci 0x105d
-&device.id             pci 0x5348
-+device.name           Revolution 4
-
- vendor.id             pci 0x105d
-&device.id             pci 0x5348
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x0037
-+subdevice.name                Revolution IV-FP AGP (For SGI 1600SW)
-
- vendor.id             pci 0x105e
-+vendor.name           Vtech Computers Ltd
-
- vendor.id             pci 0x105f
-+vendor.name           Infotronic America Inc
-
- vendor.id             pci 0x1060
-+vendor.name           United Microelectronics [UMC]
-
- vendor.id             pci 0x1060
-&device.id             pci 0x0001
-+device.name           UM82C881
-
- vendor.id             pci 0x1060
-&device.id             pci 0x0002
-+device.name           UM82C886
-
- vendor.id             pci 0x1060
-&device.id             pci 0x0101
-+device.name           UM8673F
-
- vendor.id             pci 0x1060
-&device.id             pci 0x0881
-+device.name           UM8881
-
- vendor.id             pci 0x1060
-&device.id             pci 0x0886
-+device.name           UM8886F
-
- vendor.id             pci 0x1060
-&device.id             pci 0x0891
-+device.name           UM8891A
-
- vendor.id             pci 0x1060
-&device.id             pci 0x1001
-+device.name           UM886A
-
- vendor.id             pci 0x1060
-&device.id             pci 0x673a
-+device.name           UM8886BF
-
- vendor.id             pci 0x1060
-&device.id             pci 0x673b
-+device.name           EIDE Master/DMA
-
- vendor.id             pci 0x1060
-&device.id             pci 0x8710
-+device.name           UM8710
-
- vendor.id             pci 0x1060
-&device.id             pci 0x886a
-+device.name           UM8886A
-
- vendor.id             pci 0x1060
-&device.id             pci 0x8881
-+device.name           UM8881F
-
- vendor.id             pci 0x1060
-&device.id             pci 0x8886
-+device.name           UM8886F
-
- vendor.id             pci 0x1060
-&device.id             pci 0x888a
-+device.name           UM8886A
-
- vendor.id             pci 0x1060
-&device.id             pci 0x8891
-+device.name           UM8891A
-
- vendor.id             pci 0x1060
-&device.id             pci 0x9017
-+device.name           UM9017F
-
- vendor.id             pci 0x1060
-&device.id             pci 0x9018
-+device.name           UM9018
-
- vendor.id             pci 0x1060
-&device.id             pci 0x9026
-+device.name           UM9026
-
- vendor.id             pci 0x1060
-&device.id             pci 0xe881
-+device.name           UM8881N
-
- vendor.id             pci 0x1060
-&device.id             pci 0xe886
-+device.name           UM8886N
-
- vendor.id             pci 0x1060
-&device.id             pci 0xe88a
-+device.name           UM8886N
-
- vendor.id             pci 0x1060
-&device.id             pci 0xe891
-+device.name           UM8891N
-
- vendor.id             pci 0x1061
-+vendor.name           I.I.T.
-
- vendor.id             pci 0x1061
-&device.id             pci 0x0001
-+device.name           AGX016
-
- vendor.id             pci 0x1061
-&device.id             pci 0x0002
-+device.name           IIT3204/3501
-
- vendor.id             pci 0x1062
-+vendor.name           Maspar Computer Corp
-
- vendor.id             pci 0x1063
-+vendor.name           Ocean Office Automation
-
- vendor.id             pci 0x1064
-+vendor.name           Alcatel
-
- vendor.id             pci 0x1065
-+vendor.name           Texas Microsystems
-
- vendor.id             pci 0x1066
-+vendor.name           PicoPower Technology
-
- vendor.id             pci 0x1066
-&device.id             pci 0x0000
-+device.name           PT80C826
-
- vendor.id             pci 0x1066
-&device.id             pci 0x0001
-+device.name           PT86C521 [Vesuvius v1] Host Bridge
-
- vendor.id             pci 0x1066
-&device.id             pci 0x0002
-+device.name           PT86C523 [Vesuvius v3] PCI-ISA Bridge Master
-
- vendor.id             pci 0x1066
-&device.id             pci 0x0003
-+device.name           PT86C524 [Nile] PCI-to-PCI Bridge
-
- vendor.id             pci 0x1066
-&device.id             pci 0x0004
-+device.name           PT86C525 [Nile-II] PCI-to-PCI Bridge
-
- vendor.id             pci 0x1066
-&device.id             pci 0x0005
-+device.name           National PC87550 System Controller
-
- vendor.id             pci 0x1066
-&device.id             pci 0x8002
-+device.name           PT86C523 [Vesuvius v3] PCI-ISA Bridge Slave
-
- vendor.id             pci 0x1067
-+vendor.name           Mitsubishi Electric
-
- vendor.id             pci 0x1067
-&device.id             pci 0x0301
-+device.name           AccelGraphics AccelECLIPSE
-
- vendor.id             pci 0x1067
-&device.id             pci 0x0304
-+device.name           AccelGALAXY A2100 [OEM Evans & Sutherland]
-
- vendor.id             pci 0x1067
-&device.id             pci 0x0308
-+device.name           Tornado 3000 [OEM Evans & Sutherland]
-
- vendor.id             pci 0x1067
-&device.id             pci 0x1002
-+device.name           VG500 [VolumePro Volume Rendering Accelerator]
-
- vendor.id             pci 0x1068
-+vendor.name           Diversified Technology
-
- vendor.id             pci 0x1069
-+vendor.name           Mylex Corporation
-
- vendor.id             pci 0x1069
-&device.id             pci 0x0001
-+device.name           DAC960P
-
- vendor.id             pci 0x1069
-&device.id             pci 0x0002
-+device.name           DAC960PD
-
- vendor.id             pci 0x1069
-&device.id             pci 0x0010
-+device.name           DAC960PG
-
- vendor.id             pci 0x1069
-&device.id             pci 0x0020
-+device.name           DAC960LA
-
- vendor.id             pci 0x1069
-&device.id             pci 0x0050
-+device.name           AcceleRAID 352/170/160 support Device
-
- vendor.id             pci 0x1069
-&device.id             pci 0xb166
-+device.name           Gemstone chipset SCSI controller
-
- vendor.id             pci 0x1069
-&device.id             pci 0xb166
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0242
-+subdevice.name                iSeries 2872 DASD IOA
-
- vendor.id             pci 0x1069
-&device.id             pci 0xb166
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0266
-+subdevice.name                Dual Channel PCI-X U320 SCSI Adapter
-
- vendor.id             pci 0x1069
-&device.id             pci 0xb166
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0278
-+subdevice.name                Dual Channel PCI-X U320 SCSI RAID Adapter
-
- vendor.id             pci 0x1069
-&device.id             pci 0xba55
-+device.name           eXtremeRAID 1100 support Device
-
- vendor.id             pci 0x1069
-&device.id             pci 0xba56
-+device.name           eXtremeRAID 2000/3000 support Device
-
- vendor.id             pci 0x106a
-+vendor.name           Aten Research Inc
-
- vendor.id             pci 0x106b
-+vendor.name           Apple Computer Inc.
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0001
-+device.name           Bandit PowerPC host bridge
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0002
-+device.name           Grand Central I/O
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0003
-+device.name           Control Video
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0004
-+device.name           PlanB Video-In
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0007
-+device.name           O'Hare I/O
-
- vendor.id             pci 0x106b
-&device.id             pci 0x000e
-+device.name           Hydra Mac I/O
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0010
-+device.name           Heathrow Mac I/O
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0017
-+device.name           Paddington Mac I/O
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0018
-+device.name           UniNorth FireWire
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0019
-+device.name           KeyLargo USB
-
- vendor.id             pci 0x106b
-&device.id             pci 0x001e
-+device.name           UniNorth Internal PCI
-
- vendor.id             pci 0x106b
-&device.id             pci 0x001f
-+device.name           UniNorth PCI
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0020
-+device.name           UniNorth AGP
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0021
-+device.name           UniNorth GMAC (Sun GEM)
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0022
-+device.name           KeyLargo Mac I/O
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0024
-+device.name           UniNorth/Pangea GMAC (Sun GEM)
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0025
-+device.name           KeyLargo/Pangea Mac I/O
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0026
-+device.name           KeyLargo/Pangea USB
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0027
-+device.name           UniNorth/Pangea AGP
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0028
-+device.name           UniNorth/Pangea PCI
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0029
-+device.name           UniNorth/Pangea Internal PCI
-
- vendor.id             pci 0x106b
-&device.id             pci 0x002d
-+device.name           UniNorth 1.5 AGP
-
- vendor.id             pci 0x106b
-&device.id             pci 0x002e
-+device.name           UniNorth 1.5 PCI
-
- vendor.id             pci 0x106b
-&device.id             pci 0x002f
-+device.name           UniNorth 1.5 Internal PCI
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0030
-+device.name           UniNorth/Pangea FireWire
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0031
-+device.name           UniNorth 2 FireWire
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0032
-+device.name           UniNorth 2 GMAC (Sun GEM)
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0033
-+device.name           UniNorth 2 ATA/100
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0034
-+device.name           UniNorth 2 AGP
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0035
-+device.name           UniNorth 2 PCI
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0036
-+device.name           UniNorth 2 Internal PCI
-
- vendor.id             pci 0x106b
-&device.id             pci 0x003b
-+device.name           UniNorth/Intrepid ATA/100
-
- vendor.id             pci 0x106b
-&device.id             pci 0x003e
-+device.name           KeyLargo/Intrepid Mac I/O
-
- vendor.id             pci 0x106b
-&device.id             pci 0x003f
-+device.name           KeyLargo/Intrepid USB
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0040
-+device.name           K2 KeyLargo USB
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0041
-+device.name           K2 KeyLargo Mac/IO
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0042
-+device.name           K2 FireWire
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0043
-+device.name           K2 ATA/100
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0045
-+device.name           K2 HT-PCI Bridge
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0046
-+device.name           K2 HT-PCI Bridge
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0047
-+device.name           K2 HT-PCI Bridge
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0048
-+device.name           K2 HT-PCI Bridge
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0049
-+device.name           K2 HT-PCI Bridge
-
- vendor.id             pci 0x106b
-&device.id             pci 0x004b
-+device.name           U3 AGP
-
- vendor.id             pci 0x106b
-&device.id             pci 0x004c
-+device.name           K2 GMAC (Sun GEM)
-
- vendor.id             pci 0x106b
-&device.id             pci 0x004f
-+device.name           Shasta Mac I/O
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0050
-+device.name           Shasta IDE
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0051
-+device.name           Shasta (Sun GEM)
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0052
-+device.name           Shasta Firewire
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0053
-+device.name           Shasta PCI Bridge
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0054
-+device.name           Shasta PCI Bridge
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0055
-+device.name           Shasta PCI Bridge
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0058
-+device.name           U3L AGP Bridge
-
- vendor.id             pci 0x106b
-&device.id             pci 0x1645
-+device.name           Tigon3 Gigabit Ethernet NIC (BCM5701)
-
- vendor.id             pci 0x106c
-+vendor.name           Hynix Semiconductor
-
- vendor.id             pci 0x106c
-&device.id             pci 0x8801
-+device.name           Dual Pentium ISA/PCI Motherboard
-
- vendor.id             pci 0x106c
-&device.id             pci 0x8802
-+device.name           PowerPC ISA/PCI Motherboard
-
- vendor.id             pci 0x106c
-&device.id             pci 0x8803
-+device.name           Dual Window Graphics Accelerator
-
- vendor.id             pci 0x106c
-&device.id             pci 0x8804
-+device.name           LAN Controller
-
- vendor.id             pci 0x106c
-&device.id             pci 0x8805
-+device.name           100-BaseT LAN
-
- vendor.id             pci 0x106d
-+vendor.name           Sequent Computer Systems
-
- vendor.id             pci 0x106e
-+vendor.name           DFI, Inc
-
- vendor.id             pci 0x106f
-+vendor.name           City Gate Development Ltd
-
- vendor.id             pci 0x1070
-+vendor.name           Daewoo Telecom Ltd
-
- vendor.id             pci 0x1071
-+vendor.name           Mitac
-
- vendor.id             pci 0x1071
-&device.id             pci 0x8160
-+device.name           Mitac 8060B Mobile Platform
-
- vendor.id             pci 0x1072
-+vendor.name           GIT Co Ltd
-
- vendor.id             pci 0x1073
-+vendor.name           Yamaha Corporation
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0001
-+device.name           3D GUI Accelerator
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0002
-+device.name           YGV615 [RPA3 3D-Graphics Controller]
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0003
-+device.name           YMF-740
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0004
-+device.name           YMF-724
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1073
-&subdevice.id          pci 0x0004
-+subdevice.name                YMF724-Based PCI Audio Adapter
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0005
-+device.name           DS1 Audio
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0005
-&subvendor.id          pci 0x1073
-&subdevice.id          pci 0x0005
-+subdevice.name                DS-XG PCI Audio CODEC
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0006
-+device.name           DS1 Audio
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0008
-+device.name           DS1 Audio
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0008
-&subvendor.id          pci 0x1073
-&subdevice.id          pci 0x0008
-+subdevice.name                DS-XG PCI Audio CODEC
-
- vendor.id             pci 0x1073
-&device.id             pci 0x000a
-+device.name           DS1L Audio
-
- vendor.id             pci 0x1073
-&device.id             pci 0x000a
-&subvendor.id          pci 0x1073
-&subdevice.id          pci 0x0004
-+subdevice.name                DS-XG PCI Audio CODEC
-
- vendor.id             pci 0x1073
-&device.id             pci 0x000a
-&subvendor.id          pci 0x1073
-&subdevice.id          pci 0x000a
-+subdevice.name                DS-XG PCI Audio CODEC
-
- vendor.id             pci 0x1073
-&device.id             pci 0x000c
-+device.name           YMF-740C [DS-1L Audio Controller]
-
- vendor.id             pci 0x1073
-&device.id             pci 0x000c
-&subvendor.id          pci 0x107a
-&subdevice.id          pci 0x000c
-+subdevice.name                DS-XG PCI Audio CODEC
-
- vendor.id             pci 0x1073
-&device.id             pci 0x000d
-+device.name           YMF-724F [DS-1 Audio Controller]
-
- vendor.id             pci 0x1073
-&device.id             pci 0x000d
-&subvendor.id          pci 0x1073
-&subdevice.id          pci 0x000d
-+subdevice.name                DS-XG PCI Audio CODEC
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0010
-+device.name           YMF-744B [DS-1S Audio Controller]
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0010
-&subvendor.id          pci 0x1073
-&subdevice.id          pci 0x0006
-+subdevice.name                DS-XG PCI Audio CODEC
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0010
-&subvendor.id          pci 0x1073
-&subdevice.id          pci 0x0010
-+subdevice.name                DS-XG PCI Audio CODEC
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0012
-+device.name           YMF-754 [DS-1E Audio Controller]
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0012
-&subvendor.id          pci 0x1073
-&subdevice.id          pci 0x0012
-+subdevice.name                DS-XG PCI Audio Codec
-
- vendor.id             pci 0x1073
-&device.id             pci 0x0020
-+device.name           DS-1 Audio
-
- vendor.id             pci 0x1073
-&device.id             pci 0x2000
-+device.name           DS2416 Digital Mixing Card
-
- vendor.id             pci 0x1073
-&device.id             pci 0x2000
-&subvendor.id          pci 0x1073
-&subdevice.id          pci 0x2000
-+subdevice.name                DS2416 Digital Mixing Card
-
- vendor.id             pci 0x1074
-+vendor.name           NexGen Microsystems
-
- vendor.id             pci 0x1074
-&device.id             pci 0x4e78
-+device.name           82c500/1
-
- vendor.id             pci 0x1075
-+vendor.name           Advanced Integrations Research
-
- vendor.id             pci 0x1076
-+vendor.name           Chaintech Computer Co. Ltd
-
- vendor.id             pci 0x1077
-+vendor.name           QLogic Corp.
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1016
-+device.name           ISP10160 Single Channel Ultra3 SCSI Processor
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1020
-+device.name           ISP1020 Fast-wide SCSI
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1022
-+device.name           ISP1022 Fast-wide SCSI
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1080
-+device.name           ISP1080 SCSI Host Adapter
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1216
-+device.name           ISP12160 Dual Channel Ultra3 SCSI Processor
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1216
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x8471
-+subdevice.name                QLA12160 on AMI MegaRAID
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1216
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x8493
-+subdevice.name                QLA12160 on AMI MegaRAID
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1240
-+device.name           ISP1240 SCSI Host Adapter
-
- vendor.id             pci 0x1077
-&device.id             pci 0x1280
-+device.name           ISP1280 SCSI Host Adapter
-
- vendor.id             pci 0x1077
-&device.id             pci 0x2020
-+device.name           ISP2020A Fast!SCSI Basic Adapter
-
- vendor.id             pci 0x1077
-&device.id             pci 0x2100
-+device.name           QLA2100 64-bit Fibre Channel Adapter
-
- vendor.id             pci 0x1077
-&device.id             pci 0x2100
-&subvendor.id          pci 0x1077
-&subdevice.id          pci 0x0001
-+subdevice.name                QLA2100 64-bit Fibre Channel Adapter
-
- vendor.id             pci 0x1077
-&device.id             pci 0x2200
-+device.name           QLA2200 64-bit Fibre Channel Adapter
-
- vendor.id             pci 0x1077
-&device.id             pci 0x2200
-&subvendor.id          pci 0x1077
-&subdevice.id          pci 0x0002
-+subdevice.name                QLA2200
-
- vendor.id             pci 0x1077
-&device.id             pci 0x2300
-+device.name           QLA2300 64-bit Fibre Channel Adapter
-
- vendor.id             pci 0x1077
-&device.id             pci 0x2312
-+device.name           QLA2312 Fibre Channel Adapter
-
- vendor.id             pci 0x1078
-+vendor.name           Cyrix Corporation
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0000
-+device.name           5510 [Grappa]
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0001
-+device.name           PCI Master
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0002
-+device.name           5520 [Cognac]
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0100
-+device.name           5530 Legacy [Kahlua]
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0101
-+device.name           5530 SMI [Kahlua]
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0102
-+device.name           5530 IDE [Kahlua]
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0103
-+device.name           5530 Audio [Kahlua]
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0104
-+device.name           5530 Video [Kahlua]
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0400
-+device.name           ZFMicro PCI Bridge
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0401
-+device.name           ZFMicro Chipset SMI
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0402
-+device.name           ZFMicro Chipset IDE
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0403
-+device.name           ZFMicro Expansion Bus
-
- vendor.id             pci 0x1079
-+vendor.name           I-Bus
-
- vendor.id             pci 0x107a
-+vendor.name           NetWorth
-
- vendor.id             pci 0x107b
-+vendor.name           Gateway 2000
-
- vendor.id             pci 0x107c
-+vendor.name           LG Electronics [Lucky Goldstar Co. Ltd]
-
- vendor.id             pci 0x107d
-+vendor.name           LeadTek Research Inc.
-
- vendor.id             pci 0x107d
-&device.id             pci 0x0000
-+device.name           P86C850
-
- vendor.id             pci 0x107d
-&device.id             pci 0x2134
-+device.name           WinFast 3D S320 II
-
- vendor.id             pci 0x107d
-&device.id             pci 0x2971
-+device.name           [GeForce FX 5900] WinFast A350 TDH MyViVo
-
- vendor.id             pci 0x107e
-+vendor.name           Interphase Corporation
-
- vendor.id             pci 0x107e
-&device.id             pci 0x0001
-+device.name           5515 ATM Adapter [Flipper]
-
- vendor.id             pci 0x107e
-&device.id             pci 0x0002
-+device.name           100 VG AnyLan Controller
-
- vendor.id             pci 0x107e
-&device.id             pci 0x0004
-+device.name           5526 Fibre Channel Host Adapter
-
- vendor.id             pci 0x107e
-&device.id             pci 0x0005
-+device.name           x526 Fibre Channel Host Adapter
-
- vendor.id             pci 0x107e
-&device.id             pci 0x0008
-+device.name           5525/5575 ATM Adapter (155 Mbit) [Atlantic]
-
- vendor.id             pci 0x107e
-&device.id             pci 0x9003
-+device.name           5535-4P-BRI-ST
-
- vendor.id             pci 0x107e
-&device.id             pci 0x9007
-+device.name           5535-4P-BRI-U
-
- vendor.id             pci 0x107e
-&device.id             pci 0x9008
-+device.name           5535-1P-SR
-
- vendor.id             pci 0x107e
-&device.id             pci 0x900c
-+device.name           5535-1P-SR-ST
-
- vendor.id             pci 0x107e
-&device.id             pci 0x900e
-+device.name           5535-1P-SR-U
-
- vendor.id             pci 0x107e
-&device.id             pci 0x9011
-+device.name           5535-1P-PRI
-
- vendor.id             pci 0x107e
-&device.id             pci 0x9013
-+device.name           5535-2P-PRI
-
- vendor.id             pci 0x107e
-&device.id             pci 0x9023
-+device.name           5536-4P-BRI-ST
-
- vendor.id             pci 0x107e
-&device.id             pci 0x9027
-+device.name           5536-4P-BRI-U
-
- vendor.id             pci 0x107e
-&device.id             pci 0x9031
-+device.name           5536-1P-PRI
-
- vendor.id             pci 0x107e
-&device.id             pci 0x9033
-+device.name           5536-2P-PRI
-
- vendor.id             pci 0x107f
-+vendor.name           Data Technology Corporation
-
- vendor.id             pci 0x107f
-&device.id             pci 0x0802
-+device.name           SL82C105
-
- vendor.id             pci 0x1080
-+vendor.name           Contaq Microsystems
-
- vendor.id             pci 0x1080
-&device.id             pci 0x0600
-+device.name           82C599
-
- vendor.id             pci 0x1080
-&device.id             pci 0xc691
-+device.name           Cypress CY82C691
-
- vendor.id             pci 0x1080
-&device.id             pci 0xc693
-+device.name           82c693
-
- vendor.id             pci 0x1081
-+vendor.name           Supermac Technology
-
- vendor.id             pci 0x1081
-&device.id             pci 0x0d47
-+device.name           Radius PCI to NuBUS Bridge
-
- vendor.id             pci 0x1082
-+vendor.name           EFA Corporation of America
-
- vendor.id             pci 0x1083
-+vendor.name           Forex Computer Corporation
-
- vendor.id             pci 0x1083
-&device.id             pci 0x0001
-+device.name           FR710
-
- vendor.id             pci 0x1084
-+vendor.name           Parador
-
- vendor.id             pci 0x1085
-+vendor.name           Tulip Computers Int.B.V.
-
- vendor.id             pci 0x1086
-+vendor.name           J. Bond Computer Systems
-
- vendor.id             pci 0x1087
-+vendor.name           Cache Computer
-
- vendor.id             pci 0x1088
-+vendor.name           Microcomputer Systems (M) Son
-
- vendor.id             pci 0x1089
-+vendor.name           Data General Corporation
-
- vendor.id             pci 0x108a
-+vendor.name           SBS Technologies
-
- vendor.id             pci 0x108a
-&device.id             pci 0x0001
-+device.name           VME Bridge Model 617
-
- vendor.id             pci 0x108a
-&device.id             pci 0x0010
-+device.name           VME Bridge Model 618
-
- vendor.id             pci 0x108a
-&device.id             pci 0x0040
-+device.name           dataBLIZZARD
-
- vendor.id             pci 0x108a
-&device.id             pci 0x3000
-+device.name           VME Bridge Model 2706
-
- vendor.id             pci 0x108c
-+vendor.name           Oakleigh Systems Inc.
-
- vendor.id             pci 0x108d
-+vendor.name           Olicom
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0001
-+device.name           Token-Ring 16/4 PCI Adapter (3136/3137)
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0002
-+device.name           16/4 Token Ring
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0004
-+device.name           RapidFire 3139 Token-Ring 16/4 PCI Adapter
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0004
-&subvendor.id          pci 0x108d
-&subdevice.id          pci 0x0004
-+subdevice.name                OC-3139/3140 RapidFire Token-Ring 16/4 Adapter
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0005
-+device.name           GoCard 3250 Token-Ring 16/4 CardBus PC Card
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0006
-+device.name           OC-3530 RapidFire Token-Ring 100
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0007
-+device.name           RapidFire 3141 Token-Ring 16/4 PCI Fiber Adapter
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0007
-&subvendor.id          pci 0x108d
-&subdevice.id          pci 0x0007
-+subdevice.name                OC-3141 RapidFire Token-Ring 16/4 Adapter
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0008
-+device.name           RapidFire 3540 HSTR 100/16/4 PCI Adapter
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0008
-&subvendor.id          pci 0x108d
-&subdevice.id          pci 0x0008
-+subdevice.name                OC-3540 RapidFire HSTR 100/16/4 Adapter
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0011
-+device.name           OC-2315
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0012
-+device.name           OC-2325
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0013
-+device.name           OC-2183/2185
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0014
-+device.name           OC-2326
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0019
-+device.name           OC-2327/2250 10/100 Ethernet Adapter
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0019
-&subvendor.id          pci 0x108d
-&subdevice.id          pci 0x0016
-+subdevice.name                OC-2327 Rapidfire 10/100 Ethernet Adapter
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0019
-&subvendor.id          pci 0x108d
-&subdevice.id          pci 0x0017
-+subdevice.name                OC-2250 GoCard 10/100 Ethernet Adapter
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0021
-+device.name           OC-6151/6152 [RapidFire ATM 155]
-
- vendor.id             pci 0x108d
-&device.id             pci 0x0022
-+device.name           ATM Adapter
-
- vendor.id             pci 0x108e
-+vendor.name           Sun Microsystems Computer Corp.
-
- vendor.id             pci 0x108e
-&device.id             pci 0x0001
-+device.name           EBUS
-
- vendor.id             pci 0x108e
-&device.id             pci 0x1000
-+device.name           EBUS
-
- vendor.id             pci 0x108e
-&device.id             pci 0x1001
-+device.name           Happy Meal
-
- vendor.id             pci 0x108e
-&device.id             pci 0x1100
-+device.name           RIO EBUS
-
- vendor.id             pci 0x108e
-&device.id             pci 0x1101
-+device.name           RIO GEM
-
- vendor.id             pci 0x108e
-&device.id             pci 0x1102
-+device.name           RIO 1394
-
- vendor.id             pci 0x108e
-&device.id             pci 0x1103
-+device.name           RIO USB
-
- vendor.id             pci 0x108e
-&device.id             pci 0x2bad
-+device.name           GEM
-
- vendor.id             pci 0x108e
-&device.id             pci 0x5000
-+device.name           Simba Advanced PCI Bridge
-
- vendor.id             pci 0x108e
-&device.id             pci 0x5043
-+device.name           SunPCI Co-processor
-
- vendor.id             pci 0x108e
-&device.id             pci 0x8000
-+device.name           Psycho PCI Bus Module
-
- vendor.id             pci 0x108e
-&device.id             pci 0x8001
-+device.name           Schizo PCI Bus Module
-
- vendor.id             pci 0x108e
-&device.id             pci 0xa000
-+device.name           Ultra IIi
-
- vendor.id             pci 0x108e
-&device.id             pci 0xa001
-+device.name           Ultra IIe
-
- vendor.id             pci 0x108e
-&device.id             pci 0xa801
-+device.name           Tomatillo PCI Bus Module
-
- vendor.id             pci 0x108e
-&device.id             pci 0xabba
-+device.name           Cassini 10/100/1000
-
- vendor.id             pci 0x108f
-+vendor.name           Systemsoft
-
- vendor.id             pci 0x1090
-+vendor.name           Encore Computer Corporation
-
- vendor.id             pci 0x1091
-+vendor.name           Intergraph Corporation
-
- vendor.id             pci 0x1091
-&device.id             pci 0x0020
-+device.name           3D graphics processor
-
- vendor.id             pci 0x1091
-&device.id             pci 0x0021
-+device.name           3D graphics processor w/Texturing
-
- vendor.id             pci 0x1091
-&device.id             pci 0x0040
-+device.name           3D graphics frame buffer
-
- vendor.id             pci 0x1091
-&device.id             pci 0x0041
-+device.name           3D graphics frame buffer
-
- vendor.id             pci 0x1091
-&device.id             pci 0x0060
-+device.name           Proprietary bus bridge
-
- vendor.id             pci 0x1091
-&device.id             pci 0x00e4
-+device.name           Powerstorm 4D50T
-
- vendor.id             pci 0x1091
-&device.id             pci 0x0720
-+device.name           Motion JPEG codec
-
- vendor.id             pci 0x1091
-&device.id             pci 0x07a0
-+device.name           Sun Expert3D-Lite Graphics Accelerator
-
- vendor.id             pci 0x1091
-&device.id             pci 0x1091
-+device.name           Sun Expert3D Graphics Accelerator
-
- vendor.id             pci 0x1092
-+vendor.name           Diamond Multimedia Systems
-
- vendor.id             pci 0x1092
-&device.id             pci 0x00a0
-+device.name           Speedstar Pro SE
-
- vendor.id             pci 0x1092
-&device.id             pci 0x00a8
-+device.name           Speedstar 64
-
- vendor.id             pci 0x1092
-&device.id             pci 0x0550
-+device.name           Viper V550
-
- vendor.id             pci 0x1092
-&device.id             pci 0x08d4
-+device.name           Supra 2260 Modem
-
- vendor.id             pci 0x1092
-&device.id             pci 0x094c
-+device.name           SupraExpress 56i Pro
-
- vendor.id             pci 0x1092
-&device.id             pci 0x1092
-+device.name           Viper V330
-
- vendor.id             pci 0x1092
-&device.id             pci 0x6120
-+device.name           Maximum DVD
-
- vendor.id             pci 0x1092
-&device.id             pci 0x8810
-+device.name           Stealth SE
-
- vendor.id             pci 0x1092
-&device.id             pci 0x8811
-+device.name           Stealth 64/SE
-
- vendor.id             pci 0x1092
-&device.id             pci 0x8880
-+device.name           Stealth
-
- vendor.id             pci 0x1092
-&device.id             pci 0x8881
-+device.name           Stealth
-
- vendor.id             pci 0x1092
-&device.id             pci 0x88b0
-+device.name           Stealth 64
-
- vendor.id             pci 0x1092
-&device.id             pci 0x88b1
-+device.name           Stealth 64
-
- vendor.id             pci 0x1092
-&device.id             pci 0x88c0
-+device.name           Stealth 64
-
- vendor.id             pci 0x1092
-&device.id             pci 0x88c1
-+device.name           Stealth 64
-
- vendor.id             pci 0x1092
-&device.id             pci 0x88d0
-+device.name           Stealth 64
-
- vendor.id             pci 0x1092
-&device.id             pci 0x88d1
-+device.name           Stealth 64
-
- vendor.id             pci 0x1092
-&device.id             pci 0x88f0
-+device.name           Stealth 64
-
- vendor.id             pci 0x1092
-&device.id             pci 0x88f1
-+device.name           Stealth 64
-
- vendor.id             pci 0x1092
-&device.id             pci 0x9999
-+device.name           DMD-I0928-1 "Monster sound" sound chip
-
- vendor.id             pci 0x1093
-+vendor.name           National Instruments
-
- vendor.id             pci 0x1093
-&device.id             pci 0x0160
-+device.name           PCI-DIO-96
-
- vendor.id             pci 0x1093
-&device.id             pci 0x0162
-+device.name           PCI-MIO-16XE-50
-
- vendor.id             pci 0x1093
-&device.id             pci 0x1170
-+device.name           PCI-MIO-16XE-10
-
- vendor.id             pci 0x1093
-&device.id             pci 0x1180
-+device.name           PCI-MIO-16E-1
-
- vendor.id             pci 0x1093
-&device.id             pci 0x1190
-+device.name           PCI-MIO-16E-4
-
- vendor.id             pci 0x1093
-&device.id             pci 0x1330
-+device.name           PCI-6031E
-
- vendor.id             pci 0x1093
-&device.id             pci 0x1350
-+device.name           PCI-6071E
-
- vendor.id             pci 0x1093
-&device.id             pci 0x14e0
-+device.name           PCI-6110
-
- vendor.id             pci 0x1093
-&device.id             pci 0x14f0
-+device.name           PCI-6111
-
- vendor.id             pci 0x1093
-&device.id             pci 0x17d0
-+device.name           PCI-6503
-
- vendor.id             pci 0x1093
-&device.id             pci 0x1870
-+device.name           PCI-6713
-
- vendor.id             pci 0x1093
-&device.id             pci 0x1880
-+device.name           PCI-6711
-
- vendor.id             pci 0x1093
-&device.id             pci 0x18b0
-+device.name           PCI-6052E
-
- vendor.id             pci 0x1093
-&device.id             pci 0x2410
-+device.name           PCI-6733
-
- vendor.id             pci 0x1093
-&device.id             pci 0x2890
-+device.name           PCI-6036E
-
- vendor.id             pci 0x1093
-&device.id             pci 0x2a60
-+device.name           PCI-6023E
-
- vendor.id             pci 0x1093
-&device.id             pci 0x2a70
-+device.name           PCI-6024E
-
- vendor.id             pci 0x1093
-&device.id             pci 0x2a80
-+device.name           PCI-6025E
-
- vendor.id             pci 0x1093
-&device.id             pci 0x2c80
-+device.name           PCI-6035E
-
- vendor.id             pci 0x1093
-&device.id             pci 0x2ca0
-+device.name           PCI-6034E
-
- vendor.id             pci 0x1093
-&device.id             pci 0xb001
-+device.name           IMAQ-PCI-1408
-
- vendor.id             pci 0x1093
-&device.id             pci 0xb011
-+device.name           IMAQ-PXI-1408
-
- vendor.id             pci 0x1093
-&device.id             pci 0xb021
-+device.name           IMAQ-PCI-1424
-
- vendor.id             pci 0x1093
-&device.id             pci 0xb031
-+device.name           IMAQ-PCI-1413
-
- vendor.id             pci 0x1093
-&device.id             pci 0xb041
-+device.name           IMAQ-PCI-1407
-
- vendor.id             pci 0x1093
-&device.id             pci 0xb051
-+device.name           IMAQ-PXI-1407
-
- vendor.id             pci 0x1093
-&device.id             pci 0xb061
-+device.name           IMAQ-PCI-1411
-
- vendor.id             pci 0x1093
-&device.id             pci 0xb071
-+device.name           IMAQ-PCI-1422
-
- vendor.id             pci 0x1093
-&device.id             pci 0xb081
-+device.name           IMAQ-PXI-1422
-
- vendor.id             pci 0x1093
-&device.id             pci 0xb091
-+device.name           IMAQ-PXI-1411
-
- vendor.id             pci 0x1093
-&device.id             pci 0xc801
-+device.name           PCI-GPIB
-
- vendor.id             pci 0x1093
-&device.id             pci 0xc831
-+device.name           PCI-GPIB bridge
-
- vendor.id             pci 0x1094
-+vendor.name           First International Computers [FIC]
-
- vendor.id             pci 0x1095
-+vendor.name           Silicon Image, Inc. (formerly CMD Technology Inc)
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0240
-+device.name           Adaptec AAR-1210SA SATA HostRAID Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0640
-+device.name           PCI0640
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0643
-+device.name           PCI0643
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0646
-+device.name           PCI0646
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0647
-+device.name           PCI0647
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0648
-+device.name           PCI0648
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0649
-+device.name           SiI 0649 Ultra ATA/100 PCI to ATA Host Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0649
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x005d
-+subdevice.name                Integrated Ultra ATA-100 Dual Channel Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0649
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x007e
-+subdevice.name                Integrated Ultra ATA-100 IDE RAID Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0649
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0649
-+subdevice.name                AMI MegaRAID IDE 100 Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0650
-+device.name           PBC0650A
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0670
-+device.name           USB0670
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0670
-&subvendor.id          pci 0x1095
-&subdevice.id          pci 0x0670
-+subdevice.name                USB0670
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0673
-+device.name           USB0673
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0680
-+device.name           PCI0680 Ultra ATA-133 Host Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0680
-&subvendor.id          pci 0x1095
-&subdevice.id          pci 0x3680
-+subdevice.name                Winic W-680 (Silicon Image 680 based)
-
- vendor.id             pci 0x1095
-&device.id             pci 0x3112
-+device.name           SiI 3112 [SATALink/SATARaid] Serial ATA Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x3112
-&subvendor.id          pci 0x1095
-&subdevice.id          pci 0x3112
-+subdevice.name                SiI 3112 SATALink Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x3112
-&subvendor.id          pci 0x1095
-&subdevice.id          pci 0x6112
-+subdevice.name                SiI 3112 SATARaid Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x3114
-+device.name           SiI 3114 [SATALink/SATARaid] Serial ATA Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x3114
-&subvendor.id          pci 0x1095
-&subdevice.id          pci 0x3114
-+subdevice.name                SiI 3114 SATALink Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x3114
-&subvendor.id          pci 0x1095
-&subdevice.id          pci 0x6114
-+subdevice.name                SiI 3114 SATARaid Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x3124
-+device.name           SiI 3124 PCI-X Serial ATA Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x3124
-&subvendor.id          pci 0x1095
-&subdevice.id          pci 0x3124
-+subdevice.name                SiI 3124 PCI-X Serial ATA Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x3512
-+device.name           SiI 3512 [SATALink/SATARaid] Serial ATA Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x3512
-&subvendor.id          pci 0x1095
-&subdevice.id          pci 0x3512
-+subdevice.name                SiI 3512 SATALink Controller
-
- vendor.id             pci 0x1095
-&device.id             pci 0x3512
-&subvendor.id          pci 0x1095
-&subdevice.id          pci 0x6512
-+subdevice.name                SiI 3512 SATARaid Controller
-
- vendor.id             pci 0x1096
-+vendor.name           Alacron
-
- vendor.id             pci 0x1097
-+vendor.name           Appian Technology
-
- vendor.id             pci 0x1098
-+vendor.name           Quantum Designs (H.K.) Ltd
-
- vendor.id             pci 0x1098
-&device.id             pci 0x0001
-+device.name           QD-8500
-
- vendor.id             pci 0x1098
-&device.id             pci 0x0002
-+device.name           QD-8580
-
- vendor.id             pci 0x1099
-+vendor.name           Samsung Electronics Co., Ltd
-
- vendor.id             pci 0x109a
-+vendor.name           Packard Bell
-
- vendor.id             pci 0x109b
-+vendor.name           Gemlight Computer Ltd.
-
- vendor.id             pci 0x109c
-+vendor.name           Megachips Corporation
-
- vendor.id             pci 0x109d
-+vendor.name           Zida Technologies Ltd.
-
- vendor.id             pci 0x109e
-+vendor.name           Brooktree Corporation
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0350
-+device.name           Bt848 Video Capture
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0351
-+device.name           Bt849A Video capture
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0369
-+device.name           Bt878 Video Capture
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0369
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0001
-+subdevice.name                TV-Wonder
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0369
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0003
-+subdevice.name                TV-Wonder/VE
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036c
-+device.name           Bt879(??) Video Capture
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036c
-&subvendor.id          pci 0x13e9
-&subdevice.id          pci 0x0070
-+subdevice.name                Win/TV (Video Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-+device.name           Bt878 Video Capture
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x0070
-&subdevice.id          pci 0x13eb
-+subdevice.name                WinTV Series
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x0070
-&subdevice.id          pci 0xff01
-+subdevice.name                Viewcast Osprey 200
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x0071
-&subdevice.id          pci 0x0101
-+subdevice.name                DigiTV PCI
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x107d
-&subdevice.id          pci 0x6606
-+subdevice.name                WinFast TV 2000
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x0012
-+subdevice.name                PCTV pro (TV + FM stereo receiver)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x001c
-+subdevice.name                PCTV Sat (DBC receiver)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0001
-+subdevice.name                Bt878 Mediastream Controller NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0002
-+subdevice.name                Bt878 Mediastream Controller PAL BG
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0003
-+subdevice.name                Bt878a Mediastream Controller PAL BG
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0048
-+subdevice.name                Bt878/832 Mediastream Controller
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x3000
-+subdevice.name                MagicTView CPH060 - Video
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x1461
-&subdevice.id          pci 0x0002
-+subdevice.name                TV98 Series (TV/No FM/Remote)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x1461
-&subdevice.id          pci 0x0004
-+subdevice.name                AVerTV WDM Video Capture
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x1461
-&subdevice.id          pci 0x0761
-+subdevice.name                AverTV DVB-T
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0001
-+subdevice.name                Bt878 Mediastream Controller NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0002
-+subdevice.name                Bt878 Mediastream Controller PAL BG
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0003
-+subdevice.name                Bt878a Mediastream Controller PAL BG
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0048
-+subdevice.name                Bt878/832 Mediastream Controller
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x1822
-&subdevice.id          pci 0x0001
-+subdevice.name                VisionPlus DVB card
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x1851
-&subdevice.id          pci 0x1850
-+subdevice.name                FlyVideo'98 - Video
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x1851
-&subdevice.id          pci 0x1851
-+subdevice.name                FlyVideo II
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x1852
-&subdevice.id          pci 0x1852
-+subdevice.name                FlyVideo'98 - Video (with FM Tuner)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0xfc00
-+subdevice.name                Digitop DTT-1000
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0xbd11
-&subdevice.id          pci 0x1200
-+subdevice.name                PCTV pro (TV + FM stereo receiver)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-+device.name           Bt879 Video Capture
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0044
-+subdevice.name                Bt879 Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0122
-+subdevice.name                Bt879 Video Capture PAL I
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0144
-+subdevice.name                Bt879 Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0222
-+subdevice.name                Bt879 Video Capture PAL BG
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0244
-+subdevice.name                Bt879a Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0322
-+subdevice.name                Bt879 Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0422
-+subdevice.name                Bt879 Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x1122
-+subdevice.name                Bt879 Video Capture PAL I
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x1222
-+subdevice.name                Bt879 Video Capture PAL BG
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x1322
-+subdevice.name                Bt879 Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x1522
-+subdevice.name                Bt879a Video Capture PAL I
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x1622
-+subdevice.name                Bt879a Video Capture PAL BG
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x1722
-+subdevice.name                Bt879a Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0044
-+subdevice.name                Bt879 Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0122
-+subdevice.name                Bt879 Video Capture PAL I
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0144
-+subdevice.name                Bt879 Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0222
-+subdevice.name                Bt879 Video Capture PAL BG
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0244
-+subdevice.name                Bt879a Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0322
-+subdevice.name                Bt879 Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0422
-+subdevice.name                Bt879 Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x1122
-+subdevice.name                Bt879 Video Capture PAL I
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x1222
-+subdevice.name                Bt879 Video Capture PAL BG
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x1322
-+subdevice.name                Bt879 Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x1522
-+subdevice.name                Bt879a Video Capture PAL I
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x1622
-+subdevice.name                Bt879a Video Capture PAL BG
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x1722
-+subdevice.name                Bt879a Video Capture NTSC
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x1851
-&subdevice.id          pci 0x1850
-+subdevice.name                FlyVideo'98 - Video
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x1851
-&subdevice.id          pci 0x1851
-+subdevice.name                FlyVideo II
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x1852
-&subdevice.id          pci 0x1852
-+subdevice.name                FlyVideo'98 - Video (with FM Tuner)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0370
-+device.name           Bt880 Video Capture
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0370
-&subvendor.id          pci 0x1851
-&subdevice.id          pci 0x1850
-+subdevice.name                FlyVideo'98
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0370
-&subvendor.id          pci 0x1851
-&subdevice.id          pci 0x1851
-+subdevice.name                FlyVideo'98 EZ - video
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0370
-&subvendor.id          pci 0x1852
-&subdevice.id          pci 0x1852
-+subdevice.name                FlyVideo'98 (with FM Tuner)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-+device.name           Bt878 Audio Capture
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x0070
-&subdevice.id          pci 0x13eb
-+subdevice.name                WinTV Series
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x0070
-&subdevice.id          pci 0xff01
-+subdevice.name                Viewcast Osprey 200
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x0071
-&subdevice.id          pci 0x0101
-+subdevice.name                DigiTV PCI
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0001
-+subdevice.name                TV-Wonder
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0003
-+subdevice.name                TV-Wonder/VE
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x0012
-+subdevice.name                PCTV pro (TV + FM stereo receiver, audio section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x001c
-+subdevice.name                PCTV Sat (DBC receiver)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0001
-+subdevice.name                Bt878 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0002
-+subdevice.name                Bt878 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0003
-+subdevice.name                Bt878 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0048
-+subdevice.name                Bt878 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x13e9
-&subdevice.id          pci 0x0070
-+subdevice.name                Win/TV (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x3000
-+subdevice.name                MagicTView CPH060 - Audio
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x1461
-&subdevice.id          pci 0x0004
-+subdevice.name                AVerTV WDM Audio Capture
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x1461
-&subdevice.id          pci 0x0761
-+subdevice.name                AVerTV DVB-T
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0001
-+subdevice.name                Bt878 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0002
-+subdevice.name                Bt878 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0003
-+subdevice.name                Bt878 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0048
-+subdevice.name                Bt878 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x1822
-&subdevice.id          pci 0x0001
-+subdevice.name                VisionPlus DVB Card
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0xfc00
-+subdevice.name                Digitop DTT-1000
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0878
-&subvendor.id          pci 0xbd11
-&subdevice.id          pci 0x1200
-+subdevice.name                PCTV pro (TV + FM stereo receiver, audio section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-+device.name           Bt879 Audio Capture
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0044
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0122
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0144
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0222
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0244
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0322
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x0422
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x1122
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x1222
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x1322
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x1522
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x1622
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x1722
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0044
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0122
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0144
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0222
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0244
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0322
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x0422
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x1122
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x1222
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x1322
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x1522
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x1622
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0879
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x1722
-+subdevice.name                Bt879 Video Capture (Audio Section)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0880
-+device.name           Bt880 Audio Capture
-
- vendor.id             pci 0x109e
-&device.id             pci 0x2115
-+device.name           BtV 2115 Mediastream controller
-
- vendor.id             pci 0x109e
-&device.id             pci 0x2125
-+device.name           BtV 2125 Mediastream controller
-
- vendor.id             pci 0x109e
-&device.id             pci 0x2164
-+device.name           BtV 2164
-
- vendor.id             pci 0x109e
-&device.id             pci 0x2165
-+device.name           BtV 2165
-
- vendor.id             pci 0x109e
-&device.id             pci 0x8230
-+device.name           Bt8230 ATM Segment/Reassembly Ctrlr (SRC)
-
- vendor.id             pci 0x109e
-&device.id             pci 0x8472
-+device.name           Bt8472
-
- vendor.id             pci 0x109e
-&device.id             pci 0x8474
-+device.name           Bt8474
-
- vendor.id             pci 0x109f
-+vendor.name           Trigem Computer Inc.
-
- vendor.id             pci 0x10a0
-+vendor.name           Meidensha Corporation
-
- vendor.id             pci 0x10a1
-+vendor.name           Juko Electronics Ind. Co. Ltd
-
- vendor.id             pci 0x10a2
-+vendor.name           Quantum Corporation
-
- vendor.id             pci 0x10a3
-+vendor.name           Everex Systems Inc
-
- vendor.id             pci 0x10a4
-+vendor.name           Globe Manufacturing Sales
-
- vendor.id             pci 0x10a5
-+vendor.name           Smart Link Ltd.
-
- vendor.id             pci 0x10a5
-&device.id             pci 0x3052
-+device.name           SmartPCI562 56K Modem
-
- vendor.id             pci 0x10a5
-&device.id             pci 0x5449
-+device.name           SmartPCI561 modem
-
- vendor.id             pci 0x10a6
-+vendor.name           Informtech Industrial Ltd.
-
- vendor.id             pci 0x10a7
-+vendor.name           Benchmarq Microelectronics
-
- vendor.id             pci 0x10a8
-+vendor.name           Sierra Semiconductor
-
- vendor.id             pci 0x10a8
-&device.id             pci 0x0000
-+device.name           STB Horizon 64
-
- vendor.id             pci 0x10a9
-+vendor.name           Silicon Graphics, Inc.
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x0001
-+device.name           Crosstalk to PCI Bridge
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x0002
-+device.name           Linc I/O controller
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x0003
-+device.name           IOC3 I/O controller
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x0004
-+device.name           O2 MACE
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x0005
-+device.name           RAD Audio
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x0006
-+device.name           HPCEX
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x0007
-+device.name           RPCEX
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x0008
-+device.name           DiVO VIP
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x0009
-+device.name           AceNIC Gigabit Ethernet
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x0009
-&subvendor.id          pci 0x10a9
-&subdevice.id          pci 0x8002
-+subdevice.name                AceNIC Gigabit Ethernet
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x0010
-+device.name           AMP Video I/O
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x0011
-+device.name           GRIP
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x0012
-+device.name           SGH PSHAC GSN
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x1001
-+device.name           Magic Carpet
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x1002
-+device.name           Lithium
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x1003
-+device.name           Dual JPEG 1
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x1004
-+device.name           Dual JPEG 2
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x1005
-+device.name           Dual JPEG 3
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x1006
-+device.name           Dual JPEG 4
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x1007
-+device.name           Dual JPEG 5
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x1008
-+device.name           Cesium
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x100a
-+device.name           IOC4 I/O controller
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x2001
-+device.name           Fibre Channel
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x2002
-+device.name           ASDE
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x8001
-+device.name           O2 1394
-
- vendor.id             pci 0x10a9
-&device.id             pci 0x8002
-+device.name           G-net NT
-
- vendor.id             pci 0x10aa
-+vendor.name           ACC Microelectronics
-
- vendor.id             pci 0x10aa
-&device.id             pci 0x0000
-+device.name           ACCM 2188
-
- vendor.id             pci 0x10ab
-+vendor.name           Digicom
-
- vendor.id             pci 0x10ac
-+vendor.name           Honeywell IAC
-
- vendor.id             pci 0x10ad
-+vendor.name           Symphony Labs
-
- vendor.id             pci 0x10ad
-&device.id             pci 0x0001
-+device.name           W83769F
-
- vendor.id             pci 0x10ad
-&device.id             pci 0x0003
-+device.name           SL82C103
-
- vendor.id             pci 0x10ad
-&device.id             pci 0x0005
-+device.name           SL82C105
-
- vendor.id             pci 0x10ad
-&device.id             pci 0x0103
-+device.name           SL82c103
-
- vendor.id             pci 0x10ad
-&device.id             pci 0x0105
-+device.name           SL82c105
-
- vendor.id             pci 0x10ad
-&device.id             pci 0x0565
-+device.name           W83C553
-
- vendor.id             pci 0x10ae
-+vendor.name           Cornerstone Technology
-
- vendor.id             pci 0x10af
-+vendor.name           Micro Computer Systems Inc
-
- vendor.id             pci 0x10b0
-+vendor.name           CardExpert Technology
-
- vendor.id             pci 0x10b1
-+vendor.name           Cabletron Systems Inc
-
- vendor.id             pci 0x10b2
-+vendor.name           Raytheon Company
-
- vendor.id             pci 0x10b3
-+vendor.name           Databook Inc
-
- vendor.id             pci 0x10b3
-&device.id             pci 0x3106
-+device.name           DB87144
-
- vendor.id             pci 0x10b3
-&device.id             pci 0xb106
-+device.name           DB87144
-
- vendor.id             pci 0x10b4
-+vendor.name           STB Systems Inc
-
- vendor.id             pci 0x10b4
-&device.id             pci 0x1b1d
-+device.name           Velocity 128 3D
-
- vendor.id             pci 0x10b4
-&device.id             pci 0x1b1d
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x237e
-+subdevice.name                Velocity 4400
-
- vendor.id             pci 0x10b5
-+vendor.name           PLX Technology, Inc.
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x0001
-+device.name           i960 PCI bus interface
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x1076
-+device.name           VScom 800 8 port serial adaptor
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x1077
-+device.name           VScom 400 4 port serial adaptor
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x1078
-+device.name           VScom 210 2 port serial and 1 port parallel adaptor
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x1103
-+device.name           VScom 200 2 port serial adaptor
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x1146
-+device.name           VScom 010 1 port parallel adaptor
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x1147
-+device.name           VScom 020 2 port parallel adaptor
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x2724
-+device.name           Thales PCSM Security Card
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9030
-+device.name           PCI <-> IOBus Bridge Hot Swap
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9030
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x2862
-+subdevice.name                Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9030
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x2906
-+subdevice.name                Alpermann+Velte PCI TS (3V/5V): Time Synchronisation Board
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9030
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x2940
-+subdevice.name                Alpermann+Velte PCL PCI D (3V/5V): Timecode Reader Board
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9030
-&subvendor.id          pci 0x15ed
-&subdevice.id          pci 0x1002
-+subdevice.name                MCCS 8-port Serial Hot Swap
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9030
-&subvendor.id          pci 0x15ed
-&subdevice.id          pci 0x1003
-+subdevice.name                MCCS 16-port Serial Hot Swap
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9036
-+device.name           9036
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-+device.name           PCI <-> IOBus Bridge
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x1067
-+subdevice.name                IXXAT CAN i165
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x1172
-+subdevice.name                IK220 (Heidenhain)
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x2036
-+subdevice.name                SatPak GPS
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x2221
-+subdevice.name                Alpermann+Velte PCL PCI LV: Timecode Reader Board
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x2273
-+subdevice.name                SH-ARC SoHard ARCnet card
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x2431
-+subdevice.name                Alpermann+Velte PCL PCI D: Timecode Reader Board
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x2905
-+subdevice.name                Alpermann+Velte PCI TS: Time Synchronisation Board
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x9050
-+subdevice.name                MP9050
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x1498
-&subdevice.id          pci 0x0362
-+subdevice.name                TPMC866 8 Channel Serial Card
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0001
-+subdevice.name                RockForce 4 Port V.90 Data/Fax/Voice Modem
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0002
-+subdevice.name                RockForce 2 Port V.90 Data/Fax/Voice Modem
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0003
-+subdevice.name                RockForce 6 Port V.90 Data/Fax/Voice Modem
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0004
-+subdevice.name                RockForce 8 Port V.90 Data/Fax/Voice Modem
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0010
-+subdevice.name                RockForce2000 4 Port V.90 Data/Fax/Voice Modem
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0020
-+subdevice.name                RockForce2000 2 Port V.90 Data/Fax/Voice Modem
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x15ed
-&subdevice.id          pci 0x1000
-+subdevice.name                Macrolink MCCS 8-port Serial
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x15ed
-&subdevice.id          pci 0x1001
-+subdevice.name                Macrolink MCCS 16-port Serial
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x15ed
-&subdevice.id          pci 0x1002
-+subdevice.name                Macrolink MCCS 8-port Serial Hot Swap
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x15ed
-&subdevice.id          pci 0x1003
-+subdevice.name                Macrolink MCCS 16-port Serial Hot Swap
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x5654
-&subdevice.id          pci 0x2036
-+subdevice.name                OpenSwitch 6 Telephony card
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x5654
-&subdevice.id          pci 0x3132
-+subdevice.name                OpenSwitch 12 Telephony card
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0x5654
-&subdevice.id          pci 0x5634
-+subdevice.name                OpenLine4 Telephony Card
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd531
-&subdevice.id          pci 0xc002
-+subdevice.name                PCIntelliCAN 2xSJA1000 CAN bus
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4006
-+subdevice.name                EX-4006 1P
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4008
-+subdevice.name                EX-4008 1P EPP/ECP
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4014
-+subdevice.name                EX-4014 2P
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4018
-+subdevice.name                EX-4018 3P EPP/ECP
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4025
-+subdevice.name                EX-4025 1S(16C550) RS-232
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4027
-+subdevice.name                EX-4027 1S(16C650) RS-232
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4028
-+subdevice.name                EX-4028 1S(16C850) RS-232
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4036
-+subdevice.name                EX-4036 2S(16C650) RS-232
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4037
-+subdevice.name                EX-4037 2S(16C650) RS-232
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4038
-+subdevice.name                EX-4038 2S(16C850) RS-232
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4052
-+subdevice.name                EX-4052 1S(16C550) RS-422/485
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4053
-+subdevice.name                EX-4053 2S(16C550) RS-422/485
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4055
-+subdevice.name                EX-4055 4S(16C550) RS-232
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4058
-+subdevice.name                EX-4055 4S(16C650) RS-232
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4065
-+subdevice.name                EX-4065 8S(16C550) RS-232
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4068
-+subdevice.name                EX-4068 8S(16C650) RS-232
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9050
-&subvendor.id          pci 0xd84d
-&subdevice.id          pci 0x4078
-+subdevice.name                EX-4078 2S(16C552) RS-232+1P
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9054
-+device.name           PCI <-> IOBus Bridge
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9054
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x2455
-+subdevice.name                Wessex Techology PHIL-PCI
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9054
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x2696
-+subdevice.name                Innes Corp AM Radcap card
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9054
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x2717
-+subdevice.name                Innes Corp Auricon card
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9054
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x2844
-+subdevice.name                Innes Corp TVS Encoder card
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9054
-&subvendor.id          pci 0x12d9
-&subdevice.id          pci 0x0002
-+subdevice.name                PCI Prosody Card rev 1.5
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9054
-&subvendor.id          pci 0x16df
-&subdevice.id          pci 0x0011
-+subdevice.name                PIKA PrimeNet MM PCI
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9054
-&subvendor.id          pci 0x16df
-&subdevice.id          pci 0x0012
-+subdevice.name                PIKA PrimeNet MM cPCI 8
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9054
-&subvendor.id          pci 0x16df
-&subdevice.id          pci 0x0013
-+subdevice.name                PIKA PrimeNet MM cPCI 8 (without CAS Signaling Option)
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9054
-&subvendor.id          pci 0x16df
-&subdevice.id          pci 0x0014
-+subdevice.name                PIKA PrimeNet MM cPCI 4
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9054
-&subvendor.id          pci 0x16df
-&subdevice.id          pci 0x0015
-+subdevice.name                PIKA Daytona MM
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9054
-&subvendor.id          pci 0x16df
-&subdevice.id          pci 0x0016
-+subdevice.name                PIKA InLine MM
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9056
-+device.name           Francois
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9056
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x2979
-+subdevice.name                CellinkBlade 11 - CPCI board VoATM AAL1
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9060
-+device.name           9060
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x906d
-+device.name           9060SD
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x906d
-&subvendor.id          pci 0x125c
-&subdevice.id          pci 0x0640
-+subdevice.name                Aries 16000P
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x906e
-+device.name           9060ES
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9080
-+device.name           9080
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9080
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10eb
-+subdevice.name                (Agilent) E2777B 83K Series PCI based Optical Communication Interface
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9080
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10ec
-+subdevice.name                (Agilent) E6978-66442 PCI CIC
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9080
-&subvendor.id          pci 0x10b5
-&subdevice.id          pci 0x9080
-+subdevice.name                9080 [real subsystem ID not set]
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9080
-&subvendor.id          pci 0x129d
-&subdevice.id          pci 0x0002
-+subdevice.name                Aculab PCI Prosidy card
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9080
-&subvendor.id          pci 0x12d9
-&subdevice.id          pci 0x0002
-+subdevice.name                PCI Prosody Card
-
- vendor.id             pci 0x10b5
-&device.id             pci 0x9080
-&subvendor.id          pci 0x12df
-&subdevice.id          pci 0x4422
-+subdevice.name                4422PCI ["Do-All" Telemetry Data Aquisition System]
-
- vendor.id             pci 0x10b5
-&device.id             pci 0xbb04
-+device.name           B&B 3PCIOSD1A Isolated PCI Serial
-
- vendor.id             pci 0x10b6
-+vendor.name           Madge Networks
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0001
-+device.name           Smart 16/4 PCI Ringnode
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0002
-+device.name           Smart 16/4 PCI Ringnode Mk2
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0002
-&subvendor.id          pci 0x10b6
-&subdevice.id          pci 0x0002
-+subdevice.name                Smart 16/4 PCI Ringnode Mk2
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0002
-&subvendor.id          pci 0x10b6
-&subdevice.id          pci 0x0006
-+subdevice.name                16/4 CardBus Adapter
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0003
-+device.name           Smart 16/4 PCI Ringnode Mk3
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0003
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb0fd
-+subdevice.name                Compaq NC4621 PCI, 4/16, WOL
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0003
-&subvendor.id          pci 0x10b6
-&subdevice.id          pci 0x0003
-+subdevice.name                Smart 16/4 PCI Ringnode Mk3
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0003
-&subvendor.id          pci 0x10b6
-&subdevice.id          pci 0x0007
-+subdevice.name                Presto PCI Plus Adapter
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0004
-+device.name           Smart 16/4 PCI Ringnode Mk1
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0006
-+device.name           16/4 Cardbus Adapter
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0006
-&subvendor.id          pci 0x10b6
-&subdevice.id          pci 0x0006
-+subdevice.name                16/4 CardBus Adapter
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0007
-+device.name           Presto PCI Adapter
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0007
-&subvendor.id          pci 0x10b6
-&subdevice.id          pci 0x0007
-+subdevice.name                Presto PCI
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0009
-+device.name           Smart 100/16/4 PCI-HS Ringnode
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x0009
-&subvendor.id          pci 0x10b6
-&subdevice.id          pci 0x0009
-+subdevice.name                Smart 100/16/4 PCI-HS Ringnode
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x000a
-+device.name           Smart 100/16/4 PCI Ringnode
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x000a
-&subvendor.id          pci 0x10b6
-&subdevice.id          pci 0x000a
-+subdevice.name                Smart 100/16/4 PCI Ringnode
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x000b
-+device.name           16/4 CardBus Adapter Mk2
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x000b
-&subvendor.id          pci 0x10b6
-&subdevice.id          pci 0x0008
-+subdevice.name                16/4 CardBus Adapter Mk2
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x000b
-&subvendor.id          pci 0x10b6
-&subdevice.id          pci 0x000b
-+subdevice.name                16/4 Cardbus Adapter Mk2
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x000c
-+device.name           RapidFire 3140V2 16/4 TR Adapter
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x000c
-&subvendor.id          pci 0x10b6
-&subdevice.id          pci 0x000c
-+subdevice.name                RapidFire 3140V2 16/4 TR Adapter
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x1000
-+device.name           Collage 25/155 ATM Client Adapter
-
- vendor.id             pci 0x10b6
-&device.id             pci 0x1001
-+device.name           Collage 155 ATM Server Adapter
-
- vendor.id             pci 0x10b7
-+vendor.name           3Com Corporation
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x0001
-+device.name           3c985 1000BaseSX (SX/TX)
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x0013
-+device.name           AR5212 802.11abg NIC (3CRDAG675)
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x0013
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x2031
-+subdevice.name                3CRDAG675 11a/b/g Wireless PCI Adapter
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x0910
-+device.name           3C910-A01
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x1006
-+device.name           MINI PCI type 3B Data Fax Modem
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x1007
-+device.name           Mini PCI 56k Winmodem
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x1007
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x615c
-+subdevice.name                Mini PCI 56K Modem
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x1201
-+device.name           3c982-TXM 10/100baseTX Dual Port A [Hydra]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x1202
-+device.name           3c982-TXM 10/100baseTX Dual Port B [Hydra]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x1700
-+device.name           3c940 10/100/1000Base-T [Marvell]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x1700
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80eb
-+subdevice.name                P4P800 Mainboard
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x1700
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x0010
-+subdevice.name                3C940 Gigabit LOM Ethernet Adapter
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x1700
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x0020
-+subdevice.name                3C941 Gigabit LOM Ethernet Adapter
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x1700
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x1407
-+subdevice.name                KV8-MAX3 motherboard
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x3390
-+device.name           3c339 TokenLink Velocity
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x3590
-+device.name           3c359 TokenLink Velocity XL
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x3590
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x3590
-+subdevice.name                TokenLink Velocity XL Adapter (3C359/359B)
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x4500
-+device.name           3c450 HomePNA [Tornado]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5055
-+device.name           3c555 Laptop Hurricane
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5057
-+device.name           3c575 Megahertz 10/100 LAN CardBus [Boomerang]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5057
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x5a57
-+subdevice.name                3C575 Megahertz 10/100 LAN Cardbus PC Card
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5157
-+device.name           3cCFE575BT Megahertz 10/100 LAN CardBus [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5157
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x5b57
-+subdevice.name                3C575 Megahertz 10/100 LAN Cardbus PC Card
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5257
-+device.name           3cCFE575CT CardBus [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5257
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x5c57
-+subdevice.name                FE575C-3Com 10/100 LAN CardBus-Fast Ethernet
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5900
-+device.name           3c590 10BaseT [Vortex]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5920
-+device.name           3c592 EISA 10mbps Demon/Vortex
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5950
-+device.name           3c595 100BaseTX [Vortex]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5951
-+device.name           3c595 100BaseT4 [Vortex]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5952
-+device.name           3c595 100Base-MII [Vortex]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5970
-+device.name           3c597 EISA Fast Demon/Vortex
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5b57
-+device.name           3c595 Megahertz 10/100 LAN CardBus [Boomerang]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x5b57
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x5b57
-+subdevice.name                3C575 Megahertz 10/100 LAN Cardbus PC Card
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6000
-+device.name           3CRSHPW796 [OfficeConnect Wireless CardBus]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6001
-+device.name           3com 3CRWE154G72 [Office Connect Wireless LAN Adapter]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6055
-+device.name           3c556 Hurricane CardBus [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6056
-+device.name           3c556B CardBus [Tornado]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6056
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x6556
-+subdevice.name                10/100 Mini PCI Ethernet Adapter
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6560
-+device.name           3cCFE656 CardBus [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6560
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x656a
-+subdevice.name                3CCFEM656 10/100 LAN+56K Modem CardBus
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6561
-+device.name           3cCFEM656 10/100 LAN+56K Modem CardBus
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6561
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x656b
-+subdevice.name                3CCFEM656 10/100 LAN+56K Modem CardBus
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6562
-+device.name           3cCFEM656B 10/100 LAN+Winmodem CardBus [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6562
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x656b
-+subdevice.name                3CCFEM656B 10/100 LAN+56K Modem CardBus
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6563
-+device.name           3cCFEM656B 10/100 LAN+56K Modem CardBus
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6563
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x656b
-+subdevice.name                3CCFEM656 10/100 LAN+56K Modem CardBus
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x6564
-+device.name           3cXFEM656C 10/100 LAN+Winmodem CardBus [Tornado]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x7646
-+device.name           3cSOHO100-TX Hurricane
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x7770
-+device.name           3CRWE777 PCI(PLX) Wireless Adaptor [Airconnect]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x7940
-+device.name           3c803 FDDILink UTP Controller
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x7980
-+device.name           3c804 FDDILink SAS Controller
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x7990
-+device.name           3c805 FDDILink DAS Controller
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x80eb
-+device.name           3c940B 10/100/1000Base-T
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x8811
-+device.name           Token ring
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9000
-+device.name           3c900 10BaseT [Boomerang]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9001
-+device.name           3c900 10Mbps Combo [Boomerang]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9004
-+device.name           3c900B-TPO Etherlink XL [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9004
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x9004
-+subdevice.name                3C900B-TPO Etherlink XL TPO 10Mb
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9005
-+device.name           3c900B-Combo Etherlink XL [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9005
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x9005
-+subdevice.name                3C900B-Combo Etherlink XL Combo
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9006
-+device.name           3c900B-TPC Etherlink XL [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x900a
-+device.name           3c900B-FL 10base-FL [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9050
-+device.name           3c905 100BaseTX [Boomerang]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9051
-+device.name           3c905 100BaseT4 [Boomerang]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-+device.name           3c905B 100BaseTX [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0080
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0081
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0082
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0083
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0084
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0085
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0086
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0087
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0088
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0089
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0090
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0091
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0092
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0093
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0094
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0095
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0096
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0097
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0098
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0099
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9055
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x9055
-+subdevice.name                3C905B Fast Etherlink XL 10/100
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9056
-+device.name           3c905B-T4 Fast EtherLink XL [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9058
-+device.name           3c905B Deluxe Etherlink 10/100/BNC [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x905a
-+device.name           3c905B-FX Fast Etherlink XL FX 100baseFx [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9200
-+device.name           3c905C-TX/TX-M [Tornado]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9200
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0095
-+subdevice.name                3C920 Integrated Fast Ethernet Controller
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9200
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0097
-+subdevice.name                3C920 Integrated Fast Ethernet Controller
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9200
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00fe
-+subdevice.name                Optiplex GX240
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9200
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x012a
-+subdevice.name                3C920 Integrated Fast Ethernet Controller [Latitude C640]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9200
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1000
-+subdevice.name                3C905C-TX Fast Etherlink for PC Management NIC
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9200
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x7000
-+subdevice.name                10/100 Mini PCI Ethernet Adapter
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9200
-&subvendor.id          pci 0x10f1
-&subdevice.id          pci 0x2466
-+subdevice.name                Tiger MPX S2466 (3C920 Integrated Fast Ethernet Controller)
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9201
-+device.name           3C920B-EMB Integrated Fast Ethernet Controller [Tornado]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9201
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80ab
-+subdevice.name                A7N8X Deluxe onboard 3C920B-EMB Integrated Fast Ethernet Controller
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9202
-+device.name           3Com 3C920B-EMB-WNM Integrated Fast Ethernet Controller
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9210
-+device.name           3C920B-EMB-WNM Integrated Fast Ethernet Controller
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9300
-+device.name           3CSOHO100B-TX 910-A01 [tulip]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9800
-+device.name           3c980-TX Fast Etherlink XL Server Adapter [Cyclone]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9800
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x9800
-+subdevice.name                3c980-TX Fast Etherlink XL Server Adapter
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9805
-+device.name           3c980-C 10/100baseTX NIC [Python-T]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9805
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1201
-+subdevice.name                EtherLink Server 10/100 Dual Port A
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9805
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1202
-+subdevice.name                EtherLink Server 10/100 Dual Port B
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9805
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x9805
-+subdevice.name                3c980 10/100baseTX NIC [Python-T]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9805
-&subvendor.id          pci 0x10f1
-&subdevice.id          pci 0x2462
-+subdevice.name                Thunder K7 S2462
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9900
-+device.name           3C990-TX [Typhoon]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9902
-+device.name           3CR990-TX-95 [Typhoon 56-bit]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9903
-+device.name           3CR990-TX-97 [Typhoon 168-bit]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9904
-+device.name           3C990B-TX-M/3C990BSVR [Typhoon2]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9904
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1000
-+subdevice.name                3CR990B-TX-M [Typhoon2]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9904
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x2000
-+subdevice.name                3CR990BSVR [Typhoon2 Server]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9905
-+device.name           3CR990-FX-95/97/95 [Typhon Fiber]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9905
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1101
-+subdevice.name                3CR990-FX-95 [Typhoon Fiber 56-bit]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9905
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1102
-+subdevice.name                3CR990-FX-97 [Typhoon Fiber 168-bit]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9905
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x2101
-+subdevice.name                3CR990-FX-95 Server [Typhoon Fiber 56-bit]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9905
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x2102
-+subdevice.name                3CR990-FX-97 Server [Typhoon Fiber 168-bit]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9908
-+device.name           3CR990SVR95 [Typhoon Server 56-bit]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x9909
-+device.name           3CR990SVR97 [Typhoon Server 168-bit]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x990a
-+device.name           3C990SVR [Typhoon Server]
-
- vendor.id             pci 0x10b7
-&device.id             pci 0x990b
-+device.name           3C990SVR [Typhoon Server]
-
- vendor.id             pci 0x10b8
-+vendor.name           Standard Microsystems Corp [SMC]
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0005
-+device.name           83c170 EPIC/100 Fast Ethernet Adapter
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0005
-&subvendor.id          pci 0x1055
-&subdevice.id          pci 0xe000
-+subdevice.name                LANEPIC 10/100 [EVB171Q-PCI]
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0005
-&subvendor.id          pci 0x1055
-&subdevice.id          pci 0xe002
-+subdevice.name                LANEPIC 10/100 [EVB171G-PCI]
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0005
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0xa011
-+subdevice.name                EtherPower II 10/100
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0005
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0xa014
-+subdevice.name                EtherPower II 10/100
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0005
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0xa015
-+subdevice.name                EtherPower II 10/100
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0005
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0xa016
-+subdevice.name                EtherPower II 10/100
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0005
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0xa017
-+subdevice.name                EtherPower II 10/100
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0006
-+device.name           83c175 EPIC/100 Fast Ethernet Adapter
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0006
-&subvendor.id          pci 0x1055
-&subdevice.id          pci 0xe100
-+subdevice.name                LANEPIC Cardbus Fast Ethernet Adapter
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0006
-&subvendor.id          pci 0x1055
-&subdevice.id          pci 0xe102
-+subdevice.name                LANEPIC Cardbus Fast Ethernet Adapter
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0006
-&subvendor.id          pci 0x1055
-&subdevice.id          pci 0xe300
-+subdevice.name                LANEPIC Cardbus Fast Ethernet Adapter
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0006
-&subvendor.id          pci 0x1055
-&subdevice.id          pci 0xe302
-+subdevice.name                LANEPIC Cardbus Fast Ethernet Adapter
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0006
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0xa012
-+subdevice.name                LANEPIC Cardbus Fast Ethernet Adapter
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0006
-&subvendor.id          pci 0x13a2
-&subdevice.id          pci 0x8002
-+subdevice.name                LANEPIC Cardbus Fast Ethernet Adapter
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x0006
-&subvendor.id          pci 0x13a2
-&subdevice.id          pci 0x8006
-+subdevice.name                LANEPIC Cardbus Fast Ethernet Adapter
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x1000
-+device.name           FDC 37c665
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x1001
-+device.name           FDC 37C922
-
- vendor.id             pci 0x10b8
-&device.id             pci 0x2802
-+device.name           SMC2802W [EZ Connect g]
-
- vendor.id             pci 0x10b8
-&device.id             pci 0xa011
-+device.name           83C170QF
-
- vendor.id             pci 0x10b8
-&device.id             pci 0xb106
-+device.name           SMC34C90
-
- vendor.id             pci 0x10b9
-+vendor.name           ALi Corporation
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x0101
-+device.name           CMI8338/C3DX PCI Audio Device
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x0111
-+device.name           C-Media CMI8738/C3DX Audio Device (OEM)
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x0111
-&subvendor.id          pci 0x10b9
-&subdevice.id          pci 0x0111
-+subdevice.name                C-Media CMI8738/C3DX Audio Device (OEM)
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x0780
-+device.name           Multi-IO Card
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x0782
-+device.name           Multi-IO Card
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1435
-+device.name           M1435
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1445
-+device.name           M1445
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1449
-+device.name           M1449
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1451
-+device.name           M1451
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1461
-+device.name           M1461
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1489
-+device.name           M1489
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1511
-+device.name           M1511 [Aladdin]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1512
-+device.name           M1512 [Aladdin]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1513
-+device.name           M1513 [Aladdin]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1521
-+device.name           M1521 [Aladdin III]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1521
-&subvendor.id          pci 0x10b9
-&subdevice.id          pci 0x1521
-+subdevice.name                ALI M1521 Aladdin III CPU Bridge
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1523
-+device.name           M1523
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1523
-&subvendor.id          pci 0x10b9
-&subdevice.id          pci 0x1523
-+subdevice.name                ALI M1523 ISA Bridge
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1531
-+device.name           M1531 [Aladdin IV]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1533
-+device.name           M1533 PCI to ISA Bridge [Aladdin IV]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1533
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x053b
-+subdevice.name                ThinkPad R40e (2684-HVG) PCI to ISA Bridge
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1533
-&subvendor.id          pci 0x10b9
-&subdevice.id          pci 0x1533
-+subdevice.name                ALI M1533 Aladdin IV ISA Bridge
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1541
-+device.name           M1541
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1541
-&subvendor.id          pci 0x10b9
-&subdevice.id          pci 0x1541
-+subdevice.name                ALI M1541 Aladdin V/V+ AGP System Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1543
-+device.name           M1543
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1563
-+device.name           M1563 HyperTransport South Bridge
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1621
-+device.name           M1621
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1631
-+device.name           ALI M1631 PCI North Bridge Aladdin Pro III
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1632
-+device.name           M1632M Northbridge+Trident
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1641
-+device.name           ALI M1641 PCI North Bridge Aladdin Pro IV
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1644
-+device.name           M1644/M1644T Northbridge+Trident
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1646
-+device.name           M1646 Northbridge+Trident
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1647
-+device.name           M1647 Northbridge [MAGiK 1 / MobileMAGiK 1]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1651
-+device.name           M1651/M1651T Northbridge [Aladdin-Pro 5/5M,Aladdin-Pro 5T/5TM]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1671
-+device.name           M1671 Super P4 Northbridge [AGP4X,PCI and SDR/DDR]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1672
-+device.name           M1672 Northbridge [CyberALADDiN-P4]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1681
-+device.name           M1681 P4 Northbridge [AGP8X,HyperTransport and SDR/DDR]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1687
-+device.name           M1687 K8 Northbridge [AGP8X and HyperTransport]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x1689
-+device.name           M1689 K8 Northbridge [Super K8 Single Chip]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x3141
-+device.name           M3141
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x3143
-+device.name           M3143
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x3145
-+device.name           M3145
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x3147
-+device.name           M3147
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x3149
-+device.name           M3149
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x3151
-+device.name           M3151
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x3307
-+device.name           M3307
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x3309
-+device.name           M3309
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x3323
-+device.name           M3325 Video/Audio Decoder
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5212
-+device.name           M4803
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5215
-+device.name           MS4803
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5217
-+device.name           M5217H
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5219
-+device.name           M5219
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5225
-+device.name           M5225
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5229
-+device.name           M5229 IDE
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x050f
-+subdevice.name                ThinkPad R30
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x053d
-+subdevice.name                ThinkPad R40e (2684-HVG) builtin IDE
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5229
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0024
-+subdevice.name                Pavilion ze4400 builtin IDE
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5229
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8053
-+subdevice.name                A7A266 Motherboard IDE
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5235
-+device.name           M5225
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5237
-+device.name           USB 1.1 Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5237
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0540
-+subdevice.name                ThinkPad R40e (2684-HVG) builtin USB
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5237
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0024
-+subdevice.name                Pavilion ze4400 builtin USB
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5239
-+device.name           USB 2.0 Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5243
-+device.name           M1541 PCI to AGP Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5246
-+device.name           AGP8X Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5247
-+device.name           PCI to AGP Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5249
-+device.name           M5249 HTT to PCI Bridge
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5251
-+device.name           M5251 P1394 OHCI 1.0 Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5253
-+device.name           M5253 P1394 OHCI 1.1 Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5261
-+device.name           M5261 Ethernet Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5263
-+device.name           M5263 Ethernet Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5281
-+device.name           ALi M5281 Serial ATA / RAID Host Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5450
-+device.name           Lucent Technologies Soft Modem AMR
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5451
-+device.name           M5451 PCI AC-Link Controller Audio Device
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5451
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0506
-+subdevice.name                ThinkPad R30
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5451
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x053e
-+subdevice.name                ThinkPad R40e (2684-HVG) builtin Audio
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5451
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0024
-+subdevice.name                Pavilion ze4400 builtin Audio
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5451
-&subvendor.id          pci 0x10b9
-&subdevice.id          pci 0x5451
-+subdevice.name                HP Compaq nc4010 (DY885AA#ABN)
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5453
-+device.name           M5453 PCI AC-Link Controller Modem Device
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5455
-+device.name           M5455 PCI AC-Link Controller Audio Device
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5457
-+device.name           M5457 AC'97 Modem Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5457
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0535
-+subdevice.name                ThinkPad R40e (2684-HVG) builtin modem
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5457
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0024
-+subdevice.name                Pavilion ze4400 builtin Modem Device
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5459
-+device.name           SmartLink SmartPCI561 56K Modem
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x545a
-+device.name           SmartLink SmartPCI563 56K Modem
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5471
-+device.name           M5471 Memory Stick Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x5473
-+device.name           M5473 SD-MMC Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x7101
-+device.name           M7101 Power Management Controller [PMU]
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x7101
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0510
-+subdevice.name                ThinkPad R30
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x7101
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x053c
-+subdevice.name                ThinkPad R40e (2684-HVG) Power Management Controller
-
- vendor.id             pci 0x10b9
-&device.id             pci 0x7101
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0024
-+subdevice.name                Pavilion ze4400
-
- vendor.id             pci 0x10ba
-+vendor.name           Mitsubishi Electric Corp.
-
- vendor.id             pci 0x10ba
-&device.id             pci 0x0301
-+device.name           AccelGraphics AccelECLIPSE
-
- vendor.id             pci 0x10ba
-&device.id             pci 0x0304
-+device.name           AccelGALAXY A2100 [OEM Evans & Sutherland]
-
- vendor.id             pci 0x10ba
-&device.id             pci 0x0308
-+device.name           Tornado 3000 [OEM Evans & Sutherland]
-
- vendor.id             pci 0x10ba
-&device.id             pci 0x1002
-+device.name           VG500 [VolumePro Volume Rendering Accelerator]
-
- vendor.id             pci 0x10bb
-+vendor.name           Dapha Electronics Corporation
-
- vendor.id             pci 0x10bc
-+vendor.name           Advanced Logic Research
-
- vendor.id             pci 0x10bd
-+vendor.name           Surecom Technology
-
- vendor.id             pci 0x10bd
-&device.id             pci 0x0e34
-+device.name           NE-34
-
- vendor.id             pci 0x10be
-+vendor.name           Tseng Labs International Co.
-
- vendor.id             pci 0x10bf
-+vendor.name           Most Inc
-
- vendor.id             pci 0x10c0
-+vendor.name           Boca Research Inc.
-
- vendor.id             pci 0x10c1
-+vendor.name           ICM Co., Ltd.
-
- vendor.id             pci 0x10c2
-+vendor.name           Auspex Systems Inc.
-
- vendor.id             pci 0x10c3
-+vendor.name           Samsung Semiconductors, Inc.
-
- vendor.id             pci 0x10c3
-&device.id             pci 0x1100
-+device.name           Smartether100 SC1100 LAN Adapter (i82557B)
-
- vendor.id             pci 0x10c4
-+vendor.name           Award Software International Inc.
-
- vendor.id             pci 0x10c5
-+vendor.name           Xerox Corporation
-
- vendor.id             pci 0x10c6
-+vendor.name           Rambus Inc.
-
- vendor.id             pci 0x10c7
-+vendor.name           Media Vision
-
- vendor.id             pci 0x10c8
-+vendor.name           Neomagic Corporation
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0001
-+device.name           NM2070 [MagicGraph 128]
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0002
-+device.name           NM2090 [MagicGraph 128V]
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0003
-+device.name           NM2093 [MagicGraph 128ZV]
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-+device.name           NM2160 [MagicGraph 128XD]
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x00ba
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x1007
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0074
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0075
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x007d
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x007e
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x802f
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x801b
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x802f
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x830b
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x10ba
-&subdevice.id          pci 0x0e00
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x10c8
-&subdevice.id          pci 0x0004
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1029
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x10f7
-&subdevice.id          pci 0x8308
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x10f7
-&subdevice.id          pci 0x8309
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x10f7
-&subdevice.id          pci 0x830b
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x10f7
-&subdevice.id          pci 0x830d
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-&subvendor.id          pci 0x10f7
-&subdevice.id          pci 0x8312
-+subdevice.name                MagicGraph 128XD
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0005
-+device.name           NM2200 [MagicGraph 256AV]
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0005
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x00dd
-+subdevice.name                ThinkPad 570
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0005
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0088
-+subdevice.name                Latitude CPi A
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0006
-+device.name           NM2360 [MagicMedia 256ZX]
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0016
-+device.name           NM2380 [MagicMedia 256XL+]
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0016
-&subvendor.id          pci 0x10c8
-&subdevice.id          pci 0x0016
-+subdevice.name                MagicMedia 256XL+
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0025
-+device.name           NM2230 [MagicGraph 256AV+]
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0083
-+device.name           NM2093 [MagicGraph 128ZV+]
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-+device.name           NM2200 [MagicMedia 256AV Audio]
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb0d1
-+subdevice.name                MagicMedia 256AV Audio Device on Discovery
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb126
-+subdevice.name                MagicMedia 256AV Audio Device on Durango
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x00dd
-+subdevice.name                MagicMedia 256AV Audio Device on BlackTip Thinkpad
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x1003
-+subdevice.name                MagicMedia 256AV Audio Device on TravelMate 720
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0088
-+subdevice.name                Latitude CPi A
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x008f
-+subdevice.name                MagicMedia 256AV Audio Device on Colorado Inspiron
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0007
-+subdevice.name                MagicMedia 256AV Audio Device on Voyager II
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0008
-+subdevice.name                MagicMedia 256AV Audio Device on Voyager III
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x000d
-+subdevice.name                MagicMedia 256AV Audio Device on Omnibook 900
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-&subvendor.id          pci 0x10c8
-&subdevice.id          pci 0x8005
-+subdevice.name                MagicMedia 256AV Audio Device on FireAnt
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-&subvendor.id          pci 0x110a
-&subdevice.id          pci 0x8005
-+subdevice.name                MagicMedia 256AV Audio Device
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-&subvendor.id          pci 0x14c0
-&subdevice.id          pci 0x0004
-+subdevice.name                MagicMedia 256AV Audio Device
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8006
-+device.name           NM2360 [MagicMedia 256ZX Audio]
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8016
-+device.name           NM2380 [MagicMedia 256XL+ Audio]
-
- vendor.id             pci 0x10c9
-+vendor.name           Dataexpert Corporation
-
- vendor.id             pci 0x10ca
-+vendor.name           Fujitsu Microelectr., Inc.
-
- vendor.id             pci 0x10cb
-+vendor.name           Omron Corporation
-
- vendor.id             pci 0x10cc
-+vendor.name           Mai Logic Incorporated
-
- vendor.id             pci 0x10cc
-&device.id             pci 0x0660
-+device.name           Articia S Host Bridge
-
- vendor.id             pci 0x10cc
-&device.id             pci 0x0661
-+device.name           Articia S PCI Bridge
-
- vendor.id             pci 0x10cd
-+vendor.name           Advanced System Products, Inc
-
- vendor.id             pci 0x10cd
-&device.id             pci 0x1100
-+device.name           ASC1100
-
- vendor.id             pci 0x10cd
-&device.id             pci 0x1200
-+device.name           ASC1200 [(abp940) Fast SCSI-II]
-
- vendor.id             pci 0x10cd
-&device.id             pci 0x1300
-+device.name           ABP940-U / ABP960-U
-
- vendor.id             pci 0x10cd
-&device.id             pci 0x1300
-&subvendor.id          pci 0x10cd
-&subdevice.id          pci 0x1310
-+subdevice.name                ASC1300 SCSI Adapter
-
- vendor.id             pci 0x10cd
-&device.id             pci 0x2300
-+device.name           ABP940-UW
-
- vendor.id             pci 0x10cd
-&device.id             pci 0x2500
-+device.name           ABP940-U2W
-
- vendor.id             pci 0x10ce
-+vendor.name           Radius
-
- vendor.id             pci 0x10cf
-+vendor.name           Fujitsu Limited.
-
- vendor.id             pci 0x10cf
-&device.id             pci 0x2001
-+device.name           mb86605
-
- vendor.id             pci 0x10d1
-+vendor.name           FuturePlus Systems Corp.
-
- vendor.id             pci 0x10d2
-+vendor.name           Molex Incorporated
-
- vendor.id             pci 0x10d3
-+vendor.name           Jabil Circuit Inc
-
- vendor.id             pci 0x10d4
-+vendor.name           Hualon Microelectronics
-
- vendor.id             pci 0x10d5
-+vendor.name           Autologic Inc.
-
- vendor.id             pci 0x10d6
-+vendor.name           Cetia
-
- vendor.id             pci 0x10d7
-+vendor.name           BCM Advanced Research
-
- vendor.id             pci 0x10d8
-+vendor.name           Advanced Peripherals Labs
-
- vendor.id             pci 0x10d9
-+vendor.name           Macronix, Inc. [MXIC]
-
- vendor.id             pci 0x10d9
-&device.id             pci 0x0512
-+device.name           MX98713
-
- vendor.id             pci 0x10d9
-&device.id             pci 0x0531
-+device.name           MX987x5
-
- vendor.id             pci 0x10d9
-&device.id             pci 0x0531
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1200
-+subdevice.name                DFE-540TX ProFAST 10/100 Adapter
-
- vendor.id             pci 0x10d9
-&device.id             pci 0x8625
-+device.name           MX86250
-
- vendor.id             pci 0x10d9
-&device.id             pci 0x8888
-+device.name           MX86200
-
- vendor.id             pci 0x10da
-+vendor.name           Compaq IPG-Austin
-
- vendor.id             pci 0x10da
-&device.id             pci 0x0508
-+device.name           TC4048 Token Ring 4/16
-
- vendor.id             pci 0x10da
-&device.id             pci 0x3390
-+device.name           Tl3c3x9
-
- vendor.id             pci 0x10db
-+vendor.name           Rohm LSI Systems, Inc.
-
- vendor.id             pci 0x10dc
-+vendor.name           CERN/ECP/EDU
-
- vendor.id             pci 0x10dc
-&device.id             pci 0x0001
-+device.name           STAR/RD24 SCI-PCI (PMC)
-
- vendor.id             pci 0x10dc
-&device.id             pci 0x0002
-+device.name           TAR/RD24 SCI-PCI (PMC)
-
- vendor.id             pci 0x10dc
-&device.id             pci 0x0021
-+device.name           HIPPI destination
-
- vendor.id             pci 0x10dc
-&device.id             pci 0x0022
-+device.name           HIPPI source
-
- vendor.id             pci 0x10dc
-&device.id             pci 0x10dc
-+device.name           ATT2C15-3 FPGA
-
- vendor.id             pci 0x10dd
-+vendor.name           Evans & Sutherland
-
- vendor.id             pci 0x10de
-+vendor.name           nVidia Corporation
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0008
-+device.name           NV1 [EDGE 3D]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0009
-+device.name           NV1 [EDGE 3D]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0010
-+device.name           NV2 [Mutara V08]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-+device.name           NV4 [RIVA TNT]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0200
-+subdevice.name                V3400 TNT
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1048
-&subdevice.id          pci 0x0c18
-+subdevice.name                Erazor II SGRAM
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1048
-&subdevice.id          pci 0x0c1b
-+subdevice.name                Erazor II
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0550
-+subdevice.name                Viper V550
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0552
-+subdevice.name                Viper V550
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4804
-+subdevice.name                Viper V550
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4808
-+subdevice.name                Viper V550
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4810
-+subdevice.name                Viper V550
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4812
-+subdevice.name                Viper V550
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4815
-+subdevice.name                Viper V550
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4820
-+subdevice.name                Viper V550 with TV out
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4822
-+subdevice.name                Viper V550
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4904
-+subdevice.name                Viper V550
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4914
-+subdevice.name                Viper V550
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x8225
-+subdevice.name                Viper V550
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x273d
-+subdevice.name                Velocity 4400
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x273e
-+subdevice.name                Velocity 4400
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x2740
-+subdevice.name                Velocity 4400
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0020
-+subdevice.name                Riva TNT
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1015
-+subdevice.name                Graphics Blaster CT6710
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1016
-+subdevice.name                Graphics Blaster RIVA TNT
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-+device.name           NV5 [RIVA TNT2/TNT2 Pro]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0200
-+subdevice.name                AGP-V3800 SGRAM
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0201
-+subdevice.name                AGP-V3800 SDRAM
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0205
-+subdevice.name                PCI-V3800
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x4000
-+subdevice.name                AGP-V3800PRO
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1048
-&subdevice.id          pci 0x0c21
-+subdevice.name                Synergy II
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1048
-&subdevice.id          pci 0x0c31
-+subdevice.name                Erazor III
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x107d
-&subdevice.id          pci 0x2134
-+subdevice.name                WinFast 3D S320 II + TV-Out
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4804
-+subdevice.name                Viper V770
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4a00
-+subdevice.name                Viper V770
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4a02
-+subdevice.name                Viper V770 Ultra
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x5a00
-+subdevice.name                RIVA TNT2/TNT2 Pro
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x6a02
-+subdevice.name                Viper V770 Ultra
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x7a02
-+subdevice.name                Viper V770 Ultra
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0005
-+subdevice.name                RIVA TNT2 Pro
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x000f
-+subdevice.name                Compaq NVIDIA TNT2 Pro
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1020
-+subdevice.name                3D Blaster RIVA TNT2
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1026
-+subdevice.name                3D Blaster RIVA TNT2 Digital
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-&subvendor.id          pci 0x14af
-&subdevice.id          pci 0x5810
-+subdevice.name                Maxi Gamer Xentor
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0029
-+device.name           NV5 [RIVA TNT2 Ultra]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0029
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0200
-+subdevice.name                AGP-V3800 Deluxe
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0029
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0201
-+subdevice.name                AGP-V3800 Ultra SDRAM
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0029
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0205
-+subdevice.name                PCI-V3800 Ultra
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0029
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1021
-+subdevice.name                3D Blaster RIVA TNT2 Ultra
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0029
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1029
-+subdevice.name                3D Blaster RIVA TNT2 Ultra
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0029
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x102f
-+subdevice.name                3D Blaster RIVA TNT2 Ultra
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0029
-&subvendor.id          pci 0x14af
-&subdevice.id          pci 0x5820
-+subdevice.name                Maxi Gamer Xentor 32
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002a
-+device.name           NV5 [Riva TnT2]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002b
-+device.name           NV5 [Riva TnT2]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002c
-+device.name           NV6 [Vanta/Vanta LT]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002c
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0200
-+subdevice.name                AGP-V3800 Combat SDRAM
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002c
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0201
-+subdevice.name                AGP-V3800 Combat
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002c
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x6820
-+subdevice.name                Viper V730
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002c
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1031
-+subdevice.name                CT6938 VANTA 8MB
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002c
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1034
-+subdevice.name                CT6894 VANTA 16MB
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002c
-&subvendor.id          pci 0x14af
-&subdevice.id          pci 0x5008
-+subdevice.name                Maxi Gamer Phoenix 2
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-+device.name           NV5M64 [RIVA TNT2 Model 64/Model 64 Pro]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0200
-+subdevice.name                AGP-V3800M
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0201
-+subdevice.name                AGP-V3800M
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-&subvendor.id          pci 0x1048
-&subdevice.id          pci 0x0c3a
-+subdevice.name                Erazor III LT
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x001e
-+subdevice.name                M64 AGP4x
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1023
-+subdevice.name                CT6892 RIVA TNT2 Value
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1024
-+subdevice.name                CT6932 RIVA TNT2 Value 32Mb
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x102c
-+subdevice.name                CT6931 RIVA TNT2 Value [Jumper]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x8808
-+subdevice.name                MSI-8808
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-&subvendor.id          pci 0x1554
-&subdevice.id          pci 0x1041
-+subdevice.name                Pixelview RIVA TNT2 M64
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002e
-+device.name           NV6 [Vanta]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002f
-+device.name           NV6 [Vanta]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0034
-+device.name           MCP04 SMBus
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0035
-+device.name           MCP04 IDE
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0036
-+device.name           MCP04 Serial ATA Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0037
-+device.name           MCP04 Ethernet Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0038
-+device.name           MCP04 Ethernet Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x003a
-+device.name           MCP04 AC'97 Audio Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x003b
-+device.name           MCP04 USB Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x003c
-+device.name           MCP04 USB Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x003d
-+device.name           MCP04 PCI Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x003e
-+device.name           MCP04 Serial ATA Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0040
-+device.name           nv40 [GeForce 6800 Ultra]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0041
-+device.name           NV40 [GeForce 6800]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0042
-+device.name           NV40.2
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0043
-+device.name           NV40.3
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0045
-+device.name           NV40 [GeForce 6800 GT]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0049
-+device.name           NV40GL
-
- vendor.id             pci 0x10de
-&device.id             pci 0x004e
-+device.name           NV40GL [Quadro FX 4000]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0052
-+device.name           CK804 SMBus
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0053
-+device.name           CK804 IDE
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0054
-+device.name           CK804 Serial ATA Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0055
-+device.name           CK804 Serial ATA Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0056
-+device.name           CK804 Ethernet Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0057
-+device.name           CK804 Ethernet Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0059
-+device.name           CK804 AC'97 Audio Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x005a
-+device.name           CK804 USB Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x005b
-+device.name           CK804 USB Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x005c
-+device.name           CK804 PCI Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x005d
-+device.name           CK804 PCIE Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x005e
-+device.name           CK804 Memory Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0060
-+device.name           nForce2 ISA Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0060
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80ad
-+subdevice.name                A7N8X Mainboard
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0064
-+device.name           nForce2 SMBus (MCP)
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0065
-+device.name           nForce2 IDE
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0066
-+device.name           nForce2 Ethernet Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0066
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a7
-+subdevice.name                A7N8X Mainboard onboard nForce2 Ethernet
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0067
-+device.name           nForce2 USB Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0067
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0c11
-+subdevice.name                A7N8X Mainboard
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0068
-+device.name           nForce2 USB Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0068
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0c11
-+subdevice.name                A7N8X Mainboard
-
- vendor.id             pci 0x10de
-&device.id             pci 0x006a
-+device.name           nForce2 AC97 Audio Controler (MCP)
-
- vendor.id             pci 0x10de
-&device.id             pci 0x006b
-+device.name           nForce MultiMedia audio [Via VT82C686B]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x006b
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x006b
-+subdevice.name                nForce2 MCP Audio Processing Unit
-
- vendor.id             pci 0x10de
-&device.id             pci 0x006c
-+device.name           nForce2 External PCI Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x006d
-+device.name           nForce2 PCI Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x006e
-+device.name           nForce2 FireWire (IEEE 1394) Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0084
-+device.name           MCP2A SMBus
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0085
-+device.name           MCP2A IDE
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0086
-+device.name           MCP2A Ethernet Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0087
-+device.name           MCP2A USB Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0088
-+device.name           MCP2A USB Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x008a
-+device.name           MCP2S AC'97 Audio Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x008b
-+device.name           MCP2A PCI Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x008c
-+device.name           MCP2A Ethernet Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x008e
-+device.name           nForce2 Serial ATA Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00a0
-+device.name           NV5 [Aladdin TNT2]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00a0
-&subvendor.id          pci 0x14af
-&subdevice.id          pci 0x5810
-+subdevice.name                Maxi Gamer Xentor
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c0
-+device.name           NV41.0
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c1
-+device.name           NV41.1
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c2
-+device.name           NV41.2
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c8
-+device.name           NV41.8
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00ce
-+device.name           NV41GL
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00d0
-+device.name           nForce3 LPC Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00d1
-+device.name           nForce3 Host Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00d2
-+device.name           nForce3 AGP Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00d3
-+device.name           CK804 Memory Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00d4
-+device.name           nForce3 SMBus
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00d5
-+device.name           nForce3 IDE
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00d6
-+device.name           nForce3 Ethernet
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00d7
-+device.name           nForce3 USB 1.1
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00d8
-+device.name           nForce3 USB 2.0
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00da
-+device.name           nForce3 Audio
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00dd
-+device.name           nForce3 PCI Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00df
-+device.name           CK8S Ethernet Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00e1
-+device.name           nForce3 250Gb Host Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00e2
-+device.name           nForce3 250Gb AGP Host to PCI Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00e3
-+device.name           CK8S Serial ATA Controller (v2.5)
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00e4
-+device.name           nForce 250Gb PCI System Management
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00e5
-+device.name           CK8S Parallel ATA Controller (v2.5)
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00e6
-+device.name           CK8S Ethernet Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00e7
-+device.name           CK8S USB Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00e8
-+device.name           CK8S USB Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00ea
-+device.name           nForce3 250Gb AC'97 Audio Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00ed
-+device.name           nForce3 250Gb PCI-to-PCI Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00ee
-+device.name           CK8S Serial ATA Controller (v2.5)
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f0
-+device.name           NV40 [GeForce 6800/GeForce 6800 Ultra]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f1
-+device.name           NV43 [GeForce 6600/GeForce 6600 GT]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f2
-+device.name           NV43 [GeForce 6600 GT]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f8
-+device.name           NV45GL [Quadro FX 3400]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f9
-+device.name           NV40 [GeForce 6800 Ultra]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fa
-+device.name           NV36 [GeForce PCX 5750]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fb
-+device.name           NV35 [GeForce PCX 5900]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fc
-+device.name           NV37GL [Quadro FX 330/GeForce PCX 5300]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fd
-+device.name           NV37GL [Quadro FX 330]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fe
-+device.name           NV38GL [Quadro FX 1300]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00ff
-+device.name           NV18 [GeForce PCX 4300]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0100
-+device.name           NV10 [GeForce 256 SDR]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0200
-+subdevice.name                AGP-V6600 SGRAM
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0201
-+subdevice.name                AGP-V6600 SDRAM
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x4008
-+subdevice.name                AGP-V6600 SGRAM
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x4009
-+subdevice.name                AGP-V6600 SDRAM
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x102d
-+subdevice.name                CT6941 GeForce 256
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0100
-&subvendor.id          pci 0x14af
-&subdevice.id          pci 0x5022
-+subdevice.name                3D Prophet SE
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0101
-+device.name           NV10DDR [GeForce 256 DDR]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0101
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0202
-+subdevice.name                AGP-V6800 DDR
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0101
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x400a
-+subdevice.name                AGP-V6800 DDR SGRAM
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0101
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x400b
-+subdevice.name                AGP-V6800 DDR SDRAM
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0101
-&subvendor.id          pci 0x107d
-&subdevice.id          pci 0x2822
-+subdevice.name                WinFast GeForce 256
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0101
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x102e
-+subdevice.name                CT6971 GeForce 256 DDR
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0101
-&subvendor.id          pci 0x14af
-&subdevice.id          pci 0x5021
-+subdevice.name                3D Prophet DDR-DVI
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0103
-+device.name           NV10GL [Quadro]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0110
-+device.name           NV11 [GeForce2 MX/MX 400]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0110
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x4015
-+subdevice.name                AGP-V7100 Pro
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0110
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x4031
-+subdevice.name                V7100 Pro with TV output
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0110
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0091
-+subdevice.name                Dell OEM GeForce 2 MX 400
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0110
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x8817
-+subdevice.name                MSI GeForce2 MX400 Pro32S [MS-8817]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0110
-&subvendor.id          pci 0x14af
-&subdevice.id          pci 0x7102
-+subdevice.name                3D Prophet II MX
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0110
-&subvendor.id          pci 0x14af
-&subdevice.id          pci 0x7103
-+subdevice.name                3D Prophet II MX Dual-Display
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0111
-+device.name           NV11DDR [GeForce2 MX 100 DDR/200 DDR]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0112
-+device.name           NV11 [GeForce2 Go]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0113
-+device.name           NV11GL [Quadro2 MXR/EX]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0150
-+device.name           NV15 [GeForce2 GTS/Pro]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0150
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x4016
-+subdevice.name                V7700 AGP Video Card
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0150
-&subvendor.id          pci 0x107d
-&subdevice.id          pci 0x2840
-+subdevice.name                WinFast GeForce2 GTS with TV output
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0150
-&subvendor.id          pci 0x107d
-&subdevice.id          pci 0x2842
-+subdevice.name                WinFast GeForce 2 Pro
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0150
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x8831
-+subdevice.name                Creative GeForce2 Pro
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0151
-+device.name           NV15DDR [GeForce2 Ti]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0151
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x405f
-+subdevice.name                V7700Ti
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0151
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x5506
-+subdevice.name                Creative 3D Blaster Geforce2 Titanium
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0152
-+device.name           NV15BR [GeForce2 Ultra, Bladerunner]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0152
-&subvendor.id          pci 0x1048
-&subdevice.id          pci 0x0c56
-+subdevice.name                GLADIAC Ultra
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0153
-+device.name           NV15GL [Quadro2 Pro]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0170
-+device.name           NV17 [GeForce4 MX 460]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0171
-+device.name           NV17 [GeForce4 MX 440]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0171
-&subvendor.id          pci 0x10b0
-&subdevice.id          pci 0x0002
-+subdevice.name                Gainward Pro/600 TV
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0171
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x8661
-+subdevice.name                G4MX440-VTP
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0171
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x8730
-+subdevice.name                MX440SES-T (MS-8873)
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0171
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x8f00
-+subdevice.name                Abit Siluro GeForce4MX440
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0172
-+device.name           NV17 [GeForce4 MX 420]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0173
-+device.name           NV17 [GeForce4 MX 440-SE]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0174
-+device.name           NV17 [GeForce4 440 Go]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0175
-+device.name           NV17 [GeForce4 420 Go]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0176
-+device.name           NV17 [GeForce4 420 Go 32M]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0176
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1090
-+subdevice.name                Cx9 / Vx9 mainboard
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0177
-+device.name           NV17 [GeForce4 460 Go]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0178
-+device.name           NV17GL [Quadro4 550 XGL]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0179
-+device.name           NV17 [GeForce4 440 Go 64M]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0179
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0179
-+subdevice.name                GeForce4 MX (Mac)
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017a
-+device.name           NV17GL [Quadro4 200/400 NVS]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017b
-+device.name           NV17GL [Quadro4 550 XGL]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017c
-+device.name           NV17GL [Quadro4 550 GoGL]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017d
-+device.name           NV17 [GeForce4 410 Go 16M]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0181
-+device.name           NV18 [GeForce4 MX 440 AGP 8x]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0181
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x806f
-+subdevice.name                V9180 Magic
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0181
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x8880
-+subdevice.name                MS-StarForce GeForce4 MX 440 with AGP8X
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0181
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x8900
-+subdevice.name                MS-8890 GeForce 4 MX440 AGP8X
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0181
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x9350
-+subdevice.name                MSI Geforce4 MX T8X with AGP8X
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0181
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x8f0d
-+subdevice.name                Siluro GF4 MX-8X
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0182
-+device.name           NV18 [GeForce4 MX 440SE AGP 8x]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0183
-+device.name           NV18 [GeForce4 MX 420 AGP 8x]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0185
-+device.name           NV18 [GeForce4 MX 4000 AGP 8x]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0186
-+device.name           NV18M [GeForce4 448 Go]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0187
-+device.name           NV18M [GeForce4 488 Go]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0188
-+device.name           NV18GL [Quadro4 580 XGL]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018a
-+device.name           NV18GL [Quadro4 NVS AGP 8x]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018b
-+device.name           NV18GL [Quadro4 380 XGL]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018d
-+device.name           NV18M [GeForce4 448 Go]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01a0
-+device.name           NVCrush11 [GeForce2 MX Integrated Graphics]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01a4
-+device.name           nForce CPU bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01ab
-+device.name           nForce 420 Memory Controller (DDR)
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01ac
-+device.name           nForce 220/420 Memory Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01ad
-+device.name           nForce 220/420 Memory Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01b0
-+device.name           nForce Audio
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01b1
-+device.name           nForce Audio
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01b2
-+device.name           nForce ISA Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01b4
-+device.name           nForce PCI System Management
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01b7
-+device.name           nForce AGP to PCI Bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01b8
-+device.name           nForce PCI-to-PCI bridge
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01bc
-+device.name           nForce IDE
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01c1
-+device.name           nForce AC'97 Modem Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01c2
-+device.name           nForce USB Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01c3
-+device.name           nForce Ethernet Controller
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01e0
-+device.name           nForce2 AGP (different version?)
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01e8
-+device.name           nForce2 AGP
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01ea
-+device.name           nForce2 Memory Controller 0
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01eb
-+device.name           nForce2 Memory Controller 1
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01ec
-+device.name           nForce2 Memory Controller 2
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01ed
-+device.name           nForce2 Memory Controller 3
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01ee
-+device.name           nForce2 Memory Controller 4
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01ef
-+device.name           nForce2 Memory Controller 5
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01f0
-+device.name           NV18 [GeForce4 MX - nForce GPU]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0200
-+device.name           NV20 [GeForce3]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0200
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x402f
-+subdevice.name                AGP-V8200 DDR
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0201
-+device.name           NV20 [GeForce3 Ti 200]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0202
-+device.name           NV20 [GeForce3 Ti 500]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0202
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x405b
-+subdevice.name                V8200 T5
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0202
-&subvendor.id          pci 0x1545
-&subdevice.id          pci 0x002f
-+subdevice.name                Xtasy 6964
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0203
-+device.name           NV20DCC [Quadro DCC]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0250
-+device.name           NV25 [GeForce4 Ti 4600]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0251
-+device.name           NV25 [GeForce4 Ti 4400]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0251
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8023
-+subdevice.name                v8440 GeForce 4 Ti4400
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0252
-+device.name           NV25 [GeForce4 Ti]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0253
-+device.name           NV25 [GeForce4 Ti 4200]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0253
-&subvendor.id          pci 0x107d
-&subdevice.id          pci 0x2896
-+subdevice.name                WinFast A250 LE TD (Dual VGA/TV-out/DVI)
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0253
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x8f09
-+subdevice.name                Siluro (Dual VGA/TV-out/DVI)
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0258
-+device.name           NV25GL [Quadro4 900 XGL]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0259
-+device.name           NV25GL [Quadro4 750 XGL]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x025b
-+device.name           NV25GL [Quadro4 700 XGL]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0280
-+device.name           NV28 [GeForce4 Ti 4800]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0281
-+device.name           NV28 [GeForce4 Ti 4200 AGP 8x]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0282
-+device.name           NV28 [GeForce4 Ti 4800 SE]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0286
-+device.name           NV28 [GeForce4 Ti 4200 Go AGP 8x]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0288
-+device.name           NV28GL [Quadro4 980 XGL]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0289
-+device.name           NV28GL [Quadro4 780 XGL]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x028c
-+device.name           NV28GLM [Quadro4 700 GoGL]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0300
-+device.name           NV30 [GeForce FX]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0301
-+device.name           NV30 [GeForce FX 5800 Ultra]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0302
-+device.name           NV30 [GeForce FX 5800]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0308
-+device.name           NV30GL [Quadro FX 2000]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0309
-+device.name           NV30GL [Quadro FX 1000]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0311
-+device.name           NV31 [GeForce FX 5600 Ultra]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0312
-+device.name           NV31 [GeForce FX 5600]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0313
-+device.name           NV31
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0314
-+device.name           NV31 [GeForce FX 5600XT]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0314
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x814a
-+subdevice.name                V9560XT/TD
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0316
-+device.name           NV31
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0317
-+device.name           NV31
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031a
-+device.name           NV31M [GeForce FX Go 5600]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031b
-+device.name           NV31M [GeForce FX Go5650]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031c
-+device.name           NVIDIA Quadro FX 700 Go
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031d
-+device.name           NV31
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031e
-+device.name           NV31
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031f
-+device.name           NV31
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0320
-+device.name           NV34 [GeForce FX 5200]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0321
-+device.name           NV34 [GeForce FX 5200 Ultra]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0322
-+device.name           NV34 [GeForce FX 5200]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0322
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x9171
-+subdevice.name                MS-8917 (FX5200-T128)
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0323
-+device.name           NV34 [GeForce FX 5200LE]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0324
-+device.name           NV34M [GeForce FX Go 5200]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0324
-&subvendor.id          pci 0x1071
-&subdevice.id          pci 0x8160
-+subdevice.name                MIM2000
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0325
-+device.name           NV34M [GeForce FX Go5250]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0326
-+device.name           NV34 [GeForce FX 5500]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0327
-+device.name           NV34 [GeForce FX 5100]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0328
-+device.name           NV34M [GeForce FX Go 5200]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0329
-+device.name           NV34M [GeForce FX Go5200]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032a
-+device.name           NV34GL [Quadro NVS 280 PCI]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032b
-+device.name           NV34GL [Quadro FX 500/600 PCI]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032c
-+device.name           NV34GLM [GeForce FX Go 5300]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032d
-+device.name           NV34 [GeForce FX Go5100]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032f
-+device.name           NV34
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0330
-+device.name           NV35 [GeForce FX 5900 Ultra]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0331
-+device.name           NV35 [GeForce FX 5900]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0331
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8145
-+subdevice.name                V9950GE
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0332
-+device.name           NV35 [GeForce FX 5900XT]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0333
-+device.name           NV38 [GeForce FX 5950 Ultra]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0334
-+device.name           NV35 [GeForce FX 5900ZT]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0338
-+device.name           NV35GL [Quadro FX 3000]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x033f
-+device.name           NV35GL [Quadro FX 700]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0341
-+device.name           NV36.1 [GeForce FX 5700 Ultra]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0342
-+device.name           NV36.2 [GeForce FX 5700]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0343
-+device.name           NV36 [GeForce FX 5700LE]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0344
-+device.name           NV36.4 [GeForce FX 5700VE]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0345
-+device.name           NV36.5
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0347
-+device.name           NV36 [GeForce FX Go5700]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0348
-+device.name           NV36 [GeForce FX Go5700]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0349
-+device.name           NV36
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034b
-+device.name           NV36
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034c
-+device.name           NV36 [Quadro FX Go1000]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034e
-+device.name           NV36GL [Quadro FX 1100]
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034f
-+device.name           NV36GL
-
- vendor.id             pci 0x10df
-+vendor.name           Emulex Corporation
-
- vendor.id             pci 0x10df
-&device.id             pci 0x1ae5
-+device.name           LP6000 Fibre Channel Host Adapter
-
- vendor.id             pci 0x10df
-&device.id             pci 0x1ae6
-+device.name           LP 8000 Fibre Channel Host Adapter Alternate ID (JX1:2-3, JX2:1-2)
-
- vendor.id             pci 0x10df
-&device.id             pci 0x1ae7
-+device.name           LP 8000 Fibre Channel Host Adapter Alternate ID (JX1:2-3, JX2:2-3)
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf015
-+device.name           LP1150e
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf085
-+device.name           LP850 Fibre Channel Adapter
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf095
-+device.name           LP952 Fibre Channel Adapter
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf098
-+device.name           LP982 Fibre Channel Adapter
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf0a1
-+device.name           LightPulse Fibre Channel Adapter
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf0a5
-+device.name           LP1050
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf0d5
-+device.name           LP1150
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf100
-+device.name           LP11000e
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf700
-+device.name           LP7000 Fibre Channel Host Adapter
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf701
-+device.name           LP 7000EFibre Channel Host Adapter Alternate ID (JX1:2-3, JX2:1-2)
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf800
-+device.name           LP8000 Fibre Channel Host Adapter
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf801
-+device.name           LP 8000 Fibre Channel Host Adapter Alternate ID (JX1:2-3, JX2:1-2)
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf900
-+device.name           LP9000 Fibre Channel Host Adapter
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf901
-+device.name           LP 9000 Fibre Channel Host Adapter Alternate ID (JX1:2-3, JX2:1-2)
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf980
-+device.name           LP9802 Fibre Channel Adapter
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf981
-+device.name           LP 9802 Fibre Channel Host Adapter Alternate ID
-
- vendor.id             pci 0x10df
-&device.id             pci 0xf982
-+device.name           LP 9802 Fibre Channel Host Adapter Alternate ID
-
- vendor.id             pci 0x10df
-&device.id             pci 0xfa00
-+device.name           LP10000 Fibre Channel Host Adapter
-
- vendor.id             pci 0x10df
-&device.id             pci 0xfa01
-+device.name           LP101
-
- vendor.id             pci 0x10df
-&device.id             pci 0xfb00
-+device.name           LightPulse Fibre Channel Adapter
-
- vendor.id             pci 0x10df
-&device.id             pci 0xfd00
-+device.name           LP11000
-
- vendor.id             pci 0x10e0
-+vendor.name           Integrated Micro Solutions Inc.
-
- vendor.id             pci 0x10e0
-&device.id             pci 0x5026
-+device.name           IMS5026/27/28
-
- vendor.id             pci 0x10e0
-&device.id             pci 0x5027
-+device.name           IMS5027
-
- vendor.id             pci 0x10e0
-&device.id             pci 0x5028
-+device.name           IMS5028
-
- vendor.id             pci 0x10e0
-&device.id             pci 0x8849
-+device.name           IMS8849
-
- vendor.id             pci 0x10e0
-&device.id             pci 0x8853
-+device.name           IMS8853
-
- vendor.id             pci 0x10e0
-&device.id             pci 0x9128
-+device.name           IMS9128 [Twin turbo 128]
-
- vendor.id             pci 0x10e1
-+vendor.name           Tekram Technology Co.,Ltd.
-
- vendor.id             pci 0x10e1
-&device.id             pci 0x0391
-+device.name           TRM-S1040
-
- vendor.id             pci 0x10e1
-&device.id             pci 0x0391
-&subvendor.id          pci 0x10e1
-&subdevice.id          pci 0x0391
-+subdevice.name                DC-315U SCSI-3 Host Adapter
-
- vendor.id             pci 0x10e1
-&device.id             pci 0x690c
-+device.name           DC-690c
-
- vendor.id             pci 0x10e1
-&device.id             pci 0xdc29
-+device.name           DC-290
-
- vendor.id             pci 0x10e2
-+vendor.name           Aptix Corporation
-
- vendor.id             pci 0x10e3
-+vendor.name           Tundra Semiconductor Corp.
-
- vendor.id             pci 0x10e3
-&device.id             pci 0x0000
-+device.name           CA91C042 [Universe]
-
- vendor.id             pci 0x10e3
-&device.id             pci 0x0860
-+device.name           CA91C860 [QSpan]
-
- vendor.id             pci 0x10e3
-&device.id             pci 0x0862
-+device.name           CA91C862A [QSpan-II]
-
- vendor.id             pci 0x10e3
-&device.id             pci 0x8260
-+device.name           CA91L8200B [Dual PCI PowerSpan II]
-
- vendor.id             pci 0x10e3
-&device.id             pci 0x8261
-+device.name           CA91L8260B [Single PCI PowerSpan II]
-
- vendor.id             pci 0x10e4
-+vendor.name           Tandem Computers
-
- vendor.id             pci 0x10e5
-+vendor.name           Micro Industries Corporation
-
- vendor.id             pci 0x10e6
-+vendor.name           Gainbery Computer Products Inc.
-
- vendor.id             pci 0x10e7
-+vendor.name           Vadem
-
- vendor.id             pci 0x10e8
-+vendor.name           Applied Micro Circuits Corp.
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x1072
-+device.name           INES GPIB-PCI (AMCC5920 based)
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x2011
-+device.name           Q-Motion Video Capture/Edit board
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x4750
-+device.name           S5930 [Matchmaker]
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x5920
-+device.name           S5920
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x8043
-+device.name           LANai4.x [Myrinet LANai interface chip]
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x8062
-+device.name           S5933_PARASTATION
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x807d
-+device.name           S5933 [Matchmaker]
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x8088
-+device.name           Kongsberg Spacetec Format Synchronizer
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x8089
-+device.name           Kongsberg Spacetec Serial Output Board
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x809c
-+device.name           S5933_HEPC3
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x80d7
-+device.name           PCI-9112
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x80d9
-+device.name           PCI-9118
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x80da
-+device.name           PCI-9812
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x811a
-+device.name           PCI-IEEE1355-DS-DE Interface
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x814c
-+device.name           Fastcom ESCC-PCI (Commtech, Inc.)
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x8170
-+device.name           S5933 [Matchmaker] (Chipset Development Tool)
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x81e6
-+device.name           Multimedia video controller
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x8291
-+device.name           Fastcom 232/8-PCI (Commtech, Inc.)
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x82c4
-+device.name           Fastcom 422/4-PCI (Commtech, Inc.)
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x82c5
-+device.name           Fastcom 422/2-PCI (Commtech, Inc.)
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x82c6
-+device.name           Fastcom IG422/1-PCI (Commtech, Inc.)
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x82c7
-+device.name           Fastcom IG232/2-PCI (Commtech, Inc.)
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x82ca
-+device.name           Fastcom 232/4-PCI (Commtech, Inc.)
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x82db
-+device.name           AJA HDNTV HD SDI Framestore
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x82e2
-+device.name           Fastcom DIO24H-PCI (Commtech, Inc.)
-
- vendor.id             pci 0x10e8
-&device.id             pci 0x8851
-+device.name           S5933 on Innes Corp FM Radio Capture card
-
- vendor.id             pci 0x10e9
-+vendor.name           Alps Electric Co., Ltd.
-
- vendor.id             pci 0x10ea
-+vendor.name           Intergraphics Systems
-
- vendor.id             pci 0x10ea
-&device.id             pci 0x1680
-+device.name           IGA-1680
-
- vendor.id             pci 0x10ea
-&device.id             pci 0x1682
-+device.name           IGA-1682
-
- vendor.id             pci 0x10ea
-&device.id             pci 0x1683
-+device.name           IGA-1683
-
- vendor.id             pci 0x10ea
-&device.id             pci 0x2000
-+device.name           CyberPro 2000
-
- vendor.id             pci 0x10ea
-&device.id             pci 0x2010
-+device.name           CyberPro 2000A
-
- vendor.id             pci 0x10ea
-&device.id             pci 0x5000
-+device.name           CyberPro 5000
-
- vendor.id             pci 0x10ea
-&device.id             pci 0x5050
-+device.name           CyberPro 5050
-
- vendor.id             pci 0x10ea
-&device.id             pci 0x5202
-+device.name           CyberPro 5202
-
- vendor.id             pci 0x10ea
-&device.id             pci 0x5252
-+device.name           CyberPro5252
-
- vendor.id             pci 0x10eb
-+vendor.name           Artists Graphics
-
- vendor.id             pci 0x10eb
-&device.id             pci 0x0101
-+device.name           3GA
-
- vendor.id             pci 0x10eb
-&device.id             pci 0x8111
-+device.name           Twist3 Frame Grabber
-
- vendor.id             pci 0x10ec
-+vendor.name           Realtek Semiconductor Co., Ltd.
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8029
-+device.name           RTL-8029(AS)
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8029
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0x2011
-+subdevice.name                EZ-Card (SMC1208)
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8029
-&subvendor.id          pci 0x10ec
-&subdevice.id          pci 0x8029
-+subdevice.name                RTL-8029(AS)
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8029
-&subvendor.id          pci 0x1113
-&subdevice.id          pci 0x1208
-+subdevice.name                EN1208
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8029
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x0300
-+subdevice.name                DE-528
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8029
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2400
-+subdevice.name                AT-2400
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8129
-+device.name           RTL-8129
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8129
-&subvendor.id          pci 0x10ec
-&subdevice.id          pci 0x8129
-+subdevice.name                RT8129 Fast Ethernet Adapter
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8138
-+device.name           RT8139 (B/C) Cardbus Fast Ethernet Adapter
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8138
-&subvendor.id          pci 0x10ec
-&subdevice.id          pci 0x8138
-+subdevice.name                RT8139 (B/C) Fast Ethernet Adapter
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-+device.name           RTL-8139/8139C/8139C+
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x0357
-&subdevice.id          pci 0x000a
-+subdevice.name                TTP-Monitoring Card V2.0
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x005a
-+subdevice.name                TravelMate 290
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x8920
-+subdevice.name                ALN-325
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x8921
-+subdevice.name                ALN-325
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1071
-&subdevice.id          pci 0x8160
-+subdevice.name                MIM2000
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x10bd
-&subdevice.id          pci 0x0320
-+subdevice.name                EP-320X-R
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x10ec
-&subdevice.id          pci 0x8139
-+subdevice.name                RT8139
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1113
-&subdevice.id          pci 0xec01
-+subdevice.name                FNC-0107TX
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1300
-+subdevice.name                DFE-538TX
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1320
-+subdevice.name                SN5200
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x8139
-+subdevice.name                DRN-32TX
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x11f6
-&subdevice.id          pci 0x8139
-+subdevice.name                FN22-3(A) LinxPRO Ethernet Adapter
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2500
-+subdevice.name                AT-2500TX
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2503
-+subdevice.name                AT-2500TX/ACPI
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1429
-&subdevice.id          pci 0xd010
-+subdevice.name                ND010
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1432
-&subdevice.id          pci 0x9130
-+subdevice.name                EN-9130TX
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1436
-&subdevice.id          pci 0x8139
-+subdevice.name                RT8139
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0xe000
-+subdevice.name                GA-7VM400M/7VT600 Motherboard
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x146c
-&subdevice.id          pci 0x1439
-+subdevice.name                FE-1439TX
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1489
-&subdevice.id          pci 0x6001
-+subdevice.name                GF100TXRII
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1489
-&subdevice.id          pci 0x6002
-+subdevice.name                GF100TXRA
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x149c
-&subdevice.id          pci 0x139a
-+subdevice.name                LFE-8139ATX
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x149c
-&subdevice.id          pci 0x8139
-+subdevice.name                LFE-8139TX
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x14cb
-&subdevice.id          pci 0x0200
-+subdevice.name                LNR-100 Family 10/100 Base-TX Ethernet
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x1799
-&subdevice.id          pci 0x5000
-+subdevice.name                F5D5000 PCI Card/Desktop Network PCI Card
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x2646
-&subdevice.id          pci 0x0001
-+subdevice.name                EtheRx
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x8e2e
-&subdevice.id          pci 0x7000
-+subdevice.name                KF-230TX
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0x8e2e
-&subdevice.id          pci 0x7100
-+subdevice.name                KF-230TX/2
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8139
-&subvendor.id          pci 0xa0a0
-&subdevice.id          pci 0x0007
-+subdevice.name                ALN-325C
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8169
-+device.name           RTL-8169 Gigabit Ethernet
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8169
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0xc107
-+subdevice.name                CG-LAPCIGT
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8169
-&subvendor.id          pci 0x1371
-&subdevice.id          pci 0x434e
-+subdevice.name                ProG-2000L
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8169
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0xe000
-+subdevice.name                GA-K8VT800 Pro Motherboard
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8169
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x702c
-+subdevice.name                K8T NEO 2 motherboard
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8180
-+device.name           RTL8180L 802.11b MAC
-
- vendor.id             pci 0x10ec
-&device.id             pci 0x8197
-+device.name           SmartLAN56 56K Modem
-
- vendor.id             pci 0x10ed
-+vendor.name           Ascii Corporation
-
- vendor.id             pci 0x10ed
-&device.id             pci 0x7310
-+device.name           V7310
-
- vendor.id             pci 0x10ee
-+vendor.name           Xilinx Corporation
-
- vendor.id             pci 0x10ee
-&device.id             pci 0x3fc0
-+device.name           RME Digi96
-
- vendor.id             pci 0x10ee
-&device.id             pci 0x3fc1
-+device.name           RME Digi96/8
-
- vendor.id             pci 0x10ee
-&device.id             pci 0x3fc2
-+device.name           RME Digi96/8 Pro
-
- vendor.id             pci 0x10ee
-&device.id             pci 0x3fc3
-+device.name           RME Digi96/8 Pad
-
- vendor.id             pci 0x10ee
-&device.id             pci 0x3fc4
-+device.name           RME Digi9652 (Hammerfall)
-
- vendor.id             pci 0x10ee
-&device.id             pci 0x3fc5
-+device.name           RME Hammerfall DSP
-
- vendor.id             pci 0x10ee
-&device.id             pci 0x3fc6
-+device.name           RME Hammerfall DSP MADI
-
- vendor.id             pci 0x10ee
-&device.id             pci 0x8381
-+device.name           Ellips Santos Frame Grabber
-
- vendor.id             pci 0x10ef
-+vendor.name           Racore Computer Products, Inc.
-
- vendor.id             pci 0x10ef
-&device.id             pci 0x8154
-+device.name           M815x Token Ring Adapter
-
- vendor.id             pci 0x10f0
-+vendor.name           Peritek Corporation
-
- vendor.id             pci 0x10f1
-+vendor.name           Tyan Computer
-
- vendor.id             pci 0x10f2
-+vendor.name           Achme Computer, Inc.
-
- vendor.id             pci 0x10f3
-+vendor.name           Alaris, Inc.
-
- vendor.id             pci 0x10f4
-+vendor.name           S-MOS Systems, Inc.
-
- vendor.id             pci 0x10f5
-+vendor.name           NKK Corporation
-
- vendor.id             pci 0x10f5
-&device.id             pci 0xa001
-+device.name           NDR4000 [NR4600 Bridge]
-
- vendor.id             pci 0x10f6
-+vendor.name           Creative Electronic Systems SA
-
- vendor.id             pci 0x10f7
-+vendor.name           Matsushita Electric Industrial Co., Ltd.
-
- vendor.id             pci 0x10f8
-+vendor.name           Altos India Ltd
-
- vendor.id             pci 0x10f9
-+vendor.name           PC Direct
-
- vendor.id             pci 0x10fa
-+vendor.name           Truevision
-
- vendor.id             pci 0x10fa
-&device.id             pci 0x000c
-+device.name           TARGA 1000
-
- vendor.id             pci 0x10fb
-+vendor.name           Thesys Gesellschaft fuer Mikroelektronik mbH
-
- vendor.id             pci 0x10fb
-&device.id             pci 0x186f
-+device.name           TH 6255
-
- vendor.id             pci 0x10fc
-+vendor.name           I-O Data Device, Inc.
-
- vendor.id             pci 0x10fc
-&device.id             pci 0x0003
-+device.name           Cardbus IDE Controller
-
- vendor.id             pci 0x10fc
-&device.id             pci 0x0005
-+device.name           Cardbus SCSI CBSC II
-
- vendor.id             pci 0x10fd
-+vendor.name           Soyo Computer, Inc
-
- vendor.id             pci 0x10fe
-+vendor.name           Fast Multimedia AG
-
- vendor.id             pci 0x10ff
-+vendor.name           NCube
-
- vendor.id             pci 0x1100
-+vendor.name           Jazz Multimedia
-
- vendor.id             pci 0x1101
-+vendor.name           Initio Corporation
-
- vendor.id             pci 0x1101
-&device.id             pci 0x1060
-+device.name           INI-A100U2W
-
- vendor.id             pci 0x1101
-&device.id             pci 0x9100
-+device.name           INI-9100/9100W
-
- vendor.id             pci 0x1101
-&device.id             pci 0x9400
-+device.name           INI-940
-
- vendor.id             pci 0x1101
-&device.id             pci 0x9401
-+device.name           INI-950
-
- vendor.id             pci 0x1101
-&device.id             pci 0x9500
-+device.name           360P
-
- vendor.id             pci 0x1101
-&device.id             pci 0x9502
-+device.name           Initio INI-9100UW Ultra Wide SCSI Controller INIC-950P chip
-
- vendor.id             pci 0x1102
-+vendor.name           Creative Labs
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-+device.name           SB Live! EMU10k1
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x0020
-+subdevice.name                CT4850 SBLive! Value
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x0021
-+subdevice.name                CT4620 SBLive!
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x002f
-+subdevice.name                SBLive! mainboard implementation
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x4001
-+subdevice.name                E-mu APS
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8022
-+subdevice.name                CT4780 SBLive! Value
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8023
-+subdevice.name                CT4790 SoundBlaster PCI512
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8024
-+subdevice.name                CT4760 SBLive!
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8025
-+subdevice.name                SBLive! Mainboard Implementation
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8026
-+subdevice.name                CT4830 SBLive! Value
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8027
-+subdevice.name                CT4832 SBLive! Value
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8028
-+subdevice.name                CT4760 SBLive! OEM version
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8031
-+subdevice.name                CT4831 SBLive! Value
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8040
-+subdevice.name                CT4760 SBLive!
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8051
-+subdevice.name                CT4850 SBLive! Value
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8061
-+subdevice.name                SBLive! Player 5.1
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8064
-+subdevice.name                SB Live! 5.1 Model SB0100
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8065
-+subdevice.name                SBLive! 5.1 Digital Model SB0220
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x8067
-+subdevice.name                SBLive! 5.1 eMicro 28028
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0004
-+device.name           SB Audigy
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x0051
-+subdevice.name                SB0090 Audigy Player
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x0053
-+subdevice.name                SB0090 Audigy Player/OEM
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x0058
-+subdevice.name                SB0090 Audigy Player/OEM
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x2002
-+subdevice.name                SB Audigy 2 ZS (SB0350)
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0006
-+device.name           [SB Live! Value] EMU10k1X
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0007
-+device.name           SB Audigy LS
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0007
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1001
-+subdevice.name                SB0310 Audigy LS
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0007
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1002
-+subdevice.name                SB0312 Audigy LS
-
- vendor.id             pci 0x1102
-&device.id             pci 0x0008
-+device.name           SB0400 Audigy2 Value
-
- vendor.id             pci 0x1102
-&device.id             pci 0x4001
-+device.name           SB Audigy FireWire Port
-
- vendor.id             pci 0x1102
-&device.id             pci 0x4001
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x0010
-+subdevice.name                SB Audigy FireWire Port
-
- vendor.id             pci 0x1102
-&device.id             pci 0x7002
-+device.name           SB Live! MIDI/Game Port
-
- vendor.id             pci 0x1102
-&device.id             pci 0x7002
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x0020
-+subdevice.name                Gameport Joystick
-
- vendor.id             pci 0x1102
-&device.id             pci 0x7003
-+device.name           SB Audigy MIDI/Game port
-
- vendor.id             pci 0x1102
-&device.id             pci 0x7003
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x0040
-+subdevice.name                SB Audigy MIDI/Game Port
-
- vendor.id             pci 0x1102
-&device.id             pci 0x7004
-+device.name           [SB Live! Value] Input device controller
-
- vendor.id             pci 0x1102
-&device.id             pci 0x7005
-+device.name           SB Audigy LS MIDI/Game port
-
- vendor.id             pci 0x1102
-&device.id             pci 0x7005
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1001
-+subdevice.name                SB0310 Audigy LS MIDI/Game port
-
- vendor.id             pci 0x1102
-&device.id             pci 0x7005
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1002
-+subdevice.name                SB0312 Audigy LS MIDI/Game port
-
- vendor.id             pci 0x1102
-&device.id             pci 0x8064
-+device.name           SB0100 [SBLive! 5.1 OEM]
-
- vendor.id             pci 0x1102
-&device.id             pci 0x8938
-+device.name           Ectiva EV1938
-
- vendor.id             pci 0x1103
-+vendor.name           Triones Technologies, Inc.
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0003
-+device.name           HPT343
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0004
-+device.name           HPT366/368/370/370A/372
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1103
-&subdevice.id          pci 0x0001
-+subdevice.name                HPT370A
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1103
-&subdevice.id          pci 0x0003
-+subdevice.name                HPT343 / HPT345 / HPT363 UDMA33
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1103
-&subdevice.id          pci 0x0004
-+subdevice.name                HPT366 UDMA66 (r1) / HPT368 UDMA66 (r2) / HPT370 UDMA100 (r3) / HPT370 UDMA100 RAID (r4)
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1103
-&subdevice.id          pci 0x0005
-+subdevice.name                HPT370 UDMA100
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1103
-&subdevice.id          pci 0x0006
-+subdevice.name                HPT302
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1103
-&subdevice.id          pci 0x0007
-+subdevice.name                HPT371 UDMA133
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1103
-&subdevice.id          pci 0x0008
-+subdevice.name                HPT374 UDMA/ATA133 RAID Controller
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0005
-+device.name           HPT372A
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0006
-+device.name           HPT302
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0007
-+device.name           HPT371
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0008
-+device.name           HPT374
-
- vendor.id             pci 0x1103
-&device.id             pci 0x0009
-+device.name           HPT372N
-
- vendor.id             pci 0x1104
-+vendor.name           RasterOps Corp.
-
- vendor.id             pci 0x1105
-+vendor.name           Sigma Designs, Inc.
-
- vendor.id             pci 0x1105
-&device.id             pci 0x1105
-+device.name           REALmagic Xcard MPEG 1/2/3/4 DVD Decoder
-
- vendor.id             pci 0x1105
-&device.id             pci 0x8300
-+device.name           REALmagic Hollywood Plus DVD Decoder
-
- vendor.id             pci 0x1105
-&device.id             pci 0x8400
-+device.name           EM840x REALmagic DVD/MPEG-2 Audio/Video Decoder
-
- vendor.id             pci 0x1105
-&device.id             pci 0x8401
-+device.name           EM8401 REALmagic DVD/MPEG-2 A/V Decoder
-
- vendor.id             pci 0x1105
-&device.id             pci 0x8470
-+device.name           EM8470 REALmagic DVD/MPEG-4 A/V Decoder
-
- vendor.id             pci 0x1105
-&device.id             pci 0x8471
-+device.name           EM8471 REALmagic DVD/MPEG-4 A/V Decoder
-
- vendor.id             pci 0x1105
-&device.id             pci 0x8475
-+device.name           EM8475 REALmagic DVD/MPEG-4 A/V Decoder
-
- vendor.id             pci 0x1105
-&device.id             pci 0x8476
-+device.name           EM8476 REALmagic DVD/MPEG-4 A/V Decoder
-
- vendor.id             pci 0x1105
-&device.id             pci 0x8485
-+device.name           EM8485 REALmagic DVD/MPEG-4 A/V Decoder
-
- vendor.id             pci 0x1105
-&device.id             pci 0x8486
-+device.name           EM8486 REALmagic DVD/MPEG-4 A/V Decoder
-
- vendor.id             pci 0x1106
-+vendor.name           VIA Technologies, Inc.
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0102
-+device.name           Embedded VIA Ethernet Controller
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0130
-+device.name           VT6305 1394.A Controller
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0305
-+device.name           VT8363/8365 [KT133/KM133]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0305
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8033
-+subdevice.name                A7V Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0305
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x803e
-+subdevice.name                A7V-E Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0305
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8042
-+subdevice.name                A7V133/A7V133-C Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0305
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0xa401
-+subdevice.name                KT7/KT7-RAID/KT7A/KT7A-RAID Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0391
-+device.name           VT8371 [KX133]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0501
-+device.name           VT8501 [Apollo MVP4]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0505
-+device.name           VT82C505
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0561
-+device.name           VT82C576MV
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-+device.name           VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0985
-+subdevice.name                P6VXA Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0a81
-+subdevice.name                L7VTA v1.0 Motherboard (KT400-8235)
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8052
-+subdevice.name                VT8233A Bus Master ATA100/66/33 IDE
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x808c
-+subdevice.name                A7V8X motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a1
-+subdevice.name                A7V8X-X motherboard rev. 1.01
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80ed
-+subdevice.name                A7V600 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-&subvendor.id          pci 0x1106
-&subdevice.id          pci 0x0571
-+subdevice.name                VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Magnia Z310
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-&subvendor.id          pci 0x1297
-&subdevice.id          pci 0xf641
-+subdevice.name                FX41 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x5002
-+subdevice.name                GA-7VAX Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7020
-+subdevice.name                K8T NEO 2 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x1407
-+subdevice.name                KV8-MAX3 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0571
-&subvendor.id          pci 0x1849
-&subdevice.id          pci 0x0571
-+subdevice.name                K7VT2 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0576
-+device.name           VT82C576 3V [Apollo Master]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0585
-+device.name           VT82C585VP [Apollo VP1/VPX]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0586
-+device.name           VT82C586/A/B PCI-to-ISA [Apollo VP]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0586
-&subvendor.id          pci 0x1106
-&subdevice.id          pci 0x0000
-+subdevice.name                MVP3 ISA Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0595
-+device.name           VT82C595 [Apollo VP2]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0596
-+device.name           VT82C596 ISA [Mobile South]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0596
-&subvendor.id          pci 0x1106
-&subdevice.id          pci 0x0000
-+subdevice.name                VT82C596/A/B PCI to ISA Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0596
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x0596
-+subdevice.name                VT82C596/A/B PCI to ISA Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0597
-+device.name           VT82C597 [Apollo VP3]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0598
-+device.name           VT82C598 [Apollo MVP3]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0601
-+device.name           VT8601 [Apollo ProMedia]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0605
-+device.name           VT8605 [ProSavage PM133]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0605
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x802c
-+subdevice.name                CUV4X mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0680
-+device.name           VT82C680 [Apollo P6]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0686
-+device.name           VT82C686 [Apollo Super South]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0686
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0985
-+subdevice.name                P6VXA Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0686
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x802c
-+subdevice.name                CUV4X mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0686
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8033
-+subdevice.name                A7V Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0686
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x803e
-+subdevice.name                A7V-E Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0686
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8040
-+subdevice.name                A7M266 Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0686
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8042
-+subdevice.name                A7V133/A7V133-C Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0686
-&subvendor.id          pci 0x1106
-&subdevice.id          pci 0x0000
-+subdevice.name                VT82C686/A PCI to ISA Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0686
-&subvendor.id          pci 0x1106
-&subdevice.id          pci 0x0686
-+subdevice.name                VT82C686/A PCI to ISA Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0686
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Magnia Z310
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0686
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0xa702
-+subdevice.name                KG7-Lite Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0691
-+device.name           VT82C693A/694x [Apollo PRO133x]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0691
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0985
-+subdevice.name                P6VXA Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0691
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Magnia Z310
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0691
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x0691
-+subdevice.name                VT82C691 Apollo Pro System Controller
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0693
-+device.name           VT82C693 [Apollo Pro Plus]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0698
-+device.name           VT82C693A [Apollo Pro133 AGP]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x0926
-+device.name           VT82C926 [Amazon]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x1000
-+device.name           VT82C570MV
-
- vendor.id             pci 0x1106
-&device.id             pci 0x1106
-+device.name           VT82C570MV
-
- vendor.id             pci 0x1106
-&device.id             pci 0x1571
-+device.name           VT82C576M/VT82C586
-
- vendor.id             pci 0x1106
-&device.id             pci 0x1595
-+device.name           VT82C595/97 [Apollo VP2/97]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3022
-+device.name           CLE266
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3038
-+device.name           VT82xxxxx UHCI USB 1.1 Controller
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3038
-&subvendor.id          pci 0x0925
-&subdevice.id          pci 0x1234
-+subdevice.name                USB Controller
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3038
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0985
-+subdevice.name                P6VXA Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3038
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0a81
-+subdevice.name                L7VTA v1.0 Motherboard (KT400-8235)
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3038
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x808c
-+subdevice.name                VT6202 USB2.0 4 port controller
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3038
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a1
-+subdevice.name                A7V8X-X motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3038
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80ed
-+subdevice.name                A7V600 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3038
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Magnia Z310
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3038
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x5004
-+subdevice.name                GA-7VAX Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3038
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7020
-+subdevice.name                K8T NEO 2 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3038
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x1407
-+subdevice.name                KV8-MAX3 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3040
-+device.name           VT82C586B ACPI
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3043
-+device.name           VT86C100A [Rhine]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3043
-&subvendor.id          pci 0x10bd
-&subdevice.id          pci 0x0000
-+subdevice.name                VT86C100A Fast Ethernet Adapter
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3043
-&subvendor.id          pci 0x1106
-&subdevice.id          pci 0x0100
-+subdevice.name                VT86C100A Fast Ethernet Adapter
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3043
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1400
-+subdevice.name                DFE-530TX rev A
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3044
-+device.name           IEEE 1394 Host Controller
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3044
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x005a
-+subdevice.name                TravelMate 290
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3044
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x1000
-+subdevice.name                GA-7VT600-1394 Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3044
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x702d
-+subdevice.name                K8T NEO 2 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3050
-+device.name           VT82C596 Power Management
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3051
-+device.name           VT82C596 Power Management
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3053
-+device.name           VT6105M [Rhine-III]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3057
-+device.name           VT82C686 [Apollo Super ACPI]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3057
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0985
-+subdevice.name                P6VXA Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3057
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8033
-+subdevice.name                A7V Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3057
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x803e
-+subdevice.name                A7V-E Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3057
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8040
-+subdevice.name                A7M266 Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3057
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8042
-+subdevice.name                A7V133/A7V133-C Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3057
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Magnia Z310
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3058
-+device.name           VT82C686 AC97 Audio Controller
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3058
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0097
-+subdevice.name                SoundMax Digital Integrated Audio
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3058
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb194
-+subdevice.name                Soundmax integrated digital audio
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3058
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0985
-+subdevice.name                P6VXA Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3058
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x1106
-+subdevice.name                A7V133/A7V133-C Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3058
-&subvendor.id          pci 0x1106
-&subdevice.id          pci 0x4511
-+subdevice.name                Onboard Audio on EP7KXA
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3058
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x7600
-+subdevice.name                Onboard Audio
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3058
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x3091
-+subdevice.name                MS-6309 Onboard Audio
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3058
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x3300
-+subdevice.name                MS-6330 Onboard Audio
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3058
-&subvendor.id          pci 0x15dd
-&subdevice.id          pci 0x7609
-+subdevice.name                Onboard Audio
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3059
-+device.name           VT8233/A/8235/8237 AC97 Audio Controller
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3059
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0a81
-+subdevice.name                L7VTA v1.0 Motherboard (KT400-8235)
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3059
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8095
-+subdevice.name                A7V8X Motherboard (Realtek ALC650 codec)
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3059
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a1
-+subdevice.name                A7V8X-X Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3059
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80b0
-+subdevice.name                A7V600 motherboard (ADI AD1980 codec [SoundMAX])
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3059
-&subvendor.id          pci 0x1106
-&subdevice.id          pci 0x3059
-+subdevice.name                L7VMM2 Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3059
-&subvendor.id          pci 0x1106
-&subdevice.id          pci 0x4161
-+subdevice.name                K7VT2 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3059
-&subvendor.id          pci 0x1297
-&subdevice.id          pci 0xc160
-+subdevice.name                FX41 motherboard (Realtek ALC650 codec)
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3059
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0xa002
-+subdevice.name                GA-7VAX Onboard Audio (Realtek ALC650)
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3059
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x0080
-+subdevice.name                K8T NEO 2 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3059
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x3800
-+subdevice.name                KT266 onboard audio
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3059
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x1407
-+subdevice.name                KV8-MAX3 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3065
-+device.name           VT6102 [Rhine-II]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3065
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a1
-+subdevice.name                A7V8X-X Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3065
-&subvendor.id          pci 0x1106
-&subdevice.id          pci 0x0102
-+subdevice.name                VT6102 [Rhine II] Embeded Ethernet Controller on VT8235
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3065
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1400
-+subdevice.name                DFE-530TX rev A
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3065
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1401
-+subdevice.name                DFE-530TX rev B
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3065
-&subvendor.id          pci 0x13b9
-&subdevice.id          pci 0x1421
-+subdevice.name                LD-10/100AL PCI Fast Ethernet Adapter (rev.B)
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3068
-+device.name           AC'97 Modem Controller
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3068
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x309e
-+subdevice.name                MS-6309 Saturn Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3074
-+device.name           VT8233 PCI to ISA Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3074
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8052
-+subdevice.name                VT8233A
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3091
-+device.name           VT8633 [Apollo Pro266]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3099
-+device.name           VT8366/A/7 [Apollo KT266/A/333]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3099
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8064
-+subdevice.name                A7V266-E Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3099
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x807f
-+subdevice.name                A7V333 Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3099
-&subvendor.id          pci 0x1849
-&subdevice.id          pci 0x3099
-+subdevice.name                K7VT2 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3101
-+device.name           VT8653 Host Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3102
-+device.name           VT8662 Host Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3103
-+device.name           VT8615 Host Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3104
-+device.name           USB 2.0
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3104
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0a81
-+subdevice.name                L7VTA v1.0 Motherboard (KT400-8235)
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3104
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x808c
-+subdevice.name                A7V8X motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3104
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a1
-+subdevice.name                A7V8X-X motherboard rev 1.01
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3104
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80ed
-+subdevice.name                A7V600 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3104
-&subvendor.id          pci 0x1297
-&subdevice.id          pci 0xf641
-+subdevice.name                FX41 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3104
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x5004
-+subdevice.name                GA-7VAX Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3104
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7020
-+subdevice.name                K8T NEO 2 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3104
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x1407
-+subdevice.name                KV8-MAX3 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3106
-+device.name           VT6105 [Rhine-III]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3106
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1403
-+subdevice.name                DFE-530TX rev C
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3108
-+device.name           S3 Unichrome Pro VGA Adapter
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3109
-+device.name           VT8233C PCI to ISA Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3112
-+device.name           VT8361 [KLE133] Host Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3116
-+device.name           VT8375 [KM266/KL266] Host Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3116
-&subvendor.id          pci 0x1297
-&subdevice.id          pci 0xf641
-+subdevice.name                FX41 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3118
-+device.name           S3 Unichrome Pro VGA Adapter
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3119
-+device.name           VT6120/VT6121/VT6122 Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3122
-+device.name           VT8623 [Apollo CLE266] integrated CastleRock graphics
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3123
-+device.name           VT8623 [Apollo CLE266]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3128
-+device.name           VT8753 [P4X266 AGP]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3133
-+device.name           VT3133 Host Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3147
-+device.name           VT8233A ISA Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3148
-+device.name           P4M266 Host Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3149
-+device.name           VIA VT6420 SATA RAID Controller
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3149
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80ed
-+subdevice.name                A7V600 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3149
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0xb003
-+subdevice.name                GA-7VM400AM(F) Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3149
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7020
-+subdevice.name                K8T Neo 2 Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3156
-+device.name           P/KN266 Host Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3164
-+device.name           VT6410 ATA133 RAID controller
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3168
-+device.name           VT8374 P4X400 Host Controller/AGP Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3177
-+device.name           VT8235 ISA Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3177
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0a81
-+subdevice.name                L7VTA v1.0 Motherboard (KT400-8235)
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3177
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x808c
-+subdevice.name                A7V8X motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3177
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a1
-+subdevice.name                A7V8X-X motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3177
-&subvendor.id          pci 0x1297
-&subdevice.id          pci 0xf641
-+subdevice.name                FX41 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3177
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x5001
-+subdevice.name                GA-7VAX Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3177
-&subvendor.id          pci 0x1849
-&subdevice.id          pci 0x3177
-+subdevice.name                K7VT2 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3188
-+device.name           VT8385 [K8T800 AGP] Host Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3188
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x1407
-+subdevice.name                KV8-MAX3 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3189
-+device.name           VT8377 [KT400/KT600 AGP] Host Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3189
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x807f
-+subdevice.name                A7V8X motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3189
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x5000
-+subdevice.name                GA-7VAX Mainboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3204
-+device.name           K8M800
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3205
-+device.name           VT8378 [KM400/A] Chipset Host Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3205
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x5000
-+subdevice.name                GA-7VM400M Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3227
-+device.name           VT8237 ISA bridge [KT600/K8T800 South]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3227
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80ed
-+subdevice.name                A7V600 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3227
-&subvendor.id          pci 0x1106
-&subdevice.id          pci 0x3227
-+subdevice.name                DFI KT600-AL Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3227
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x5001
-+subdevice.name                GA-7VT600 Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3227
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x1407
-+subdevice.name                KV8-MAX3 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x4149
-+device.name           VIA VT6420 (ATA133) Controller
-
- vendor.id             pci 0x1106
-&device.id             pci 0x5030
-+device.name           VT82C596 ACPI [Apollo PRO]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x6100
-+device.name           VT85C100A [Rhine II]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x7204
-+device.name           K8M800
-
- vendor.id             pci 0x1106
-&device.id             pci 0x7205
-+device.name           VT8378 [S3 UniChrome] Integrated Video
-
- vendor.id             pci 0x1106
-&device.id             pci 0x7205
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0xd000
-+subdevice.name                Gigabyte GA-7VM400(A)M(F) Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x8231
-+device.name           VT8231 [PCI-to-ISA Bridge]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x8235
-+device.name           VT8235 ACPI
-
- vendor.id             pci 0x1106
-&device.id             pci 0x8305
-+device.name           VT8363/8365 [KT133/KM133 AGP]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x8391
-+device.name           VT8371 [KX133 AGP]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x8501
-+device.name           VT8501 [Apollo MVP4 AGP]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x8596
-+device.name           VT82C596 [Apollo PRO AGP]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x8597
-+device.name           VT82C597 [Apollo VP3 AGP]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x8598
-+device.name           VT82C598/694x [Apollo MVP3/Pro133x AGP]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x8598
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0985
-+subdevice.name                P6VXA Motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0x8601
-+device.name           VT8601 [Apollo ProMedia AGP]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x8605
-+device.name           VT8605 [PM133 AGP]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x8691
-+device.name           VT82C691 [Apollo Pro]
-
- vendor.id             pci 0x1106
-&device.id             pci 0x8693
-+device.name           VT82C693 [Apollo Pro Plus] PCI Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0xb091
-+device.name           VT8633 [Apollo Pro266 AGP]
-
- vendor.id             pci 0x1106
-&device.id             pci 0xb099
-+device.name           VT8366/A/7 [Apollo KT266/A/333 AGP]
-
- vendor.id             pci 0x1106
-&device.id             pci 0xb101
-+device.name           VT8653 AGP Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0xb102
-+device.name           VT8362 AGP Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0xb103
-+device.name           VT8615 AGP Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0xb112
-+device.name           VT8361 [KLE133] AGP Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0xb168
-+device.name           VT8235 PCI Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0xb188
-+device.name           VT8237 PCI bridge [K8T800 South]
-
- vendor.id             pci 0x1106
-&device.id             pci 0xb188
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x1407
-+subdevice.name                KV8-MAX3 motherboard
-
- vendor.id             pci 0x1106
-&device.id             pci 0xb198
-+device.name           VT8237 PCI Bridge
-
- vendor.id             pci 0x1106
-&device.id             pci 0xd104
-+device.name           VT8237 Integrated Fast Ethernet Controller
-
- vendor.id             pci 0x1107
-+vendor.name           Stratus Computers
-
- vendor.id             pci 0x1107
-&device.id             pci 0x0576
-+device.name           VIA VT82C570MV [Apollo] (Wrong vendor ID!)
-
- vendor.id             pci 0x1108
-+vendor.name           Proteon, Inc.
-
- vendor.id             pci 0x1108
-&device.id             pci 0x0100
-+device.name           p1690plus_AA
-
- vendor.id             pci 0x1108
-&device.id             pci 0x0101
-+device.name           p1690plus_AB
-
- vendor.id             pci 0x1108
-&device.id             pci 0x0105
-+device.name           P1690Plus
-
- vendor.id             pci 0x1108
-&device.id             pci 0x0108
-+device.name           P1690Plus
-
- vendor.id             pci 0x1108
-&device.id             pci 0x0138
-+device.name           P1690Plus
-
- vendor.id             pci 0x1108
-&device.id             pci 0x0139
-+device.name           P1690Plus
-
- vendor.id             pci 0x1108
-&device.id             pci 0x013c
-+device.name           P1690Plus
-
- vendor.id             pci 0x1108
-&device.id             pci 0x013d
-+device.name           P1690Plus
-
- vendor.id             pci 0x1109
-+vendor.name           Cogent Data Technologies, Inc.
-
- vendor.id             pci 0x1109
-&device.id             pci 0x1400
-+device.name           EM110TX [EX110TX]
-
- vendor.id             pci 0x110a
-+vendor.name           Siemens Nixdorf AG
-
- vendor.id             pci 0x110a
-&device.id             pci 0x0002
-+device.name           Pirahna 2-port
-
- vendor.id             pci 0x110a
-&device.id             pci 0x0005
-+device.name           Tulip controller, power management, switch extender
-
- vendor.id             pci 0x110a
-&device.id             pci 0x0006
-+device.name           FSC PINC (I/O-APIC)
-
- vendor.id             pci 0x110a
-&device.id             pci 0x0015
-+device.name           FSC Multiprocessor Interrupt Controller
-
- vendor.id             pci 0x110a
-&device.id             pci 0x001d
-+device.name           FSC Copernicus Management Controller
-
- vendor.id             pci 0x110a
-&device.id             pci 0x007b
-+device.name           FSC Remote Service Controller, mailbox device
-
- vendor.id             pci 0x110a
-&device.id             pci 0x007c
-+device.name           FSC Remote Service Controller, shared memory device
-
- vendor.id             pci 0x110a
-&device.id             pci 0x007d
-+device.name           FSC Remote Service Controller, SMIC device
-
- vendor.id             pci 0x110a
-&device.id             pci 0x2102
-+device.name           DSCC4 PEB/PEF 20534 DMA Supported Serial Communication Controller with 4 Channels
-
- vendor.id             pci 0x110a
-&device.id             pci 0x2104
-+device.name           Eicon Diva 2.02 compatible passive ISDN card
-
- vendor.id             pci 0x110a
-&device.id             pci 0x3142
-+device.name           SIMATIC NET CP 5613A1 (Profibus Adapter)
-
- vendor.id             pci 0x110a
-&device.id             pci 0x4021
-+device.name           SIMATIC NET CP 5512 (Profibus and MPI Cardbus Adapter)
-
- vendor.id             pci 0x110a
-&device.id             pci 0x4029
-+device.name           SIMATIC NET CP 5613A2 (Profibus Adapter)
-
- vendor.id             pci 0x110a
-&device.id             pci 0x4942
-+device.name           FPGA I-Bus Tracer for MBD
-
- vendor.id             pci 0x110a
-&device.id             pci 0x6120
-+device.name           SZB6120
-
- vendor.id             pci 0x110b
-+vendor.name           Chromatic Research Inc.
-
- vendor.id             pci 0x110b
-&device.id             pci 0x0001
-+device.name           Mpact Media Processor
-
- vendor.id             pci 0x110b
-&device.id             pci 0x0004
-+device.name           Mpact 2
-
- vendor.id             pci 0x110c
-+vendor.name           Mini-Max Technology, Inc.
-
- vendor.id             pci 0x110d
-+vendor.name           Znyx Advanced Systems
-
- vendor.id             pci 0x110e
-+vendor.name           CPU Technology
-
- vendor.id             pci 0x110f
-+vendor.name           Ross Technology
-
- vendor.id             pci 0x1110
-+vendor.name           Powerhouse Systems
-
- vendor.id             pci 0x1110
-&device.id             pci 0x6037
-+device.name           Firepower Powerized SMP I/O ASIC
-
- vendor.id             pci 0x1110
-&device.id             pci 0x6073
-+device.name           Firepower Powerized SMP I/O ASIC
-
- vendor.id             pci 0x1111
-+vendor.name           Santa Cruz Operation
-
- vendor.id             pci 0x1112
-+vendor.name           Osicom Technologies Inc
-
- vendor.id             pci 0x1112
-&device.id             pci 0x2200
-+device.name           FDDI Adapter
-
- vendor.id             pci 0x1112
-&device.id             pci 0x2300
-+device.name           Fast Ethernet Adapter
-
- vendor.id             pci 0x1112
-&device.id             pci 0x2340
-+device.name           4 Port Fast Ethernet Adapter
-
- vendor.id             pci 0x1112
-&device.id             pci 0x2400
-+device.name           ATM Adapter
-
- vendor.id             pci 0x1113
-+vendor.name           Accton Technology Corporation
-
- vendor.id             pci 0x1113
-&device.id             pci 0x1211
-+device.name           SMC2-1211TX
-
- vendor.id             pci 0x1113
-&device.id             pci 0x1211
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x1207
-+subdevice.name                EN-1207D Fast Ethernet Adapter
-
- vendor.id             pci 0x1113
-&device.id             pci 0x1211
-&subvendor.id          pci 0x1113
-&subdevice.id          pci 0x1211
-+subdevice.name                EN-1207D Fast Ethernet Adapter
-
- vendor.id             pci 0x1113
-&device.id             pci 0x1216
-+device.name           EN-1216 Ethernet Adapter
-
- vendor.id             pci 0x1113
-&device.id             pci 0x1216
-&subvendor.id          pci 0x1113
-&subdevice.id          pci 0x2242
-+subdevice.name                EN2242 10/100 Ethernet Mini-PCI Card
-
- vendor.id             pci 0x1113
-&device.id             pci 0x1216
-&subvendor.id          pci 0x111a
-&subdevice.id          pci 0x1020
-+subdevice.name                SpeedStream 1020 PCI 10/100 Ethernet Adaptor [EN-1207F-TX ?]
-
- vendor.id             pci 0x1113
-&device.id             pci 0x1217
-+device.name           EN-1217 Ethernet Adapter
-
- vendor.id             pci 0x1113
-&device.id             pci 0x5105
-+device.name           10Mbps Network card
-
- vendor.id             pci 0x1113
-&device.id             pci 0x9211
-+device.name           EN-1207D Fast Ethernet Adapter
-
- vendor.id             pci 0x1113
-&device.id             pci 0x9211
-&subvendor.id          pci 0x1113
-&subdevice.id          pci 0x9211
-+subdevice.name                EN-1207D Fast Ethernet Adapter
-
- vendor.id             pci 0x1113
-&device.id             pci 0x9511
-+device.name           21x4x DEC-Tulip compatible Fast Ethernet
-
- vendor.id             pci 0x1113
-&device.id             pci 0xd301
-+device.name           CPWNA100 (Philips wireless PCMCIA)
-
- vendor.id             pci 0x1113
-&device.id             pci 0xec02
-+device.name           SMC 1244TX v3
-
- vendor.id             pci 0x1114
-+vendor.name           Atmel Corporation
-
- vendor.id             pci 0x1114
-&device.id             pci 0x0506
-+device.name           802.11b Wireless Network Adaptor (at76c506)
-
- vendor.id             pci 0x1115
-+vendor.name           3D Labs
-
- vendor.id             pci 0x1116
-+vendor.name           Data Translation
-
- vendor.id             pci 0x1116
-&device.id             pci 0x0022
-+device.name           DT3001
-
- vendor.id             pci 0x1116
-&device.id             pci 0x0023
-+device.name           DT3002
-
- vendor.id             pci 0x1116
-&device.id             pci 0x0024
-+device.name           DT3003
-
- vendor.id             pci 0x1116
-&device.id             pci 0x0025
-+device.name           DT3004
-
- vendor.id             pci 0x1116
-&device.id             pci 0x0026
-+device.name           DT3005
-
- vendor.id             pci 0x1116
-&device.id             pci 0x0027
-+device.name           DT3001-PGL
-
- vendor.id             pci 0x1116
-&device.id             pci 0x0028
-+device.name           DT3003-PGL
-
- vendor.id             pci 0x1117
-+vendor.name           Datacube, Inc
-
- vendor.id             pci 0x1117
-&device.id             pci 0x9500
-+device.name           Max-1C SVGA card
-
- vendor.id             pci 0x1117
-&device.id             pci 0x9501
-+device.name           Max-1C image processing
-
- vendor.id             pci 0x1118
-+vendor.name           Berg Electronics
-
- vendor.id             pci 0x1119
-+vendor.name           ICP Vortex Computersysteme GmbH
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0000
-+device.name           GDT 6000/6020/6050
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0001
-+device.name           GDT 6000B/6010
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0002
-+device.name           GDT 6110/6510
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0003
-+device.name           GDT 6120/6520
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0004
-+device.name           GDT 6530
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0005
-+device.name           GDT 6550
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0006
-+device.name           GDT 6117/6517
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0007
-+device.name           GDT 6127/6527
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0008
-+device.name           GDT 6537
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0009
-+device.name           GDT 6557/6557-ECC
-
- vendor.id             pci 0x1119
-&device.id             pci 0x000a
-+device.name           GDT 6115/6515
-
- vendor.id             pci 0x1119
-&device.id             pci 0x000b
-+device.name           GDT 6125/6525
-
- vendor.id             pci 0x1119
-&device.id             pci 0x000c
-+device.name           GDT 6535
-
- vendor.id             pci 0x1119
-&device.id             pci 0x000d
-+device.name           GDT 6555
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0010
-+device.name           GDT 6115/6515
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0011
-+device.name           GDT 6125/6525
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0012
-+device.name           GDT 6535
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0013
-+device.name           GDT 6555/6555-ECC
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0100
-+device.name           GDT 6117RP/6517RP
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0101
-+device.name           GDT 6127RP/6527RP
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0102
-+device.name           GDT 6537RP
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0103
-+device.name           GDT 6557RP
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0104
-+device.name           GDT 6111RP/6511RP
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0105
-+device.name           GDT 6121RP/6521RP
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0110
-+device.name           GDT 6117RD/6517RD
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0111
-+device.name           GDT 6127RD/6527RD
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0112
-+device.name           GDT 6537RD
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0113
-+device.name           GDT 6557RD
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0114
-+device.name           GDT 6111RD/6511RD
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0115
-+device.name           GDT 6121RD/6521RD
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0118
-+device.name           GDT 6118RD/6518RD/6618RD
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0119
-+device.name           GDT 6128RD/6528RD/6628RD
-
- vendor.id             pci 0x1119
-&device.id             pci 0x011a
-+device.name           GDT 6538RD/6638RD
-
- vendor.id             pci 0x1119
-&device.id             pci 0x011b
-+device.name           GDT 6558RD/6658RD
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0120
-+device.name           GDT 6117RP2/6517RP2
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0121
-+device.name           GDT 6127RP2/6527RP2
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0122
-+device.name           GDT 6537RP2
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0123
-+device.name           GDT 6557RP2
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0124
-+device.name           GDT 6111RP2/6511RP2
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0125
-+device.name           GDT 6121RP2/6521RP2
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0136
-+device.name           GDT 6113RS/6513RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0137
-+device.name           GDT 6123RS/6523RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0138
-+device.name           GDT 6118RS/6518RS/6618RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0139
-+device.name           GDT 6128RS/6528RS/6628RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x013a
-+device.name           GDT 6538RS/6638RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x013b
-+device.name           GDT 6558RS/6658RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x013c
-+device.name           GDT 6533RS/6633RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x013d
-+device.name           GDT 6543RS/6643RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x013e
-+device.name           GDT 6553RS/6653RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x013f
-+device.name           GDT 6563RS/6663RS
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0166
-+device.name           GDT 7113RN/7513RN/7613RN
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0167
-+device.name           GDT 7123RN/7523RN/7623RN
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0168
-+device.name           GDT 7118RN/7518RN/7518RN
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0169
-+device.name           GDT 7128RN/7528RN/7628RN
-
- vendor.id             pci 0x1119
-&device.id             pci 0x016a
-+device.name           GDT 7538RN/7638RN
-
- vendor.id             pci 0x1119
-&device.id             pci 0x016b
-+device.name           GDT 7558RN/7658RN
-
- vendor.id             pci 0x1119
-&device.id             pci 0x016c
-+device.name           GDT 7533RN/7633RN
-
- vendor.id             pci 0x1119
-&device.id             pci 0x016d
-+device.name           GDT 7543RN/7643RN
-
- vendor.id             pci 0x1119
-&device.id             pci 0x016e
-+device.name           GDT 7553RN/7653RN
-
- vendor.id             pci 0x1119
-&device.id             pci 0x016f
-+device.name           GDT 7563RN/7663RN
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01d6
-+device.name           GDT 4x13RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01d7
-+device.name           GDT 4x23RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01f6
-+device.name           GDT 8x13RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01f7
-+device.name           GDT 8x23RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01fc
-+device.name           GDT 8x33RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01fd
-+device.name           GDT 8x43RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01fe
-+device.name           GDT 8x53RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x01ff
-+device.name           GDT 8x63RZ
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0210
-+device.name           GDT 6519RD/6619RD
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0211
-+device.name           GDT 6529RD/6629RD
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0260
-+device.name           GDT 7519RN/7619RN
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0261
-+device.name           GDT 7529RN/7629RN
-
- vendor.id             pci 0x1119
-&device.id             pci 0x02ff
-+device.name           GDT MAXRP
-
- vendor.id             pci 0x1119
-&device.id             pci 0x0300
-+device.name           GDT NEWRX
-
- vendor.id             pci 0x111a
-+vendor.name           Efficient Networks, Inc
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0000
-+device.name           155P-MF1 (FPGA)
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0002
-+device.name           155P-MF1 (ASIC)
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0003
-+device.name           ENI-25P ATM
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x111a
-&subdevice.id          pci 0x0000
-+subdevice.name                ENI-25p Miniport ATM Adapter
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0005
-+device.name           SpeedStream (LANAI)
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x111a
-&subdevice.id          pci 0x0001
-+subdevice.name                ENI-3010 ATM
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x111a
-&subdevice.id          pci 0x0009
-+subdevice.name                ENI-3060 ADSL (VPI=0)
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x111a
-&subdevice.id          pci 0x0101
-+subdevice.name                ENI-3010 ATM
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x111a
-&subdevice.id          pci 0x0109
-+subdevice.name                ENI-3060CO ADSL (VPI=0)
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x111a
-&subdevice.id          pci 0x0809
-+subdevice.name                ENI-3060 ADSL (VPI=0 or 8)
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x111a
-&subdevice.id          pci 0x0909
-+subdevice.name                ENI-3060CO ADSL (VPI=0 or 8)
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x111a
-&subdevice.id          pci 0x0a09
-+subdevice.name                ENI-3060 ADSL (VPI=<0..15>)
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0007
-+device.name           SpeedStream ADSL
-
- vendor.id             pci 0x111a
-&device.id             pci 0x0007
-&subvendor.id          pci 0x111a
-&subdevice.id          pci 0x1001
-+subdevice.name                ENI-3061 ADSL [ASIC]
-
- vendor.id             pci 0x111a
-&device.id             pci 0x1203
-+device.name           SpeedStream 1023 Wireless PCI Adapter
-
- vendor.id             pci 0x111b
-+vendor.name           Teledyne Electronic Systems
-
- vendor.id             pci 0x111c
-+vendor.name           Tricord Systems Inc.
-
- vendor.id             pci 0x111c
-&device.id             pci 0x0001
-+device.name           Powerbis Bridge
-
- vendor.id             pci 0x111d
-+vendor.name           Integrated Device Technology, Inc.
-
- vendor.id             pci 0x111d
-&device.id             pci 0x0001
-+device.name           IDT77201/77211 155Mbps ATM SAR Controller [NICStAR]
-
- vendor.id             pci 0x111d
-&device.id             pci 0x0003
-+device.name           IDT77222/77252 155Mbps ATM MICRO ABR SAR Controller
-
- vendor.id             pci 0x111d
-&device.id             pci 0x0004
-+device.name           IDT77V252 155Mbps ATM MICRO ABR SAR Controller
-
- vendor.id             pci 0x111d
-&device.id             pci 0x0005
-+device.name           IDT77V222 155Mbps ATM MICRO ABR SAR Controller
-
- vendor.id             pci 0x111e
-+vendor.name           Eldec
-
- vendor.id             pci 0x111f
-+vendor.name           Precision Digital Images
-
- vendor.id             pci 0x111f
-&device.id             pci 0x4a47
-+device.name           Precision MX Video engine interface
-
- vendor.id             pci 0x111f
-&device.id             pci 0x5243
-+device.name           Frame capture bus interface
-
- vendor.id             pci 0x1120
-+vendor.name           EMC Corporation
-
- vendor.id             pci 0x1121
-+vendor.name           Zilog
-
- vendor.id             pci 0x1122
-+vendor.name           Multi-tech Systems, Inc.
-
- vendor.id             pci 0x1123
-+vendor.name           Excellent Design, Inc.
-
- vendor.id             pci 0x1124
-+vendor.name           Leutron Vision AG
-
- vendor.id             pci 0x1125
-+vendor.name           Eurocore
-
- vendor.id             pci 0x1126
-+vendor.name           Vigra
-
- vendor.id             pci 0x1127
-+vendor.name           FORE Systems Inc
-
- vendor.id             pci 0x1127
-&device.id             pci 0x0200
-+device.name           ForeRunner PCA-200 ATM
-
- vendor.id             pci 0x1127
-&device.id             pci 0x0210
-+device.name           PCA-200PC
-
- vendor.id             pci 0x1127
-&device.id             pci 0x0250
-+device.name           ATM
-
- vendor.id             pci 0x1127
-&device.id             pci 0x0300
-+device.name           ForeRunner PCA-200EPC ATM
-
- vendor.id             pci 0x1127
-&device.id             pci 0x0310
-+device.name           ATM
-
- vendor.id             pci 0x1127
-&device.id             pci 0x0400
-+device.name           ForeRunnerHE ATM Adapter
-
- vendor.id             pci 0x1127
-&device.id             pci 0x0400
-&subvendor.id          pci 0x1127
-&subdevice.id          pci 0x0400
-+subdevice.name                ForeRunnerHE ATM
-
- vendor.id             pci 0x1129
-+vendor.name           Firmworks
-
- vendor.id             pci 0x112a
-+vendor.name           Hermes Electronics Company, Ltd.
-
- vendor.id             pci 0x112b
-+vendor.name           Linotype - Hell AG
-
- vendor.id             pci 0x112c
-+vendor.name           Zenith Data Systems
-
- vendor.id             pci 0x112d
-+vendor.name           Ravicad
-
- vendor.id             pci 0x112e
-+vendor.name           Infomedia Microelectronics Inc.
-
- vendor.id             pci 0x112f
-+vendor.name           Imaging Technology Inc
-
- vendor.id             pci 0x112f
-&device.id             pci 0x0000
-+device.name           MVC IC-PCI
-
- vendor.id             pci 0x112f
-&device.id             pci 0x0001
-+device.name           MVC IM-PCI Video frame grabber/processor
-
- vendor.id             pci 0x1130
-+vendor.name           Computervision
-
- vendor.id             pci 0x1131
-+vendor.name           Philips Semiconductors
-
- vendor.id             pci 0x1131
-&device.id             pci 0x1561
-+device.name           USB 1.1 Host Controller
-
- vendor.id             pci 0x1131
-&device.id             pci 0x1562
-+device.name           USB 2.0 Host Controller
-
- vendor.id             pci 0x1131
-&device.id             pci 0x3400
-+device.name           SmartPCI56(UCB1500) 56K Modem
-
- vendor.id             pci 0x1131
-&device.id             pci 0x5400
-+device.name           TriMedia TM1000/1100
-
- vendor.id             pci 0x1131
-&device.id             pci 0x5402
-+device.name           TriMedia TM-1300
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7130
-+device.name           SAA7130 Video Broadcast Decoder
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7130
-&subvendor.id          pci 0x5168
-&subdevice.id          pci 0x0138
-+subdevice.name                LiveView FlyVideo 2000
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7133
-+device.name           SAA713X Audio+video broadcast decoder
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7133
-&subvendor.id          pci 0x5168
-&subdevice.id          pci 0x0138
-+subdevice.name                LifeView FlyVideo 3000
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7133
-&subvendor.id          pci 0x5168
-&subdevice.id          pci 0x0212
-+subdevice.name                LifeView FlyTV Platinum mini
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7134
-+device.name           SAA7134
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7135
-+device.name           SAA7135 Audio+video broadcast decoder
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7145
-+device.name           SAA7145
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-+device.name           SAA7146
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x110a
-&subdevice.id          pci 0x0000
-+subdevice.name                Fujitsu/Siemens DVB-C card rev1.5
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x110a
-&subdevice.id          pci 0xffff
-+subdevice.name                Fujitsu/Siemens DVB-C card rev1.5
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x1131
-&subdevice.id          pci 0x4f56
-+subdevice.name                KNC1 DVB-S Budget
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x1131
-&subdevice.id          pci 0x4f61
-+subdevice.name                Fujitsu-Siemens Activy DVB-S Budget
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x114b
-&subdevice.id          pci 0x2003
-+subdevice.name                DVRaptor Video Edit/Capture Card
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x0006
-+subdevice.name                DV500 Overlay
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x000a
-+subdevice.name                DV500 Overlay
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x0000
-+subdevice.name                Siemens/Technotrend/Hauppauge DVB card rev1.3 or rev1.5
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x0001
-+subdevice.name                Technotrend/Hauppauge DVB card rev1.3 or rev1.6
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x0002
-+subdevice.name                Technotrend/Hauppauge DVB card rev2.1
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x0003
-+subdevice.name                Technotrend/Hauppauge DVB card rev2.1
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x0004
-+subdevice.name                Technotrend/Hauppauge DVB card rev2.1
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x0006
-+subdevice.name                Technotrend/Hauppauge DVB card rev1.3 or rev1.6
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x0008
-+subdevice.name                Technotrend/Hauppauge DVB-T
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x000a
-+subdevice.name                Octal/Technotrend DVB-C for iTV
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x1003
-+subdevice.name                Technotrend-Budget / Hauppauge WinTV-NOVA-S DVB card
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x1004
-+subdevice.name                Technotrend-Budget / Hauppauge WinTV-NOVA-C DVB card
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x1005
-+subdevice.name                Technotrend-Budget / Hauppauge WinTV-NOVA-T DVB card
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x100c
-+subdevice.name                Technotrend-Budget / Hauppauge WinTV-NOVA-CI DVB card
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x100f
-+subdevice.name                Technotrend-Budget / Hauppauge WinTV-NOVA-CI DVB card
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x1011
-+subdevice.name                Technotrend-Budget / Hauppauge WinTV-NOVA-T DVB card
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x1013
-+subdevice.name                SATELCO Multimedia DVB
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7146
-&subvendor.id          pci 0x13c2
-&subdevice.id          pci 0x1102
-+subdevice.name                Technotrend/Hauppauge DVB card rev2.1
-
- vendor.id             pci 0x1132
-+vendor.name           Mitel Corp.
-
- vendor.id             pci 0x1133
-+vendor.name           Eicon Networks Corporation
-
- vendor.id             pci 0x1133
-&device.id             pci 0x7901
-+device.name           EiconCard S90
-
- vendor.id             pci 0x1133
-&device.id             pci 0x7902
-+device.name           EiconCard S90
-
- vendor.id             pci 0x1133
-&device.id             pci 0x7911
-+device.name           EiconCard S91
-
- vendor.id             pci 0x1133
-&device.id             pci 0x7912
-+device.name           EiconCard S91
-
- vendor.id             pci 0x1133
-&device.id             pci 0x7941
-+device.name           EiconCard S94
-
- vendor.id             pci 0x1133
-&device.id             pci 0x7942
-+device.name           EiconCard S94
-
- vendor.id             pci 0x1133
-&device.id             pci 0x7943
-+device.name           EiconCard S94
-
- vendor.id             pci 0x1133
-&device.id             pci 0x7944
-+device.name           EiconCard S94
-
- vendor.id             pci 0x1133
-&device.id             pci 0xb921
-+device.name           EiconCard P92
-
- vendor.id             pci 0x1133
-&device.id             pci 0xb922
-+device.name           EiconCard P92
-
- vendor.id             pci 0x1133
-&device.id             pci 0xb923
-+device.name           EiconCard P92
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe001
-+device.name           Diva Pro 2.0 S/T
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe002
-+device.name           Diva 2.0 S/T PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe003
-+device.name           Diva Pro 2.0 U
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe004
-+device.name           Diva 2.0 U PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe005
-+device.name           Diva 2.01 S/T PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe006
-+device.name           Diva CT S/T PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe007
-+device.name           Diva CT U PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe008
-+device.name           Diva CT Lite S/T PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe009
-+device.name           Diva CT Lite U PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe00a
-+device.name           Diva ISDN+V.90 PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe00b
-+device.name           Diva 2.02 PCI S/T
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe00c
-+device.name           Diva 2.02 PCI U
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe00d
-+device.name           Diva ISDN Pro 3.0 PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe00e
-+device.name           Diva ISDN+CT S/T PCI Rev 2
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe010
-+device.name           Diva Server BRI-2M PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe010
-&subvendor.id          pci 0x110a
-&subdevice.id          pci 0x0021
-+subdevice.name                Fujitsu Siemens ISDN S0
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe010
-&subvendor.id          pci 0x8001
-&subdevice.id          pci 0x0014
-+subdevice.name                Diva Server BRI-2M PCI Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe011
-+device.name           Diva Server BRI S/T Rev 2
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe012
-+device.name           Diva Server 4BRI-8M PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe012
-&subvendor.id          pci 0x8001
-&subdevice.id          pci 0x0014
-+subdevice.name                Diva Server 4BRI-8M PCI Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe013
-+device.name           Diva Server 4BRI Rev 2
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe013
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1300
-+subdevice.name                Diva Server V-4BRI-8
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe013
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0xe013
-+subdevice.name                Diva Server 4BRI-8M 2.0 PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe013
-&subvendor.id          pci 0x8001
-&subdevice.id          pci 0x0014
-+subdevice.name                Diva Server 4BRI-8M 2.0 PCI Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe014
-+device.name           Diva Server PRI-30M PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe014
-&subvendor.id          pci 0x0008
-&subdevice.id          pci 0x0100
-+subdevice.name                Diva Server PRI-30M PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe014
-&subvendor.id          pci 0x8001
-&subdevice.id          pci 0x0014
-+subdevice.name                Diva Server PRI-30M PCI Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe015
-+device.name           DIVA Server PRI Rev 2
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe015
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0xe015
-+subdevice.name                Diva Server PRI 2.0 PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe015
-&subvendor.id          pci 0x8001
-&subdevice.id          pci 0x0014
-+subdevice.name                Diva Server PRI 2.0 PCI Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe016
-+device.name           Diva Server Voice 4BRI PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe016
-&subvendor.id          pci 0x8001
-&subdevice.id          pci 0x0014
-+subdevice.name                Diva Server PRI Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe017
-+device.name           Diva Server Voice 4BRI Rev 2
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe017
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0xe017
-+subdevice.name                Diva Server Voice 4BRI-8M 2.0 PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe017
-&subvendor.id          pci 0x8001
-&subdevice.id          pci 0x0014
-+subdevice.name                Diva Server Voice 4BRI-8M 2.0 PCI Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe018
-+device.name           Diva Server BRI-2M 2.0 PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe018
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1800
-+subdevice.name                Diva Server V-BRI-2
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe018
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0xe018
-+subdevice.name                Diva Server BRI-2M 2.0 PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe018
-&subvendor.id          pci 0x8001
-&subdevice.id          pci 0x0014
-+subdevice.name                Diva Server BRI-2M 2.0 PCI Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe019
-+device.name           Diva Server Voice PRI Rev 2
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe019
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0xe019
-+subdevice.name                Diva Server Voice PRI 2.0 PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe019
-&subvendor.id          pci 0x8001
-&subdevice.id          pci 0x0014
-+subdevice.name                Diva Server Voice PRI 2.0 PCI Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01a
-+device.name           Diva Server 2FX
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01b
-+device.name           Diva Server Voice BRI-2M 2.0 PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01b
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0xe01b
-+subdevice.name                Diva Server Voice BRI-2M 2.0 PCI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01b
-&subvendor.id          pci 0x8001
-&subdevice.id          pci 0x0014
-+subdevice.name                Diva Server Voice BRI-2M 2.0 PCI Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01c
-+device.name           Diva Server PRI Rev 3
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01c
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1c01
-+subdevice.name                Diva Server PRI/E1/T1-8
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01c
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1c02
-+subdevice.name                Diva Server PRI/T1-24
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01c
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1c03
-+subdevice.name                Diva Server PRI/E1-30
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01c
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1c04
-+subdevice.name                Diva Server PRI/E1/T1
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01c
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1c05
-+subdevice.name                Diva Server V-PRI/T1-24
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01c
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1c06
-+subdevice.name                Diva Server V-PRI/E1-30
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01c
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1c07
-+subdevice.name                Diva Server PRI/E1/T1-8 Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01c
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1c08
-+subdevice.name                Diva Server PRI/T1-24 Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01c
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1c09
-+subdevice.name                Diva Server PRI/E1-30 Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01c
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1c0a
-+subdevice.name                Diva Server PRI/E1/T1 Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01c
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1c0b
-+subdevice.name                Diva Server V-PRI/T1-24 Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01c
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1c0c
-+subdevice.name                Diva Server V-PRI/E1-30 Cornet NQ
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01e
-+device.name           Diva Server 2PRI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01e
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1e00
-+subdevice.name                Diva Server V-2PRI/E1-60
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01e
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1e01
-+subdevice.name                Diva Server V-2PRI/T1-48
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01e
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1e02
-+subdevice.name                Diva Server 2PRI/E1-60
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe01e
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x1e03
-+subdevice.name                Diva Server 2PRI/T1-48
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe020
-+device.name           Diva Server 4PRI
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe020
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x2000
-+subdevice.name                Diva Server V-4PRI/E1-120
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe020
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x2001
-+subdevice.name                Diva Server V-4PRI/T1-96
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe020
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x2002
-+subdevice.name                Diva Server 4PRI/E1-120
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe020
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x2003
-+subdevice.name                Diva Server 4PRI/T1-96
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe024
-+device.name           Diva Server Analog-4P
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe024
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x2400
-+subdevice.name                Diva Server V-Analog-4P
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe024
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0xe024
-+subdevice.name                Diva Server Analog-4P
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe028
-+device.name           Diva Server Analog-8P
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe028
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0x2800
-+subdevice.name                Diva Server V-Analog-8P
-
- vendor.id             pci 0x1133
-&device.id             pci 0xe028
-&subvendor.id          pci 0x1133
-&subdevice.id          pci 0xe028
-+subdevice.name                Diva Server Analog-8P
-
- vendor.id             pci 0x1134
-+vendor.name           Mercury Computer Systems
-
- vendor.id             pci 0x1134
-&device.id             pci 0x0001
-+device.name           Raceway Bridge
-
- vendor.id             pci 0x1134
-&device.id             pci 0x0002
-+device.name           Dual PCI to RapidIO Bridge
-
- vendor.id             pci 0x1135
-+vendor.name           Fuji Xerox Co Ltd
-
- vendor.id             pci 0x1135
-&device.id             pci 0x0001
-+device.name           Printer controller
-
- vendor.id             pci 0x1136
-+vendor.name           Momentum Data Systems
-
- vendor.id             pci 0x1137
-+vendor.name           Cisco Systems Inc
-
- vendor.id             pci 0x1138
-+vendor.name           Ziatech Corporation
-
- vendor.id             pci 0x1138
-&device.id             pci 0x8905
-+device.name           8905 [STD 32 Bridge]
-
- vendor.id             pci 0x1139
-+vendor.name           Dynamic Pictures, Inc
-
- vendor.id             pci 0x1139
-&device.id             pci 0x0001
-+device.name           VGA Compatable 3D Graphics
-
- vendor.id             pci 0x113a
-+vendor.name           FWB Inc
-
- vendor.id             pci 0x113b
-+vendor.name           Network Computing Devices
-
- vendor.id             pci 0x113c
-+vendor.name           Cyclone Microsystems, Inc.
-
- vendor.id             pci 0x113c
-&device.id             pci 0x0000
-+device.name           PCI-9060 i960 Bridge
-
- vendor.id             pci 0x113c
-&device.id             pci 0x0001
-+device.name           PCI-SDK [PCI i960 Evaluation Platform]
-
- vendor.id             pci 0x113c
-&device.id             pci 0x0911
-+device.name           PCI-911 [i960Jx-based Intelligent I/O Controller]
-
- vendor.id             pci 0x113c
-&device.id             pci 0x0912
-+device.name           PCI-912 [i960CF-based Intelligent I/O Controller]
-
- vendor.id             pci 0x113c
-&device.id             pci 0x0913
-+device.name           PCI-913
-
- vendor.id             pci 0x113c
-&device.id             pci 0x0914
-+device.name           PCI-914 [I/O Controller w/ secondary PCI bus]
-
- vendor.id             pci 0x113d
-+vendor.name           Leading Edge Products Inc
-
- vendor.id             pci 0x113e
-+vendor.name           Sanyo Electric Co - Computer Engineering Dept
-
- vendor.id             pci 0x113f
-+vendor.name           Equinox Systems, Inc.
-
- vendor.id             pci 0x113f
-&device.id             pci 0x0808
-+device.name           SST-64P Adapter
-
- vendor.id             pci 0x113f
-&device.id             pci 0x1010
-+device.name           SST-128P Adapter
-
- vendor.id             pci 0x113f
-&device.id             pci 0x80c0
-+device.name           SST-16P DB Adapter
-
- vendor.id             pci 0x113f
-&device.id             pci 0x80c4
-+device.name           SST-16P RJ Adapter
-
- vendor.id             pci 0x113f
-&device.id             pci 0x80c8
-+device.name           SST-16P Adapter
-
- vendor.id             pci 0x113f
-&device.id             pci 0x8888
-+device.name           SST-4P Adapter
-
- vendor.id             pci 0x113f
-&device.id             pci 0x9090
-+device.name           SST-8P Adapter
-
- vendor.id             pci 0x1140
-+vendor.name           Intervoice Inc
-
- vendor.id             pci 0x1141
-+vendor.name           Crest Microsystem Inc
-
- vendor.id             pci 0x1142
-+vendor.name           Alliance Semiconductor Corporation
-
- vendor.id             pci 0x1142
-&device.id             pci 0x3210
-+device.name           AP6410
-
- vendor.id             pci 0x1142
-&device.id             pci 0x6422
-+device.name           ProVideo 6422
-
- vendor.id             pci 0x1142
-&device.id             pci 0x6424
-+device.name           ProVideo 6424
-
- vendor.id             pci 0x1142
-&device.id             pci 0x6425
-+device.name           ProMotion AT25
-
- vendor.id             pci 0x1142
-&device.id             pci 0x643d
-+device.name           ProMotion AT3D
-
- vendor.id             pci 0x1143
-+vendor.name           NetPower, Inc
-
- vendor.id             pci 0x1144
-+vendor.name           Cincinnati Milacron
-
- vendor.id             pci 0x1144
-&device.id             pci 0x0001
-+device.name           Noservo controller
-
- vendor.id             pci 0x1145
-+vendor.name           Workbit Corporation
-
- vendor.id             pci 0x1145
-&device.id             pci 0x8007
-+device.name           NinjaSCSI-32 Workbit
-
- vendor.id             pci 0x1145
-&device.id             pci 0xf007
-+device.name           NinjaSCSI-32 KME
-
- vendor.id             pci 0x1145
-&device.id             pci 0xf010
-+device.name           NinjaSCSI-32 Workbit
-
- vendor.id             pci 0x1145
-&device.id             pci 0xf012
-+device.name           NinjaSCSI-32 Logitec
-
- vendor.id             pci 0x1145
-&device.id             pci 0xf013
-+device.name           NinjaSCSI-32 Logitec
-
- vendor.id             pci 0x1145
-&device.id             pci 0xf015
-+device.name           NinjaSCSI-32 Melco
-
- vendor.id             pci 0x1146
-+vendor.name           Force Computers
-
- vendor.id             pci 0x1147
-+vendor.name           Interface Corp
-
- vendor.id             pci 0x1148
-+vendor.name           SysKonnect
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-+device.name           FDDI Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb03b
-+subdevice.name                Netelligent 100 FDDI DAS Fibre SC
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb03c
-+subdevice.name                Netelligent 100 FDDI SAS Fibre SC
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb03d
-+subdevice.name                Netelligent 100 FDDI DAS UTP
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb03e
-+subdevice.name                Netelligent 100 FDDI SAS UTP
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb03f
-+subdevice.name                Netelligent 100 FDDI SAS Fibre MIC
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5521
-+subdevice.name                FDDI SK-5521 (SK-NET FDDI-UP)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5522
-+subdevice.name                FDDI SK-5522 (SK-NET FDDI-UP DAS)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5541
-+subdevice.name                FDDI SK-5541 (SK-NET FDDI-FP)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5543
-+subdevice.name                FDDI SK-5543 (SK-NET FDDI-LP)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5544
-+subdevice.name                FDDI SK-5544 (SK-NET FDDI-LP DAS)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5821
-+subdevice.name                FDDI SK-5821 (SK-NET FDDI-UP64)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5822
-+subdevice.name                FDDI SK-5822 (SK-NET FDDI-UP64 DAS)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5841
-+subdevice.name                FDDI SK-5841 (SK-NET FDDI-FP64)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5843
-+subdevice.name                FDDI SK-5843 (SK-NET FDDI-LP64)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4000
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5844
-+subdevice.name                FDDI SK-5844 (SK-NET FDDI-LP64 DAS)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4200
-+device.name           Token Ring adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-+device.name           SK-98xx Gigabit Ethernet Server Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x9821
-+subdevice.name                SK-9821 Gigabit Ethernet Server Adapter (SK-NET GE-T)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x9822
-+subdevice.name                SK-9822 Gigabit Ethernet Server Adapter (SK-NET GE-T dual link)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x9841
-+subdevice.name                SK-9841 Gigabit Ethernet Server Adapter (SK-NET GE-LX)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x9842
-+subdevice.name                SK-9842 Gigabit Ethernet Server Adapter (SK-NET GE-LX dual link)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x9843
-+subdevice.name                SK-9843 Gigabit Ethernet Server Adapter (SK-NET GE-SX)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x9844
-+subdevice.name                SK-9844 Gigabit Ethernet Server Adapter (SK-NET GE-SX dual link)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x9861
-+subdevice.name                SK-9861 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x9862
-+subdevice.name                SK-9862 Gigabit Ethernet Server Adapter (SK-NET GE-SX Volition dual link)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x9871
-+subdevice.name                SK-9871 Gigabit Ethernet Server Adapter (SK-NET GE-ZX)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x9872
-+subdevice.name                SK-9872 Gigabit Ethernet Server Adapter (SK-NET GE-ZX dual link)
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2970
-+subdevice.name                AT-2970SX Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2971
-+subdevice.name                AT-2970LX Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2972
-+subdevice.name                AT-2970TX Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2973
-+subdevice.name                AT-2971SX Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2974
-+subdevice.name                AT-2971T Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2975
-+subdevice.name                AT-2970SX/2SC Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2976
-+subdevice.name                AT-2970LX/2SC Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2977
-+subdevice.name                AT-2970TX/2TX Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-+device.name           SK-98xx V2.0 Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x0121
-+subdevice.name                Marvell RDK-8001 Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x0221
-+subdevice.name                Marvell RDK-8002 Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x0321
-+subdevice.name                Marvell RDK-8003 Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x0421
-+subdevice.name                Marvell RDK-8004 Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x0621
-+subdevice.name                Marvell RDK-8006 Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x0721
-+subdevice.name                Marvell RDK-8007 Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x0821
-+subdevice.name                Marvell RDK-8008 Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x0921
-+subdevice.name                Marvell RDK-8009 Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x1121
-+subdevice.name                Marvell RDK-8011 Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x1221
-+subdevice.name                Marvell RDK-8012 Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x3221
-+subdevice.name                SK-9521 V2.0 10/100/1000Base-T Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5021
-+subdevice.name                SK-9821 V2.0 Gigabit Ethernet 10/100/1000Base-T Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5041
-+subdevice.name                SK-9841 V2.0 Gigabit Ethernet 1000Base-LX Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5043
-+subdevice.name                SK-9843 V2.0 Gigabit Ethernet 1000Base-SX Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5051
-+subdevice.name                SK-9851 V2.0 Gigabit Ethernet 1000Base-SX Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5061
-+subdevice.name                SK-9861 V2.0 Gigabit Ethernet 1000Base-SX Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x5071
-+subdevice.name                SK-9871 V2.0 Gigabit Ethernet 1000Base-ZX Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x9521
-+subdevice.name                SK-9521 10/100/1000Base-T Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4400
-+device.name           SK-9Dxx Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x4500
-+device.name           SK-9Mxx Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x9e00
-+device.name           SK-9Exx 10/100/1000Base-T Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x9e00
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x2100
-+subdevice.name                SK-9E21 Server Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x9e00
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x21d0
-+subdevice.name                SK-9E21D 10/100/1000Base-T Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x9e00
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x2200
-+subdevice.name                SK-9E22 Server Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x9e00
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x8100
-+subdevice.name                SK-9E81 Server Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x9e00
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x8200
-+subdevice.name                SK-9E82 Server Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x9e00
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x9100
-+subdevice.name                SK-9E91 Server Adapter
-
- vendor.id             pci 0x1148
-&device.id             pci 0x9e00
-&subvendor.id          pci 0x1148
-&subdevice.id          pci 0x9200
-+subdevice.name                SK-9E92 Server Adapter
-
- vendor.id             pci 0x1149
-+vendor.name           Win System Corporation
-
- vendor.id             pci 0x114a
-+vendor.name           VMIC
-
- vendor.id             pci 0x114a
-&device.id             pci 0x5579
-+device.name           VMIPCI-5579 (Reflective Memory Card)
-
- vendor.id             pci 0x114a
-&device.id             pci 0x5587
-+device.name           VMIPCI-5587 (Reflective Memory Card)
-
- vendor.id             pci 0x114a
-&device.id             pci 0x6504
-+device.name           VMIC PCI 7755 FPGA
-
- vendor.id             pci 0x114a
-&device.id             pci 0x7587
-+device.name           VMIVME-7587
-
- vendor.id             pci 0x114b
-+vendor.name           Canopus Co., Ltd
-
- vendor.id             pci 0x114c
-+vendor.name           Annabooks
-
- vendor.id             pci 0x114d
-+vendor.name           IC Corporation
-
- vendor.id             pci 0x114e
-+vendor.name           Nikon Systems Inc
-
- vendor.id             pci 0x114f
-+vendor.name           Digi International
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0002
-+device.name           AccelePort EPC
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0003
-+device.name           RightSwitch SE-6
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0004
-+device.name           AccelePort Xem
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0005
-+device.name           AccelePort Xr
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0006
-+device.name           AccelePort Xr,C/X
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0009
-+device.name           AccelePort Xr/J
-
- vendor.id             pci 0x114f
-&device.id             pci 0x000a
-+device.name           AccelePort EPC/J
-
- vendor.id             pci 0x114f
-&device.id             pci 0x000c
-+device.name           DataFirePRIme T1 (1-port)
-
- vendor.id             pci 0x114f
-&device.id             pci 0x000d
-+device.name           SyncPort 2-Port (x.25/FR)
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0011
-+device.name           AccelePort 8r EIA-232 (IBM)
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0012
-+device.name           AccelePort 8r EIA-422
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0013
-+device.name           AccelePort Xr
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0014
-+device.name           AccelePort 8r EIA-422
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0015
-+device.name           AccelePort Xem
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0016
-+device.name           AccelePort EPC/X
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0017
-+device.name           AccelePort C/X
-
- vendor.id             pci 0x114f
-&device.id             pci 0x001a
-+device.name           DataFirePRIme E1 (1-port)
-
- vendor.id             pci 0x114f
-&device.id             pci 0x001b
-+device.name           AccelePort C/X (IBM)
-
- vendor.id             pci 0x114f
-&device.id             pci 0x001d
-+device.name           DataFire RAS T1/E1/PRI
-
- vendor.id             pci 0x114f
-&device.id             pci 0x001d
-&subvendor.id          pci 0x114f
-&subdevice.id          pci 0x0050
-+subdevice.name                DataFire RAS E1 Adapter
-
- vendor.id             pci 0x114f
-&device.id             pci 0x001d
-&subvendor.id          pci 0x114f
-&subdevice.id          pci 0x0051
-+subdevice.name                DataFire RAS Dual E1 Adapter
-
- vendor.id             pci 0x114f
-&device.id             pci 0x001d
-&subvendor.id          pci 0x114f
-&subdevice.id          pci 0x0052
-+subdevice.name                DataFire RAS T1 Adapter
-
- vendor.id             pci 0x114f
-&device.id             pci 0x001d
-&subvendor.id          pci 0x114f
-&subdevice.id          pci 0x0053
-+subdevice.name                DataFire RAS Dual T1 Adapter
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0023
-+device.name           AccelePort RAS
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0024
-+device.name           DataFire RAS B4 ST/U
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0024
-&subvendor.id          pci 0x114f
-&subdevice.id          pci 0x0030
-+subdevice.name                DataFire RAS BRI U Adapter
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0024
-&subvendor.id          pci 0x114f
-&subdevice.id          pci 0x0031
-+subdevice.name                DataFire RAS BRI S/T Adapter
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0026
-+device.name           AccelePort 4r 920
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0027
-+device.name           AccelePort Xr 920
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0028
-+device.name           ClassicBoard 4
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0029
-+device.name           ClassicBoard 8
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0034
-+device.name           AccelePort 2r 920
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0035
-+device.name           DataFire DSP T1/E1/PRI cPCI
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0040
-+device.name           AccelePort Xp
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0042
-+device.name           AccelePort 2p
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0043
-+device.name           AccelePort 4p
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0044
-+device.name           AccelePort 8p
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0045
-+device.name           AccelePort 16p
-
- vendor.id             pci 0x114f
-&device.id             pci 0x004e
-+device.name           AccelePort 32p
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0070
-+device.name           Datafire Micro V IOM2 (Europe)
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0071
-+device.name           Datafire Micro V (Europe)
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0072
-+device.name           Datafire Micro V IOM2 (North America)
-
- vendor.id             pci 0x114f
-&device.id             pci 0x0073
-+device.name           Datafire Micro V (North America)
-
- vendor.id             pci 0x114f
-&device.id             pci 0x00b0
-+device.name           Digi Neo 4
-
- vendor.id             pci 0x114f
-&device.id             pci 0x00b1
-+device.name           Digi Neo 8
-
- vendor.id             pci 0x114f
-&device.id             pci 0x00c8
-+device.name           Digi Neo 2 DB9
-
- vendor.id             pci 0x114f
-&device.id             pci 0x00c9
-+device.name           Digi Neo 2 DB9 PRI
-
- vendor.id             pci 0x114f
-&device.id             pci 0x00ca
-+device.name           Digi Neo 2 RJ45
-
- vendor.id             pci 0x114f
-&device.id             pci 0x00cb
-+device.name           Digi Neo 2 RJ45 PRI
-
- vendor.id             pci 0x114f
-&device.id             pci 0x00d0
-+device.name           ClassicBoard 4 422
-
- vendor.id             pci 0x114f
-&device.id             pci 0x00d1
-+device.name           ClassicBoard 8 422
-
- vendor.id             pci 0x114f
-&device.id             pci 0x6001
-+device.name           Avanstar
-
- vendor.id             pci 0x1150
-+vendor.name           Thinking Machines Corp
-
- vendor.id             pci 0x1151
-+vendor.name           JAE Electronics Inc.
-
- vendor.id             pci 0x1152
-+vendor.name           Megatek
-
- vendor.id             pci 0x1153
-+vendor.name           Land Win Electronic Corp
-
- vendor.id             pci 0x1154
-+vendor.name           Melco Inc
-
- vendor.id             pci 0x1155
-+vendor.name           Pine Technology Ltd
-
- vendor.id             pci 0x1156
-+vendor.name           Periscope Engineering
-
- vendor.id             pci 0x1157
-+vendor.name           Avsys Corporation
-
- vendor.id             pci 0x1158
-+vendor.name           Voarx R & D Inc
-
- vendor.id             pci 0x1158
-&device.id             pci 0x3011
-+device.name           Tokenet/vg 1001/10m anylan
-
- vendor.id             pci 0x1158
-&device.id             pci 0x9050
-+device.name           Lanfleet/Truevalue
-
- vendor.id             pci 0x1158
-&device.id             pci 0x9051
-+device.name           Lanfleet/Truevalue
-
- vendor.id             pci 0x1159
-+vendor.name           Mutech Corp
-
- vendor.id             pci 0x1159
-&device.id             pci 0x0001
-+device.name           MV-1000
-
- vendor.id             pci 0x115a
-+vendor.name           Harlequin Ltd
-
- vendor.id             pci 0x115b
-+vendor.name           Parallax Graphics
-
- vendor.id             pci 0x115c
-+vendor.name           Photron Ltd.
-
- vendor.id             pci 0x115d
-+vendor.name           Xircom
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0003
-+device.name           Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0181
-+subdevice.name                10/100 EtherJet Cardbus Adapter
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x1181
-+subdevice.name                10/100 EtherJet Cardbus Adapter
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x8181
-+subdevice.name                10/100 EtherJet Cardbus Adapter
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x9181
-+subdevice.name                10/100 EtherJet Cardbus Adapter
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0003
-&subvendor.id          pci 0x115d
-&subdevice.id          pci 0x0181
-+subdevice.name                Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0003
-&subvendor.id          pci 0x115d
-&subdevice.id          pci 0x1181
-+subdevice.name                Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0181
-+subdevice.name                Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0003
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x8181
-+subdevice.name                EtherExpress PRO/100 Mobile CardBus 32 Adapter
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0003
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x9181
-+subdevice.name                EtherExpress PRO/100 Mobile CardBus 32 Adapter
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0005
-+device.name           Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0005
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0182
-+subdevice.name                10/100 EtherJet Cardbus Adapter
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0005
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x1182
-+subdevice.name                10/100 EtherJet Cardbus Adapter
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0005
-&subvendor.id          pci 0x115d
-&subdevice.id          pci 0x0182
-+subdevice.name                Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0005
-&subvendor.id          pci 0x115d
-&subdevice.id          pci 0x1182
-+subdevice.name                Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0007
-+device.name           Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0007
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0182
-+subdevice.name                10/100 EtherJet Cardbus Adapter
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0007
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x1182
-+subdevice.name                10/100 EtherJet Cardbus Adapter
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0007
-&subvendor.id          pci 0x115d
-&subdevice.id          pci 0x0182
-+subdevice.name                Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0007
-&subvendor.id          pci 0x115d
-&subdevice.id          pci 0x1182
-+subdevice.name                Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x000b
-+device.name           Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x000b
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0183
-+subdevice.name                10/100 EtherJet Cardbus Adapter
-
- vendor.id             pci 0x115d
-&device.id             pci 0x000b
-&subvendor.id          pci 0x115d
-&subdevice.id          pci 0x0183
-+subdevice.name                Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x000c
-+device.name           Mini-PCI V.90 56k Modem
-
- vendor.id             pci 0x115d
-&device.id             pci 0x000f
-+device.name           Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x000f
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0183
-+subdevice.name                10/100 EtherJet Cardbus Adapter
-
- vendor.id             pci 0x115d
-&device.id             pci 0x000f
-&subvendor.id          pci 0x115d
-&subdevice.id          pci 0x0183
-+subdevice.name                Cardbus Ethernet 10/100
-
- vendor.id             pci 0x115d
-&device.id             pci 0x00d4
-+device.name           Mini-PCI K56Flex Modem
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0101
-+device.name           Cardbus 56k modem
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0101
-&subvendor.id          pci 0x115d
-&subdevice.id          pci 0x1081
-+subdevice.name                Cardbus 56k Modem
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0103
-+device.name           Cardbus Ethernet + 56k Modem
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0103
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x9181
-+subdevice.name                Cardbus 56k Modem
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0103
-&subvendor.id          pci 0x1115
-&subdevice.id          pci 0x1181
-+subdevice.name                Cardbus Ethernet 100 + 56k Modem
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0103
-&subvendor.id          pci 0x115d
-&subdevice.id          pci 0x1181
-+subdevice.name                CBEM56G-100 Ethernet + 56k Modem
-
- vendor.id             pci 0x115d
-&device.id             pci 0x0103
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x9181
-+subdevice.name                PRO/100 LAN + Modem56 CardBus
-
- vendor.id             pci 0x115e
-+vendor.name           Peer Protocols Inc
-
- vendor.id             pci 0x115f
-+vendor.name           Maxtor Corporation
-
- vendor.id             pci 0x1160
-+vendor.name           Megasoft Inc
-
- vendor.id             pci 0x1161
-+vendor.name           PFU Limited
-
- vendor.id             pci 0x1162
-+vendor.name           OA Laboratory Co Ltd
-
- vendor.id             pci 0x1163
-+vendor.name           Rendition
-
- vendor.id             pci 0x1163
-&device.id             pci 0x0001
-+device.name           Verite 1000
-
- vendor.id             pci 0x1163
-&device.id             pci 0x2000
-+device.name           Verite V2000/V2100/V2200
-
- vendor.id             pci 0x1163
-&device.id             pci 0x2000
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x2000
-+subdevice.name                Stealth II S220
-
- vendor.id             pci 0x1164
-+vendor.name           Advanced Peripherals Technologies
-
- vendor.id             pci 0x1165
-+vendor.name           Imagraph Corporation
-
- vendor.id             pci 0x1165
-&device.id             pci 0x0001
-+device.name           Motion TPEG Recorder/Player with audio
-
- vendor.id             pci 0x1166
-+vendor.name           ServerWorks
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0000
-+device.name           CMIC-LE
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0005
-+device.name           CNB20-LE Host Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0006
-+device.name           CNB20HE Host Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0007
-+device.name           CNB20-LE Host Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0008
-+device.name           CNB20HE Host Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0009
-+device.name           CNB20LE Host Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0010
-+device.name           CIOB30
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0011
-+device.name           CMIC-HE
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0012
-+device.name           CMIC-WS Host Bridge (GC-LE chipset)
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0013
-+device.name           CNB20-HE Host Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0014
-+device.name           CMIC-LE Host Bridge (GC-LE chipset)
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0015
-+device.name           CMIC-GC Host Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0016
-+device.name           CMIC-GC Host Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0017
-+device.name           GCNB-LE Host Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0101
-+device.name           CIOB-X2 PCI-X I/O Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0110
-+device.name           CIOB-E I/O Bridge with Gigabit Ethernet
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0200
-+device.name           OSB4 South Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0201
-+device.name           CSB5 South Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0201
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1080
-+subdevice.name                CT8 mainboard
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0203
-+device.name           CSB6 South Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0211
-+device.name           OSB4 IDE Controller
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0212
-+device.name           CSB5 IDE Controller
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0212
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1080
-+subdevice.name                CT8 mainboard
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0213
-+device.name           CSB6 RAID/IDE Controller
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0217
-+device.name           CSB6 IDE Controller
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0220
-+device.name           OSB4/CSB5 OHCI USB Controller
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0220
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1080
-+subdevice.name                CT8 mainboard
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0221
-+device.name           CSB6 OHCI USB Controller
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0225
-+device.name           CSB5 LPC bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0225
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1080
-+subdevice.name                CT8 mainboard
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0227
-+device.name           GCLE-2 Host Bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0230
-+device.name           CSB5 LPC bridge
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0230
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1080
-+subdevice.name                CT8 mainboard
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0240
-+device.name           K2 SATA
-
- vendor.id             pci 0x1167
-+vendor.name           Mutoh Industries Inc
-
- vendor.id             pci 0x1168
-+vendor.name           Thine Electronics Inc
-
- vendor.id             pci 0x1169
-+vendor.name           Centre for Development of Advanced Computing
-
- vendor.id             pci 0x116a
-+vendor.name           Polaris Communications
-
- vendor.id             pci 0x116a
-&device.id             pci 0x6100
-+device.name           Bus/Tag Channel
-
- vendor.id             pci 0x116a
-&device.id             pci 0x6800
-+device.name           Escon Channel
-
- vendor.id             pci 0x116a
-&device.id             pci 0x7100
-+device.name           Bus/Tag Channel
-
- vendor.id             pci 0x116a
-&device.id             pci 0x7800
-+device.name           Escon Channel
-
- vendor.id             pci 0x116b
-+vendor.name           Connectware Inc
-
- vendor.id             pci 0x116c
-+vendor.name           Intelligent Resources Integrated Systems
-
- vendor.id             pci 0x116d
-+vendor.name           Martin-Marietta
-
- vendor.id             pci 0x116e
-+vendor.name           Electronics for Imaging
-
- vendor.id             pci 0x116f
-+vendor.name           Workstation Technology
-
- vendor.id             pci 0x1170
-+vendor.name           Inventec Corporation
-
- vendor.id             pci 0x1171
-+vendor.name           Loughborough Sound Images Plc
-
- vendor.id             pci 0x1172
-+vendor.name           Altera Corporation
-
- vendor.id             pci 0x1173
-+vendor.name           Adobe Systems, Inc
-
- vendor.id             pci 0x1174
-+vendor.name           Bridgeport Machines
-
- vendor.id             pci 0x1175
-+vendor.name           Mitron Computer Inc.
-
- vendor.id             pci 0x1176
-+vendor.name           SBE Incorporated
-
- vendor.id             pci 0x1177
-+vendor.name           Silicon Engineering
-
- vendor.id             pci 0x1178
-+vendor.name           Alfa, Inc.
-
- vendor.id             pci 0x1178
-&device.id             pci 0xafa1
-+device.name           Fast Ethernet Adapter
-
- vendor.id             pci 0x1179
-+vendor.name           Toshiba America Info Systems
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0103
-+device.name           EX-IDE Type-B
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0404
-+device.name           DVD Decoder card
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0406
-+device.name           Tecra Video Capture device
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0407
-+device.name           DVD Decoder card (Version 2)
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0601
-+device.name           601
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0603
-+device.name           ToPIC95 PCI to CardBus Bridge for Notebooks
-
- vendor.id             pci 0x1179
-&device.id             pci 0x060a
-+device.name           ToPIC95
-
- vendor.id             pci 0x1179
-&device.id             pci 0x060f
-+device.name           ToPIC97
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0617
-+device.name           ToPIC100 PCI to Cardbus Bridge with ZV Support
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0618
-+device.name           CPU to PCI and PCI to ISA bridge
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0701
-+device.name           FIR Port
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0804
-+device.name           TC6371AF SmartMedia Controller
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0805
-+device.name           SD TypA Controller
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0d01
-+device.name           FIR Port Type-DO
-
- vendor.id             pci 0x1179
-&device.id             pci 0x0d01
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                FIR Port Type-DO
-
- vendor.id             pci 0x117a
-+vendor.name           A-Trend Technology
-
- vendor.id             pci 0x117b
-+vendor.name           L G Electronics, Inc.
-
- vendor.id             pci 0x117c
-+vendor.name           Atto Technology
-
- vendor.id             pci 0x117d
-+vendor.name           Becton & Dickinson
-
- vendor.id             pci 0x117e
-+vendor.name           T/R Systems
-
- vendor.id             pci 0x117f
-+vendor.name           Integrated Circuit Systems
-
- vendor.id             pci 0x1180
-+vendor.name           Ricoh Co Ltd
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0465
-+device.name           RL5c465
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0466
-+device.name           RL5c466
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0475
-+device.name           RL5c475
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0475
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0xc006
-+subdevice.name                vpr Matrix 170B4 CardBus bridge
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0476
-+device.name           RL5c476 II
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0476
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0185
-+subdevice.name                ThinkPad A/T/X Series
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0476
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80df
-+subdevice.name                Vaio PCG-FX403
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0476
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80e7
-+subdevice.name                VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0476
-&subvendor.id          pci 0x14ef
-&subdevice.id          pci 0x0220
-+subdevice.name                PCD-RP-220S
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0477
-+device.name           RL5c477
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0478
-+device.name           RL5c478
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0478
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0184
-+subdevice.name                ThinkPad A30p (2653-64G)
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0522
-+device.name           R5C522 IEEE 1394 Controller
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0522
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01cf
-+subdevice.name                ThinkPad A30p (2653-64G)
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0551
-+device.name           R5C551 IEEE 1394 Controller
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0551
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0xc006
-+subdevice.name                vpr Matrix 170B4
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0552
-+device.name           R5C552 IEEE 1394 Controller
-
- vendor.id             pci 0x1180
-&device.id             pci 0x0552
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0511
-+subdevice.name                ThinkPad A/T/X Series
-
- vendor.id             pci 0x1181
-+vendor.name           Telmatics International
-
- vendor.id             pci 0x1183
-+vendor.name           Fujikura Ltd
-
- vendor.id             pci 0x1184
-+vendor.name           Forks Inc
-
- vendor.id             pci 0x1185
-+vendor.name           Dataworld International Ltd
-
- vendor.id             pci 0x1186
-+vendor.name           D-Link System Inc
-
- vendor.id             pci 0x1186
-&device.id             pci 0x0100
-+device.name           DC21041
-
- vendor.id             pci 0x1186
-&device.id             pci 0x1002
-+device.name           DL10050 Sundance Ethernet
-
- vendor.id             pci 0x1186
-&device.id             pci 0x1002
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1002
-+subdevice.name                DFE-550TX
-
- vendor.id             pci 0x1186
-&device.id             pci 0x1002
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1012
-+subdevice.name                DFE-580TX
-
- vendor.id             pci 0x1186
-&device.id             pci 0x1025
-+device.name           AirPlus Xtreme G DWL-G650 Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x1026
-+device.name           AirXpert DWL-AG650 Wireless Cardbus Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x1043
-+device.name           AirXpert DWL-AG650 Wireless Cardbus Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x1300
-+device.name           RTL8139 Ethernet
-
- vendor.id             pci 0x1186
-&device.id             pci 0x1300
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1300
-+subdevice.name                DFE-538TX 10/100 Ethernet Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x1300
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x1301
-+subdevice.name                DFE-530TX+ 10/100 Ethernet Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x1340
-+device.name           DFE-690TXD CardBus PC Card
-
- vendor.id             pci 0x1186
-&device.id             pci 0x1541
-+device.name           DFE-680TXD CardBus PC Card
-
- vendor.id             pci 0x1186
-&device.id             pci 0x1561
-+device.name           DRP-32TXD Cardbus PC Card
-
- vendor.id             pci 0x1186
-&device.id             pci 0x2027
-+device.name           AirPlus Xtreme G DWL-G520 Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3203
-+device.name           AirPlus Xtreme G DWL-G520 Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3300
-+device.name           DWL-510 2.4GHz Wireless PCI Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3a03
-+device.name           AirPro DWL-A650 Wireless Cardbus Adapter(rev.B)
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3a04
-+device.name           AirPro DWL-AB650 Multimode Wireless Cardbus Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3a05
-+device.name           AirPro DWL-AB520 Multimode Wireless PCI Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3a07
-+device.name           AirXpert DWL-AG650 Wireless Cardbus Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3a08
-+device.name           AirXpert DWL-AG520 Wireless PCI Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3a10
-+device.name           AirXpert DWL-AG650 Wireless Cardbus Adapter(rev.B)
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3a11
-+device.name           AirXpert DWL-AG520 Wireless PCI Adapter(rev.B)
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3a12
-+device.name           AirPlus DWL-G650 Wireless Cardbus Adapter(rev.C)
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3a13
-+device.name           AirPlus DWL-G520 Wireless PCI Adapter(rev.B)
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3a14
-+device.name           AirPremier DWL-AG530 Wireless PCI Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3a63
-+device.name           AirXpert DWL-AG660 Wireless Cardbus Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x3b05
-+device.name           DWL-G650+ CardBus PC Card
-
- vendor.id             pci 0x1186
-&device.id             pci 0x4000
-+device.name           DL2000-based Gigabit Ethernet
-
- vendor.id             pci 0x1186
-&device.id             pci 0x4c00
-+device.name           Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x4c00
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x4c00
-+subdevice.name                DGE-530T Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1186
-&device.id             pci 0x8400
-+device.name           D-Link DWL-650+ CardBus PC Card
-
- vendor.id             pci 0x1187
-+vendor.name           Advanced Technology Laboratories, Inc.
-
- vendor.id             pci 0x1188
-+vendor.name           Shima Seiki Manufacturing Ltd.
-
- vendor.id             pci 0x1189
-+vendor.name           Matsushita Electronics Co Ltd
-
- vendor.id             pci 0x118a
-+vendor.name           Hilevel Technology
-
- vendor.id             pci 0x118b
-+vendor.name           Hypertec Pty Limited
-
- vendor.id             pci 0x118c
-+vendor.name           Corollary, Inc
-
- vendor.id             pci 0x118c
-&device.id             pci 0x0014
-+device.name           PCIB [C-bus II to PCI bus host bridge chip]
-
- vendor.id             pci 0x118c
-&device.id             pci 0x1117
-+device.name           Intel 8-way XEON Profusion Chipset [Cache Coherency Filter]
-
- vendor.id             pci 0x118d
-+vendor.name           BitFlow Inc
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0001
-+device.name           Raptor-PCI framegrabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0012
-+device.name           Model 12 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0014
-+device.name           Model 14 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0024
-+device.name           Model 24 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0044
-+device.name           Model 44 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0112
-+device.name           Model 12 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0114
-+device.name           Model 14 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0124
-+device.name           Model 24 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0144
-+device.name           Model 44 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0212
-+device.name           Model 12 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0214
-+device.name           Model 14 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0224
-+device.name           Model 24 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0244
-+device.name           Model 44 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0312
-+device.name           Model 12 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0314
-+device.name           Model 14 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0324
-+device.name           Model 24 Road Runner Frame Grabber
-
- vendor.id             pci 0x118d
-&device.id             pci 0x0344
-+device.name           Model 44 Road Runner Frame Grabber
-
- vendor.id             pci 0x118e
-+vendor.name           Hermstedt GmbH
-
- vendor.id             pci 0x118f
-+vendor.name           Green Logic
-
- vendor.id             pci 0x1190
-+vendor.name           Tripace
-
- vendor.id             pci 0x1190
-&device.id             pci 0xc731
-+device.name           TP-910/920/940 PCI Ultra(Wide) SCSI Adapter
-
- vendor.id             pci 0x1191
-+vendor.name           Artop Electronic Corp
-
- vendor.id             pci 0x1191
-&device.id             pci 0x0003
-+device.name           SCSI Cache Host Adapter
-
- vendor.id             pci 0x1191
-&device.id             pci 0x0004
-+device.name           ATP8400
-
- vendor.id             pci 0x1191
-&device.id             pci 0x0005
-+device.name           ATP850UF
-
- vendor.id             pci 0x1191
-&device.id             pci 0x0006
-+device.name           ATP860 NO-BIOS
-
- vendor.id             pci 0x1191
-&device.id             pci 0x0007
-+device.name           ATP860
-
- vendor.id             pci 0x1191
-&device.id             pci 0x0008
-+device.name           ATP865 NO-ROM
-
- vendor.id             pci 0x1191
-&device.id             pci 0x0009
-+device.name           ATP865
-
- vendor.id             pci 0x1191
-&device.id             pci 0x8002
-+device.name           AEC6710 SCSI-2 Host Adapter
-
- vendor.id             pci 0x1191
-&device.id             pci 0x8010
-+device.name           AEC6712UW SCSI
-
- vendor.id             pci 0x1191
-&device.id             pci 0x8020
-+device.name           AEC6712U SCSI
-
- vendor.id             pci 0x1191
-&device.id             pci 0x8030
-+device.name           AEC6712S SCSI
-
- vendor.id             pci 0x1191
-&device.id             pci 0x8040
-+device.name           AEC6712D SCSI
-
- vendor.id             pci 0x1191
-&device.id             pci 0x8050
-+device.name           AEC6712SUW SCSI
-
- vendor.id             pci 0x1192
-+vendor.name           Densan Company Ltd
-
- vendor.id             pci 0x1193
-+vendor.name           Zeitnet Inc.
-
- vendor.id             pci 0x1193
-&device.id             pci 0x0001
-+device.name           1221
-
- vendor.id             pci 0x1193
-&device.id             pci 0x0002
-+device.name           1225
-
- vendor.id             pci 0x1194
-+vendor.name           Toucan Technology
-
- vendor.id             pci 0x1195
-+vendor.name           Ratoc System Inc
-
- vendor.id             pci 0x1196
-+vendor.name           Hytec Electronics Ltd
-
- vendor.id             pci 0x1197
-+vendor.name           Gage Applied Sciences, Inc.
-
- vendor.id             pci 0x1197
-&device.id             pci 0x010c
-+device.name           CompuScope 82G 8bit 2GS/s Analog Input Card
-
- vendor.id             pci 0x1198
-+vendor.name           Lambda Systems Inc
-
- vendor.id             pci 0x1199
-+vendor.name           Attachmate Corporation
-
- vendor.id             pci 0x119a
-+vendor.name           Mind Share, Inc.
-
- vendor.id             pci 0x119b
-+vendor.name           Omega Micro Inc.
-
- vendor.id             pci 0x119b
-&device.id             pci 0x1221
-+device.name           82C092G
-
- vendor.id             pci 0x119c
-+vendor.name           Information Technology Inst.
-
- vendor.id             pci 0x119d
-+vendor.name           Bug, Inc. Sapporo Japan
-
- vendor.id             pci 0x119e
-+vendor.name           Fujitsu Microelectronics Ltd.
-
- vendor.id             pci 0x119e
-&device.id             pci 0x0001
-+device.name           FireStream 155
-
- vendor.id             pci 0x119e
-&device.id             pci 0x0003
-+device.name           FireStream 50
-
- vendor.id             pci 0x119f
-+vendor.name           Bull HN Information Systems
-
- vendor.id             pci 0x11a0
-+vendor.name           Convex Computer Corporation
-
- vendor.id             pci 0x11a1
-+vendor.name           Hamamatsu Photonics K.K.
-
- vendor.id             pci 0x11a2
-+vendor.name           Sierra Research and Technology
-
- vendor.id             pci 0x11a3
-+vendor.name           Deuretzbacher GmbH & Co. Eng. KG
-
- vendor.id             pci 0x11a4
-+vendor.name           Barco Graphics NV
-
- vendor.id             pci 0x11a5
-+vendor.name           Microunity Systems Eng. Inc
-
- vendor.id             pci 0x11a6
-+vendor.name           Pure Data Ltd.
-
- vendor.id             pci 0x11a7
-+vendor.name           Power Computing Corp.
-
- vendor.id             pci 0x11a8
-+vendor.name           Systech Corp.
-
- vendor.id             pci 0x11a9
-+vendor.name           InnoSys Inc.
-
- vendor.id             pci 0x11a9
-&device.id             pci 0x4240
-+device.name           AMCC S933Q Intelligent Serial Card
-
- vendor.id             pci 0x11aa
-+vendor.name           Actel
-
- vendor.id             pci 0x11ab
-+vendor.name           Marvell Technology Group Ltd.
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x0146
-+device.name           GT-64010/64010A System Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x138f
-+device.name           W8300 802.11 Adapter (rev 07)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x1fa6
-+device.name           Marvell W8300 802.11 Adapter
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-+device.name           Gigabit Ethernet Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0f38
-+subdevice.name                Marvell 88E8001 Gigabit Ethernet Controller (ECS)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x8001
-+subdevice.name                Marvell 88E8001 Gigabit Ethernet Controller (ECS)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x173c
-+subdevice.name                Marvell 88E8001 Gigabit Ethernet Controller (Asus)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x811a
-+subdevice.name                Marvell 88E8001 Gigabit Ethernet Controller (Asus)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x105b
-&subdevice.id          pci 0x0c19
-+subdevice.name                Marvell 88E8001 Gigabit Ethernet Controller (Foxconn)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0xb452
-+subdevice.name                SMC EZ Card 1000 (SMC9452TXV.2)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x11ab
-&subdevice.id          pci 0x0121
-+subdevice.name                Marvell RDK-8001
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x11ab
-&subdevice.id          pci 0x0321
-+subdevice.name                Marvell RDK-8003
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x11ab
-&subdevice.id          pci 0x1021
-+subdevice.name                Marvell RDK-8010
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x11ab
-&subdevice.id          pci 0x5021
-+subdevice.name                Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (64 bit)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x11ab
-&subdevice.id          pci 0x9521
-+subdevice.name                Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (32 bit)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0xe000
-+subdevice.name                Marvell 88E8001 Gigabit Ethernet Controller (Gigabyte)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x1406
-+subdevice.name                Marvell 88E8001 Gigabit Ethernet Controller (Abit)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x15d4
-&subdevice.id          pci 0x0047
-+subdevice.name                Marvell 88E8001 Gigabit Ethernet Controller (Iwill)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1695
-&subdevice.id          pci 0x9025
-+subdevice.name                Marvell 88E8001 Gigabit Ethernet Controller (Epox)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x17f2
-&subdevice.id          pci 0x1c03
-+subdevice.name                Marvell 88E8001 Gigabit Ethernet Controller (Albatron)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4320
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x2803
-+subdevice.name                Marvell 88E8001 Gigabit Ethernet Controller (Chaintech)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-+device.name           Fast Ethernet Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Marvell 88E8035 Fast Ethernet Controller (Toshiba)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x11ab
-&subdevice.id          pci 0x3521
-+subdevice.name                Marvell RDK-8035
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x000d
-+subdevice.name                Marvell 88E8035 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x000e
-+subdevice.name                Marvell 88E8035 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x000f
-+subdevice.name                Marvell 88E8035 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0011
-+subdevice.name                Marvell 88E8035 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0012
-+subdevice.name                Marvell 88E8035 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0016
-+subdevice.name                Marvell 88E8035 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0017
-+subdevice.name                Marvell 88E8035 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0018
-+subdevice.name                Marvell 88E8035 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0019
-+subdevice.name                Marvell 88E8035 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x001c
-+subdevice.name                Marvell 88E8035 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x001e
-+subdevice.name                Marvell 88E8035 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4350
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0020
-+subdevice.name                Marvell 88E8035 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-+device.name           Fast Ethernet Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x107b
-&subdevice.id          pci 0x4009
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (Wistron)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x10f7
-&subdevice.id          pci 0x8338
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (Panasonic)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (Toshiba)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0xff00
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (Compal)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0xff10
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (Inventec)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x11ab
-&subdevice.id          pci 0x3621
-+subdevice.name                Marvell RDK-8036
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x13d1
-&subdevice.id          pci 0xac12
-+subdevice.name                Abocom EFE3K - 10/100 Ethernet Expresscard
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x161f
-&subdevice.id          pci 0x203d
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (Arima)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x000d
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x000e
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x000f
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0011
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0012
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0016
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0017
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0018
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0019
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x001c
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x001e
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4351
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0020
-+subdevice.name                Marvell 88E8036 Fast Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4360
-+device.name           Gigabit Ethernet Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4360
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8134
-+subdevice.name                Marvell 88E8052 Gigabit Ethernet Controller (Asus)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4360
-&subvendor.id          pci 0x107b
-&subdevice.id          pci 0x4009
-+subdevice.name                Marvell 88E8052 Gigabit Ethernet Controller (Wistron)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4360
-&subvendor.id          pci 0x11ab
-&subdevice.id          pci 0x5221
-+subdevice.name                Marvell RDK-8052
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4360
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0xe000
-+subdevice.name                Marvell 88E8052 Gigabit Ethernet Controller (Gigabyte)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4360
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x052c
-+subdevice.name                Marvell 88E8052 Gigabit Ethernet Controller (MSI)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4360
-&subvendor.id          pci 0x1849
-&subdevice.id          pci 0x8052
-+subdevice.name                Marvell 88E8052 Gigabit Ethernet Controller (ASRock)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4360
-&subvendor.id          pci 0x1940
-&subdevice.id          pci 0xe000
-+subdevice.name                Marvell 88E8052 Gigabit Ethernet Controller (Gigabyte)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4360
-&subvendor.id          pci 0xa0a0
-&subdevice.id          pci 0x0509
-+subdevice.name                Marvell 88E8052 Gigabit Ethernet Controller (Aopen)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4361
-+device.name           Gigabit Ethernet Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4361
-&subvendor.id          pci 0x107b
-&subdevice.id          pci 0x3015
-+subdevice.name                Marvell 88E8050 Gigabit Ethernet Controller (Gateway)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4361
-&subvendor.id          pci 0x11ab
-&subdevice.id          pci 0x5021
-+subdevice.name                Marvell 88E8050 Gigabit Ethernet Controller (Intel)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4361
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3063
-+subdevice.name                D925XCVLK mainboard
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-+device.name           Gigabit Ethernet Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x2a0d
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Asus)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8142
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Asus)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x109f
-&subdevice.id          pci 0x3197
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Trigem)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x10f7
-&subdevice.id          pci 0x8338
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Panasonic)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x10fd
-&subdevice.id          pci 0xa430
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (SOYO)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Toshiba)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0xff00
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Compal)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0xff10
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Inventec)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x11ab
-&subdevice.id          pci 0x5321
-+subdevice.name                Marvell RDK-8053
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1297
-&subdevice.id          pci 0xc240
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1297
-&subdevice.id          pci 0xc241
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1297
-&subdevice.id          pci 0xc242
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1297
-&subdevice.id          pci 0xc243
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1297
-&subdevice.id          pci 0xc244
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Shuttle)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x13d1
-&subdevice.id          pci 0xac11
-+subdevice.name                Abocom EGE5K - Giga Ethernet Expresscard
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0xe000
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Gigabyte)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x058c
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (MSI)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x14c0
-&subdevice.id          pci 0x0012
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Compal)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1558
-&subdevice.id          pci 0x04a0
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Clevo)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x15bd
-&subdevice.id          pci 0x1003
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (DFI)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x161f
-&subdevice.id          pci 0x203c
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Arima)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x161f
-&subdevice.id          pci 0x203d
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Arima)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1695
-&subdevice.id          pci 0x9029
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Epox)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x17f2
-&subdevice.id          pci 0x2c08
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Albatron)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x17ff
-&subdevice.id          pci 0x0585
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Quanta)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1849
-&subdevice.id          pci 0x8053
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (ASRock)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x000b
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x000c
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0010
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0013
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0014
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0015
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x001a
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x001b
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x001d
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x001f
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0021
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1854
-&subdevice.id          pci 0x0022
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (LGE)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x1940
-&subdevice.id          pci 0xe000
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Gigabyte)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x2801
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Chaintech)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4362
-&subvendor.id          pci 0xa0a0
-&subdevice.id          pci 0x0506
-+subdevice.name                Marvell 88E8053 Gigabit Ethernet Controller (Aopen)
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4611
-+device.name           GT-64115 System Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4620
-+device.name           GT-64120/64120A/64121A System Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x4801
-+device.name           GT-48001
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x5040
-+device.name           MV88SX5040 4-port SATA I PCI-X Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x5041
-+device.name           MV88SX5041 4-port SATA I PCI-X Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x5080
-+device.name           MV88SX5080 8-port SATA I PCI-X Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x5081
-+device.name           MV88SX5081 8-port SATA I PCI-X Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x6041
-+device.name           MV88SX6041 4-port SATA II PCI-X Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x6081
-+device.name           MV88SX6081 8-port SATA II PCI-X Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0x6460
-+device.name           MV64360/64361/64362 System Controller
-
- vendor.id             pci 0x11ab
-&device.id             pci 0xf003
-+device.name           GT-64010 Primary Image Piranha Image Generator
-
- vendor.id             pci 0x11ac
-+vendor.name           Canon Information Systems Research Aust.
-
- vendor.id             pci 0x11ad
-+vendor.name           Lite-On Communications Inc
-
- vendor.id             pci 0x11ad
-&device.id             pci 0x0002
-+device.name           LNE100TX
-
- vendor.id             pci 0x11ad
-&device.id             pci 0x0002
-&subvendor.id          pci 0x11ad
-&subdevice.id          pci 0x0002
-+subdevice.name                LNE100TX
-
- vendor.id             pci 0x11ad
-&device.id             pci 0x0002
-&subvendor.id          pci 0x11ad
-&subdevice.id          pci 0x0003
-+subdevice.name                LNE100TX
-
- vendor.id             pci 0x11ad
-&device.id             pci 0x0002
-&subvendor.id          pci 0x11ad
-&subdevice.id          pci 0xf003
-+subdevice.name                LNE100TX
-
- vendor.id             pci 0x11ad
-&device.id             pci 0x0002
-&subvendor.id          pci 0x11ad
-&subdevice.id          pci 0xffff
-+subdevice.name                LNE100TX
-
- vendor.id             pci 0x11ad
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1385
-&subdevice.id          pci 0xf004
-+subdevice.name                FA310TX
-
- vendor.id             pci 0x11ad
-&device.id             pci 0xc115
-+device.name           LNE100TX [Linksys EtherFast 10/100]
-
- vendor.id             pci 0x11ad
-&device.id             pci 0xc115
-&subvendor.id          pci 0x11ad
-&subdevice.id          pci 0xc001
-+subdevice.name                LNE100TX [ver 2.0]
-
- vendor.id             pci 0x11ae
-+vendor.name           Aztech System Ltd
-
- vendor.id             pci 0x11af
-+vendor.name           Avid Technology Inc.
-
- vendor.id             pci 0x11af
-&device.id             pci 0x0001
-+device.name           [Cinema]
-
- vendor.id             pci 0x11b0
-+vendor.name           V3 Semiconductor Inc.
-
- vendor.id             pci 0x11b0
-&device.id             pci 0x0002
-+device.name           V300PSC
-
- vendor.id             pci 0x11b0
-&device.id             pci 0x0292
-+device.name           V292PBC [Am29030/40 Bridge]
-
- vendor.id             pci 0x11b0
-&device.id             pci 0x0960
-+device.name           V96xPBC
-
- vendor.id             pci 0x11b0
-&device.id             pci 0xc960
-+device.name           V96DPC
-
- vendor.id             pci 0x11b1
-+vendor.name           Apricot Computers
-
- vendor.id             pci 0x11b2
-+vendor.name           Eastman Kodak
-
- vendor.id             pci 0x11b3
-+vendor.name           Barr Systems Inc.
-
- vendor.id             pci 0x11b4
-+vendor.name           Leitch Technology International
-
- vendor.id             pci 0x11b5
-+vendor.name           Radstone Technology Plc
-
- vendor.id             pci 0x11b6
-+vendor.name           United Video Corp
-
- vendor.id             pci 0x11b7
-+vendor.name           Motorola
-
- vendor.id             pci 0x11b8
-+vendor.name           XPoint Technologies, Inc
-
- vendor.id             pci 0x11b8
-&device.id             pci 0x0001
-+device.name           Quad PeerMaster
-
- vendor.id             pci 0x11b9
-+vendor.name           Pathlight Technology Inc.
-
- vendor.id             pci 0x11b9
-&device.id             pci 0xc0ed
-+device.name           SSA Controller
-
- vendor.id             pci 0x11ba
-+vendor.name           Videotron Corp
-
- vendor.id             pci 0x11bb
-+vendor.name           Pyramid Technology
-
- vendor.id             pci 0x11bc
-+vendor.name           Network Peripherals Inc
-
- vendor.id             pci 0x11bc
-&device.id             pci 0x0001
-+device.name           NP-PCI
-
- vendor.id             pci 0x11bd
-+vendor.name           Pinnacle Systems Inc.
-
- vendor.id             pci 0x11be
-+vendor.name           International Microcircuits Inc
-
- vendor.id             pci 0x11bf
-+vendor.name           Astrodesign, Inc.
-
- vendor.id             pci 0x11c0
-+vendor.name           Hewlett Packard
-
- vendor.id             pci 0x11c1
-+vendor.name           Agere Systems (former Lucent Microelectronics)
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-+device.name           56k WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8015
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8047
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x804f
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x102c
-+subdevice.name                LB LT Modem V.90 56k
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x104a
-+subdevice.name                BIBLO LT Modem 56k
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x105f
-+subdevice.name                LB2 LT Modem V.90 56k
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Internal V.90 Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x11c1
-&subdevice.id          pci 0x0440
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4101
-+subdevice.name                MDP7800-U Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4102
-+subdevice.name                MDP7800SP-U Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0040
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0440
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0441
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0450
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0xf100
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0xf101
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0x2101
-+subdevice.name                LT56PV Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0440
-&subvendor.id          pci 0x149f
-&subdevice.id          pci 0x0440
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-+device.name           56k WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x804d
-+subdevice.name                LT WinModem 56k Data+Fax
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8065
-+subdevice.name                LT WinModem 56k Data+Fax
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0440
-+subdevice.name                Supra 56i
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Internal V.90 Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x11c1
-&subdevice.id          pci 0x0440
-+subdevice.name                LT WinModem 56k Data+Fax
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x11c1
-&subdevice.id          pci 0x0441
-+subdevice.name                LT WinModem 56k Data+Fax
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4100
-+subdevice.name                MDP7800-U Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0040
-+subdevice.name                LT WinModem 56k Data+Fax
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0100
-+subdevice.name                LT WinModem 56k Data+Fax
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0410
-+subdevice.name                LT WinModem 56k Data+Fax
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0420
-+subdevice.name                TelePath Internet 56k WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0440
-+subdevice.name                LT WinModem 56k Data+Fax
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0443
-+subdevice.name                LT WinModem 56k Data+Fax
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0xf102
-+subdevice.name                LT WinModem 56k Data+Fax
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x1416
-&subdevice.id          pci 0x9804
-+subdevice.name                CommWave 56k Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x141d
-&subdevice.id          pci 0x0440
-+subdevice.name                LT WinModem 56k Data+Fax
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x0441
-+subdevice.name                Lucent 56k V.90 DF Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x0449
-+subdevice.name                Lucent 56k V.90 DF Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x110d
-+subdevice.name                Lucent Win Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x1468
-&subdevice.id          pci 0x0441
-+subdevice.name                Presario 56k V.90 DF Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0441
-&subvendor.id          pci 0x1668
-&subdevice.id          pci 0x0440
-+subdevice.name                Lucent Win Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0442
-+device.name           56k WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0442
-&subvendor.id          pci 0x11c1
-&subdevice.id          pci 0x0440
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0442
-&subvendor.id          pci 0x11c1
-&subdevice.id          pci 0x0442
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0442
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0412
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0442
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0442
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0442
-&subvendor.id          pci 0x13fc
-&subdevice.id          pci 0x2471
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0442
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0x2104
-+subdevice.name                LT56PT Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0442
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x1104
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0442
-&subvendor.id          pci 0x149f
-&subdevice.id          pci 0x0440
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0442
-&subvendor.id          pci 0x1668
-&subdevice.id          pci 0x0440
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0443
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0444
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0445
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0445
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2203
-+subdevice.name                PRO/100+ MiniPCI (probably an Ambit U98.003.C.00 combo card)
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0445
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2204
-+subdevice.name                PRO/100+ MiniPCI on Armada E500
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0446
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0447
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0448
-+device.name           WinModem 56k
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0448
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0131
-+subdevice.name                Lucent Win Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0448
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8066
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0448
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0030
-+subdevice.name                56k Voice Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0448
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0040
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0448
-&subvendor.id          pci 0x1668
-&subdevice.id          pci 0x2400
-+subdevice.name                LT WinModem 56k (MiniPCI Ethernet+Modem)
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0449
-+device.name           WinModem 56k
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0449
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb14d
-+subdevice.name                56k V.90 Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0449
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0020
-+subdevice.name                LT WinModem 56k Data+Fax
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0449
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0041
-+subdevice.name                TelePath Internet 56k WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0449
-&subvendor.id          pci 0x1436
-&subdevice.id          pci 0x0440
-+subdevice.name                Lucent Win Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0449
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x0449
-+subdevice.name                Lucent 56k V.90 DFi Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0449
-&subvendor.id          pci 0x1468
-&subdevice.id          pci 0x0410
-+subdevice.name                IBM ThinkPad T23 (2647-4MG)
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0449
-&subvendor.id          pci 0x1468
-&subdevice.id          pci 0x0440
-+subdevice.name                Lucent Win Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0449
-&subvendor.id          pci 0x1468
-&subdevice.id          pci 0x0449
-+subdevice.name                Presario 56k V.90 DFi Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x044a
-+device.name           F-1156IV WinModem (V90, 56KFlex)
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x044a
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1072
-+subdevice.name                LB Global LT Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x044a
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0012
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x044a
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0042
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x044a
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x1005
-+subdevice.name                LT WinModem 56k Data+Fax+Voice+VoiceView+Dsvd
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x044b
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x044c
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x044d
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x044e
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x044f
-+device.name           V90 WildWire Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0450
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0450
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x80a8
-+subdevice.name                Versa Note Vxi
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0450
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x4005
-+subdevice.name                Magnia SG20
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0451
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0452
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0453
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0454
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0455
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0456
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0457
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0458
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0459
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x045a
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x045c
-+device.name           LT WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0461
-+device.name           V90 WildWire Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0462
-+device.name           V90 WildWire Modem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x0480
-+device.name           Venus Modem (V90, 56KFlex)
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x048c
-+device.name           V.92 56K WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x048f
-+device.name           V.92 56k WinModem
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x5801
-+device.name           USB
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x5802
-+device.name           USS-312 USB Controller
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x5803
-+device.name           USS-344S USB Controller
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x5811
-+device.name           FW323
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x5811
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x524c
-+subdevice.name                D865PERL mainboard
-
- vendor.id             pci 0x11c1
-&device.id             pci 0x5811
-&subvendor.id          pci 0xdead
-&subdevice.id          pci 0x0800
-+subdevice.name                FireWire Host Bus Adapter
-
- vendor.id             pci 0x11c1
-&device.id             pci 0xab10
-+device.name           WL60010 Wireless LAN MAC
-
- vendor.id             pci 0x11c1
-&device.id             pci 0xab11
-+device.name           WL60040 Multimode Wireles LAN MAC
-
- vendor.id             pci 0x11c1
-&device.id             pci 0xab11
-&subvendor.id          pci 0x11c1
-&subdevice.id          pci 0xab12
-+subdevice.name                WaveLAN 11abg Cardbus card (Model 1102)
-
- vendor.id             pci 0x11c1
-&device.id             pci 0xab11
-&subvendor.id          pci 0x11c1
-&subdevice.id          pci 0xab13
-+subdevice.name                WaveLAN 11abg MiniPCI card (Model 0512)
-
- vendor.id             pci 0x11c1
-&device.id             pci 0xab11
-&subvendor.id          pci 0x11c1
-&subdevice.id          pci 0xab15
-+subdevice.name                WaveLAN 11abg Cardbus card (Model 1106)
-
- vendor.id             pci 0x11c1
-&device.id             pci 0xab11
-&subvendor.id          pci 0x11c1
-&subdevice.id          pci 0xab16
-+subdevice.name                WaveLAN 11abg MiniPCI card (Model 0516)
-
- vendor.id             pci 0x11c1
-&device.id             pci 0xab20
-+device.name           ORiNOCO PCI Adapter
-
- vendor.id             pci 0x11c1
-&device.id             pci 0xab21
-+device.name           Agere Wireless PCI Adapter
-
- vendor.id             pci 0x11c1
-&device.id             pci 0xab30
-+device.name           Hermes2 Mini-PCI WaveLAN a/b/g
-
- vendor.id             pci 0x11c1
-&device.id             pci 0xab30
-&subvendor.id          pci 0x14cd
-&subdevice.id          pci 0x2012
-+subdevice.name                Hermes2 Mini-PCI WaveLAN a/b/g
-
- vendor.id             pci 0x11c2
-+vendor.name           Sand Microelectronics
-
- vendor.id             pci 0x11c3
-+vendor.name           NEC Corporation
-
- vendor.id             pci 0x11c4
-+vendor.name           Document Technologies, Inc
-
- vendor.id             pci 0x11c5
-+vendor.name           Shiva Corporation
-
- vendor.id             pci 0x11c6
-+vendor.name           Dainippon Screen Mfg. Co. Ltd
-
- vendor.id             pci 0x11c7
-+vendor.name           D.C.M. Data Systems
-
- vendor.id             pci 0x11c8
-+vendor.name           Dolphin Interconnect Solutions AS
-
- vendor.id             pci 0x11c8
-&device.id             pci 0x0658
-+device.name           PSB32 SCI-Adapter D31x
-
- vendor.id             pci 0x11c8
-&device.id             pci 0xd665
-+device.name           PSB64 SCI-Adapter D32x
-
- vendor.id             pci 0x11c8
-&device.id             pci 0xd667
-+device.name           PSB66 SCI-Adapter D33x
-
- vendor.id             pci 0x11c9
-+vendor.name           Magma
-
- vendor.id             pci 0x11c9
-&device.id             pci 0x0010
-+device.name           16-line serial port w/- DMA
-
- vendor.id             pci 0x11c9
-&device.id             pci 0x0011
-+device.name           4-line serial port w/- DMA
-
- vendor.id             pci 0x11ca
-+vendor.name           LSI Systems, Inc
-
- vendor.id             pci 0x11cb
-+vendor.name           Specialix Research Ltd.
-
- vendor.id             pci 0x11cb
-&device.id             pci 0x2000
-+device.name           PCI_9050
-
- vendor.id             pci 0x11cb
-&device.id             pci 0x2000
-&subvendor.id          pci 0x11cb
-&subdevice.id          pci 0x0200
-+subdevice.name                SX
-
- vendor.id             pci 0x11cb
-&device.id             pci 0x2000
-&subvendor.id          pci 0x11cb
-&subdevice.id          pci 0xb008
-+subdevice.name                I/O8+
-
- vendor.id             pci 0x11cb
-&device.id             pci 0x4000
-+device.name           SUPI_1
-
- vendor.id             pci 0x11cb
-&device.id             pci 0x8000
-+device.name           T225
-
- vendor.id             pci 0x11cc
-+vendor.name           Michels & Kleberhoff Computer GmbH
-
- vendor.id             pci 0x11cd
-+vendor.name           HAL Computer Systems, Inc.
-
- vendor.id             pci 0x11ce
-+vendor.name           Netaccess
-
- vendor.id             pci 0x11cf
-+vendor.name           Pioneer Electronic Corporation
-
- vendor.id             pci 0x11d0
-+vendor.name           Lockheed Martin Federal Systems-Manassas
-
- vendor.id             pci 0x11d1
-+vendor.name           Auravision
-
- vendor.id             pci 0x11d1
-&device.id             pci 0x01f7
-+device.name           VxP524
-
- vendor.id             pci 0x11d2
-+vendor.name           Intercom Inc.
-
- vendor.id             pci 0x11d3
-+vendor.name           Trancell Systems Inc
-
- vendor.id             pci 0x11d4
-+vendor.name           Analog Devices
-
- vendor.id             pci 0x11d4
-&device.id             pci 0x1535
-+device.name           Blackfin BF535 processor
-
- vendor.id             pci 0x11d4
-&device.id             pci 0x1805
-+device.name           SM56 PCI modem
-
- vendor.id             pci 0x11d4
-&device.id             pci 0x1889
-+device.name           AD1889 sound chip
-
- vendor.id             pci 0x11d5
-+vendor.name           Ikon Corporation
-
- vendor.id             pci 0x11d5
-&device.id             pci 0x0115
-+device.name           10115
-
- vendor.id             pci 0x11d5
-&device.id             pci 0x0117
-+device.name           10117
-
- vendor.id             pci 0x11d6
-+vendor.name           Tekelec Telecom
-
- vendor.id             pci 0x11d7
-+vendor.name           Trenton Technology, Inc.
-
- vendor.id             pci 0x11d8
-+vendor.name           Image Technologies Development
-
- vendor.id             pci 0x11d9
-+vendor.name           TEC Corporation
-
- vendor.id             pci 0x11da
-+vendor.name           Novell
-
- vendor.id             pci 0x11db
-+vendor.name           Sega Enterprises Ltd
-
- vendor.id             pci 0x11dc
-+vendor.name           Questra Corporation
-
- vendor.id             pci 0x11dd
-+vendor.name           Crosfield Electronics Limited
-
- vendor.id             pci 0x11de
-+vendor.name           Zoran Corporation
-
- vendor.id             pci 0x11de
-&device.id             pci 0x6057
-+device.name           ZR36057PQC Video cutting chipset
-
- vendor.id             pci 0x11de
-&device.id             pci 0x6057
-&subvendor.id          pci 0x1031
-&subdevice.id          pci 0x7efe
-+subdevice.name                DC10 Plus
-
- vendor.id             pci 0x11de
-&device.id             pci 0x6057
-&subvendor.id          pci 0x1031
-&subdevice.id          pci 0xfc00
-+subdevice.name                MiroVIDEO DC50, Motion JPEG Capture/CODEC Board
-
- vendor.id             pci 0x11de
-&device.id             pci 0x6057
-&subvendor.id          pci 0x13ca
-&subdevice.id          pci 0x4231
-+subdevice.name                JPEG/TV Card
-
- vendor.id             pci 0x11de
-&device.id             pci 0x6120
-+device.name           ZR36120
-
- vendor.id             pci 0x11de
-&device.id             pci 0x6120
-&subvendor.id          pci 0x1328
-&subdevice.id          pci 0xf001
-+subdevice.name                Cinemaster C DVD Decoder
-
- vendor.id             pci 0x11df
-+vendor.name           New Wave PDG
-
- vendor.id             pci 0x11e0
-+vendor.name           Cray Communications A/S
-
- vendor.id             pci 0x11e1
-+vendor.name           GEC Plessey Semi Inc.
-
- vendor.id             pci 0x11e2
-+vendor.name           Samsung Information Systems America
-
- vendor.id             pci 0x11e3
-+vendor.name           Quicklogic Corporation
-
- vendor.id             pci 0x11e3
-&device.id             pci 0x5030
-+device.name           PC Watchdog
-
- vendor.id             pci 0x11e4
-+vendor.name           Second Wave Inc
-
- vendor.id             pci 0x11e5
-+vendor.name           IIX Consulting
-
- vendor.id             pci 0x11e6
-+vendor.name           Mitsui-Zosen System Research
-
- vendor.id             pci 0x11e7
-+vendor.name           Toshiba America, Elec. Company
-
- vendor.id             pci 0x11e8
-+vendor.name           Digital Processing Systems Inc.
-
- vendor.id             pci 0x11e9
-+vendor.name           Highwater Designs Ltd.
-
- vendor.id             pci 0x11ea
-+vendor.name           Elsag Bailey
-
- vendor.id             pci 0x11eb
-+vendor.name           Formation Inc.
-
- vendor.id             pci 0x11ec
-+vendor.name           Coreco Inc
-
- vendor.id             pci 0x11ed
-+vendor.name           Mediamatics
-
- vendor.id             pci 0x11ee
-+vendor.name           Dome Imaging Systems Inc
-
- vendor.id             pci 0x11ef
-+vendor.name           Nicolet Technologies B.V.
-
- vendor.id             pci 0x11f0
-+vendor.name           Compu-Shack
-
- vendor.id             pci 0x11f0
-&device.id             pci 0x4231
-+device.name           FDDI
-
- vendor.id             pci 0x11f0
-&device.id             pci 0x4232
-+device.name           FASTline UTP Quattro
-
- vendor.id             pci 0x11f0
-&device.id             pci 0x4233
-+device.name           FASTline FO
-
- vendor.id             pci 0x11f0
-&device.id             pci 0x4234
-+device.name           FASTline UTP
-
- vendor.id             pci 0x11f0
-&device.id             pci 0x4235
-+device.name           FASTline-II UTP
-
- vendor.id             pci 0x11f0
-&device.id             pci 0x4236
-+device.name           FASTline-II FO
-
- vendor.id             pci 0x11f0
-&device.id             pci 0x4731
-+device.name           GIGAline
-
- vendor.id             pci 0x11f1
-+vendor.name           Symbios Logic Inc
-
- vendor.id             pci 0x11f2
-+vendor.name           Picture Tel Japan K.K.
-
- vendor.id             pci 0x11f3
-+vendor.name           Keithley Metrabyte
-
- vendor.id             pci 0x11f4
-+vendor.name           Kinetic Systems Corporation
-
- vendor.id             pci 0x11f4
-&device.id             pci 0x2915
-+device.name           CAMAC controller
-
- vendor.id             pci 0x11f5
-+vendor.name           Computing Devices International
-
- vendor.id             pci 0x11f6
-+vendor.name           Compex
-
- vendor.id             pci 0x11f6
-&device.id             pci 0x0112
-+device.name           ENet100VG4
-
- vendor.id             pci 0x11f6
-&device.id             pci 0x0113
-+device.name           FreedomLine 100
-
- vendor.id             pci 0x11f6
-&device.id             pci 0x1401
-+device.name           ReadyLink 2000
-
- vendor.id             pci 0x11f6
-&device.id             pci 0x2011
-+device.name           RL100-ATX 10/100
-
- vendor.id             pci 0x11f6
-&device.id             pci 0x2011
-&subvendor.id          pci 0x11f6
-&subdevice.id          pci 0x2011
-+subdevice.name                RL100-ATX
-
- vendor.id             pci 0x11f6
-&device.id             pci 0x2201
-+device.name           ReadyLink 100TX (Winbond W89C840)
-
- vendor.id             pci 0x11f6
-&device.id             pci 0x2201
-&subvendor.id          pci 0x11f6
-&subdevice.id          pci 0x2011
-+subdevice.name                ReadyLink 100TX
-
- vendor.id             pci 0x11f6
-&device.id             pci 0x9881
-+device.name           RL100TX Fast Ethernet
-
- vendor.id             pci 0x11f7
-+vendor.name           Scientific Atlanta
-
- vendor.id             pci 0x11f8
-+vendor.name           PMC-Sierra Inc.
-
- vendor.id             pci 0x11f8
-&device.id             pci 0x7375
-+device.name           PM7375 [LASAR-155 ATM SAR]
-
- vendor.id             pci 0x11f9
-+vendor.name           I-Cube Inc
-
- vendor.id             pci 0x11fa
-+vendor.name           Kasan Electronics Company, Ltd.
-
- vendor.id             pci 0x11fb
-+vendor.name           Datel Inc
-
- vendor.id             pci 0x11fc
-+vendor.name           Silicon Magic
-
- vendor.id             pci 0x11fd
-+vendor.name           High Street Consultants
-
- vendor.id             pci 0x11fe
-+vendor.name           Comtrol Corporation
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0001
-+device.name           RocketPort 32 port w/external I/F
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0002
-+device.name           RocketPort 8 port w/external I/F
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0003
-+device.name           RocketPort 16 port w/external I/F
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0004
-+device.name           RocketPort 4 port w/quad cable
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0005
-+device.name           RocketPort 8 port w/octa cable
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0006
-+device.name           RocketPort 8 port w/RJ11 connectors
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0007
-+device.name           RocketPort 4 port w/RJ11 connectors
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0008
-+device.name           RocketPort 8 port w/ DB78 SNI (Siemens) connector
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0009
-+device.name           RocketPort 16 port w/ DB78 SNI (Siemens) connector
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x000a
-+device.name           RocketPort Plus 4 port
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x000b
-+device.name           RocketPort Plus 8 port
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x000c
-+device.name           RocketModem 6 port
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x000d
-+device.name           RocketModem 4-port
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x000e
-+device.name           RocketPort Plus 2 port RS232
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x000f
-+device.name           RocketPort Plus 2 port RS422
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0801
-+device.name           RocketPort UPCI 32 port w/external I/F
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0802
-+device.name           RocketPort UPCI 8 port w/external I/F
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0803
-+device.name           RocketPort UPCI 16 port w/external I/F
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0805
-+device.name           RocketPort UPCI 8 port w/octa cable
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x080c
-+device.name           RocketModem III 8 port
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x080d
-+device.name           RocketModem III 4 port
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x0903
-+device.name           RocketPort Compact PCI 16 port w/external I/F
-
- vendor.id             pci 0x11fe
-&device.id             pci 0x8015
-+device.name           RocketPort 4-port UART 16954
-
- vendor.id             pci 0x11ff
-+vendor.name           Scion Corporation
-
- vendor.id             pci 0x11ff
-&device.id             pci 0x0003
-+device.name           AG-5
-
- vendor.id             pci 0x1200
-+vendor.name           CSS Corporation
-
- vendor.id             pci 0x1201
-+vendor.name           Vista Controls Corp
-
- vendor.id             pci 0x1202
-+vendor.name           Network General Corp.
-
- vendor.id             pci 0x1202
-&device.id             pci 0x4300
-+device.name           Gigabit Ethernet Adapter
-
- vendor.id             pci 0x1202
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1202
-&subdevice.id          pci 0x9841
-+subdevice.name                SK-9841 LX
-
- vendor.id             pci 0x1202
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1202
-&subdevice.id          pci 0x9842
-+subdevice.name                SK-9841 LX dual link
-
- vendor.id             pci 0x1202
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1202
-&subdevice.id          pci 0x9843
-+subdevice.name                SK-9843 SX
-
- vendor.id             pci 0x1202
-&device.id             pci 0x4300
-&subvendor.id          pci 0x1202
-&subdevice.id          pci 0x9844
-+subdevice.name                SK-9843 SX dual link
-
- vendor.id             pci 0x1203
-+vendor.name           Bayer Corporation, Agfa Division
-
- vendor.id             pci 0x1204
-+vendor.name           Lattice Semiconductor Corporation
-
- vendor.id             pci 0x1205
-+vendor.name           Array Corporation
-
- vendor.id             pci 0x1206
-+vendor.name           Amdahl Corporation
-
- vendor.id             pci 0x1208
-+vendor.name           Parsytec GmbH
-
- vendor.id             pci 0x1208
-&device.id             pci 0x4853
-+device.name           HS-Link Device
-
- vendor.id             pci 0x1209
-+vendor.name           SCI Systems Inc
-
- vendor.id             pci 0x120a
-+vendor.name           Synaptel
-
- vendor.id             pci 0x120b
-+vendor.name           Adaptive Solutions
-
- vendor.id             pci 0x120c
-+vendor.name           Technical Corp.
-
- vendor.id             pci 0x120d
-+vendor.name           Compression Labs, Inc.
-
- vendor.id             pci 0x120e
-+vendor.name           Cyclades Corporation
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0100
-+device.name           Cyclom-Y below first megabyte
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0101
-+device.name           Cyclom-Y above first megabyte
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0102
-+device.name           Cyclom-4Y below first megabyte
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0103
-+device.name           Cyclom-4Y above first megabyte
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0104
-+device.name           Cyclom-8Y below first megabyte
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0105
-+device.name           Cyclom-8Y above first megabyte
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0200
-+device.name           Cyclades-Z below first megabyte
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0201
-+device.name           Cyclades-Z above first megabyte
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0300
-+device.name           PC300/RSV or /X21 (2 ports)
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0301
-+device.name           PC300/RSV or /X21 (1 port)
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0310
-+device.name           PC300/TE (2 ports)
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0311
-+device.name           PC300/TE (1 port)
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0320
-+device.name           PC300/TE-M (2 ports)
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0321
-+device.name           PC300/TE-M (1 port)
-
- vendor.id             pci 0x120e
-&device.id             pci 0x0400
-+device.name           PC400
-
- vendor.id             pci 0x120f
-+vendor.name           Essential Communications
-
- vendor.id             pci 0x120f
-&device.id             pci 0x0001
-+device.name           Roadrunner serial HIPPI
-
- vendor.id             pci 0x1210
-+vendor.name           Hyperparallel Technologies
-
- vendor.id             pci 0x1211
-+vendor.name           Braintech Inc
-
- vendor.id             pci 0x1212
-+vendor.name           Kingston Technology Corp.
-
- vendor.id             pci 0x1213
-+vendor.name           Applied Intelligent Systems, Inc.
-
- vendor.id             pci 0x1214
-+vendor.name           Performance Technologies, Inc.
-
- vendor.id             pci 0x1215
-+vendor.name           Interware Co., Ltd
-
- vendor.id             pci 0x1216
-+vendor.name           Purup Prepress A/S
-
- vendor.id             pci 0x1217
-+vendor.name           O2 Micro, Inc.
-
- vendor.id             pci 0x1217
-&device.id             pci 0x6729
-+device.name           OZ6729
-
- vendor.id             pci 0x1217
-&device.id             pci 0x673a
-+device.name           OZ6730
-
- vendor.id             pci 0x1217
-&device.id             pci 0x6832
-+device.name           OZ6832/6833 Cardbus Controller
-
- vendor.id             pci 0x1217
-&device.id             pci 0x6836
-+device.name           OZ6836/6860 Cardbus Controller
-
- vendor.id             pci 0x1217
-&device.id             pci 0x6872
-+device.name           OZ6812 Cardbus Controller
-
- vendor.id             pci 0x1217
-&device.id             pci 0x6925
-+device.name           OZ6922 Cardbus Controller
-
- vendor.id             pci 0x1217
-&device.id             pci 0x6933
-+device.name           OZ6933 Cardbus Controller
-
- vendor.id             pci 0x1217
-&device.id             pci 0x6933
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x1016
-+subdevice.name                Travelmate 612 TX
-
- vendor.id             pci 0x1217
-&device.id             pci 0x6972
-+device.name           OZ6912 Cardbus Controller
-
- vendor.id             pci 0x1217
-&device.id             pci 0x6972
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x020c
-+subdevice.name                ThinkPad R30
-
- vendor.id             pci 0x1217
-&device.id             pci 0x6972
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Magnia Z310
-
- vendor.id             pci 0x1217
-&device.id             pci 0x7110
-+device.name           OZ711Mx MultiMediaBay Accelerator
-
- vendor.id             pci 0x1217
-&device.id             pci 0x7110
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0890
-+subdevice.name                NC6000 laptop
-
- vendor.id             pci 0x1217
-&device.id             pci 0x7112
-+device.name           OZ711EC1/M1 SmartCardBus MultiMediaBay Controller
-
- vendor.id             pci 0x1217
-&device.id             pci 0x7113
-+device.name           OZ711EC1 SmartCardBus Controller
-
- vendor.id             pci 0x1217
-&device.id             pci 0x7114
-+device.name           OZ711M1 SmartCardBus MultiMediaBay Controller
-
- vendor.id             pci 0x1217
-&device.id             pci 0x71e2
-+device.name           OZ711E2 SmartCardBus Controller
-
- vendor.id             pci 0x1217
-&device.id             pci 0x7212
-+device.name           OZ711M2 SmartCardBus MultiMediaBay Controller
-
- vendor.id             pci 0x1217
-&device.id             pci 0x7213
-+device.name           OZ6933E CardBus Controller
-
- vendor.id             pci 0x1217
-&device.id             pci 0x7223
-+device.name           OZ711M3 SmartCardBus MultiMediaBay Controller
-
- vendor.id             pci 0x1217
-&device.id             pci 0x7223
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0890
-+subdevice.name                NC6000 laptop
-
- vendor.id             pci 0x1218
-+vendor.name           Hybricon Corp.
-
- vendor.id             pci 0x1219
-+vendor.name           First Virtual Corporation
-
- vendor.id             pci 0x121a
-+vendor.name           3Dfx Interactive, Inc.
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0001
-+device.name           Voodoo
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0002
-+device.name           Voodoo 2
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-+device.name           Voodoo Banshee
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0003
-+subdevice.name                Monster Fusion
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4000
-+subdevice.name                Monster Fusion
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4002
-+subdevice.name                Monster Fusion
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4801
-+subdevice.name                Monster Fusion AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4803
-+subdevice.name                Monster Fusion AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x8030
-+subdevice.name                Monster Fusion
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x8035
-+subdevice.name                Monster Fusion AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x10b0
-&subdevice.id          pci 0x0001
-+subdevice.name                Dragon 4000
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x1018
-+subdevice.name                3D Blaster Banshee VE
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0001
-+subdevice.name                Voodoo Banshee AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0003
-+subdevice.name                Voodoo Banshee AGP SGRAM
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0004
-+subdevice.name                Voodoo Banshee
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x139c
-&subdevice.id          pci 0x0016
-+subdevice.name                Raven
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x139c
-&subdevice.id          pci 0x0017
-+subdevice.name                Raven
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-&subvendor.id          pci 0x14af
-&subdevice.id          pci 0x0002
-+subdevice.name                Maxi Gamer Phoenix
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0004
-+device.name           Voodoo Banshee [Velocity 100]
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-+device.name           Voodoo 3
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0004
-+subdevice.name                Voodoo3 AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0030
-+subdevice.name                Voodoo3 AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0031
-+subdevice.name                Voodoo3 AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0034
-+subdevice.name                Voodoo3 AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0036
-+subdevice.name                Voodoo3 2000 PCI
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0037
-+subdevice.name                Voodoo3 AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0038
-+subdevice.name                Voodoo3 AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x003a
-+subdevice.name                Voodoo3 AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0044
-+subdevice.name                Voodoo3
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x004b
-+subdevice.name                Velocity 100
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x004c
-+subdevice.name                Velocity 200
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x004d
-+subdevice.name                Voodoo3 AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x004e
-+subdevice.name                Voodoo3 AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0051
-+subdevice.name                Voodoo3 AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0052
-+subdevice.name                Voodoo3 AGP
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0060
-+subdevice.name                Voodoo3 3500 TV (NTSC)
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0061
-+subdevice.name                Voodoo3 3500 TV (PAL)
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0062
-+subdevice.name                Voodoo3 3500 TV (SECAM)
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0009
-+device.name           Voodoo 4 / Voodoo 5
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0009
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0003
-+subdevice.name                Voodoo5 PCI 5500
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0009
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x0009
-+subdevice.name                Voodoo5 AGP 5500/6000
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0057
-+device.name           Voodoo 3/3000 [Avenger]
-
- vendor.id             pci 0x121b
-+vendor.name           Advanced Telecommunications Modules
-
- vendor.id             pci 0x121c
-+vendor.name           Nippon Texaco., Ltd
-
- vendor.id             pci 0x121d
-+vendor.name           Lippert Automationstechnik GmbH
-
- vendor.id             pci 0x121e
-+vendor.name           CSPI
-
- vendor.id             pci 0x121f
-+vendor.name           Arcus Technology, Inc.
-
- vendor.id             pci 0x1220
-+vendor.name           Ariel Corporation
-
- vendor.id             pci 0x1220
-&device.id             pci 0x1220
-+device.name           AMCC 5933 TMS320C80 DSP/Imaging board
-
- vendor.id             pci 0x1221
-+vendor.name           Contec Co., Ltd
-
- vendor.id             pci 0x1222
-+vendor.name           Ancor Communications, Inc.
-
- vendor.id             pci 0x1223
-+vendor.name           Artesyn Communication Products
-
- vendor.id             pci 0x1223
-&device.id             pci 0x0003
-+device.name           PM/Link
-
- vendor.id             pci 0x1223
-&device.id             pci 0x0004
-+device.name           PM/T1
-
- vendor.id             pci 0x1223
-&device.id             pci 0x0005
-+device.name           PM/E1
-
- vendor.id             pci 0x1223
-&device.id             pci 0x0008
-+device.name           PM/SLS
-
- vendor.id             pci 0x1223
-&device.id             pci 0x0009
-+device.name           BajaSpan Resource Target
-
- vendor.id             pci 0x1223
-&device.id             pci 0x000a
-+device.name           BajaSpan Section 0
-
- vendor.id             pci 0x1223
-&device.id             pci 0x000b
-+device.name           BajaSpan Section 1
-
- vendor.id             pci 0x1223
-&device.id             pci 0x000c
-+device.name           BajaSpan Section 2
-
- vendor.id             pci 0x1223
-&device.id             pci 0x000d
-+device.name           BajaSpan Section 3
-
- vendor.id             pci 0x1223
-&device.id             pci 0x000e
-+device.name           PM/PPC
-
- vendor.id             pci 0x1224
-+vendor.name           Interactive Images
-
- vendor.id             pci 0x1225
-+vendor.name           Power I/O, Inc.
-
- vendor.id             pci 0x1227
-+vendor.name           Tech-Source
-
- vendor.id             pci 0x1227
-&device.id             pci 0x0006
-+device.name           Raptor GFX 8P
-
- vendor.id             pci 0x1228
-+vendor.name           Norsk Elektro Optikk A/S
-
- vendor.id             pci 0x1229
-+vendor.name           Data Kinesis Inc.
-
- vendor.id             pci 0x122a
-+vendor.name           Integrated Telecom
-
- vendor.id             pci 0x122b
-+vendor.name           LG Industrial Systems Co., Ltd
-
- vendor.id             pci 0x122c
-+vendor.name           Sican GmbH
-
- vendor.id             pci 0x122d
-+vendor.name           Aztech System Ltd
-
- vendor.id             pci 0x122d
-&device.id             pci 0x1206
-+device.name           368DSP
-
- vendor.id             pci 0x122d
-&device.id             pci 0x1400
-+device.name           Trident PCI288-Q3DII (NX)
-
- vendor.id             pci 0x122d
-&device.id             pci 0x50dc
-+device.name           3328 Audio
-
- vendor.id             pci 0x122d
-&device.id             pci 0x50dc
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x0001
-+subdevice.name                3328 Audio
-
- vendor.id             pci 0x122d
-&device.id             pci 0x80da
-+device.name           3328 Audio
-
- vendor.id             pci 0x122d
-&device.id             pci 0x80da
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x0001
-+subdevice.name                3328 Audio
-
- vendor.id             pci 0x122e
-+vendor.name           Xyratex
-
- vendor.id             pci 0x122f
-+vendor.name           Andrew Corporation
-
- vendor.id             pci 0x1230
-+vendor.name           Fishcamp Engineering
-
- vendor.id             pci 0x1231
-+vendor.name           Woodward McCoach, Inc.
-
- vendor.id             pci 0x1232
-+vendor.name           GPT Limited
-
- vendor.id             pci 0x1233
-+vendor.name           Bus-Tech, Inc.
-
- vendor.id             pci 0x1234
-+vendor.name           Technical Corp.
-
- vendor.id             pci 0x1235
-+vendor.name           Risq Modular Systems, Inc.
-
- vendor.id             pci 0x1236
-+vendor.name           Sigma Designs Corporation
-
- vendor.id             pci 0x1236
-&device.id             pci 0x0000
-+device.name           RealMagic64/GX
-
- vendor.id             pci 0x1236
-&device.id             pci 0x6401
-+device.name           REALmagic 64/GX (SD 6425)
-
- vendor.id             pci 0x1237
-+vendor.name           Alta Technology Corporation
-
- vendor.id             pci 0x1238
-+vendor.name           Adtran
-
- vendor.id             pci 0x1239
-+vendor.name           3DO Company
-
- vendor.id             pci 0x123a
-+vendor.name           Visicom Laboratories, Inc.
-
- vendor.id             pci 0x123b
-+vendor.name           Seeq Technology, Inc.
-
- vendor.id             pci 0x123c
-+vendor.name           Century Systems, Inc.
-
- vendor.id             pci 0x123d
-+vendor.name           Engineering Design Team, Inc.
-
- vendor.id             pci 0x123d
-&device.id             pci 0x0000
-+device.name           EasyConnect 8/32
-
- vendor.id             pci 0x123d
-&device.id             pci 0x0002
-+device.name           EasyConnect 8/64
-
- vendor.id             pci 0x123d
-&device.id             pci 0x0003
-+device.name           EasyIO
-
- vendor.id             pci 0x123e
-+vendor.name           Simutech, Inc.
-
- vendor.id             pci 0x123f
-+vendor.name           C-Cube Microsystems
-
- vendor.id             pci 0x123f
-&device.id             pci 0x00e4
-+device.name           MPEG
-
- vendor.id             pci 0x123f
-&device.id             pci 0x8120
-+device.name           E4?
-
- vendor.id             pci 0x123f
-&device.id             pci 0x8120
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x0006
-+subdevice.name                DV500 E4
-
- vendor.id             pci 0x123f
-&device.id             pci 0x8120
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x000a
-+subdevice.name                DV500 E4
-
- vendor.id             pci 0x123f
-&device.id             pci 0x8888
-+device.name           Cinemaster C 3.0 DVD Decoder
-
- vendor.id             pci 0x123f
-&device.id             pci 0x8888
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0001
-+subdevice.name                Cinemaster C 3.0 DVD Decoder
-
- vendor.id             pci 0x123f
-&device.id             pci 0x8888
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0002
-+subdevice.name                Cinemaster C 3.0 DVD Decoder
-
- vendor.id             pci 0x123f
-&device.id             pci 0x8888
-&subvendor.id          pci 0x1328
-&subdevice.id          pci 0x0001
-+subdevice.name                Cinemaster C 3.0 DVD Decoder
-
- vendor.id             pci 0x1240
-+vendor.name           Marathon Technologies Corp.
-
- vendor.id             pci 0x1241
-+vendor.name           DSC Communications
-
- vendor.id             pci 0x1242
-+vendor.name           JNI Corporation
-
- vendor.id             pci 0x1242
-&device.id             pci 0x1560
-+device.name           JNIC-1560 PCI-X Fibre Channel Controller
-
- vendor.id             pci 0x1242
-&device.id             pci 0x1560
-&subvendor.id          pci 0x1242
-&subdevice.id          pci 0x6562
-+subdevice.name                FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter
-
- vendor.id             pci 0x1242
-&device.id             pci 0x1560
-&subvendor.id          pci 0x1242
-&subdevice.id          pci 0x656a
-+subdevice.name                FCX-6562 PCI-X Fibre Channel Adapter
-
- vendor.id             pci 0x1242
-&device.id             pci 0x4643
-+device.name           FCI-1063 Fibre Channel Adapter
-
- vendor.id             pci 0x1242
-&device.id             pci 0x6562
-+device.name           FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter
-
- vendor.id             pci 0x1242
-&device.id             pci 0x656a
-+device.name           FCX-6562 PCI-X Fibre Channel Adapter
-
- vendor.id             pci 0x1243
-+vendor.name           Delphax
-
- vendor.id             pci 0x1244
-+vendor.name           AVM Audiovisuelles MKTG & Computer System GmbH
-
- vendor.id             pci 0x1244
-&device.id             pci 0x0700
-+device.name           B1 ISDN
-
- vendor.id             pci 0x1244
-&device.id             pci 0x0800
-+device.name           C4 ISDN
-
- vendor.id             pci 0x1244
-&device.id             pci 0x0a00
-+device.name           A1 ISDN [Fritz]
-
- vendor.id             pci 0x1244
-&device.id             pci 0x0a00
-&subvendor.id          pci 0x1244
-&subdevice.id          pci 0x0a00
-+subdevice.name                FRITZ!Card ISDN Controller
-
- vendor.id             pci 0x1244
-&device.id             pci 0x0e00
-+device.name           Fritz!PCI v2.0 ISDN
-
- vendor.id             pci 0x1244
-&device.id             pci 0x1100
-+device.name           C2 ISDN
-
- vendor.id             pci 0x1244
-&device.id             pci 0x1200
-+device.name           T1 ISDN
-
- vendor.id             pci 0x1244
-&device.id             pci 0x2700
-+device.name           Fritz!Card DSL SL
-
- vendor.id             pci 0x1244
-&device.id             pci 0x2900
-+device.name           Fritz!Card DSL v2.0
-
- vendor.id             pci 0x1245
-+vendor.name           A.P.D., S.A.
-
- vendor.id             pci 0x1246
-+vendor.name           Dipix Technologies, Inc.
-
- vendor.id             pci 0x1247
-+vendor.name           Xylon Research, Inc.
-
- vendor.id             pci 0x1248
-+vendor.name           Central Data Corporation
-
- vendor.id             pci 0x1249
-+vendor.name           Samsung Electronics Co., Ltd.
-
- vendor.id             pci 0x124a
-+vendor.name           AEG Electrocom GmbH
-
- vendor.id             pci 0x124b
-+vendor.name           SBS/Greenspring Modular I/O
-
- vendor.id             pci 0x124b
-&device.id             pci 0x0040
-+device.name           PCI-40A or cPCI-200 Quad IndustryPack carrier
-
- vendor.id             pci 0x124b
-&device.id             pci 0x0040
-&subvendor.id          pci 0x124b
-&subdevice.id          pci 0x9080
-+subdevice.name                PCI9080 Bridge
-
- vendor.id             pci 0x124c
-+vendor.name           Solitron Technologies, Inc.
-
- vendor.id             pci 0x124d
-+vendor.name           Stallion Technologies, Inc.
-
- vendor.id             pci 0x124d
-&device.id             pci 0x0000
-+device.name           EasyConnection 8/32
-
- vendor.id             pci 0x124d
-&device.id             pci 0x0002
-+device.name           EasyConnection 8/64
-
- vendor.id             pci 0x124d
-&device.id             pci 0x0003
-+device.name           EasyIO
-
- vendor.id             pci 0x124d
-&device.id             pci 0x0004
-+device.name           EasyConnection/RA
-
- vendor.id             pci 0x124e
-+vendor.name           Cylink
-
- vendor.id             pci 0x124f
-+vendor.name           Infortrend Technology, Inc.
-
- vendor.id             pci 0x124f
-&device.id             pci 0x0041
-+device.name           IFT-2000 Series RAID Controller
-
- vendor.id             pci 0x1250
-+vendor.name           Hitachi Microcomputer System Ltd
-
- vendor.id             pci 0x1251
-+vendor.name           VLSI Solutions Oy
-
- vendor.id             pci 0x1253
-+vendor.name           Guzik Technical Enterprises
-
- vendor.id             pci 0x1254
-+vendor.name           Linear Systems Ltd.
-
- vendor.id             pci 0x1255
-+vendor.name           Optibase Ltd
-
- vendor.id             pci 0x1255
-&device.id             pci 0x1110
-+device.name           MPEG Forge
-
- vendor.id             pci 0x1255
-&device.id             pci 0x1210
-+device.name           MPEG Fusion
-
- vendor.id             pci 0x1255
-&device.id             pci 0x2110
-+device.name           VideoPlex
-
- vendor.id             pci 0x1255
-&device.id             pci 0x2120
-+device.name           VideoPlex CC
-
- vendor.id             pci 0x1255
-&device.id             pci 0x2130
-+device.name           VideoQuest
-
- vendor.id             pci 0x1256
-+vendor.name           Perceptive Solutions, Inc.
-
- vendor.id             pci 0x1256
-&device.id             pci 0x4201
-+device.name           PCI-2220I
-
- vendor.id             pci 0x1256
-&device.id             pci 0x4401
-+device.name           PCI-2240I
-
- vendor.id             pci 0x1256
-&device.id             pci 0x5201
-+device.name           PCI-2000
-
- vendor.id             pci 0x1257
-+vendor.name           Vertex Networks, Inc.
-
- vendor.id             pci 0x1258
-+vendor.name           Gilbarco, Inc.
-
- vendor.id             pci 0x1259
-+vendor.name           Allied Telesyn International
-
- vendor.id             pci 0x1259
-&device.id             pci 0x2560
-+device.name           AT-2560 Fast Ethernet Adapter (i82557B)
-
- vendor.id             pci 0x1259
-&device.id             pci 0xa117
-+device.name           RTL81xx Fast Ethernet
-
- vendor.id             pci 0x1259
-&device.id             pci 0xa120
-+device.name           21x4x DEC-Tulip compatible 10/100 Ethernet
-
- vendor.id             pci 0x125a
-+vendor.name           ABB Power Systems
-
- vendor.id             pci 0x125b
-+vendor.name           Asix Electronics Corporation
-
- vendor.id             pci 0x125b
-&device.id             pci 0x1400
-+device.name           ALFA GFC2204 Fast Ethernet
-
- vendor.id             pci 0x125c
-+vendor.name           Aurora Technologies, Inc.
-
- vendor.id             pci 0x125c
-&device.id             pci 0x0101
-+device.name           Saturn 4520P
-
- vendor.id             pci 0x125c
-&device.id             pci 0x0640
-+device.name           Aries 16000P
-
- vendor.id             pci 0x125d
-+vendor.name           ESS Technology
-
- vendor.id             pci 0x125d
-&device.id             pci 0x0000
-+device.name           ES336H Fax Modem (Early Model)
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1948
-+device.name           Solo?
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1968
-+device.name           ES1968 Maestro 2
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1968
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0085
-+subdevice.name                ES1968 Maestro-2 PCI
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1968
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8051
-+subdevice.name                ES1968 Maestro-2 Audiodrive
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1969
-+device.name           ES1969 Solo-1 Audiodrive
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1969
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0166
-+subdevice.name                ES1969 SOLO-1 AudioDrive on IBM Aptiva Mainboard
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1969
-&subvendor.id          pci 0x125d
-&subdevice.id          pci 0x8888
-+subdevice.name                Solo-1 Audio Adapter
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1978
-+device.name           ES1978 Maestro 2E
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1978
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb112
-+subdevice.name                Armada M700/E500
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1978
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x803c
-+subdevice.name                ES1978 Maestro-2E Audiodrive
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1978
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8058
-+subdevice.name                ES1978 Maestro-2E Audiodrive
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1978
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4000
-+subdevice.name                Monster Sound MX400
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1978
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                ES1978 Maestro-2E Audiodrive
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1988
-+device.name           ES1988 Allegro-1
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1988
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4100
-+subdevice.name                Sonic Impact S100
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1988
-&subvendor.id          pci 0x125d
-&subdevice.id          pci 0x1988
-+subdevice.name                ESS Allegro-1 Audiodrive
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1989
-+device.name           ESS Modem
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1989
-&subvendor.id          pci 0x125d
-&subdevice.id          pci 0x1989
-+subdevice.name                ESS Modem
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1998
-+device.name           ES1983S Maestro-3i PCI Audio Accelerator
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1998
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00b1
-+subdevice.name                Latitude C600
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1998
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00e6
-+subdevice.name                ES1983S Maestro-3i (Dell Inspiron 8100)
-
- vendor.id             pci 0x125d
-&device.id             pci 0x1999
-+device.name           ES1983S Maestro-3i PCI Modem Accelerator
-
- vendor.id             pci 0x125d
-&device.id             pci 0x199a
-+device.name           ES1983S Maestro-3i PCI Audio Accelerator
-
- vendor.id             pci 0x125d
-&device.id             pci 0x199b
-+device.name           ES1983S Maestro-3i PCI Modem Accelerator
-
- vendor.id             pci 0x125d
-&device.id             pci 0x2808
-+device.name           ES336H Fax Modem (Later Model)
-
- vendor.id             pci 0x125d
-&device.id             pci 0x2838
-+device.name           ES2838/2839 SuperLink Modem
-
- vendor.id             pci 0x125d
-&device.id             pci 0x2898
-+device.name           ES2898 Modem
-
- vendor.id             pci 0x125d
-&device.id             pci 0x2898
-&subvendor.id          pci 0x125d
-&subdevice.id          pci 0x0424
-+subdevice.name                ES56-PI Data Fax Modem
-
- vendor.id             pci 0x125d
-&device.id             pci 0x2898
-&subvendor.id          pci 0x125d
-&subdevice.id          pci 0x0425
-+subdevice.name                ES56T-PI Data Fax Modem
-
- vendor.id             pci 0x125d
-&device.id             pci 0x2898
-&subvendor.id          pci 0x125d
-&subdevice.id          pci 0x0426
-+subdevice.name                ES56V-PI Data Fax Modem
-
- vendor.id             pci 0x125d
-&device.id             pci 0x2898
-&subvendor.id          pci 0x125d
-&subdevice.id          pci 0x0427
-+subdevice.name                VW-PI Data Fax Modem
-
- vendor.id             pci 0x125d
-&device.id             pci 0x2898
-&subvendor.id          pci 0x125d
-&subdevice.id          pci 0x0428
-+subdevice.name                ES56ST-PI Data Fax Modem
-
- vendor.id             pci 0x125d
-&device.id             pci 0x2898
-&subvendor.id          pci 0x125d
-&subdevice.id          pci 0x0429
-+subdevice.name                ES56SV-PI Data Fax Modem
-
- vendor.id             pci 0x125d
-&device.id             pci 0x2898
-&subvendor.id          pci 0x147a
-&subdevice.id          pci 0xc001
-+subdevice.name                ES56-PI Data Fax Modem
-
- vendor.id             pci 0x125d
-&device.id             pci 0x2898
-&subvendor.id          pci 0x14fe
-&subdevice.id          pci 0x0428
-+subdevice.name                ES56-PI Data Fax Modem
-
- vendor.id             pci 0x125d
-&device.id             pci 0x2898
-&subvendor.id          pci 0x14fe
-&subdevice.id          pci 0x0429
-+subdevice.name                ES56-PI Data Fax Modem
-
- vendor.id             pci 0x125e
-+vendor.name           Specialvideo Engineering SRL
-
- vendor.id             pci 0x125f
-+vendor.name           Concurrent Technologies, Inc.
-
- vendor.id             pci 0x1260
-+vendor.name           Intersil Corporation
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3872
-+device.name           Prism 2.5 Wavelan chipset
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3872
-&subvendor.id          pci 0x1468
-&subdevice.id          pci 0x0202
-+subdevice.name                LAN-Express IEEE 802.11b Wireless LAN
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3873
-+device.name           Prism 2.5 Wavelan chipset
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3873
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x3501
-+subdevice.name                DWL-520 Wireless PCI Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3873
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x3700
-+subdevice.name                DWL-520 Wireless PCI Adapter, Rev E1
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3873
-&subvendor.id          pci 0x1385
-&subdevice.id          pci 0x4105
-+subdevice.name                MA311 802.11b wireless adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3873
-&subvendor.id          pci 0x1668
-&subdevice.id          pci 0x0414
-+subdevice.name                HWP01170-01 802.11b PCI Wireless Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3873
-&subvendor.id          pci 0x16a5
-&subdevice.id          pci 0x1601
-+subdevice.name                AIR.mate PC-400 PCI Wireless LAN Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3873
-&subvendor.id          pci 0x1737
-&subdevice.id          pci 0x3874
-+subdevice.name                WMP11 Wireless 802.11b PCI Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3873
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2513
-+subdevice.name                Wireless 802.11b MiniPCI Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3886
-+device.name           ISL3886 [Prism Javelin/Prism Xbow]
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3886
-&subvendor.id          pci 0x17cf
-&subdevice.id          pci 0x0037
-+subdevice.name                Z-Com XG-901 and clones Wireless Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3890
-+device.name           Intersil ISL3890 [Prism GT/Prism Duette]
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3890
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0x2802
-+subdevice.name                SMC2802W Wireless PCI Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3890
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0x2835
-+subdevice.name                SMC2835W Wireless Cardbus Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3890
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0xa835
-+subdevice.name                SMC2835W V2 Wireless Cardbus Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3890
-&subvendor.id          pci 0x1113
-&subdevice.id          pci 0xee03
-+subdevice.name                SMC2802W V2 Wireless PCI Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3890
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x3202
-+subdevice.name                DWL-G650 A1 Wireless Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3890
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0xc104
-+subdevice.name                CG-WLCB54GT Wireless Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3890
-&subvendor.id          pci 0x1385
-&subdevice.id          pci 0x4800
-+subdevice.name                WG511 Wireless Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3890
-&subvendor.id          pci 0x16a5
-&subdevice.id          pci 0x1605
-+subdevice.name                ALLNET ALL0271 Wireless PCI Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3890
-&subvendor.id          pci 0x17cf
-&subdevice.id          pci 0x0014
-+subdevice.name                Z-Com XG-600 and clones Wireless Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x3890
-&subvendor.id          pci 0x17cf
-&subdevice.id          pci 0x0020
-+subdevice.name                Z-Com XG-900 and clones Wireless Adapter
-
- vendor.id             pci 0x1260
-&device.id             pci 0x8130
-+device.name           HMP8130 NTSC/PAL Video Decoder
-
- vendor.id             pci 0x1260
-&device.id             pci 0x8131
-+device.name           HMP8131 NTSC/PAL Video Decoder
-
- vendor.id             pci 0x1261
-+vendor.name           Matsushita-Kotobuki Electronics Industries, Ltd.
-
- vendor.id             pci 0x1262
-+vendor.name           ES Computer Company, Ltd.
-
- vendor.id             pci 0x1263
-+vendor.name           Sonic Solutions
-
- vendor.id             pci 0x1264
-+vendor.name           Aval Nagasaki Corporation
-
- vendor.id             pci 0x1265
-+vendor.name           Casio Computer Co., Ltd.
-
- vendor.id             pci 0x1266
-+vendor.name           Microdyne Corporation
-
- vendor.id             pci 0x1266
-&device.id             pci 0x0001
-+device.name           NE10/100 Adapter (i82557B)
-
- vendor.id             pci 0x1266
-&device.id             pci 0x1910
-+device.name           NE2000Plus (RT8029) Ethernet Adapter
-
- vendor.id             pci 0x1266
-&device.id             pci 0x1910
-&subvendor.id          pci 0x1266
-&subdevice.id          pci 0x1910
-+subdevice.name                NE2000Plus Ethernet Adapter
-
- vendor.id             pci 0x1267
-+vendor.name           S. A. Telecommunications
-
- vendor.id             pci 0x1267
-&device.id             pci 0x5352
-+device.name           PCR2101
-
- vendor.id             pci 0x1267
-&device.id             pci 0x5a4b
-+device.name           Telsat Turbo
-
- vendor.id             pci 0x1268
-+vendor.name           Tektronix
-
- vendor.id             pci 0x1269
-+vendor.name           Thomson-CSF/TTM
-
- vendor.id             pci 0x126a
-+vendor.name           Lexmark International, Inc.
-
- vendor.id             pci 0x126b
-+vendor.name           Adax, Inc.
-
- vendor.id             pci 0x126c
-+vendor.name           Northern Telecom
-
- vendor.id             pci 0x126c
-&device.id             pci 0x1211
-+device.name           10/100BaseTX [RTL81xx]
-
- vendor.id             pci 0x126c
-&device.id             pci 0x126c
-+device.name           802.11b Wireless Ethernet Adapter
-
- vendor.id             pci 0x126d
-+vendor.name           Splash Technology, Inc.
-
- vendor.id             pci 0x126e
-+vendor.name           Sumitomo Metal Industries, Ltd.
-
- vendor.id             pci 0x126f
-+vendor.name           Silicon Motion, Inc.
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0501
-+device.name           SM501 VoyagerGX
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0710
-+device.name           SM710 LynxEM
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0712
-+device.name           SM712 LynxEM+
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0720
-+device.name           SM720 Lynx3DM
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0730
-+device.name           SM731 Cougar3DR
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0810
-+device.name           SM810 LynxE
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0811
-+device.name           SM811 LynxE
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0820
-+device.name           SM820 Lynx3D
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0910
-+device.name           SM910
-
- vendor.id             pci 0x1270
-+vendor.name           Olympus Optical Co., Ltd.
-
- vendor.id             pci 0x1271
-+vendor.name           GW Instruments
-
- vendor.id             pci 0x1272
-+vendor.name           Telematics International
-
- vendor.id             pci 0x1273
-+vendor.name           Hughes Network Systems
-
- vendor.id             pci 0x1273
-&device.id             pci 0x0002
-+device.name           DirecPC
-
- vendor.id             pci 0x1274
-+vendor.name           Ensoniq
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1171
-+device.name           ES1373 [AudioPCI] (also Creative Labs CT5803)
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-+device.name           ES1371 [AudioPCI-97]
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0024
-+subdevice.name                AudioPCI on Motherboard Compaq Deskpro
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb1a7
-+subdevice.name                ES1371, ES1373 AudioPCI
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x80ac
-+subdevice.name                ES1371, ES1373 AudioPCI
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1042
-&subdevice.id          pci 0x1854
-+subdevice.name                Tazer
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x107b
-&subdevice.id          pci 0x8054
-+subdevice.name                Tabor2
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1274
-&subdevice.id          pci 0x1371
-+subdevice.name                Creative Sound Blaster AudioPCI64V, AudioPCI128
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6470
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6147 1.1A
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6560
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6156 1.10
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6630
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 1.0A
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6631
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 1.0A
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6632
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6163BX 2.0A
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6633
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6163VIA 2.0A
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6820
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6822
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6182 1.00A
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6830
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6183 1.00
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6880
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6188 1.00
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6900
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6190 1.00
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6910
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6191
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6930
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6193
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6990
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6199BX 2.0A
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6991
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MS-6199VIA 2.0A
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x14a4
-&subdevice.id          pci 0x2077
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard KR639
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x14a4
-&subdevice.id          pci 0x2105
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MR800
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x14a4
-&subdevice.id          pci 0x2107
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard MR801
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x14a4
-&subdevice.id          pci 0x2172
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard DR739
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1509
-&subdevice.id          pci 0x9902
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard KW11
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1509
-&subdevice.id          pci 0x9903
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard KW31
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1509
-&subdevice.id          pci 0x9904
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard KA11
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x1509
-&subdevice.id          pci 0x9905
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard KC13
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x152d
-&subdevice.id          pci 0x8801
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard CP810E
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x152d
-&subdevice.id          pci 0x8802
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard CP810
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x152d
-&subdevice.id          pci 0x8803
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard P3810E
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x152d
-&subdevice.id          pci 0x8804
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard P3810-S
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x152d
-&subdevice.id          pci 0x8805
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard P3820-S
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x2001
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard 6CTR
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x2200
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard 6WTX
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x3000
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard 6WSV
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x3100
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard 6WIV2
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x3102
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard 6WIV
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x7060
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard 6ASA2
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4249
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard BI440ZX
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x424c
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard BL440ZX
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x425a
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard BZ440ZX
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4341
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard Cayman
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4343
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard Cape Cod
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4649
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard Fire Island
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x464a
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard FJ440ZX
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4d4f
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard Montreal
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4f43
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard OC440LX
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x5243
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard RC440BX
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x5352
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard SunRiver
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x5643
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard Vancouver
-
- vendor.id             pci 0x1274
-&device.id             pci 0x1371
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x5753
-+subdevice.name                ES1371, ES1373 AudioPCI On Motherboard WS440BX
-
- vendor.id             pci 0x1274
-&device.id             pci 0x5000
-+device.name           ES1370 [AudioPCI]
-
- vendor.id             pci 0x1274
-&device.id             pci 0x5880
-+device.name           5880 AudioPCI
-
- vendor.id             pci 0x1274
-&device.id             pci 0x5880
-&subvendor.id          pci 0x1274
-&subdevice.id          pci 0x2000
-+subdevice.name                Creative Sound Blaster AudioPCI128
-
- vendor.id             pci 0x1274
-&device.id             pci 0x5880
-&subvendor.id          pci 0x1274
-&subdevice.id          pci 0x2003
-+subdevice.name                Creative SoundBlaster AudioPCI 128
-
- vendor.id             pci 0x1274
-&device.id             pci 0x5880
-&subvendor.id          pci 0x1274
-&subdevice.id          pci 0x5880
-+subdevice.name                Creative Sound Blaster AudioPCI128
-
- vendor.id             pci 0x1274
-&device.id             pci 0x5880
-&subvendor.id          pci 0x1274
-&subdevice.id          pci 0x8001
-+subdevice.name                Sound Blaster 16PCI 4.1ch
-
- vendor.id             pci 0x1274
-&device.id             pci 0x5880
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0xa000
-+subdevice.name                5880 AudioPCI On Motherboard 6OXET
-
- vendor.id             pci 0x1274
-&device.id             pci 0x5880
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6880
-+subdevice.name                5880 AudioPCI On Motherboard MS-6188 1.00
-
- vendor.id             pci 0x1274
-&device.id             pci 0x5880
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x2001
-+subdevice.name                5880 AudioPCI On Motherboard 6CTR
-
- vendor.id             pci 0x1274
-&device.id             pci 0x5880
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x2200
-+subdevice.name                5880 AudioPCI On Motherboard 6WTX
-
- vendor.id             pci 0x1274
-&device.id             pci 0x5880
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x7040
-+subdevice.name                5880 AudioPCI On Motherboard 6ATA4
-
- vendor.id             pci 0x1275
-+vendor.name           Network Appliance Corporation
-
- vendor.id             pci 0x1276
-+vendor.name           Switched Network Technologies, Inc.
-
- vendor.id             pci 0x1277
-+vendor.name           Comstream
-
- vendor.id             pci 0x1278
-+vendor.name           Transtech Parallel Systems Ltd.
-
- vendor.id             pci 0x1278
-&device.id             pci 0x0701
-+device.name           TPE3/TM3 PowerPC Node
-
- vendor.id             pci 0x1278
-&device.id             pci 0x0710
-+device.name           TPE5 PowerPC PCI board
-
- vendor.id             pci 0x1279
-+vendor.name           Transmeta Corporation
-
- vendor.id             pci 0x1279
-&device.id             pci 0x0295
-+device.name           Northbridge
-
- vendor.id             pci 0x1279
-&device.id             pci 0x0395
-+device.name           LongRun Northbridge
-
- vendor.id             pci 0x1279
-&device.id             pci 0x0396
-+device.name           SDRAM controller
-
- vendor.id             pci 0x1279
-&device.id             pci 0x0397
-+device.name           BIOS scratchpad
-
- vendor.id             pci 0x127a
-+vendor.name           Rockwell International
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1002
-+device.name           HCF 56k Data/Fax Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1002
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x094c
-+subdevice.name                SupraExpress 56i PRO [Diamond SUP2380]
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1002
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4002
-+subdevice.name                HPG / MDP3858-U
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1002
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4005
-+subdevice.name                MDP3858-E
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1002
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4007
-+subdevice.name                MDP3858-A/-NZ
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1002
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4012
-+subdevice.name                MDP3858-SA
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1002
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4017
-+subdevice.name                MDP3858-W
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1002
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4018
-+subdevice.name                MDP3858-W
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1002
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x1002
-+subdevice.name                Rockwell 56K D/F HCF Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1003
-+device.name           HCF 56k Data/Fax Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1003
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb0bc
-+subdevice.name                229-DF Zephyr
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1003
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb114
-+subdevice.name                229-DF Cheetah
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1003
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x802b
-+subdevice.name                229-DF
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1003
-&subvendor.id          pci 0x13df
-&subdevice.id          pci 0x1003
-+subdevice.name                PCI56RX Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1003
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0117
-+subdevice.name                IBM
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1003
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0147
-+subdevice.name                IBM F-1156IV+/R3 Spain V.90 Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1003
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0197
-+subdevice.name                IBM
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1003
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x01c7
-+subdevice.name                IBM F-1156IV+/R3 WW V.90 Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1003
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x01f7
-+subdevice.name                IBM
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1003
-&subvendor.id          pci 0x1436
-&subdevice.id          pci 0x1003
-+subdevice.name                IBM
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1003
-&subvendor.id          pci 0x1436
-&subdevice.id          pci 0x1103
-+subdevice.name                IBM 5614PM3G V.90 Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1003
-&subvendor.id          pci 0x1436
-&subdevice.id          pci 0x1602
-+subdevice.name                Compaq 229-DF Ducati
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1004
-+device.name           HCF 56k Data/Fax/Voice Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1004
-&subvendor.id          pci 0x1048
-&subdevice.id          pci 0x1500
-+subdevice.name                MicroLink 56k Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1004
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1059
-+subdevice.name                Fujitsu 229-DFRT
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-+device.name           HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8029
-+subdevice.name                229-DFSV
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8054
-+subdevice.name                Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x103c
-+subdevice.name                Fujitsu
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1055
-+subdevice.name                Fujitsu 229-DFSV
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1056
-+subdevice.name                Fujitsu 229-DFSV
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4003
-+subdevice.name                MDP3858SP-U
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4006
-+subdevice.name                Packard Bell MDP3858V-E
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4008
-+subdevice.name                MDP3858SP-A/SP-NZ
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4009
-+subdevice.name                MDP3858SP-E
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4010
-+subdevice.name                MDP3858V-U
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4011
-+subdevice.name                MDP3858SP-SA
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4013
-+subdevice.name                MDP3858V-A/V-NZ
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4015
-+subdevice.name                MDP3858SP-W
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4016
-+subdevice.name                MDP3858V-W
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4019
-+subdevice.name                MDP3858V-SA
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x13df
-&subdevice.id          pci 0x1005
-+subdevice.name                PCI56RVP Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0187
-+subdevice.name                IBM
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x01a7
-+subdevice.name                IBM
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x01b7
-+subdevice.name                IBM DF-1156IV+/R3 Spain V.90 Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x01d7
-+subdevice.name                IBM DF-1156IV+/R3 WW V.90 Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x1436
-&subdevice.id          pci 0x1005
-+subdevice.name                IBM
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x1436
-&subdevice.id          pci 0x1105
-+subdevice.name                IBM
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1005
-&subvendor.id          pci 0x1437
-&subdevice.id          pci 0x1105
-+subdevice.name                IBM 5614PS3G V.90 Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1022
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1022
-&subvendor.id          pci 0x1436
-&subdevice.id          pci 0x1303
-+subdevice.name                M3-5614PM3G V.90 Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1023
-+device.name           HCF 56k Data/Fax Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1023
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4020
-+subdevice.name                Packard Bell MDP3858-WE
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1023
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4023
-+subdevice.name                MDP3858-UE
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1023
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0247
-+subdevice.name                IBM F-1156IV+/R6 Spain V.90 Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1023
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0297
-+subdevice.name                IBM
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1023
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x02c7
-+subdevice.name                IBM F-1156IV+/R6 WW V.90 Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1023
-&subvendor.id          pci 0x1436
-&subdevice.id          pci 0x1203
-+subdevice.name                IBM
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1023
-&subvendor.id          pci 0x1436
-&subdevice.id          pci 0x1303
-+subdevice.name                IBM
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1024
-+device.name           HCF 56k Data/Fax/Voice Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1025
-+device.name           HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1025
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x106a
-+subdevice.name                Fujitsu 235-DFSV
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1025
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4021
-+subdevice.name                Packard Bell MDP3858V-WE
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1025
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4022
-+subdevice.name                MDP3858SP-WE
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1025
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4024
-+subdevice.name                MDP3858V-UE
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1025
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4025
-+subdevice.name                MDP3858SP-UE
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1026
-+device.name           HCF 56k PCI Speakerphone Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1032
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1033
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1034
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1035
-+device.name           HCF 56k PCI Speakerphone Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1036
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x1085
-+device.name           HCF 56k Volcano PCI Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2005
-+device.name           HCF 56k Data/Fax Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2005
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8044
-+subdevice.name                229-DFSV
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2005
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8045
-+subdevice.name                229-DFSV
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2005
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8055
-+subdevice.name                PBE/Aztech 235W-DFSV
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2005
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8056
-+subdevice.name                235-DFSV
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2005
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x805a
-+subdevice.name                Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2005
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x805f
-+subdevice.name                Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2005
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8074
-+subdevice.name                Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2013
-+device.name           HSF 56k Data/Fax Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2013
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2013
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0xff00
-+subdevice.name                Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2014
-+device.name           HSF 56k Data/Fax/Voice Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2014
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1057
-+subdevice.name                Fujitsu Citicorp III
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2014
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4050
-+subdevice.name                MSP3880-U
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2014
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4055
-+subdevice.name                MSP3880-W
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2015
-+device.name           HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2015
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1063
-+subdevice.name                Fujitsu
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2015
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1064
-+subdevice.name                Fujitsu
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2015
-&subvendor.id          pci 0x1468
-&subdevice.id          pci 0x2015
-+subdevice.name                Fujitsu
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2016
-+device.name           HSF 56k Data/Fax/Voice/Spkp Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2016
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4051
-+subdevice.name                MSP3880V-W
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2016
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4052
-+subdevice.name                MSP3880SP-W
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2016
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4054
-+subdevice.name                MSP3880V-U
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2016
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4056
-+subdevice.name                MSP3880SP-U
-
- vendor.id             pci 0x127a
-&device.id             pci 0x2016
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4057
-+subdevice.name                MSP3880SP-A
-
- vendor.id             pci 0x127a
-&device.id             pci 0x4311
-+device.name           Riptide HSF 56k PCI Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x4311
-&subvendor.id          pci 0x127a
-&subdevice.id          pci 0x4311
-+subdevice.name                Ring Modular? Riptide HSF RT HP Dom
-
- vendor.id             pci 0x127a
-&device.id             pci 0x4311
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0210
-+subdevice.name                HP-GVC
-
- vendor.id             pci 0x127a
-&device.id             pci 0x4320
-+device.name           Riptide PCI Audio Controller
-
- vendor.id             pci 0x127a
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1235
-&subdevice.id          pci 0x4320
-+subdevice.name                Riptide PCI Audio Controller
-
- vendor.id             pci 0x127a
-&device.id             pci 0x4321
-+device.name           Riptide HCF 56k PCI Modem
-
- vendor.id             pci 0x127a
-&device.id             pci 0x4321
-&subvendor.id          pci 0x1235
-&subdevice.id          pci 0x4321
-+subdevice.name                Hewlett Packard DF
-
- vendor.id             pci 0x127a
-&device.id             pci 0x4321
-&subvendor.id          pci 0x1235
-&subdevice.id          pci 0x4324
-+subdevice.name                Hewlett Packard DF
-
- vendor.id             pci 0x127a
-&device.id             pci 0x4321
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0210
-+subdevice.name                Hewlett Packard DF
-
- vendor.id             pci 0x127a
-&device.id             pci 0x4321
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0x2321
-+subdevice.name                Riptide
-
- vendor.id             pci 0x127a
-&device.id             pci 0x4322
-+device.name           Riptide PCI Game Controller
-
- vendor.id             pci 0x127a
-&device.id             pci 0x4322
-&subvendor.id          pci 0x1235
-&subdevice.id          pci 0x4322
-+subdevice.name                Riptide PCI Game Controller
-
- vendor.id             pci 0x127a
-&device.id             pci 0x8234
-+device.name           RapidFire 616X ATM155 Adapter
-
- vendor.id             pci 0x127a
-&device.id             pci 0x8234
-&subvendor.id          pci 0x108d
-&subdevice.id          pci 0x0022
-+subdevice.name                RapidFire 616X ATM155 Adapter
-
- vendor.id             pci 0x127a
-&device.id             pci 0x8234
-&subvendor.id          pci 0x108d
-&subdevice.id          pci 0x0027
-+subdevice.name                RapidFire 616X ATM155 Adapter
-
- vendor.id             pci 0x127b
-+vendor.name           Pixera Corporation
-
- vendor.id             pci 0x127c
-+vendor.name           Crosspoint Solutions, Inc.
-
- vendor.id             pci 0x127d
-+vendor.name           Vela Research
-
- vendor.id             pci 0x127e
-+vendor.name           Winnov, L.P.
-
- vendor.id             pci 0x127f
-+vendor.name           Fujifilm
-
- vendor.id             pci 0x1280
-+vendor.name           Photoscript Group Ltd.
-
- vendor.id             pci 0x1281
-+vendor.name           Yokogawa Electric Corporation
-
- vendor.id             pci 0x1282
-+vendor.name           Davicom Semiconductor, Inc.
-
- vendor.id             pci 0x1282
-&device.id             pci 0x9009
-+device.name           Ethernet 100/10 MBit
-
- vendor.id             pci 0x1282
-&device.id             pci 0x9100
-+device.name           21x4x DEC-Tulip compatible 10/100 Ethernet
-
- vendor.id             pci 0x1282
-&device.id             pci 0x9102
-+device.name           21x4x DEC-Tulip compatible 10/100 Ethernet
-
- vendor.id             pci 0x1282
-&device.id             pci 0x9132
-+device.name           Ethernet 100/10 MBit
-
- vendor.id             pci 0x1283
-+vendor.name           Integrated Technology Express, Inc.
-
- vendor.id             pci 0x1283
-&device.id             pci 0x673a
-+device.name           IT8330G
-
- vendor.id             pci 0x1283
-&device.id             pci 0x8212
-+device.name           IT/ITE8212 Dual channel ATA RAID controller (PCI version seems to be IT8212, embedded seems to be ITE8212)
-
- vendor.id             pci 0x1283
-&device.id             pci 0x8212
-&subvendor.id          pci 0x1283
-&subdevice.id          pci 0x0001
-+subdevice.name                IT/ITE8212 Dual channel ATA RAID controller
-
- vendor.id             pci 0x1283
-&device.id             pci 0x8330
-+device.name           IT8330G
-
- vendor.id             pci 0x1283
-&device.id             pci 0x8872
-+device.name           IT8874F PCI Dual Serial Port Controller
-
- vendor.id             pci 0x1283
-&device.id             pci 0x8888
-+device.name           IT8888F PCI to ISA Bridge with SMB
-
- vendor.id             pci 0x1283
-&device.id             pci 0x8889
-+device.name           IT8889F PCI to ISA Bridge
-
- vendor.id             pci 0x1283
-&device.id             pci 0xe886
-+device.name           IT8330G
-
- vendor.id             pci 0x1284
-+vendor.name           Sahara Networks, Inc.
-
- vendor.id             pci 0x1285
-+vendor.name           Platform Technologies, Inc.
-
- vendor.id             pci 0x1285
-&device.id             pci 0x0100
-+device.name           AGOGO sound chip (aka ESS Maestro 1)
-
- vendor.id             pci 0x1286
-+vendor.name           Mazet GmbH
-
- vendor.id             pci 0x1287
-+vendor.name           M-Pact, Inc.
-
- vendor.id             pci 0x1287
-&device.id             pci 0x001e
-+device.name           LS220D DVD Decoder
-
- vendor.id             pci 0x1287
-&device.id             pci 0x001f
-+device.name           LS220C DVD Decoder
-
- vendor.id             pci 0x1288
-+vendor.name           Timestep Corporation
-
- vendor.id             pci 0x1289
-+vendor.name           AVC Technology, Inc.
-
- vendor.id             pci 0x128a
-+vendor.name           Asante Technologies, Inc.
-
- vendor.id             pci 0x128b
-+vendor.name           Transwitch Corporation
-
- vendor.id             pci 0x128c
-+vendor.name           Retix Corporation
-
- vendor.id             pci 0x128d
-+vendor.name           G2 Networks, Inc.
-
- vendor.id             pci 0x128d
-&device.id             pci 0x0021
-+device.name           ATM155 Adapter
-
- vendor.id             pci 0x128e
-+vendor.name           Hoontech Corporation/Samho Multi Tech Ltd.
-
- vendor.id             pci 0x128e
-&device.id             pci 0x0008
-+device.name           ST128 WSS/SB
-
- vendor.id             pci 0x128e
-&device.id             pci 0x0009
-+device.name           ST128 SAM9407
-
- vendor.id             pci 0x128e
-&device.id             pci 0x000a
-+device.name           ST128 Game Port
-
- vendor.id             pci 0x128e
-&device.id             pci 0x000b
-+device.name           ST128 MPU Port
-
- vendor.id             pci 0x128e
-&device.id             pci 0x000c
-+device.name           ST128 Ctrl Port
-
- vendor.id             pci 0x128f
-+vendor.name           Tateno Dennou, Inc.
-
- vendor.id             pci 0x1290
-+vendor.name           Sord Computer Corporation
-
- vendor.id             pci 0x1291
-+vendor.name           NCS Computer Italia
-
- vendor.id             pci 0x1292
-+vendor.name           Tritech Microelectronics Inc
-
- vendor.id             pci 0x1293
-+vendor.name           Media Reality Technology
-
- vendor.id             pci 0x1294
-+vendor.name           Rhetorex, Inc.
-
- vendor.id             pci 0x1295
-+vendor.name           Imagenation Corporation
-
- vendor.id             pci 0x1296
-+vendor.name           Kofax Image Products
-
- vendor.id             pci 0x1297
-+vendor.name           Holco Enterprise Co, Ltd/Shuttle Computer
-
- vendor.id             pci 0x1298
-+vendor.name           Spellcaster Telecommunications Inc.
-
- vendor.id             pci 0x1299
-+vendor.name           Knowledge Technology Lab.
-
- vendor.id             pci 0x129a
-+vendor.name           VMetro, inc.
-
- vendor.id             pci 0x129a
-&device.id             pci 0x0615
-+device.name           PBT-615 PCI-X Bus Analyzer
-
- vendor.id             pci 0x129b
-+vendor.name           Image Access
-
- vendor.id             pci 0x129c
-+vendor.name           Jaycor
-
- vendor.id             pci 0x129d
-+vendor.name           Compcore Multimedia, Inc.
-
- vendor.id             pci 0x129e
-+vendor.name           Victor Company of Japan, Ltd.
-
- vendor.id             pci 0x129f
-+vendor.name           OEC Medical Systems, Inc.
-
- vendor.id             pci 0x12a0
-+vendor.name           Allen-Bradley Company
-
- vendor.id             pci 0x12a1
-+vendor.name           Simpact Associates, Inc.
-
- vendor.id             pci 0x12a2
-+vendor.name           Newgen Systems Corporation
-
- vendor.id             pci 0x12a3
-+vendor.name           Lucent Technologies
-
- vendor.id             pci 0x12a3
-&device.id             pci 0x8105
-+device.name           T8105 H100 Digital Switch
-
- vendor.id             pci 0x12a4
-+vendor.name           NTT Electronics Technology Company
-
- vendor.id             pci 0x12a5
-+vendor.name           Vision Dynamics Ltd.
-
- vendor.id             pci 0x12a6
-+vendor.name           Scalable Networks, Inc.
-
- vendor.id             pci 0x12a7
-+vendor.name           AMO GmbH
-
- vendor.id             pci 0x12a8
-+vendor.name           News Datacom
-
- vendor.id             pci 0x12a9
-+vendor.name           Xiotech Corporation
-
- vendor.id             pci 0x12aa
-+vendor.name           SDL Communications, Inc.
-
- vendor.id             pci 0x12ab
-+vendor.name           Yuan Yuan Enterprise Co., Ltd.
-
- vendor.id             pci 0x12ab
-&device.id             pci 0x0002
-+device.name           AU8830 [Vortex2] Based Sound Card With A3D Support
-
- vendor.id             pci 0x12ab
-&device.id             pci 0x3000
-+device.name           MPG-200C PCI DVD Decoder Card
-
- vendor.id             pci 0x12ac
-+vendor.name           Measurex Corporation
-
- vendor.id             pci 0x12ad
-+vendor.name           Multidata GmbH
-
- vendor.id             pci 0x12ae
-+vendor.name           Alteon Networks Inc.
-
- vendor.id             pci 0x12ae
-&device.id             pci 0x0001
-+device.name           AceNIC Gigabit Ethernet
-
- vendor.id             pci 0x12ae
-&device.id             pci 0x0001
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0104
-+subdevice.name                Gigabit Ethernet-SX PCI Adapter
-
- vendor.id             pci 0x12ae
-&device.id             pci 0x0001
-&subvendor.id          pci 0x12ae
-&subdevice.id          pci 0x0001
-+subdevice.name                Gigabit Ethernet-SX (Universal)
-
- vendor.id             pci 0x12ae
-&device.id             pci 0x0001
-&subvendor.id          pci 0x1410
-&subdevice.id          pci 0x0104
-+subdevice.name                Gigabit Ethernet-SX PCI Adapter
-
- vendor.id             pci 0x12ae
-&device.id             pci 0x0002
-+device.name           AceNIC Gigabit Ethernet (Copper)
-
- vendor.id             pci 0x12ae
-&device.id             pci 0x0002
-&subvendor.id          pci 0x10a9
-&subdevice.id          pci 0x8002
-+subdevice.name                Acenic Gigabit Ethernet
-
- vendor.id             pci 0x12ae
-&device.id             pci 0x0002
-&subvendor.id          pci 0x12ae
-&subdevice.id          pci 0x0002
-+subdevice.name                Gigabit Ethernet-T (3C986-T)
-
- vendor.id             pci 0x12ae
-&device.id             pci 0x00fa
-+device.name           Farallon PN9100-T Gigabit Ethernet
-
- vendor.id             pci 0x12af
-+vendor.name           TDK USA Corp
-
- vendor.id             pci 0x12b0
-+vendor.name           Jorge Scientific Corp
-
- vendor.id             pci 0x12b1
-+vendor.name           GammaLink
-
- vendor.id             pci 0x12b2
-+vendor.name           General Signal Networks
-
- vendor.id             pci 0x12b3
-+vendor.name           Inter-Face Co Ltd
-
- vendor.id             pci 0x12b4
-+vendor.name           FutureTel Inc
-
- vendor.id             pci 0x12b5
-+vendor.name           Granite Systems Inc.
-
- vendor.id             pci 0x12b6
-+vendor.name           Natural Microsystems
-
- vendor.id             pci 0x12b7
-+vendor.name           Cognex Modular Vision Systems Div. - Acumen Inc.
-
- vendor.id             pci 0x12b8
-+vendor.name           Korg
-
- vendor.id             pci 0x12b9
-+vendor.name           3Com Corp, Modem Division (formerly US Robotics)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1006
-+device.name           WinModem
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1006
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x005c
-+subdevice.name                USR 56k Internal Voice WinModem (Model 3472)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1006
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x005e
-+subdevice.name                USR 56k Internal WinModem (Models 662975)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1006
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x0062
-+subdevice.name                USR 56k Internal Voice WinModem (Model 662978)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1006
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x0068
-+subdevice.name                USR 56k Internal Voice WinModem (Model 5690)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1006
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x007a
-+subdevice.name                USR 56k Internal Voice WinModem (Model 662974)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1006
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x007f
-+subdevice.name                USR 56k Internal WinModem (Models 5698, 5699)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1006
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x0080
-+subdevice.name                USR 56k Internal WinModem (Models 2975, 3528)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1006
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x0081
-+subdevice.name                USR 56k Internal Voice WinModem (Models 2974, 3529)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1006
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x0091
-+subdevice.name                USR 56k Internal Voice WinModem (Model 2978)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1007
-+device.name           USR 56k Internal WinModem
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1007
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x00a3
-+subdevice.name                USR 56k Internal WinModem (Model 3595)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1008
-+device.name           56K FaxModem Model 5610
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1008
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x00a2
-+subdevice.name                USR 56k Internal FAX Modem (Model 2977)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1008
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x00aa
-+subdevice.name                USR 56k Internal Voice Modem (Model 2976)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1008
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x00ab
-+subdevice.name                USR 56k Internal Voice Modem (Model 5609)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1008
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x00ac
-+subdevice.name                USR 56k Internal Voice Modem (Model 3298)
-
- vendor.id             pci 0x12b9
-&device.id             pci 0x1008
-&subvendor.id          pci 0x12b9
-&subdevice.id          pci 0x00ad
-+subdevice.name                USR 56k Internal FAX Modem (Model 5610)
-
- vendor.id             pci 0x12ba
-+vendor.name           BittWare, Inc.
-
- vendor.id             pci 0x12bb
-+vendor.name           Nippon Unisoft Corporation
-
- vendor.id             pci 0x12bc
-+vendor.name           Array Microsystems
-
- vendor.id             pci 0x12bd
-+vendor.name           Computerm Corp.
-
- vendor.id             pci 0x12be
-+vendor.name           Anchor Chips Inc.
-
- vendor.id             pci 0x12be
-&device.id             pci 0x3041
-+device.name           AN3041Q CO-MEM
-
- vendor.id             pci 0x12be
-&device.id             pci 0x3042
-+device.name           AN3042Q CO-MEM Lite
-
- vendor.id             pci 0x12be
-&device.id             pci 0x3042
-&subvendor.id          pci 0x12be
-&subdevice.id          pci 0x3042
-+subdevice.name                Anchor Chips Lite Evaluation Board
-
- vendor.id             pci 0x12bf
-+vendor.name           Fujifilm Microdevices
-
- vendor.id             pci 0x12c0
-+vendor.name           Infimed
-
- vendor.id             pci 0x12c1
-+vendor.name           GMM Research Corp
-
- vendor.id             pci 0x12c2
-+vendor.name           Mentec Limited
-
- vendor.id             pci 0x12c3
-+vendor.name           Holtek Microelectronics Inc
-
- vendor.id             pci 0x12c3
-&device.id             pci 0x0058
-+device.name           PCI NE2K Ethernet
-
- vendor.id             pci 0x12c3
-&device.id             pci 0x5598
-+device.name           PCI NE2K Ethernet
-
- vendor.id             pci 0x12c4
-+vendor.name           Connect Tech Inc
-
- vendor.id             pci 0x12c5
-+vendor.name           Picture Elements Incorporated
-
- vendor.id             pci 0x12c5
-&device.id             pci 0x007e
-+device.name           Imaging/Scanning Subsystem Engine
-
- vendor.id             pci 0x12c5
-&device.id             pci 0x007f
-+device.name           Imaging/Scanning Subsystem Engine
-
- vendor.id             pci 0x12c5
-&device.id             pci 0x0081
-+device.name           PCIVST [Grayscale Thresholding Engine]
-
- vendor.id             pci 0x12c5
-&device.id             pci 0x0085
-+device.name           Video Simulator/Sender
-
- vendor.id             pci 0x12c5
-&device.id             pci 0x0086
-+device.name           THR2 Multi-scale Thresholder
-
- vendor.id             pci 0x12c6
-+vendor.name           Mitani Corporation
-
- vendor.id             pci 0x12c7
-+vendor.name           Dialogic Corp
-
- vendor.id             pci 0x12c8
-+vendor.name           G Force Co, Ltd
-
- vendor.id             pci 0x12c9
-+vendor.name           Gigi Operations
-
- vendor.id             pci 0x12ca
-+vendor.name           Integrated Computing Engines
-
- vendor.id             pci 0x12cb
-+vendor.name           Antex Electronics Corporation
-
- vendor.id             pci 0x12cc
-+vendor.name           Pluto Technologies International
-
- vendor.id             pci 0x12cd
-+vendor.name           Aims Lab
-
- vendor.id             pci 0x12ce
-+vendor.name           Netspeed Inc.
-
- vendor.id             pci 0x12cf
-+vendor.name           Prophet Systems, Inc.
-
- vendor.id             pci 0x12d0
-+vendor.name           GDE Systems, Inc.
-
- vendor.id             pci 0x12d1
-+vendor.name           PSITech
-
- vendor.id             pci 0x12d2
-+vendor.name           NVidia / SGS Thomson (Joint Venture)
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0008
-+device.name           NV1
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0009
-+device.name           DAC64
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-+device.name           Riva128
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x1048
-&subdevice.id          pci 0x0c10
-+subdevice.name                VICTORY Erazor
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x107b
-&subdevice.id          pci 0x8030
-+subdevice.name                STB Velocity 128
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0350
-+subdevice.name                Viper V330
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x1092
-+subdevice.name                Viper V330
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x1b1b
-+subdevice.name                STB Velocity 128
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x1b1d
-+subdevice.name                STB Velocity 128
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x1b1e
-+subdevice.name                STB Velocity 128, PAL TV-Out
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x1b20
-+subdevice.name                STB Velocity 128 Sapphire
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x1b21
-+subdevice.name                STB Velocity 128
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x1b22
-+subdevice.name                STB Velocity 128 AGP, NTSC TV-Out
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x1b23
-+subdevice.name                STB Velocity 128 AGP, PAL TV-Out
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x1b27
-+subdevice.name                STB Velocity 128 DVD
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x1b88
-+subdevice.name                MVP Pro 128
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x222a
-+subdevice.name                STB Velocity 128 AGP
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x2230
-+subdevice.name                STB Velocity 128
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x2232
-+subdevice.name                STB Velocity 128
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x2235
-+subdevice.name                STB Velocity 128 AGP
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-&subvendor.id          pci 0x2a15
-&subdevice.id          pci 0x54a3
-+subdevice.name                3DVision-SAGP / 3DexPlorer 3000
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0019
-+device.name           Riva128ZX
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0020
-+device.name           TNT
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0028
-+device.name           TNT2
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0029
-+device.name           UTNT2
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x002c
-+device.name           VTNT2
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x00a0
-+device.name           ITNT2
-
- vendor.id             pci 0x12d3
-+vendor.name           Vingmed Sound A/S
-
- vendor.id             pci 0x12d4
-+vendor.name           Ulticom (Formerly DGM&S)
-
- vendor.id             pci 0x12d4
-&device.id             pci 0x0200
-+device.name           T1 Card
-
- vendor.id             pci 0x12d5
-+vendor.name           Equator Technologies Inc
-
- vendor.id             pci 0x12d6
-+vendor.name           Analogic Corp
-
- vendor.id             pci 0x12d7
-+vendor.name           Biotronic SRL
-
- vendor.id             pci 0x12d8
-+vendor.name           Pericom Semiconductor
-
- vendor.id             pci 0x12d9
-+vendor.name           Aculab PLC
-
- vendor.id             pci 0x12d9
-&device.id             pci 0x0002
-+device.name           PCI Prosody
-
- vendor.id             pci 0x12d9
-&device.id             pci 0x0004
-+device.name           cPCI Prosody
-
- vendor.id             pci 0x12d9
-&device.id             pci 0x0005
-+device.name           Aculab E1/T1 PCI card
-
- vendor.id             pci 0x12da
-+vendor.name           True Time Inc.
-
- vendor.id             pci 0x12db
-+vendor.name           Annapolis Micro Systems, Inc
-
- vendor.id             pci 0x12dc
-+vendor.name           Symicron Computer Communication Ltd.
-
- vendor.id             pci 0x12dd
-+vendor.name           Management Graphics
-
- vendor.id             pci 0x12de
-+vendor.name           Rainbow Technologies
-
- vendor.id             pci 0x12de
-&device.id             pci 0x0200
-+device.name           CryptoSwift CS200
-
- vendor.id             pci 0x12df
-+vendor.name           SBS Technologies Inc
-
- vendor.id             pci 0x12e0
-+vendor.name           Chase Research
-
- vendor.id             pci 0x12e0
-&device.id             pci 0x0010
-+device.name           ST16C654 Quad UART
-
- vendor.id             pci 0x12e0
-&device.id             pci 0x0020
-+device.name           ST16C654 Quad UART
-
- vendor.id             pci 0x12e0
-&device.id             pci 0x0030
-+device.name           ST16C654 Quad UART
-
- vendor.id             pci 0x12e1
-+vendor.name           Nintendo Co, Ltd
-
- vendor.id             pci 0x12e2
-+vendor.name           Datum Inc. Bancomm-Timing Division
-
- vendor.id             pci 0x12e3
-+vendor.name           Imation Corp - Medical Imaging Systems
-
- vendor.id             pci 0x12e4
-+vendor.name           Brooktrout Technology Inc
-
- vendor.id             pci 0x12e5
-+vendor.name           Apex Semiconductor Inc
-
- vendor.id             pci 0x12e6
-+vendor.name           Cirel Systems
-
- vendor.id             pci 0x12e7
-+vendor.name           Sunsgroup Corporation
-
- vendor.id             pci 0x12e8
-+vendor.name           Crisc Corp
-
- vendor.id             pci 0x12e9
-+vendor.name           GE Spacenet
-
- vendor.id             pci 0x12ea
-+vendor.name           Zuken
-
- vendor.id             pci 0x12eb
-+vendor.name           Aureal Semiconductor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0001
-+device.name           Vortex 1
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0001
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8036
-+subdevice.name                AU8820 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0001
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x2000
-+subdevice.name                Sonic Impact A3D
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0001
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x2100
-+subdevice.name                Sonic Impact A3D
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0001
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x2110
-+subdevice.name                Sonic Impact A3D
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0001
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x2200
-+subdevice.name                Sonic Impact A3D
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0001
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x1002
-+subdevice.name                AU8820 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0001
-&subvendor.id          pci 0x12eb
-&subdevice.id          pci 0x0001
-+subdevice.name                AU8820 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0001
-&subvendor.id          pci 0x5053
-&subdevice.id          pci 0x3355
-+subdevice.name                Montego
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0002
-+device.name           Vortex 2
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0002
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8049
-+subdevice.name                AU8830 Vortex 3D Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0002
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x807b
-+subdevice.name                AU8830 Vortex 3D Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x3000
-+subdevice.name                Monster Sound II
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x3001
-+subdevice.name                Monster Sound II
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x3002
-+subdevice.name                Monster Sound II
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x3003
-+subdevice.name                Monster Sound II
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x3004
-+subdevice.name                Monster Sound II
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0002
-&subvendor.id          pci 0x12eb
-&subdevice.id          pci 0x0001
-+subdevice.name                AU8830 Vortex 3D Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0002
-&subvendor.id          pci 0x12eb
-&subdevice.id          pci 0x0002
-+subdevice.name                AU8830 Vortex 3D Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0002
-&subvendor.id          pci 0x12eb
-&subdevice.id          pci 0x0088
-+subdevice.name                AU8830 Vortex 3D Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0002
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0x3510
-+subdevice.name                AU8830 Vortex 3D Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0002
-&subvendor.id          pci 0x5053
-&subdevice.id          pci 0x3356
-+subdevice.name                Montego II
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0003
-+device.name           AU8810 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0003
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8049
-+subdevice.name                AU8810 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0003
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8077
-+subdevice.name                AU8810 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0003
-&subvendor.id          pci 0x109f
-&subdevice.id          pci 0x1000
-+subdevice.name                AU8810 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0003
-&subvendor.id          pci 0x12eb
-&subdevice.id          pci 0x0003
-+subdevice.name                AU8810 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x6780
-+subdevice.name                AU8810 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0003
-&subvendor.id          pci 0x14a4
-&subdevice.id          pci 0x2073
-+subdevice.name                AU8810 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0003
-&subvendor.id          pci 0x14a4
-&subdevice.id          pci 0x2091
-+subdevice.name                AU8810 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0003
-&subvendor.id          pci 0x14a4
-&subdevice.id          pci 0x2104
-+subdevice.name                AU8810 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x0003
-&subvendor.id          pci 0x14a4
-&subdevice.id          pci 0x2106
-+subdevice.name                AU8810 Vortex Digital Audio Processor
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x8803
-+device.name           Vortex 56k Software Modem
-
- vendor.id             pci 0x12eb
-&device.id             pci 0x8803
-&subvendor.id          pci 0x12eb
-&subdevice.id          pci 0x8803
-+subdevice.name                Vortex 56k Software Modem
-
- vendor.id             pci 0x12ec
-+vendor.name           3A International, Inc.
-
- vendor.id             pci 0x12ed
-+vendor.name           Optivision Inc.
-
- vendor.id             pci 0x12ee
-+vendor.name           Orange Micro
-
- vendor.id             pci 0x12ef
-+vendor.name           Vienna Systems
-
- vendor.id             pci 0x12f0
-+vendor.name           Pentek
-
- vendor.id             pci 0x12f1
-+vendor.name           Sorenson Vision Inc
-
- vendor.id             pci 0x12f2
-+vendor.name           Gammagraphx, Inc.
-
- vendor.id             pci 0x12f3
-+vendor.name           Radstone Technology
-
- vendor.id             pci 0x12f4
-+vendor.name           Megatel
-
- vendor.id             pci 0x12f5
-+vendor.name           Forks
-
- vendor.id             pci 0x12f6
-+vendor.name           Dawson France
-
- vendor.id             pci 0x12f7
-+vendor.name           Cognex
-
- vendor.id             pci 0x12f8
-+vendor.name           Electronic Design GmbH
-
- vendor.id             pci 0x12f8
-&device.id             pci 0x0002
-+device.name           VideoMaker
-
- vendor.id             pci 0x12f9
-+vendor.name           Four Fold Ltd
-
- vendor.id             pci 0x12fb
-+vendor.name           Spectrum Signal Processing
-
- vendor.id             pci 0x12fc
-+vendor.name           Capital Equipment Corp
-
- vendor.id             pci 0x12fd
-+vendor.name           I2S
-
- vendor.id             pci 0x12fe
-+vendor.name           ESD Electronic System Design GmbH
-
- vendor.id             pci 0x12ff
-+vendor.name           Lexicon
-
- vendor.id             pci 0x1300
-+vendor.name           Harman International Industries Inc
-
- vendor.id             pci 0x1302
-+vendor.name           Computer Sciences Corp
-
- vendor.id             pci 0x1303
-+vendor.name           Innovative Integration
-
- vendor.id             pci 0x1304
-+vendor.name           Juniper Networks
-
- vendor.id             pci 0x1305
-+vendor.name           Netphone, Inc
-
- vendor.id             pci 0x1306
-+vendor.name           Duet Technologies
-
- vendor.id             pci 0x1307
-+vendor.name           Measurement Computing
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0001
-+device.name           PCI-DAS1602/16
-
- vendor.id             pci 0x1307
-&device.id             pci 0x000b
-+device.name           PCI-DIO48H
-
- vendor.id             pci 0x1307
-&device.id             pci 0x000c
-+device.name           PCI-PDISO8
-
- vendor.id             pci 0x1307
-&device.id             pci 0x000d
-+device.name           PCI-PDISO16
-
- vendor.id             pci 0x1307
-&device.id             pci 0x000f
-+device.name           PCI-DAS1200
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0010
-+device.name           PCI-DAS1602/12
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0014
-+device.name           PCI-DIO24H
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0015
-+device.name           PCI-DIO24H/CTR3
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0016
-+device.name           PCI-DIO48H/CTR15
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0017
-+device.name           PCI-DIO96H
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0018
-+device.name           PCI-CTR05
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0019
-+device.name           PCI-DAS1200/JR
-
- vendor.id             pci 0x1307
-&device.id             pci 0x001a
-+device.name           PCI-DAS1001
-
- vendor.id             pci 0x1307
-&device.id             pci 0x001b
-+device.name           PCI-DAS1002
-
- vendor.id             pci 0x1307
-&device.id             pci 0x001c
-+device.name           PCI-DAS1602JR/16
-
- vendor.id             pci 0x1307
-&device.id             pci 0x001d
-+device.name           PCI-DAS6402/16
-
- vendor.id             pci 0x1307
-&device.id             pci 0x001e
-+device.name           PCI-DAS6402/12
-
- vendor.id             pci 0x1307
-&device.id             pci 0x001f
-+device.name           PCI-DAS16/M1
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0020
-+device.name           PCI-DDA02/12
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0021
-+device.name           PCI-DDA04/12
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0022
-+device.name           PCI-DDA08/12
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0023
-+device.name           PCI-DDA02/16
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0024
-+device.name           PCI-DDA04/16
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0025
-+device.name           PCI-DDA08/16
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0026
-+device.name           PCI-DAC04/12-HS
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0027
-+device.name           PCI-DAC04/16-HS
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0028
-+device.name           PCI-DIO24
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0029
-+device.name           PCI-DAS08
-
- vendor.id             pci 0x1307
-&device.id             pci 0x002c
-+device.name           PCI-INT32
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0033
-+device.name           PCI-DUAL-AC5
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0034
-+device.name           PCI-DAS-TC
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0035
-+device.name           PCI-DAS64/M1/16
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0036
-+device.name           PCI-DAS64/M2/16
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0037
-+device.name           PCI-DAS64/M3/16
-
- vendor.id             pci 0x1307
-&device.id             pci 0x004c
-+device.name           PCI-DAS1000
-
- vendor.id             pci 0x1307
-&device.id             pci 0x004d
-+device.name           PCI-QUAD04
-
- vendor.id             pci 0x1307
-&device.id             pci 0x0052
-+device.name           PCI-DAS4020/12
-
- vendor.id             pci 0x1307
-&device.id             pci 0x005e
-+device.name           PCI-DAS6025
-
- vendor.id             pci 0x1308
-+vendor.name           Jato Technologies Inc.
-
- vendor.id             pci 0x1308
-&device.id             pci 0x0001
-+device.name           NetCelerator Adapter
-
- vendor.id             pci 0x1308
-&device.id             pci 0x0001
-&subvendor.id          pci 0x1308
-&subdevice.id          pci 0x0001
-+subdevice.name                NetCelerator Adapter
-
- vendor.id             pci 0x1309
-+vendor.name           AB Semiconductor Ltd
-
- vendor.id             pci 0x130a
-+vendor.name           Mitsubishi Electric Microcomputer
-
- vendor.id             pci 0x130b
-+vendor.name           Colorgraphic Communications Corp
-
- vendor.id             pci 0x130c
-+vendor.name           Ambex Technologies, Inc
-
- vendor.id             pci 0x130d
-+vendor.name           Accelerix Inc
-
- vendor.id             pci 0x130e
-+vendor.name           Yamatake-Honeywell Co. Ltd
-
- vendor.id             pci 0x130f
-+vendor.name           Advanet Inc
-
- vendor.id             pci 0x1310
-+vendor.name           Gespac
-
- vendor.id             pci 0x1311
-+vendor.name           Videoserver, Inc
-
- vendor.id             pci 0x1312
-+vendor.name           Acuity Imaging, Inc
-
- vendor.id             pci 0x1313
-+vendor.name           Yaskawa Electric Co.
-
- vendor.id             pci 0x1316
-+vendor.name           Teradyne Inc
-
- vendor.id             pci 0x1317
-+vendor.name           Linksys
-
- vendor.id             pci 0x1317
-&device.id             pci 0x0981
-+device.name           21x4x DEC-Tulip compatible 10/100 Ethernet
-
- vendor.id             pci 0x1317
-&device.id             pci 0x0985
-+device.name           NC100 Network Everywhere Fast Ethernet 10/100
-
- vendor.id             pci 0x1317
-&device.id             pci 0x1985
-+device.name           21x4x DEC-Tulip compatible 10/100 Ethernet
-
- vendor.id             pci 0x1317
-&device.id             pci 0x2850
-+device.name           HSP MicroModem 56
-
- vendor.id             pci 0x1317
-&device.id             pci 0x8201
-+device.name           ADMtek ADM8211 802.11b Wireless Interface
-
- vendor.id             pci 0x1317
-&device.id             pci 0x8201
-&subvendor.id          pci 0x10b8
-&subdevice.id          pci 0x2635
-+subdevice.name                SMC2635W 802.11b (11Mbps) wireless lan pcmcia (cardbus) card
-
- vendor.id             pci 0x1317
-&device.id             pci 0x8201
-&subvendor.id          pci 0x1317
-&subdevice.id          pci 0x8201
-+subdevice.name                SMC2635W 802.11b (11mbps) wireless lan pcmcia (cardbus) card
-
- vendor.id             pci 0x1317
-&device.id             pci 0x8211
-+device.name           ADMtek ADM8211 802.11b Wireless Interface
-
- vendor.id             pci 0x1317
-&device.id             pci 0x9511
-+device.name           21x4x DEC-Tulip compatible 10/100 Ethernet
-
- vendor.id             pci 0x1318
-+vendor.name           Packet Engines Inc.
-
- vendor.id             pci 0x1318
-&device.id             pci 0x0911
-+device.name           GNIC-II PCI Gigabit Ethernet [Hamachi]
-
- vendor.id             pci 0x1319
-+vendor.name           Fortemedia, Inc
-
- vendor.id             pci 0x1319
-&device.id             pci 0x0801
-+device.name           Xwave QS3000A [FM801]
-
- vendor.id             pci 0x1319
-&device.id             pci 0x0802
-+device.name           Xwave QS3000A [FM801 game port]
-
- vendor.id             pci 0x1319
-&device.id             pci 0x1000
-+device.name           FM801 PCI Audio
-
- vendor.id             pci 0x1319
-&device.id             pci 0x1001
-+device.name           FM801 PCI Joystick
-
- vendor.id             pci 0x131a
-+vendor.name           Finisar Corp.
-
- vendor.id             pci 0x131c
-+vendor.name           Nippon Electro-Sensory Devices Corp
-
- vendor.id             pci 0x131d
-+vendor.name           Sysmic, Inc.
-
- vendor.id             pci 0x131e
-+vendor.name           Xinex Networks Inc
-
- vendor.id             pci 0x131f
-+vendor.name           Siig Inc
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1000
-+device.name           CyberSerial (1-port) 16550
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1001
-+device.name           CyberSerial (1-port) 16650
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1002
-+device.name           CyberSerial (1-port) 16850
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1010
-+device.name           Duet 1S(16550)+1P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1011
-+device.name           Duet 1S(16650)+1P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1012
-+device.name           Duet 1S(16850)+1P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1020
-+device.name           CyberParallel (1-port)
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1021
-+device.name           CyberParallel (2-port)
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1030
-+device.name           CyberSerial (2-port) 16550
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1031
-+device.name           CyberSerial (2-port) 16650
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1032
-+device.name           CyberSerial (2-port) 16850
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1034
-+device.name           Trio 2S(16550)+1P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1035
-+device.name           Trio 2S(16650)+1P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1036
-+device.name           Trio 2S(16850)+1P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1050
-+device.name           CyberSerial (4-port) 16550
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1051
-+device.name           CyberSerial (4-port) 16650
-
- vendor.id             pci 0x131f
-&device.id             pci 0x1052
-+device.name           CyberSerial (4-port) 16850
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2000
-+device.name           CyberSerial (1-port) 16550
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2001
-+device.name           CyberSerial (1-port) 16650
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2002
-+device.name           CyberSerial (1-port) 16850
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2010
-+device.name           Duet 1S(16550)+1P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2011
-+device.name           Duet 1S(16650)+1P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2012
-+device.name           Duet 1S(16850)+1P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2020
-+device.name           CyberParallel (1-port)
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2021
-+device.name           CyberParallel (2-port)
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2030
-+device.name           CyberSerial (2-port) 16550
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2030
-&subvendor.id          pci 0x131f
-&subdevice.id          pci 0x2030
-+subdevice.name                PCI Serial Card
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2031
-+device.name           CyberSerial (2-port) 16650
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2032
-+device.name           CyberSerial (2-port) 16850
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2040
-+device.name           Trio 1S(16550)+2P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2041
-+device.name           Trio 1S(16650)+2P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2042
-+device.name           Trio 1S(16850)+2P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2050
-+device.name           CyberSerial (4-port) 16550
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2051
-+device.name           CyberSerial (4-port) 16650
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2052
-+device.name           CyberSerial (4-port) 16850
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2060
-+device.name           Trio 2S(16550)+1P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2061
-+device.name           Trio 2S(16650)+1P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2062
-+device.name           Trio 2S(16850)+1P
-
- vendor.id             pci 0x131f
-&device.id             pci 0x2081
-+device.name           CyberSerial (8-port) ST16654
-
- vendor.id             pci 0x1320
-+vendor.name           Crypto AG
-
- vendor.id             pci 0x1321
-+vendor.name           Arcobel Graphics BV
-
- vendor.id             pci 0x1322
-+vendor.name           MTT Co., Ltd
-
- vendor.id             pci 0x1323
-+vendor.name           Dome Inc
-
- vendor.id             pci 0x1324
-+vendor.name           Sphere Communications
-
- vendor.id             pci 0x1325
-+vendor.name           Salix Technologies, Inc
-
- vendor.id             pci 0x1326
-+vendor.name           Seachange international
-
- vendor.id             pci 0x1327
-+vendor.name           Voss scientific
-
- vendor.id             pci 0x1328
-+vendor.name           quadrant international
-
- vendor.id             pci 0x1329
-+vendor.name           Productivity Enhancement
-
- vendor.id             pci 0x132a
-+vendor.name           Microcom Inc.
-
- vendor.id             pci 0x132b
-+vendor.name           Broadband Technologies
-
- vendor.id             pci 0x132c
-+vendor.name           Micrel Inc
-
- vendor.id             pci 0x132d
-+vendor.name           Integrated Silicon Solution, Inc.
-
- vendor.id             pci 0x1330
-+vendor.name           MMC Networks
-
- vendor.id             pci 0x1331
-+vendor.name           Radisys Corp.
-
- vendor.id             pci 0x1331
-&device.id             pci 0x0030
-+device.name           ENP-2611
-
- vendor.id             pci 0x1331
-&device.id             pci 0x8200
-+device.name           82600 Host Bridge
-
- vendor.id             pci 0x1331
-&device.id             pci 0x8201
-+device.name           82600 IDE
-
- vendor.id             pci 0x1331
-&device.id             pci 0x8202
-+device.name           82600 USB
-
- vendor.id             pci 0x1331
-&device.id             pci 0x8210
-+device.name           82600 PCI Bridge
-
- vendor.id             pci 0x1332
-+vendor.name           Micro Memory
-
- vendor.id             pci 0x1332
-&device.id             pci 0x5415
-+device.name           MM-5415CN PCI Memory Module with Battery Backup
-
- vendor.id             pci 0x1332
-&device.id             pci 0x5425
-+device.name           MM-5425CN PCI 64/66 Memory Module with Battery Backup
-
- vendor.id             pci 0x1334
-+vendor.name           Redcreek Communications, Inc
-
- vendor.id             pci 0x1335
-+vendor.name           Videomail, Inc
-
- vendor.id             pci 0x1337
-+vendor.name           Third Planet Publishing
-
- vendor.id             pci 0x1338
-+vendor.name           BT Electronics
-
- vendor.id             pci 0x133a
-+vendor.name           Vtel Corp
-
- vendor.id             pci 0x133b
-+vendor.name           Softcom Microsystems
-
- vendor.id             pci 0x133c
-+vendor.name           Holontech Corp
-
- vendor.id             pci 0x133d
-+vendor.name           SS Technologies
-
- vendor.id             pci 0x133e
-+vendor.name           Virtual Computer Corp
-
- vendor.id             pci 0x133f
-+vendor.name           SCM Microsystems
-
- vendor.id             pci 0x1340
-+vendor.name           Atalla Corp
-
- vendor.id             pci 0x1341
-+vendor.name           Kyoto Microcomputer Co
-
- vendor.id             pci 0x1342
-+vendor.name           Promax Systems Inc
-
- vendor.id             pci 0x1343
-+vendor.name           Phylon Communications Inc
-
- vendor.id             pci 0x1344
-+vendor.name           Crucial Technology
-
- vendor.id             pci 0x1345
-+vendor.name           Arescom Inc
-
- vendor.id             pci 0x1347
-+vendor.name           Odetics
-
- vendor.id             pci 0x1349
-+vendor.name           Sumitomo Electric Industries, Ltd.
-
- vendor.id             pci 0x134a
-+vendor.name           DTC Technology Corp.
-
- vendor.id             pci 0x134a
-&device.id             pci 0x0001
-+device.name           Domex 536
-
- vendor.id             pci 0x134a
-&device.id             pci 0x0002
-+device.name           Domex DMX3194UP SCSI Adapter
-
- vendor.id             pci 0x134b
-+vendor.name           ARK Research Corp.
-
- vendor.id             pci 0x134c
-+vendor.name           Chori Joho System Co. Ltd
-
- vendor.id             pci 0x134d
-+vendor.name           PCTel Inc
-
- vendor.id             pci 0x134d
-&device.id             pci 0x2189
-+device.name           HSP56 MicroModem
-
- vendor.id             pci 0x134d
-&device.id             pci 0x2486
-+device.name           2304WT V.92 MDC Modem
-
- vendor.id             pci 0x134d
-&device.id             pci 0x7890
-+device.name           HSP MicroModem 56
-
- vendor.id             pci 0x134d
-&device.id             pci 0x7890
-&subvendor.id          pci 0x134d
-&subdevice.id          pci 0x0001
-+subdevice.name                PCT789 adapter
-
- vendor.id             pci 0x134d
-&device.id             pci 0x7891
-+device.name           HSP MicroModem 56
-
- vendor.id             pci 0x134d
-&device.id             pci 0x7891
-&subvendor.id          pci 0x134d
-&subdevice.id          pci 0x0001
-+subdevice.name                HSP MicroModem 56
-
- vendor.id             pci 0x134d
-&device.id             pci 0x7892
-+device.name           HSP MicroModem 56
-
- vendor.id             pci 0x134d
-&device.id             pci 0x7893
-+device.name           HSP MicroModem 56
-
- vendor.id             pci 0x134d
-&device.id             pci 0x7894
-+device.name           HSP MicroModem 56
-
- vendor.id             pci 0x134d
-&device.id             pci 0x7895
-+device.name           HSP MicroModem 56
-
- vendor.id             pci 0x134d
-&device.id             pci 0x7896
-+device.name           HSP MicroModem 56
-
- vendor.id             pci 0x134d
-&device.id             pci 0x7897
-+device.name           HSP MicroModem 56
-
- vendor.id             pci 0x134e
-+vendor.name           CSTI
-
- vendor.id             pci 0x134f
-+vendor.name           Algo System Co Ltd
-
- vendor.id             pci 0x1350
-+vendor.name           Systec Co. Ltd
-
- vendor.id             pci 0x1351
-+vendor.name           Sonix Inc
-
- vendor.id             pci 0x1353
-+vendor.name           Thales Idatys
-
- vendor.id             pci 0x1353
-&device.id             pci 0x0002
-+device.name           Proserver
-
- vendor.id             pci 0x1353
-&device.id             pci 0x0003
-+device.name           PCI-FUT
-
- vendor.id             pci 0x1353
-&device.id             pci 0x0004
-+device.name           PCI-S0
-
- vendor.id             pci 0x1353
-&device.id             pci 0x0005
-+device.name           PCI-FUT-S0
-
- vendor.id             pci 0x1354
-+vendor.name           Dwave System Inc
-
- vendor.id             pci 0x1355
-+vendor.name           Kratos Analytical Ltd
-
- vendor.id             pci 0x1356
-+vendor.name           The Logical Co
-
- vendor.id             pci 0x1359
-+vendor.name           Prisa Networks
-
- vendor.id             pci 0x135a
-+vendor.name           Brain Boxes
-
- vendor.id             pci 0x135b
-+vendor.name           Giganet Inc
-
- vendor.id             pci 0x135c
-+vendor.name           Quatech Inc
-
- vendor.id             pci 0x135c
-&device.id             pci 0x0010
-+device.name           QSC-100
-
- vendor.id             pci 0x135c
-&device.id             pci 0x0020
-+device.name           DSC-100
-
- vendor.id             pci 0x135c
-&device.id             pci 0x0030
-+device.name           DSC-200/300
-
- vendor.id             pci 0x135c
-&device.id             pci 0x0040
-+device.name           QSC-200/300
-
- vendor.id             pci 0x135c
-&device.id             pci 0x0050
-+device.name           ESC-100D
-
- vendor.id             pci 0x135c
-&device.id             pci 0x0060
-+device.name           ESC-100M
-
- vendor.id             pci 0x135c
-&device.id             pci 0x00f0
-+device.name           MPAC-100 Syncronous Serial Card (Zilog 85230)
-
- vendor.id             pci 0x135c
-&device.id             pci 0x0170
-+device.name           QSCLP-100
-
- vendor.id             pci 0x135c
-&device.id             pci 0x0180
-+device.name           DSCLP-100
-
- vendor.id             pci 0x135c
-&device.id             pci 0x0190
-+device.name           SSCLP-100
-
- vendor.id             pci 0x135c
-&device.id             pci 0x01a0
-+device.name           QSCLP-200/300
-
- vendor.id             pci 0x135c
-&device.id             pci 0x01b0
-+device.name           DSCLP-200/300
-
- vendor.id             pci 0x135c
-&device.id             pci 0x01c0
-+device.name           SSCLP-200/300
-
- vendor.id             pci 0x135d
-+vendor.name           ABB Network Partner AB
-
- vendor.id             pci 0x135e
-+vendor.name           Sealevel Systems Inc
-
- vendor.id             pci 0x135e
-&device.id             pci 0x5101
-+device.name           Route 56.PCI - Multi-Protocol Serial Interface (Zilog Z16C32)
-
- vendor.id             pci 0x135e
-&device.id             pci 0x7101
-+device.name           Single Port RS-232/422/485/530
-
- vendor.id             pci 0x135e
-&device.id             pci 0x7201
-+device.name           Dual Port RS-232/422/485 Interface
-
- vendor.id             pci 0x135e
-&device.id             pci 0x7202
-+device.name           Dual Port RS-232 Interface
-
- vendor.id             pci 0x135e
-&device.id             pci 0x7401
-+device.name           Four Port RS-232 Interface
-
- vendor.id             pci 0x135e
-&device.id             pci 0x7402
-+device.name           Four Port RS-422/485 Interface
-
- vendor.id             pci 0x135e
-&device.id             pci 0x7801
-+device.name           Eight Port RS-232 Interface
-
- vendor.id             pci 0x135e
-&device.id             pci 0x8001
-+device.name           8001 Digital I/O Adapter
-
- vendor.id             pci 0x135f
-+vendor.name           I-Data International A-S
-
- vendor.id             pci 0x1360
-+vendor.name           Meinberg Funkuhren
-
- vendor.id             pci 0x1360
-&device.id             pci 0x0101
-+device.name           PCI32 DCF77 Radio Clock
-
- vendor.id             pci 0x1360
-&device.id             pci 0x0102
-+device.name           PCI509 DCF77 Radio Clock
-
- vendor.id             pci 0x1360
-&device.id             pci 0x0103
-+device.name           PCI510 DCF77 Radio Clock
-
- vendor.id             pci 0x1360
-&device.id             pci 0x0201
-+device.name           GPS167PCI GPS Receiver
-
- vendor.id             pci 0x1360
-&device.id             pci 0x0202
-+device.name           GPS168PCI GPS Receiver
-
- vendor.id             pci 0x1360
-&device.id             pci 0x0203
-+device.name           GPS169PCI GPS Receiver
-
- vendor.id             pci 0x1360
-&device.id             pci 0x0301
-+device.name           TCR510PCI IRIG Receiver
-
- vendor.id             pci 0x1361
-+vendor.name           Soliton Systems K.K.
-
- vendor.id             pci 0x1362
-+vendor.name           Fujifacom Corporation
-
- vendor.id             pci 0x1363
-+vendor.name           Phoenix Technology Ltd
-
- vendor.id             pci 0x1364
-+vendor.name           ATM Communications Inc
-
- vendor.id             pci 0x1365
-+vendor.name           Hypercope GmbH
-
- vendor.id             pci 0x1366
-+vendor.name           Teijin Seiki Co. Ltd
-
- vendor.id             pci 0x1367
-+vendor.name           Hitachi Zosen Corporation
-
- vendor.id             pci 0x1368
-+vendor.name           Skyware Corporation
-
- vendor.id             pci 0x1369
-+vendor.name           Digigram
-
- vendor.id             pci 0x136a
-+vendor.name           High Soft Tech
-
- vendor.id             pci 0x136b
-+vendor.name           Kawasaki Steel Corporation
-
- vendor.id             pci 0x136b
-&device.id             pci 0xff01
-+device.name           KL5A72002 Motion JPEG
-
- vendor.id             pci 0x136c
-+vendor.name           Adtek System Science Co Ltd
-
- vendor.id             pci 0x136d
-+vendor.name           Gigalabs Inc
-
- vendor.id             pci 0x136f
-+vendor.name           Applied Magic Inc
-
- vendor.id             pci 0x1370
-+vendor.name           ATL Products
-
- vendor.id             pci 0x1371
-+vendor.name           CNet Technology Inc
-
- vendor.id             pci 0x1371
-&device.id             pci 0x434e
-+device.name           GigaCard Network Adapter
-
- vendor.id             pci 0x1371
-&device.id             pci 0x434e
-&subvendor.id          pci 0x1371
-&subdevice.id          pci 0x434e
-+subdevice.name                N-Way PCI-Bus Giga-Card 1000/100/10Mbps(L)
-
- vendor.id             pci 0x1373
-+vendor.name           Silicon Vision Inc
-
- vendor.id             pci 0x1374
-+vendor.name           Silicom Ltd
-
- vendor.id             pci 0x1375
-+vendor.name           Argosystems Inc
-
- vendor.id             pci 0x1376
-+vendor.name           LMC
-
- vendor.id             pci 0x1377
-+vendor.name           Electronic Equipment Production & Distribution GmbH
-
- vendor.id             pci 0x1378
-+vendor.name           Telemann Co. Ltd
-
- vendor.id             pci 0x1379
-+vendor.name           Asahi Kasei Microsystems Co Ltd
-
- vendor.id             pci 0x137a
-+vendor.name           Mark of the Unicorn Inc
-
- vendor.id             pci 0x137a
-&device.id             pci 0x0001
-+device.name           PCI-324 Audiowire Interface
-
- vendor.id             pci 0x137b
-+vendor.name           PPT Vision
-
- vendor.id             pci 0x137c
-+vendor.name           Iwatsu Electric Co Ltd
-
- vendor.id             pci 0x137d
-+vendor.name           Dynachip Corporation
-
- vendor.id             pci 0x137e
-+vendor.name           Patriot Scientific Corporation
-
- vendor.id             pci 0x137f
-+vendor.name           Japan Satellite Systems Inc
-
- vendor.id             pci 0x1380
-+vendor.name           Sanritz Automation Co Ltd
-
- vendor.id             pci 0x1381
-+vendor.name           Brains Co. Ltd
-
- vendor.id             pci 0x1382
-+vendor.name           Marian - Electronic & Software
-
- vendor.id             pci 0x1382
-&device.id             pci 0x0001
-+device.name           ARC88 audio recording card
-
- vendor.id             pci 0x1382
-&device.id             pci 0x2088
-+device.name           Marc-8 MIDI 8 channel audio card
-
- vendor.id             pci 0x1383
-+vendor.name           Controlnet Inc
-
- vendor.id             pci 0x1384
-+vendor.name           Reality Simulation Systems Inc
-
- vendor.id             pci 0x1385
-+vendor.name           Netgear
-
- vendor.id             pci 0x1385
-&device.id             pci 0x0013
-+device.name           WG311T
-
- vendor.id             pci 0x1385
-&device.id             pci 0x4100
-+device.name           802.11b Wireless Adapter (MA301)
-
- vendor.id             pci 0x1385
-&device.id             pci 0x4105
-+device.name           MA311 802.11b wireless adapter
-
- vendor.id             pci 0x1385
-&device.id             pci 0x4400
-+device.name           WAG511 802.11a/b/g Dual Band Wireless PC Card
-
- vendor.id             pci 0x1385
-&device.id             pci 0x4600
-+device.name           WAG511 802.11a/b/g Dual Band Wireless PC Card
-
- vendor.id             pci 0x1385
-&device.id             pci 0x4601
-+device.name           WAG511 802.11a/b/g Dual Band Wireless PC Card
-
- vendor.id             pci 0x1385
-&device.id             pci 0x4610
-+device.name           WAG511 802.11a/b/g Dual Band Wireless PC Card
-
- vendor.id             pci 0x1385
-&device.id             pci 0x4a00
-+device.name           WAG311 802.11a/g Wireless PCI Adapter
-
- vendor.id             pci 0x1385
-&device.id             pci 0x4c00
-+device.name           WG311v2 54 Mbps Wireless PCI Adapter
-
- vendor.id             pci 0x1385
-&device.id             pci 0x620a
-+device.name           GA620 Gigabit Ethernet
-
- vendor.id             pci 0x1385
-&device.id             pci 0x622a
-+device.name           GA622
-
- vendor.id             pci 0x1385
-&device.id             pci 0x630a
-+device.name           GA630 Gigabit Ethernet
-
- vendor.id             pci 0x1385
-&device.id             pci 0xf004
-+device.name           FA310TX
-
- vendor.id             pci 0x1386
-+vendor.name           Video Domain Technologies
-
- vendor.id             pci 0x1387
-+vendor.name           Systran Corp
-
- vendor.id             pci 0x1388
-+vendor.name           Hitachi Information Technology Co Ltd
-
- vendor.id             pci 0x1389
-+vendor.name           Applicom International
-
- vendor.id             pci 0x1389
-&device.id             pci 0x0001
-+device.name           PCI1500PFB [Intelligent fieldbus adaptor]
-
- vendor.id             pci 0x138a
-+vendor.name           Fusion Micromedia Corp
-
- vendor.id             pci 0x138b
-+vendor.name           Tokimec Inc
-
- vendor.id             pci 0x138c
-+vendor.name           Silicon Reality
-
- vendor.id             pci 0x138d
-+vendor.name           Future Techno Designs pte Ltd
-
- vendor.id             pci 0x138e
-+vendor.name           Basler GmbH
-
- vendor.id             pci 0x138f
-+vendor.name           Patapsco Designs Inc
-
- vendor.id             pci 0x1390
-+vendor.name           Concept Development Inc
-
- vendor.id             pci 0x1391
-+vendor.name           Development Concepts Inc
-
- vendor.id             pci 0x1392
-+vendor.name           Medialight Inc
-
- vendor.id             pci 0x1393
-+vendor.name           Moxa Technologies Co Ltd
-
- vendor.id             pci 0x1393
-&device.id             pci 0x1040
-+device.name           Smartio C104H/PCI
-
- vendor.id             pci 0x1393
-&device.id             pci 0x1141
-+device.name           Industrio CP-114
-
- vendor.id             pci 0x1393
-&device.id             pci 0x1680
-+device.name           Smartio C168H/PCI
-
- vendor.id             pci 0x1393
-&device.id             pci 0x2040
-+device.name           Intellio CP-204J
-
- vendor.id             pci 0x1393
-&device.id             pci 0x2180
-+device.name           Intellio C218 Turbo PCI
-
- vendor.id             pci 0x1393
-&device.id             pci 0x3200
-+device.name           Intellio C320 Turbo PCI
-
- vendor.id             pci 0x1394
-+vendor.name           Level One Communications
-
- vendor.id             pci 0x1394
-&device.id             pci 0x0001
-+device.name           LXT1001 Gigabit Ethernet
-
- vendor.id             pci 0x1394
-&device.id             pci 0x0001
-&subvendor.id          pci 0x1394
-&subdevice.id          pci 0x0001
-+subdevice.name                NetCelerator Adapter
-
- vendor.id             pci 0x1395
-+vendor.name           Ambicom Inc
-
- vendor.id             pci 0x1396
-+vendor.name           Cipher Systems Inc
-
- vendor.id             pci 0x1397
-+vendor.name           Cologne Chip Designs GmbH
-
- vendor.id             pci 0x1397
-&device.id             pci 0x2bd0
-+device.name           ISDN network controller [HFC-PCI]
-
- vendor.id             pci 0x1397
-&device.id             pci 0x2bd0
-&subvendor.id          pci 0x1397
-&subdevice.id          pci 0x2bd0
-+subdevice.name                ISDN Board
-
- vendor.id             pci 0x1397
-&device.id             pci 0x2bd0
-&subvendor.id          pci 0xe4bf
-&subdevice.id          pci 0x1000
-+subdevice.name                CI1-1-Harp
-
- vendor.id             pci 0x1398
-+vendor.name           Clarion co. Ltd
-
- vendor.id             pci 0x1399
-+vendor.name           Rios systems Co Ltd
-
- vendor.id             pci 0x139a
-+vendor.name           Alacritech Inc
-
- vendor.id             pci 0x139a
-&device.id             pci 0x0001
-+device.name           Quad Port 10/100 Server Accelerator
-
- vendor.id             pci 0x139a
-&device.id             pci 0x0003
-+device.name           Single Port 10/100 Server Accelerator
-
- vendor.id             pci 0x139a
-&device.id             pci 0x0005
-+device.name           Single Port Gigabit Server Accelerator
-
- vendor.id             pci 0x139b
-+vendor.name           Mediasonic Multimedia Systems Ltd
-
- vendor.id             pci 0x139c
-+vendor.name           Quantum 3d Inc
-
- vendor.id             pci 0x139d
-+vendor.name           EPL limited
-
- vendor.id             pci 0x139e
-+vendor.name           Media4
-
- vendor.id             pci 0x139f
-+vendor.name           Aethra s.r.l.
-
- vendor.id             pci 0x13a0
-+vendor.name           Crystal Group Inc
-
- vendor.id             pci 0x13a1
-+vendor.name           Kawasaki Heavy Industries Ltd
-
- vendor.id             pci 0x13a2
-+vendor.name           Ositech Communications Inc
-
- vendor.id             pci 0x13a3
-+vendor.name           Hifn Inc.
-
- vendor.id             pci 0x13a3
-&device.id             pci 0x0005
-+device.name           7751 Security Processor
-
- vendor.id             pci 0x13a3
-&device.id             pci 0x0006
-+device.name           6500 Public Key Processor
-
- vendor.id             pci 0x13a3
-&device.id             pci 0x0007
-+device.name           7811 Security Processor
-
- vendor.id             pci 0x13a3
-&device.id             pci 0x0012
-+device.name           7951 Security Processor
-
- vendor.id             pci 0x13a3
-&device.id             pci 0x0014
-+device.name           78XX Security Processor
-
- vendor.id             pci 0x13a3
-&device.id             pci 0x0016
-+device.name           8065 Security Processor
-
- vendor.id             pci 0x13a3
-&device.id             pci 0x0017
-+device.name           8165 Security Processor
-
- vendor.id             pci 0x13a3
-&device.id             pci 0x0018
-+device.name           8154 Security Processor
-
- vendor.id             pci 0x13a4
-+vendor.name           Rascom Inc
-
- vendor.id             pci 0x13a5
-+vendor.name           Audio Digital Imaging Inc
-
- vendor.id             pci 0x13a6
-+vendor.name           Videonics Inc
-
- vendor.id             pci 0x13a7
-+vendor.name           Teles AG
-
- vendor.id             pci 0x13a8
-+vendor.name           Exar Corp.
-
- vendor.id             pci 0x13a8
-&device.id             pci 0x0154
-+device.name           XR17C154 Quad UART
-
- vendor.id             pci 0x13a8
-&device.id             pci 0x0158
-+device.name           XR17C158 Octal UART
-
- vendor.id             pci 0x13a9
-+vendor.name           Siemens Medical Systems, Ultrasound Group
-
- vendor.id             pci 0x13aa
-+vendor.name           Broadband Networks Inc
-
- vendor.id             pci 0x13ab
-+vendor.name           Arcom Control Systems Ltd
-
- vendor.id             pci 0x13ac
-+vendor.name           Motion Media Technology Ltd
-
- vendor.id             pci 0x13ad
-+vendor.name           Nexus Inc
-
- vendor.id             pci 0x13ae
-+vendor.name           ALD Technology Ltd
-
- vendor.id             pci 0x13af
-+vendor.name           T.Sqware
-
- vendor.id             pci 0x13b0
-+vendor.name           Maxspeed Corp
-
- vendor.id             pci 0x13b1
-+vendor.name           Tamura corporation
-
- vendor.id             pci 0x13b2
-+vendor.name           Techno Chips Co. Ltd
-
- vendor.id             pci 0x13b3
-+vendor.name           Lanart Corporation
-
- vendor.id             pci 0x13b4
-+vendor.name           Wellbean Co Inc
-
- vendor.id             pci 0x13b5
-+vendor.name           ARM
-
- vendor.id             pci 0x13b6
-+vendor.name           Dlog GmbH
-
- vendor.id             pci 0x13b7
-+vendor.name           Logic Devices Inc
-
- vendor.id             pci 0x13b8
-+vendor.name           Nokia Telecommunications oy
-
- vendor.id             pci 0x13b9
-+vendor.name           Elecom Co Ltd
-
- vendor.id             pci 0x13ba
-+vendor.name           Oxford Instruments
-
- vendor.id             pci 0x13bb
-+vendor.name           Sanyo Technosound Co Ltd
-
- vendor.id             pci 0x13bc
-+vendor.name           Bitran Corporation
-
- vendor.id             pci 0x13bd
-+vendor.name           Sharp corporation
-
- vendor.id             pci 0x13be
-+vendor.name           Miroku Jyoho Service Co. Ltd
-
- vendor.id             pci 0x13bf
-+vendor.name           Sharewave Inc
-
- vendor.id             pci 0x13c0
-+vendor.name           Microgate Corporation
-
- vendor.id             pci 0x13c0
-&device.id             pci 0x0010
-+device.name           SyncLink Adapter v1
-
- vendor.id             pci 0x13c0
-&device.id             pci 0x0020
-+device.name           SyncLink SCC Adapter
-
- vendor.id             pci 0x13c0
-&device.id             pci 0x0030
-+device.name           SyncLink Multiport Adapter
-
- vendor.id             pci 0x13c0
-&device.id             pci 0x0210
-+device.name           SyncLink Adapter v2
-
- vendor.id             pci 0x13c1
-+vendor.name           3ware Inc
-
- vendor.id             pci 0x13c1
-&device.id             pci 0x1000
-+device.name           3ware Inc 3ware 5xxx/6xxx-series PATA-RAID
-
- vendor.id             pci 0x13c1
-&device.id             pci 0x1001
-+device.name           3ware Inc 3ware 7xxx/8xxx-series PATA/SATA-RAID
-
- vendor.id             pci 0x13c1
-&device.id             pci 0x1001
-&subvendor.id          pci 0x13c1
-&subdevice.id          pci 0x1001
-+subdevice.name                3ware Inc 3ware 7xxx/8xxx-series PATA/SATA-RAID
-
- vendor.id             pci 0x13c1
-&device.id             pci 0x1002
-+device.name           3ware Inc 3ware 9xxx-series SATA-RAID
-
- vendor.id             pci 0x13c2
-+vendor.name           Technotrend Systemtechnik GmbH
-
- vendor.id             pci 0x13c3
-+vendor.name           Janz Computer AG
-
- vendor.id             pci 0x13c4
-+vendor.name           Phase Metrics
-
- vendor.id             pci 0x13c5
-+vendor.name           Alphi Technology Corp
-
- vendor.id             pci 0x13c6
-+vendor.name           Condor Engineering Inc
-
- vendor.id             pci 0x13c6
-&device.id             pci 0x0520
-+device.name           CEI-520 A429 Card
-
- vendor.id             pci 0x13c6
-&device.id             pci 0x0620
-+device.name           CEI-620 A429 Card
-
- vendor.id             pci 0x13c6
-&device.id             pci 0x0820
-+device.name           CEI-820 A429 Card
-
- vendor.id             pci 0x13c7
-+vendor.name           Blue Chip Technology Ltd
-
- vendor.id             pci 0x13c8
-+vendor.name           Apptech Inc
-
- vendor.id             pci 0x13c9
-+vendor.name           Eaton Corporation
-
- vendor.id             pci 0x13ca
-+vendor.name           Iomega Corporation
-
- vendor.id             pci 0x13cb
-+vendor.name           Yano Electric Co Ltd
-
- vendor.id             pci 0x13cc
-+vendor.name           Metheus Corporation
-
- vendor.id             pci 0x13cd
-+vendor.name           Compatible Systems Corporation
-
- vendor.id             pci 0x13ce
-+vendor.name           Cocom A/S
-
- vendor.id             pci 0x13cf
-+vendor.name           Studio Audio & Video Ltd
-
- vendor.id             pci 0x13d0
-+vendor.name           Techsan Electronics Co Ltd
-
- vendor.id             pci 0x13d0
-&device.id             pci 0x2103
-+device.name           B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card
-
- vendor.id             pci 0x13d0
-&device.id             pci 0x2200
-+device.name           B2C2 FlexCopIII DVB chip / Technisat SkyStar2 DVB card
-
- vendor.id             pci 0x13d1
-+vendor.name           Abocom Systems Inc
-
- vendor.id             pci 0x13d1
-&device.id             pci 0xab02
-+device.name           ADMtek Centaur-C rev 17 [D-Link DFE-680TX] CardBus Fast Ethernet Adapter
-
- vendor.id             pci 0x13d1
-&device.id             pci 0xab03
-+device.name           21x4x DEC-Tulip compatible 10/100 Ethernet
-
- vendor.id             pci 0x13d1
-&device.id             pci 0xab06
-+device.name           RTL8139 [FE2000VX] CardBus Fast Ethernet Attached Port Adapter
-
- vendor.id             pci 0x13d1
-&device.id             pci 0xab08
-+device.name           21x4x DEC-Tulip compatible 10/100 Ethernet
-
- vendor.id             pci 0x13d2
-+vendor.name           Shark Multimedia Inc
-
- vendor.id             pci 0x13d3
-+vendor.name           IMC Networks
-
- vendor.id             pci 0x13d4
-+vendor.name           Graphics Microsystems Inc
-
- vendor.id             pci 0x13d5
-+vendor.name           Media 100 Inc
-
- vendor.id             pci 0x13d6
-+vendor.name           K.I. Technology Co Ltd
-
- vendor.id             pci 0x13d7
-+vendor.name           Toshiba Engineering Corporation
-
- vendor.id             pci 0x13d8
-+vendor.name           Phobos corporation
-
- vendor.id             pci 0x13d9
-+vendor.name           Apex PC Solutions Inc
-
- vendor.id             pci 0x13da
-+vendor.name           Intresource Systems pte Ltd
-
- vendor.id             pci 0x13db
-+vendor.name           Janich & Klass Computertechnik GmbH
-
- vendor.id             pci 0x13dc
-+vendor.name           Netboost Corporation
-
- vendor.id             pci 0x13dd
-+vendor.name           Multimedia Bundle Inc
-
- vendor.id             pci 0x13de
-+vendor.name           ABB Robotics Products AB
-
- vendor.id             pci 0x13df
-+vendor.name           E-Tech Inc
-
- vendor.id             pci 0x13df
-&device.id             pci 0x0001
-+device.name           PCI56RVP Modem
-
- vendor.id             pci 0x13df
-&device.id             pci 0x0001
-&subvendor.id          pci 0x13df
-&subdevice.id          pci 0x0001
-+subdevice.name                PCI56RVP Modem
-
- vendor.id             pci 0x13e0
-+vendor.name           GVC Corporation
-
- vendor.id             pci 0x13e1
-+vendor.name           Silicom Multimedia Systems Inc
-
- vendor.id             pci 0x13e2
-+vendor.name           Dynamics Research Corporation
-
- vendor.id             pci 0x13e3
-+vendor.name           Nest Inc
-
- vendor.id             pci 0x13e4
-+vendor.name           Calculex Inc
-
- vendor.id             pci 0x13e5
-+vendor.name           Telesoft Design Ltd
-
- vendor.id             pci 0x13e6
-+vendor.name           Argosy research Inc
-
- vendor.id             pci 0x13e7
-+vendor.name           NAC Incorporated
-
- vendor.id             pci 0x13e8
-+vendor.name           Chip Express Corporation
-
- vendor.id             pci 0x13e9
-+vendor.name           Intraserver Technology Inc
-
- vendor.id             pci 0x13ea
-+vendor.name           Dallas Semiconductor
-
- vendor.id             pci 0x13eb
-+vendor.name           Hauppauge Computer Works Inc
-
- vendor.id             pci 0x13ec
-+vendor.name           Zydacron Inc
-
- vendor.id             pci 0x13ed
-+vendor.name           Raytheion E-Systems
-
- vendor.id             pci 0x13ee
-+vendor.name           Hayes Microcomputer Products Inc
-
- vendor.id             pci 0x13ef
-+vendor.name           Coppercom Inc
-
- vendor.id             pci 0x13f0
-+vendor.name           Sundance Technology Inc
-
- vendor.id             pci 0x13f0
-&device.id             pci 0x0201
-+device.name           ST201 Sundance Ethernet
-
- vendor.id             pci 0x13f1
-+vendor.name           Oce' - Technologies B.V.
-
- vendor.id             pci 0x13f2
-+vendor.name           Ford Microelectronics Inc
-
- vendor.id             pci 0x13f3
-+vendor.name           Mcdata Corporation
-
- vendor.id             pci 0x13f4
-+vendor.name           Troika Networks, Inc.
-
- vendor.id             pci 0x13f4
-&device.id             pci 0x1401
-+device.name           Zentai Fibre Channel Adapter
-
- vendor.id             pci 0x13f5
-+vendor.name           Kansai Electric Co. Ltd
-
- vendor.id             pci 0x13f6
-+vendor.name           C-Media Electronics Inc
-
- vendor.id             pci 0x13f6
-&device.id             pci 0x0011
-+device.name           CMI8738
-
- vendor.id             pci 0x13f6
-&device.id             pci 0x0100
-+device.name           CM8338A
-
- vendor.id             pci 0x13f6
-&device.id             pci 0x0100
-&subvendor.id          pci 0x13f6
-&subdevice.id          pci 0xffff
-+subdevice.name                CMI8338/C3DX PCI Audio Device
-
- vendor.id             pci 0x13f6
-&device.id             pci 0x0101
-+device.name           CM8338B
-
- vendor.id             pci 0x13f6
-&device.id             pci 0x0101
-&subvendor.id          pci 0x13f6
-&subdevice.id          pci 0x0101
-+subdevice.name                CMI8338-031 PCI Audio Device
-
- vendor.id             pci 0x13f6
-&device.id             pci 0x0111
-+device.name           CM8738
-
- vendor.id             pci 0x13f6
-&device.id             pci 0x0111
-&subvendor.id          pci 0x1019
-&subdevice.id          pci 0x0970
-+subdevice.name                P6STP-FL motherboard
-
- vendor.id             pci 0x13f6
-&device.id             pci 0x0111
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8035
-+subdevice.name                CUSI-FX motherboard
-
- vendor.id             pci 0x13f6
-&device.id             pci 0x0111
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8077
-+subdevice.name                CMI8738 6-channel audio controller
-
- vendor.id             pci 0x13f6
-&device.id             pci 0x0111
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80e2
-+subdevice.name                CMI8738 6ch-MX
-
- vendor.id             pci 0x13f6
-&device.id             pci 0x0111
-&subvendor.id          pci 0x13f6
-&subdevice.id          pci 0x0111
-+subdevice.name                CMI8738/C3DX PCI Audio Device
-
- vendor.id             pci 0x13f6
-&device.id             pci 0x0111
-&subvendor.id          pci 0x1681
-&subdevice.id          pci 0xa000
-+subdevice.name                Gamesurround MUSE XL
-
- vendor.id             pci 0x13f6
-&device.id             pci 0x0211
-+device.name           CM8738
-
- vendor.id             pci 0x13f7
-+vendor.name           Wildfire Communications
-
- vendor.id             pci 0x13f8
-+vendor.name           Ad Lib Multimedia Inc
-
- vendor.id             pci 0x13f9
-+vendor.name           NTT Advanced Technology Corp.
-
- vendor.id             pci 0x13fa
-+vendor.name           Pentland Systems Ltd
-
- vendor.id             pci 0x13fb
-+vendor.name           Aydin Corp
-
- vendor.id             pci 0x13fc
-+vendor.name           Computer Peripherals International
-
- vendor.id             pci 0x13fd
-+vendor.name           Micro Science Inc
-
- vendor.id             pci 0x13fe
-+vendor.name           Advantech Co. Ltd
-
- vendor.id             pci 0x13fe
-&device.id             pci 0x1240
-+device.name           PCI-1240 4-channel stepper motor controller card w.  Nova Electronics MCX314
-
- vendor.id             pci 0x13fe
-&device.id             pci 0x1600
-+device.name           PCI-1612 4-port RS-232/422/485 PCI Communication Card
-
- vendor.id             pci 0x13fe
-&device.id             pci 0x1752
-+device.name           PCI-1752
-
- vendor.id             pci 0x13fe
-&device.id             pci 0x1754
-+device.name           PCI-1754
-
- vendor.id             pci 0x13fe
-&device.id             pci 0x1756
-+device.name           PCI-1756
-
- vendor.id             pci 0x13ff
-+vendor.name           Silicon Spice Inc
-
- vendor.id             pci 0x1400
-+vendor.name           Artx Inc
-
- vendor.id             pci 0x1400
-&device.id             pci 0x1401
-+device.name           9432 TX
-
- vendor.id             pci 0x1401
-+vendor.name           CR-Systems A/S
-
- vendor.id             pci 0x1402
-+vendor.name           Meilhaus Electronic GmbH
-
- vendor.id             pci 0x1403
-+vendor.name           Ascor Inc
-
- vendor.id             pci 0x1404
-+vendor.name           Fundamental Software Inc
-
- vendor.id             pci 0x1405
-+vendor.name           Excalibur Systems Inc
-
- vendor.id             pci 0x1406
-+vendor.name           Oce' Printing Systems GmbH
-
- vendor.id             pci 0x1407
-+vendor.name           Lava Computer mfg Inc
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0100
-+device.name           Lava Dual Serial
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0101
-+device.name           Lava Quatro A
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0102
-+device.name           Lava Quatro B
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0120
-+device.name           Quattro-PCI A
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0121
-+device.name           Quattro-PCI B
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0180
-+device.name           Lava Octo A
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0181
-+device.name           Lava Octo B
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0200
-+device.name           Lava Port Plus
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0201
-+device.name           Lava Quad A
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0202
-+device.name           Lava Quad B
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0220
-+device.name           Lava Quattro PCI Ports A/B
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0221
-+device.name           Lava Quattro PCI Ports C/D
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0500
-+device.name           Lava Single Serial
-
- vendor.id             pci 0x1407
-&device.id             pci 0x0600
-+device.name           Lava Port 650
-
- vendor.id             pci 0x1407
-&device.id             pci 0x8000
-+device.name           Lava Parallel
-
- vendor.id             pci 0x1407
-&device.id             pci 0x8001
-+device.name           Dual parallel port controller A
-
- vendor.id             pci 0x1407
-&device.id             pci 0x8002
-+device.name           Lava Dual Parallel port A
-
- vendor.id             pci 0x1407
-&device.id             pci 0x8003
-+device.name           Lava Dual Parallel port B
-
- vendor.id             pci 0x1407
-&device.id             pci 0x8800
-+device.name           BOCA Research IOPPAR
-
- vendor.id             pci 0x1408
-+vendor.name           Aloka Co. Ltd
-
- vendor.id             pci 0x1409
-+vendor.name           Timedia Technology Co Ltd
-
- vendor.id             pci 0x1409
-&device.id             pci 0x7168
-+device.name           PCI2S550 (Dual 16550 UART)
-
- vendor.id             pci 0x140a
-+vendor.name           DSP Research Inc
-
- vendor.id             pci 0x140b
-+vendor.name           Ramix Inc
-
- vendor.id             pci 0x140c
-+vendor.name           Elmic Systems Inc
-
- vendor.id             pci 0x140d
-+vendor.name           Matsushita Electric Works Ltd
-
- vendor.id             pci 0x140e
-+vendor.name           Goepel Electronic GmbH
-
- vendor.id             pci 0x140f
-+vendor.name           Salient Systems Corp
-
- vendor.id             pci 0x1410
-+vendor.name           Midas lab Inc
-
- vendor.id             pci 0x1411
-+vendor.name           Ikos Systems Inc
-
- vendor.id             pci 0x1412
-+vendor.name           VIA Technologies Inc.
-
- vendor.id             pci 0x1412
-&device.id             pci 0x1712
-+device.name           ICE1712 [Envy24] PCI Multi-Channel I/O Controller
-
- vendor.id             pci 0x1412
-&device.id             pci 0x1712
-&subvendor.id          pci 0x1412
-&subdevice.id          pci 0xd638
-+subdevice.name                M-Audio Delta 410
-
- vendor.id             pci 0x1412
-&device.id             pci 0x1724
-+device.name           VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller
-
- vendor.id             pci 0x1413
-+vendor.name           Addonics
-
- vendor.id             pci 0x1414
-+vendor.name           Microsoft Corporation
-
- vendor.id             pci 0x1415
-+vendor.name           Oxford Semiconductor Ltd
-
- vendor.id             pci 0x1415
-&device.id             pci 0x8403
-+device.name           VScom 011H-EP1 1 port parallel adaptor
-
- vendor.id             pci 0x1415
-&device.id             pci 0x9501
-+device.name           OX16PCI954 (Quad 16950 UART) function 0
-
- vendor.id             pci 0x1415
-&device.id             pci 0x9501
-&subvendor.id          pci 0x131f
-&subdevice.id          pci 0x2050
-+subdevice.name                CyberPro (4-port)
-
- vendor.id             pci 0x1415
-&device.id             pci 0x9501
-&subvendor.id          pci 0x15ed
-&subdevice.id          pci 0x2000
-+subdevice.name                MCCR Serial p0-3 of 8
-
- vendor.id             pci 0x1415
-&device.id             pci 0x9501
-&subvendor.id          pci 0x15ed
-&subdevice.id          pci 0x2001
-+subdevice.name                MCCR Serial p0-3 of 16
-
- vendor.id             pci 0x1415
-&device.id             pci 0x950a
-+device.name           EXSYS EX-41092 Dual 16950 Serial adapter
-
- vendor.id             pci 0x1415
-&device.id             pci 0x950b
-+device.name           OXCB950 Cardbus 16950 UART
-
- vendor.id             pci 0x1415
-&device.id             pci 0x9511
-+device.name           OX16PCI954 (Quad 16950 UART) function 1
-
- vendor.id             pci 0x1415
-&device.id             pci 0x9511
-&subvendor.id          pci 0x15ed
-&subdevice.id          pci 0x2000
-+subdevice.name                MCCR Serial p4-7 of 8
-
- vendor.id             pci 0x1415
-&device.id             pci 0x9511
-&subvendor.id          pci 0x15ed
-&subdevice.id          pci 0x2001
-+subdevice.name                MCCR Serial p4-15 of 16
-
- vendor.id             pci 0x1415
-&device.id             pci 0x9521
-+device.name           OX16PCI952 (Dual 16950 UART)
-
- vendor.id             pci 0x1416
-+vendor.name           Multiwave Innovation pte Ltd
-
- vendor.id             pci 0x1417
-+vendor.name           Convergenet Technologies Inc
-
- vendor.id             pci 0x1418
-+vendor.name           Kyushu electronics systems Inc
-
- vendor.id             pci 0x1419
-+vendor.name           Excel Switching Corp
-
- vendor.id             pci 0x141a
-+vendor.name           Apache Micro Peripherals Inc
-
- vendor.id             pci 0x141b
-+vendor.name           Zoom Telephonics Inc
-
- vendor.id             pci 0x141d
-+vendor.name           Digitan Systems Inc
-
- vendor.id             pci 0x141e
-+vendor.name           Fanuc Ltd
-
- vendor.id             pci 0x141f
-+vendor.name           Visiontech Ltd
-
- vendor.id             pci 0x1420
-+vendor.name           Psion Dacom plc
-
- vendor.id             pci 0x1420
-&device.id             pci 0x8002
-+device.name           Gold Card NetGlobal 56k+10/100Mb CardBus (Ethernet part)
-
- vendor.id             pci 0x1420
-&device.id             pci 0x8003
-+device.name           Gold Card NetGlobal 56k+10/100Mb CardBus (Modem part)
-
- vendor.id             pci 0x1421
-+vendor.name           Ads Technologies Inc
-
- vendor.id             pci 0x1422
-+vendor.name           Ygrec Systems Co Ltd
-
- vendor.id             pci 0x1423
-+vendor.name           Custom Technology Corp.
-
- vendor.id             pci 0x1424
-+vendor.name           Videoserver Connections
-
- vendor.id             pci 0x1425
-+vendor.name           Chelsio Communications Inc
-
- vendor.id             pci 0x1426
-+vendor.name           Storage Technology Corp.
-
- vendor.id             pci 0x1427
-+vendor.name           Better On-Line Solutions
-
- vendor.id             pci 0x1428
-+vendor.name           Edec Co Ltd
-
- vendor.id             pci 0x1429
-+vendor.name           Unex Technology Corp.
-
- vendor.id             pci 0x142a
-+vendor.name           Kingmax Technology Inc
-
- vendor.id             pci 0x142b
-+vendor.name           Radiolan
-
- vendor.id             pci 0x142c
-+vendor.name           Minton Optic Industry Co Ltd
-
- vendor.id             pci 0x142d
-+vendor.name           Pix stream Inc
-
- vendor.id             pci 0x142e
-+vendor.name           Vitec Multimedia
-
- vendor.id             pci 0x142e
-&device.id             pci 0x4020
-+device.name           VM2-2 [Video Maker 2] MPEG1/2 Encoder
-
- vendor.id             pci 0x142f
-+vendor.name           Radicom Research Inc
-
- vendor.id             pci 0x1430
-+vendor.name           ITT Aerospace/Communications Division
-
- vendor.id             pci 0x1431
-+vendor.name           Gilat Satellite Networks
-
- vendor.id             pci 0x1432
-+vendor.name           Edimax Computer Co.
-
- vendor.id             pci 0x1432
-&device.id             pci 0x9130
-+device.name           RTL81xx Fast Ethernet
-
- vendor.id             pci 0x1433
-+vendor.name           Eltec Elektronik GmbH
-
- vendor.id             pci 0x1435
-+vendor.name           Real Time Devices US Inc.
-
- vendor.id             pci 0x1436
-+vendor.name           CIS Technology Inc
-
- vendor.id             pci 0x1437
-+vendor.name           Nissin Inc Co
-
- vendor.id             pci 0x1438
-+vendor.name           Atmel-dream
-
- vendor.id             pci 0x1439
-+vendor.name           Outsource Engineering & Mfg. Inc
-
- vendor.id             pci 0x143a
-+vendor.name           Stargate Solutions Inc
-
- vendor.id             pci 0x143b
-+vendor.name           Canon Research Center, America
-
- vendor.id             pci 0x143c
-+vendor.name           Amlogic Inc
-
- vendor.id             pci 0x143d
-+vendor.name           Tamarack Microelectronics Inc
-
- vendor.id             pci 0x143e
-+vendor.name           Jones Futurex Inc
-
- vendor.id             pci 0x143f
-+vendor.name           Lightwell Co Ltd - Zax Division
-
- vendor.id             pci 0x1440
-+vendor.name           ALGOL Corp.
-
- vendor.id             pci 0x1441
-+vendor.name           AGIE Ltd
-
- vendor.id             pci 0x1442
-+vendor.name           Phoenix Contact GmbH & Co.
-
- vendor.id             pci 0x1443
-+vendor.name           Unibrain S.A.
-
- vendor.id             pci 0x1444
-+vendor.name           TRW
-
- vendor.id             pci 0x1445
-+vendor.name           Logical DO Ltd
-
- vendor.id             pci 0x1446
-+vendor.name           Graphin Co Ltd
-
- vendor.id             pci 0x1447
-+vendor.name           AIM GmBH
-
- vendor.id             pci 0x1448
-+vendor.name           Alesis Studio Electronics
-
- vendor.id             pci 0x1449
-+vendor.name           TUT Systems Inc
-
- vendor.id             pci 0x144a
-+vendor.name           Adlink Technology
-
- vendor.id             pci 0x144a
-&device.id             pci 0x7296
-+device.name           PCI-7296
-
- vendor.id             pci 0x144a
-&device.id             pci 0x7432
-+device.name           PCI-7432
-
- vendor.id             pci 0x144a
-&device.id             pci 0x7433
-+device.name           PCI-7433
-
- vendor.id             pci 0x144a
-&device.id             pci 0x7434
-+device.name           PCI-7434
-
- vendor.id             pci 0x144a
-&device.id             pci 0x7841
-+device.name           PCI-7841
-
- vendor.id             pci 0x144a
-&device.id             pci 0x8133
-+device.name           PCI-8133
-
- vendor.id             pci 0x144a
-&device.id             pci 0x8164
-+device.name           PCI-8164
-
- vendor.id             pci 0x144a
-&device.id             pci 0x8554
-+device.name           PCI-8554
-
- vendor.id             pci 0x144a
-&device.id             pci 0x9111
-+device.name           PCI-9111
-
- vendor.id             pci 0x144a
-&device.id             pci 0x9113
-+device.name           PCI-9113
-
- vendor.id             pci 0x144a
-&device.id             pci 0x9114
-+device.name           PCI-9114
-
- vendor.id             pci 0x144b
-+vendor.name           Loronix Information Systems Inc
-
- vendor.id             pci 0x144c
-+vendor.name           Catalina Research Inc
-
- vendor.id             pci 0x144d
-+vendor.name           Samsung Electronics Co Ltd
-
- vendor.id             pci 0x144e
-+vendor.name           OLITEC
-
- vendor.id             pci 0x144f
-+vendor.name           Askey Computer Corp.
-
- vendor.id             pci 0x1450
-+vendor.name           Octave Communications Ind.
-
- vendor.id             pci 0x1451
-+vendor.name           SP3D Chip Design GmBH
-
- vendor.id             pci 0x1453
-+vendor.name           MYCOM Inc
-
- vendor.id             pci 0x1454
-+vendor.name           Altiga Networks
-
- vendor.id             pci 0x1455
-+vendor.name           Logic Plus Plus Inc
-
- vendor.id             pci 0x1456
-+vendor.name           Advanced Hardware Architectures
-
- vendor.id             pci 0x1457
-+vendor.name           Nuera Communications Inc
-
- vendor.id             pci 0x1458
-+vendor.name           Giga-byte Technology
-
- vendor.id             pci 0x1459
-+vendor.name           DOOIN Electronics
-
- vendor.id             pci 0x145a
-+vendor.name           Escalate Networks Inc
-
- vendor.id             pci 0x145b
-+vendor.name           PRAIM SRL
-
- vendor.id             pci 0x145c
-+vendor.name           Cryptek
-
- vendor.id             pci 0x145d
-+vendor.name           Gallant Computer Inc
-
- vendor.id             pci 0x145e
-+vendor.name           Aashima Technology B.V.
-
- vendor.id             pci 0x145f
-+vendor.name           Baldor Electric Company
-
- vendor.id             pci 0x145f
-&device.id             pci 0x0001
-+device.name           NextMove PCI
-
- vendor.id             pci 0x1460
-+vendor.name           DYNARC INC
-
- vendor.id             pci 0x1461
-+vendor.name           Avermedia Technologies Inc
-
- vendor.id             pci 0x1462
-+vendor.name           Micro-Star International Co., Ltd.
-
- vendor.id             pci 0x1462
-&device.id             pci 0x6825
-+device.name           PCI Card wireless 11g [PC54G]
-
- vendor.id             pci 0x1462
-&device.id             pci 0x8725
-+device.name           NVIDIA NV25 [GeForce4 Ti 4600] VGA Adapter
-
- vendor.id             pci 0x1462
-&device.id             pci 0x9000
-+device.name           NVIDIA NV28 [GeForce4 Ti 4800] VGA Adapter
-
- vendor.id             pci 0x1462
-&device.id             pci 0x9119
-+device.name           NVIDIA NV31 [GeForce FX 5600XT] VGA Adapter
-
- vendor.id             pci 0x1463
-+vendor.name           Fast Corporation
-
- vendor.id             pci 0x1464
-+vendor.name           Interactive Circuits & Systems Ltd
-
- vendor.id             pci 0x1465
-+vendor.name           GN NETTEST Telecom DIV.
-
- vendor.id             pci 0x1466
-+vendor.name           Designpro Inc.
-
- vendor.id             pci 0x1467
-+vendor.name           DIGICOM SPA
-
- vendor.id             pci 0x1468
-+vendor.name           AMBIT Microsystem Corp.
-
- vendor.id             pci 0x1469
-+vendor.name           Cleveland Motion Controls
-
- vendor.id             pci 0x146a
-+vendor.name           IFR
-
- vendor.id             pci 0x146b
-+vendor.name           Parascan Technologies Ltd
-
- vendor.id             pci 0x146c
-+vendor.name           Ruby Tech Corp.
-
- vendor.id             pci 0x146c
-&device.id             pci 0x1430
-+device.name           FE-1430TX Fast Ethernet PCI Adapter
-
- vendor.id             pci 0x146d
-+vendor.name           Tachyon, INC.
-
- vendor.id             pci 0x146e
-+vendor.name           Williams Electronics Games, Inc.
-
- vendor.id             pci 0x146f
-+vendor.name           Multi Dimensional Consulting Inc
-
- vendor.id             pci 0x1470
-+vendor.name           Bay Networks
-
- vendor.id             pci 0x1471
-+vendor.name           Integrated Telecom Express Inc
-
- vendor.id             pci 0x1472
-+vendor.name           DAIKIN Industries, Ltd
-
- vendor.id             pci 0x1473
-+vendor.name           ZAPEX Technologies Inc
-
- vendor.id             pci 0x1474
-+vendor.name           Doug Carson & Associates
-
- vendor.id             pci 0x1475
-+vendor.name           PICAZO Communications
-
- vendor.id             pci 0x1476
-+vendor.name           MORTARA Instrument Inc
-
- vendor.id             pci 0x1477
-+vendor.name           Net Insight
-
- vendor.id             pci 0x1478
-+vendor.name           DIATREND Corporation
-
- vendor.id             pci 0x1479
-+vendor.name           TORAY Industries Inc
-
- vendor.id             pci 0x147a
-+vendor.name           FORMOSA Industrial Computing
-
- vendor.id             pci 0x147b
-+vendor.name           ABIT Computer Corp.
-
- vendor.id             pci 0x147c
-+vendor.name           AWARE, Inc.
-
- vendor.id             pci 0x147d
-+vendor.name           Interworks Computer Products
-
- vendor.id             pci 0x147e
-+vendor.name           Matsushita Graphic Communication Systems, Inc.
-
- vendor.id             pci 0x147f
-+vendor.name           NIHON UNISYS, Ltd.
-
- vendor.id             pci 0x1480
-+vendor.name           SCII Telecom
-
- vendor.id             pci 0x1481
-+vendor.name           BIOPAC Systems Inc
-
- vendor.id             pci 0x1482
-+vendor.name           ISYTEC - Integrierte Systemtechnik GmBH
-
- vendor.id             pci 0x1483
-+vendor.name           LABWAY Corporation
-
- vendor.id             pci 0x1484
-+vendor.name           Logic Corporation
-
- vendor.id             pci 0x1485
-+vendor.name           ERMA - Electronic GmBH
-
- vendor.id             pci 0x1486
-+vendor.name           L3 Communications Telemetry & Instrumentation
-
- vendor.id             pci 0x1487
-+vendor.name           MARQUETTE Medical Systems
-
- vendor.id             pci 0x1488
-+vendor.name           KONTRON Electronik GmBH
-
- vendor.id             pci 0x1489
-+vendor.name           KYE Systems Corporation
-
- vendor.id             pci 0x148a
-+vendor.name           OPTO
-
- vendor.id             pci 0x148b
-+vendor.name           INNOMEDIALOGIC Inc.
-
- vendor.id             pci 0x148c
-+vendor.name           C.P. Technology Co. Ltd
-
- vendor.id             pci 0x148d
-+vendor.name           DIGICOM Systems, Inc.
-
- vendor.id             pci 0x148d
-&device.id             pci 0x1003
-+device.name           HCF 56k Data/Fax Modem
-
- vendor.id             pci 0x148e
-+vendor.name           OSI Plus Corporation
-
- vendor.id             pci 0x148f
-+vendor.name           Plant Equipment, Inc.
-
- vendor.id             pci 0x1490
-+vendor.name           Stone Microsystems PTY Ltd.
-
- vendor.id             pci 0x1491
-+vendor.name           ZEAL Corporation
-
- vendor.id             pci 0x1492
-+vendor.name           Time Logic Corporation
-
- vendor.id             pci 0x1493
-+vendor.name           MAKER Communications
-
- vendor.id             pci 0x1494
-+vendor.name           WINTOP Technology, Inc.
-
- vendor.id             pci 0x1495
-+vendor.name           TOKAI Communications Industry Co. Ltd
-
- vendor.id             pci 0x1496
-+vendor.name           JOYTECH Computer Co., Ltd.
-
- vendor.id             pci 0x1497
-+vendor.name           SMA Regelsysteme GmBH
-
- vendor.id             pci 0x1498
-+vendor.name           TEWS Datentechnik GmBH
-
- vendor.id             pci 0x1498
-&device.id             pci 0x30c8
-+device.name           TPCI200
-
- vendor.id             pci 0x1499
-+vendor.name           EMTEC CO., Ltd
-
- vendor.id             pci 0x149a
-+vendor.name           ANDOR Technology Ltd
-
- vendor.id             pci 0x149b
-+vendor.name           SEIKO Instruments Inc
-
- vendor.id             pci 0x149c
-+vendor.name           OVISLINK Corp.
-
- vendor.id             pci 0x149d
-+vendor.name           NEWTEK Inc
-
- vendor.id             pci 0x149d
-&device.id             pci 0x0001
-+device.name           Video Toaster for PC
-
- vendor.id             pci 0x149e
-+vendor.name           Mapletree Networks Inc.
-
- vendor.id             pci 0x149f
-+vendor.name           LECTRON Co Ltd
-
- vendor.id             pci 0x14a0
-+vendor.name           SOFTING GmBH
-
- vendor.id             pci 0x14a1
-+vendor.name           Systembase Co Ltd
-
- vendor.id             pci 0x14a2
-+vendor.name           Millennium Engineering Inc
-
- vendor.id             pci 0x14a3
-+vendor.name           Maverick Networks
-
- vendor.id             pci 0x14a4
-+vendor.name           GVC/BCM Advanced Research
-
- vendor.id             pci 0x14a5
-+vendor.name           XIONICS Document Technologies Inc
-
- vendor.id             pci 0x14a6
-+vendor.name           INOVA Computers GmBH & Co KG
-
- vendor.id             pci 0x14a7
-+vendor.name           MYTHOS Systems Inc
-
- vendor.id             pci 0x14a8
-+vendor.name           FEATRON Technologies Corporation
-
- vendor.id             pci 0x14a9
-+vendor.name           HIVERTEC Inc
-
- vendor.id             pci 0x14aa
-+vendor.name           Advanced MOS Technology Inc
-
- vendor.id             pci 0x14ab
-+vendor.name           Mentor Graphics Corp.
-
- vendor.id             pci 0x14ac
-+vendor.name           Novaweb Technologies Inc
-
- vendor.id             pci 0x14ad
-+vendor.name           Time Space Radio AB
-
- vendor.id             pci 0x14ae
-+vendor.name           CTI, Inc
-
- vendor.id             pci 0x14af
-+vendor.name           Guillemot Corporation
-
- vendor.id             pci 0x14af
-&device.id             pci 0x7102
-+device.name           3D Prophet II MX
-
- vendor.id             pci 0x14b0
-+vendor.name           BST Communication Technology Ltd
-
- vendor.id             pci 0x14b1
-+vendor.name           Nextcom K.K.
-
- vendor.id             pci 0x14b2
-+vendor.name           ENNOVATE Networks Inc
-
- vendor.id             pci 0x14b3
-+vendor.name           XPEED Inc
-
- vendor.id             pci 0x14b3
-&device.id             pci 0x0000
-+device.name           DSL NIC
-
- vendor.id             pci 0x14b4
-+vendor.name           PHILIPS Business Electronics B.V.
-
- vendor.id             pci 0x14b5
-+vendor.name           Creamware GmBH
-
- vendor.id             pci 0x14b5
-&device.id             pci 0x0200
-+device.name           Scope
-
- vendor.id             pci 0x14b5
-&device.id             pci 0x0300
-+device.name           Pulsar
-
- vendor.id             pci 0x14b5
-&device.id             pci 0x0400
-+device.name           PulsarSRB
-
- vendor.id             pci 0x14b5
-&device.id             pci 0x0600
-+device.name           Pulsar2
-
- vendor.id             pci 0x14b5
-&device.id             pci 0x0800
-+device.name           DSP-Board
-
- vendor.id             pci 0x14b5
-&device.id             pci 0x0900
-+device.name           DSP-Board
-
- vendor.id             pci 0x14b5
-&device.id             pci 0x0a00
-+device.name           DSP-Board
-
- vendor.id             pci 0x14b5
-&device.id             pci 0x0b00
-+device.name           DSP-Board
-
- vendor.id             pci 0x14b6
-+vendor.name           Quantum Data Corp.
-
- vendor.id             pci 0x14b7
-+vendor.name           PROXIM Inc
-
- vendor.id             pci 0x14b7
-&device.id             pci 0x0001
-+device.name           Symphony 4110
-
- vendor.id             pci 0x14b8
-+vendor.name           Techsoft Technology Co Ltd
-
- vendor.id             pci 0x14b9
-+vendor.name           AIRONET Wireless Communications
-
- vendor.id             pci 0x14b9
-&device.id             pci 0x0001
-+device.name           PC4800
-
- vendor.id             pci 0x14b9
-&device.id             pci 0x0340
-+device.name           PC4800
-
- vendor.id             pci 0x14b9
-&device.id             pci 0x0350
-+device.name           PC4800
-
- vendor.id             pci 0x14b9
-&device.id             pci 0x4500
-+device.name           PC4500
-
- vendor.id             pci 0x14b9
-&device.id             pci 0x4800
-+device.name           Cisco Aironet 340 802.11b Wireless LAN Adapter/Aironet PC4800
-
- vendor.id             pci 0x14b9
-&device.id             pci 0xa504
-+device.name           Cisco Aironet Wireless 802.11b
-
- vendor.id             pci 0x14b9
-&device.id             pci 0xa505
-+device.name           Cisco Aironet CB20a 802.11a Wireless LAN Adapter
-
- vendor.id             pci 0x14b9
-&device.id             pci 0xa506
-+device.name           Cisco Aironet Mini PCI b/g
-
- vendor.id             pci 0x14ba
-+vendor.name           INTERNIX Inc.
-
- vendor.id             pci 0x14bb
-+vendor.name           SEMTECH Corporation
-
- vendor.id             pci 0x14bc
-+vendor.name           Globespan Semiconductor Inc.
-
- vendor.id             pci 0x14bd
-+vendor.name           CARDIO Control N.V.
-
- vendor.id             pci 0x14be
-+vendor.name           L3 Communications
-
- vendor.id             pci 0x14bf
-+vendor.name           SPIDER Communications Inc.
-
- vendor.id             pci 0x14c0
-+vendor.name           COMPAL Electronics Inc
-
- vendor.id             pci 0x14c1
-+vendor.name           MYRICOM Inc.
-
- vendor.id             pci 0x14c1
-&device.id             pci 0x8043
-+device.name           Myrinet 2000 Scalable Cluster Interconnect
-
- vendor.id             pci 0x14c2
-+vendor.name           DTK Computer
-
- vendor.id             pci 0x14c3
-+vendor.name           MEDIATEK Corp.
-
- vendor.id             pci 0x14c4
-+vendor.name           IWASAKI Information Systems Co Ltd
-
- vendor.id             pci 0x14c5
-+vendor.name           Automation Products AB
-
- vendor.id             pci 0x14c6
-+vendor.name           Data Race Inc
-
- vendor.id             pci 0x14c7
-+vendor.name           Modular Technology Holdings Ltd
-
- vendor.id             pci 0x14c8
-+vendor.name           Turbocomm Tech. Inc.
-
- vendor.id             pci 0x14c9
-+vendor.name           ODIN Telesystems Inc
-
- vendor.id             pci 0x14ca
-+vendor.name           PE Logic Corp.
-
- vendor.id             pci 0x14cb
-+vendor.name           Billionton Systems Inc
-
- vendor.id             pci 0x14cc
-+vendor.name           NAKAYO Telecommunications Inc
-
- vendor.id             pci 0x14cd
-+vendor.name           Universal Scientific Ind.
-
- vendor.id             pci 0x14ce
-+vendor.name           Whistle Communications
-
- vendor.id             pci 0x14cf
-+vendor.name           TEK Microsystems Inc.
-
- vendor.id             pci 0x14d0
-+vendor.name           Ericsson Axe R & D
-
- vendor.id             pci 0x14d1
-+vendor.name           Computer Hi-Tech Co Ltd
-
- vendor.id             pci 0x14d2
-+vendor.name           Titan Electronics Inc
-
- vendor.id             pci 0x14d2
-&device.id             pci 0x8001
-+device.name           VScom 010L 1 port parallel adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0x8002
-+device.name           VScom 020L 2 port parallel adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0x8010
-+device.name           VScom 100L 1 port serial adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0x8011
-+device.name           VScom 110L 1 port serial and 1 port parallel adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0x8020
-+device.name           VScom 200L 1 port serial adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0x8021
-+device.name           VScom 210L 2 port serial and 1 port parallel adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0x8040
-+device.name           VScom 400L 4 port serial adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0x8080
-+device.name           VScom 800L 8 port serial adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0xa000
-+device.name           VScom 010H 1 port parallel adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0xa001
-+device.name           VScom 100H 1 port serial adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0xa003
-+device.name           VScom 400H 4 port serial adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0xa004
-+device.name           VScom 400HF1 4 port serial adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0xa005
-+device.name           VScom 200H 2 port serial adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0xe001
-+device.name           VScom 010HV2 1 port parallel adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0xe010
-+device.name           VScom 100HV2 1 port serial adaptor
-
- vendor.id             pci 0x14d2
-&device.id             pci 0xe020
-+device.name           VScom 200HV2 2 port serial adaptor
-
- vendor.id             pci 0x14d3
-+vendor.name           CIRTECH (UK) Ltd
-
- vendor.id             pci 0x14d4
-+vendor.name           Panacom Technology Corp
-
- vendor.id             pci 0x14d5
-+vendor.name           Nitsuko Corporation
-
- vendor.id             pci 0x14d6
-+vendor.name           Accusys Inc
-
- vendor.id             pci 0x14d7
-+vendor.name           Hirakawa Hewtech Corp
-
- vendor.id             pci 0x14d8
-+vendor.name           HOPF Elektronik GmBH
-
- vendor.id             pci 0x14d9
-+vendor.name           Alliance Semiconductor Corporation
-
- vendor.id             pci 0x14d9
-&device.id             pci 0x0010
-+device.name           AP1011/SP1011 HyperTransport-PCI Bridge [Sturgeon]
-
- vendor.id             pci 0x14d9
-&device.id             pci 0x9000
-+device.name           AS90L10204/10208 HyperTransport to PCI-X Bridge
-
- vendor.id             pci 0x14da
-+vendor.name           National Aerospace Laboratories
-
- vendor.id             pci 0x14db
-+vendor.name           AFAVLAB Technology Inc
-
- vendor.id             pci 0x14db
-&device.id             pci 0x2120
-+device.name           TK9902
-
- vendor.id             pci 0x14dc
-+vendor.name           Amplicon Liveline Ltd
-
- vendor.id             pci 0x14dc
-&device.id             pci 0x0000
-+device.name           PCI230
-
- vendor.id             pci 0x14dc
-&device.id             pci 0x0001
-+device.name           PCI242
-
- vendor.id             pci 0x14dc
-&device.id             pci 0x0002
-+device.name           PCI244
-
- vendor.id             pci 0x14dc
-&device.id             pci 0x0003
-+device.name           PCI247
-
- vendor.id             pci 0x14dc
-&device.id             pci 0x0004
-+device.name           PCI248
-
- vendor.id             pci 0x14dc
-&device.id             pci 0x0005
-+device.name           PCI249
-
- vendor.id             pci 0x14dc
-&device.id             pci 0x0006
-+device.name           PCI260
-
- vendor.id             pci 0x14dc
-&device.id             pci 0x0007
-+device.name           PCI224
-
- vendor.id             pci 0x14dc
-&device.id             pci 0x0008
-+device.name           PCI234
-
- vendor.id             pci 0x14dc
-&device.id             pci 0x0009
-+device.name           PCI236
-
- vendor.id             pci 0x14dc
-&device.id             pci 0x000a
-+device.name           PCI272
-
- vendor.id             pci 0x14dc
-&device.id             pci 0x000b
-+device.name           PCI215
-
- vendor.id             pci 0x14dd
-+vendor.name           Boulder Design Labs Inc
-
- vendor.id             pci 0x14de
-+vendor.name           Applied Integration Corporation
-
- vendor.id             pci 0x14df
-+vendor.name           ASIC Communications Corp
-
- vendor.id             pci 0x14e1
-+vendor.name           INVERTEX
-
- vendor.id             pci 0x14e2
-+vendor.name           INFOLIBRIA
-
- vendor.id             pci 0x14e3
-+vendor.name           AMTELCO
-
- vendor.id             pci 0x14e4
-+vendor.name           Broadcom Corporation
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x0800
-+device.name           Sentry5 Chipcommon I/O Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x0804
-+device.name           Sentry5 PCI Bridge
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x0805
-+device.name           Sentry5 MIPS32 CPU
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x0806
-+device.name           Sentry5 Ethernet Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x080b
-+device.name           Sentry5 Crypto Accelerator
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x080f
-+device.name           Sentry5 DDR/SDR RAM Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x0811
-+device.name           Sentry5 External Interface Core
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x0816
-+device.name           BCM3302 Sentry5 MIPS32 CPU
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-+device.name           NetXtreme BCM5700 Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0277
-+subdevice.name                Broadcom Vigil B5700 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00d1
-+subdevice.name                Broadcom BCM5700
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0106
-+subdevice.name                Broadcom BCM5700
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0109
-+subdevice.name                Broadcom BCM5700 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x010a
-+subdevice.name                Broadcom BCM5700 1000BaseTX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1000
-+subdevice.name                3C996-T 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1001
-+subdevice.name                3C996B-T 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1002
-+subdevice.name                3C996C-T 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1003
-+subdevice.name                3C997-T 1000Base-T Dual Port
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1004
-+subdevice.name                3C996-SX 1000Base-SX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1005
-+subdevice.name                3C997-SX 1000Base-SX Dual Port
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1008
-+subdevice.name                3C942 Gigabit LOM (31X31)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x0002
-+subdevice.name                NetXtreme 1000Base-SX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x0003
-+subdevice.name                NetXtreme 1000Base-SX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x0004
-+subdevice.name                NetXtreme 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x1028
-+subdevice.name                NetXtreme 1000BaseTX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x1644
-+subdevice.name                BCM5700 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-+device.name           NetXtreme BCM5701 Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x007c
-+subdevice.name                Compaq NC7770 Gigabit Server Adapter
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x007d
-+subdevice.name                Compaq NC6770 Gigabit Server Adapter
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0085
-+subdevice.name                Compaq NC7780 Gigabit Server Adapter
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0099
-+subdevice.name                NC7780 Gigabit Server Adapter (embedded, WOL)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x009a
-+subdevice.name                NC7770 Gigabit Server Adapter (PCI-X, 10/100/1000-T)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00c1
-+subdevice.name                NC6770 Gigabit Server Adapter (PCI-X, 1000-SX)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0121
-+subdevice.name                Broadcom BCM5701 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x128a
-+subdevice.name                HP 1000Base-T (PCI) [A7061A]
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x128b
-+subdevice.name                HP 1000Base-SX (PCI) [A7073A]
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12a4
-+subdevice.name                HP Core Lan 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12c1
-+subdevice.name                HP IOX Core Lan 1000Base-T [A7109AX]
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x10a9
-&subdevice.id          pci 0x8010
-+subdevice.name                SGI IO9/IO10 Gigabit Ethernet (Copper)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x10a9
-&subdevice.id          pci 0x8011
-+subdevice.name                SGI Gigabit Ethernet (Copper)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x10a9
-&subdevice.id          pci 0x8012
-+subdevice.name                SGI Gigabit Ethernet (Fiber)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1004
-+subdevice.name                3C996-SX 1000Base-SX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1006
-+subdevice.name                3C996B-T 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1007
-+subdevice.name                3C1000-T 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1008
-+subdevice.name                3C940-BR01 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x0001
-+subdevice.name                BCM5701 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x0005
-+subdevice.name                BCM5701 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x0006
-+subdevice.name                BCM5701 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x0007
-+subdevice.name                BCM5701 1000Base-SX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x0008
-+subdevice.name                BCM5701 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1645
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x8008
-+subdevice.name                BCM5701 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1646
-+device.name           NetXtreme BCM5702 Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1646
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00bb
-+subdevice.name                Compaq NC7760 Gigabit Server Adapter
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1646
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0126
-+subdevice.name                Broadcom BCM5702 1000BaseTX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1646
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x8009
-+subdevice.name                BCM5702 1000BaseTX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1647
-+device.name           NetXtreme BCM5703 Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1647
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0099
-+subdevice.name                Compaq NC7780 Gigabit Server Adapter
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1647
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x009a
-+subdevice.name                Compaq NC7770 Gigabit Server Adapter
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1647
-&subvendor.id          pci 0x10a9
-&subdevice.id          pci 0x8010
-+subdevice.name                SGI IO9/IO10 Gigabit Ethernet (Copper)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1647
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x0009
-+subdevice.name                BCM5703 1000BaseTX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1647
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x000a
-+subdevice.name                BCM5703 1000BaseSX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1647
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x000b
-+subdevice.name                BCM5703 1000BaseTX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1647
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x8009
-+subdevice.name                BCM5703 1000BaseTX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1647
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x800a
-+subdevice.name                BCM5703 1000BaseTX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1648
-+device.name           NetXtreme BCM5704 Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1648
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00cf
-+subdevice.name                NC7772 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1648
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00d0
-+subdevice.name                NC7782 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1648
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00d1
-+subdevice.name                NC7783 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1648
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x2000
-+subdevice.name                3C998-T Dual Port 10/100/1000 PCI-X
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1648
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x3000
-+subdevice.name                3C999-T Quad Port 10/100/1000 PCI-X
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1648
-&subvendor.id          pci 0x1166
-&subdevice.id          pci 0x1648
-+subdevice.name                NetXtreme CIOB-E 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x164a
-+device.name           NetXtreme II BCM5706 Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x164d
-+device.name           NetXtreme BCM5702FE Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1653
-+device.name           NetXtreme BCM5705 Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1653
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00e3
-+subdevice.name                NC7761 Gigabit Server Adapter
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1654
-+device.name           NetXtreme BCM5705_2 Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1654
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00e3
-+subdevice.name                NC7761 Gigabit Server Adapter
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1654
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x3100
-+subdevice.name                NC1020 HP ProLiant Gigabit Server Adapter 32 PCI
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1659
-+device.name           NetXtreme BCM5721 Gigabit Ethernet PCI Express
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x165d
-+device.name           NetXtreme BCM5705M Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x165e
-+device.name           NetXtreme BCM5705M_2 Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x165e
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0890
-+subdevice.name                NC6000 laptop
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x166e
-+device.name           570x 10/100 Integrated Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1677
-+device.name           NetXtreme BCM5751 Gigabit Ethernet PCI Express
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1677
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0179
-+subdevice.name                Optiplex GX280
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x167d
-+device.name           NetXtreme BCM5751M Gigabit Ethernet PCI Express
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x167e
-+device.name           NetXtreme BCM5751F Fast Ethernet PCI Express
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1696
-+device.name           NetXtreme BCM5782 Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1696
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12bc
-+subdevice.name                HP d530 CMT (DG746A)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x1696
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x000d
-+subdevice.name                NetXtreme BCM5782 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x169c
-+device.name           NetXtreme BCM5788 Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x169d
-+device.name           NetLink BCM5789 Gigabit Ethernet PCI Express
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a6
-+device.name           NetXtreme BCM5702X Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a6
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00bb
-+subdevice.name                NC7760 Gigabit Server Adapter (PCI-X, 10/100/1000-T)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a6
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0126
-+subdevice.name                BCM5702 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a6
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x000c
-+subdevice.name                BCM5702 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a6
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x8009
-+subdevice.name                BCM5702 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a7
-+device.name           NetXtreme BCM5703X Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a7
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00ca
-+subdevice.name                NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a7
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00cb
-+subdevice.name                NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a7
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x0009
-+subdevice.name                NetXtreme BCM5703 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a7
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x000a
-+subdevice.name                NetXtreme BCM5703 1000Base-SX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a7
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x000b
-+subdevice.name                NetXtreme BCM5703 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a7
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x800a
-+subdevice.name                NetXtreme BCM5703 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a8
-+device.name           NetXtreme BCM5704S Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16a8
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x2001
-+subdevice.name                3C998-SX Dual Port 1000-SX PCI-X
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16aa
-+device.name           NetXtreme II BCM5706S Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16c6
-+device.name           NetXtreme BCM5702A3 Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16c6
-&subvendor.id          pci 0x10b7
-&subdevice.id          pci 0x1100
-+subdevice.name                3C1000B-T 10/100/1000 PCI
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16c6
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x000c
-+subdevice.name                BCM5702 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16c6
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x8009
-+subdevice.name                BCM5702 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16c7
-+device.name           NetXtreme BCM5703 Gigabit Ethernet
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16c7
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00ca
-+subdevice.name                NC7771 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16c7
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00cb
-+subdevice.name                NC7781 Gigabit Server Adapter (PCI-X, 10,100,1000-T)
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16c7
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12c3
-+subdevice.name                HP Combo FC/GigE-SX [A9782A]
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16c7
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12ca
-+subdevice.name                HP Combo FC/GigE-T [A9784A]
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16c7
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x0009
-+subdevice.name                NetXtreme BCM5703 1000Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16c7
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x000a
-+subdevice.name                NetXtreme BCM5703 1000Base-SX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16dd
-+device.name           NetLink BCM5781 Gigabit Ethernet PCI Express
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16f7
-+device.name           NetXtreme BCM5753 Gigabit Ethernet PCI Express
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16fd
-+device.name           NetXtreme BCM5753M Gigabit Ethernet PCI Express
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x16fe
-+device.name           NetXtreme BCM5753F Fast Ethernet PCI Express
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x170c
-+device.name           BCM4401-B0 100Base-TX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x170d
-+device.name           NetXtreme BCM5901 100Base-TX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x170d
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0545
-+subdevice.name                ThinkPad R40e (2684-HVG) builtin ethernet controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x170e
-+device.name           NetXtreme BCM5901 100Base-TX
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x3352
-+device.name           BCM3352
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x3360
-+device.name           BCM3360
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4210
-+device.name           BCM4210 iLine10 HomePNA 2.0
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4211
-+device.name           BCM4211 iLine10 HomePNA 2.0 + V.90 56k modem
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4212
-+device.name           BCM4212 v.90 56k modem
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4301
-+device.name           BCM4303 802.11b Wireless LAN Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4301
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0407
-+subdevice.name                TrueMobile 1180 Onboard WLAN
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4301
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x0120
-+subdevice.name                WL-103b Wireless LAN PC Card
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4305
-+device.name           BCM4307 V.90 56k Modem
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4306
-+device.name           BCM4307 Ethernet Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4307
-+device.name           BCM4307 802.11b Wireless LAN Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4310
-+device.name           BCM4310 Chipcommon I/OController
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4312
-+device.name           BCM4310 UART
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4313
-+device.name           BCM4310 Ethernet Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4315
-+device.name           BCM4310 USB Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4320
-+device.name           BCM4306 802.11b/g Wireless LAN Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0001
-+subdevice.name                TrueMobile 1300 WLAN Mini-PCI Card
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0003
-+subdevice.name                Wireless 1350 WLAN Mini-PCI Card
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x100f
-+subdevice.name                WL-100G
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4320
-&subvendor.id          pci 0x14e4
-&subdevice.id          pci 0x4320
-+subdevice.name                Linksys WMP54G PCI
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1737
-&subdevice.id          pci 0x4320
-+subdevice.name                WPC54G
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4320
-&subvendor.id          pci 0x1799
-&subdevice.id          pci 0x7010
-+subdevice.name                Belkin F5D7010 54g Wireless Network card
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4321
-+device.name           BCM4306 802.11a Wireless LAN Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4322
-+device.name           BCM4306 UART
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4324
-+device.name           BCM4309 802.11a/b/g
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4324
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0001
-+subdevice.name                Truemobile 1400
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4324
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0003
-+subdevice.name                Truemobile 1450 MiniPCI
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4325
-+device.name           BCM43xG 802.11b/g
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4325
-&subvendor.id          pci 0x1414
-&subdevice.id          pci 0x0003
-+subdevice.name                Wireless Notebook Adapter MN-720
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4325
-&subvendor.id          pci 0x1414
-&subdevice.id          pci 0x0004
-+subdevice.name                Wireless PCI Adapter MN-730
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4326
-+device.name           BCM4307 Chipcommon I/O Controller?
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4401
-+device.name           BCM4401 100Base-T
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4401
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a8
-+subdevice.name                A7V8X motherboard
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4402
-+device.name           BCM4402 Integrated 10/100BaseT
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4403
-+device.name           BCM4402 V.90 56k Modem
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4410
-+device.name           BCM4413 iLine32 HomePNA 2.0
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4411
-+device.name           BCM4413 V.90 56k modem
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4412
-+device.name           BCM4412 10/100BaseT
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4430
-+device.name           BCM44xx CardBus iLine32 HomePNA 2.0
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4432
-+device.name           BCM4432 CardBus 10/100BaseT
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4610
-+device.name           BCM4610 Sentry5 PCI to SB Bridge
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4611
-+device.name           BCM4610 Sentry5 iLine32 HomePNA 1.0
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4612
-+device.name           BCM4610 Sentry5 V.90 56k Modem
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4613
-+device.name           BCM4610 Sentry5 Ethernet Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4614
-+device.name           BCM4610 Sentry5 External Interface
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4615
-+device.name           BCM4610 Sentry5 USB Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4704
-+device.name           BCM4704 PCI to SB Bridge
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4705
-+device.name           BCM4704 Sentry5 802.11b Wireless LAN Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4706
-+device.name           BCM4704 Sentry5 Ethernet Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4707
-+device.name           BCM4704 Sentry5 USB Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4708
-+device.name           BCM4704 Crypto Accelerator
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4710
-+device.name           BCM4710 Sentry5 PCI to SB Bridge
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4711
-+device.name           BCM47xx Sentry5 iLine32 HomePNA 2.0
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4712
-+device.name           BCM47xx V.92 56k modem
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4713
-+device.name           Sentry5 Ethernet Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4714
-+device.name           BCM47xx Sentry5 External Interface
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4715
-+device.name           Sentry5 USB Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4716
-+device.name           BCM47xx Sentry5 USB Host Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4717
-+device.name           BCM47xx Sentry5 USB Device Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4718
-+device.name           Sentry5 Crypto Accelerator
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x4720
-+device.name           BCM4712 MIPS CPU
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5365
-+device.name           BCM5365P Sentry5 Host Bridge
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5600
-+device.name           BCM5600 StrataSwitch 24+2 Ethernet Switch Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5605
-+device.name           BCM5605 StrataSwitch 24+2 Ethernet Switch Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5615
-+device.name           BCM5615 StrataSwitch 24+2 Ethernet Switch Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5625
-+device.name           BCM5625 StrataSwitch 24+2 Ethernet Switch Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5645
-+device.name           BCM5645 StrataSwitch 24+2 Ethernet Switch Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5670
-+device.name           BCM5670 8-Port 10GE Ethernet Switch Fabric
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5680
-+device.name           BCM5680 G-Switch 8 Port Gigabit Ethernet Switch Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5690
-+device.name           BCM5690 12-port Multi-Layer Gigabit Ethernet Switch
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5691
-+device.name           BCM5691 GE/10GE 8+2 Gigabit Ethernet Switch Controller
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5820
-+device.name           BCM5820 Crypto Accelerator
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5821
-+device.name           BCM5821 Crypto Accelerator
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5822
-+device.name           BCM5822 Crypto Accelerator
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5823
-+device.name           BCM5823 Crypto Accelerator
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5824
-+device.name           BCM5824 Crypto Accelerator
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5840
-+device.name           BCM5840 Crypto Accelerator
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5841
-+device.name           BCM5841 Crypto Accelerator
-
- vendor.id             pci 0x14e4
-&device.id             pci 0x5850
-+device.name           BCM5850 Crypto Accelerator
-
- vendor.id             pci 0x14e5
-+vendor.name           Pixelfusion Ltd
-
- vendor.id             pci 0x14e6
-+vendor.name           SHINING Technology Inc
-
- vendor.id             pci 0x14e7
-+vendor.name           3CX
-
- vendor.id             pci 0x14e8
-+vendor.name           RAYCER Inc
-
- vendor.id             pci 0x14e9
-+vendor.name           GARNETS System CO Ltd
-
- vendor.id             pci 0x14ea
-+vendor.name           Planex Communications, Inc
-
- vendor.id             pci 0x14ea
-&device.id             pci 0xab06
-+device.name           FNW-3603-TX CardBus Fast Ethernet
-
- vendor.id             pci 0x14ea
-&device.id             pci 0xab07
-+device.name           RTL81xx RealTek Ethernet
-
- vendor.id             pci 0x14eb
-+vendor.name           SEIKO EPSON Corp
-
- vendor.id             pci 0x14ec
-+vendor.name           ACQIRIS
-
- vendor.id             pci 0x14ed
-+vendor.name           DATAKINETICS Ltd
-
- vendor.id             pci 0x14ee
-+vendor.name           MASPRO KENKOH Corp
-
- vendor.id             pci 0x14ef
-+vendor.name           CARRY Computer ENG. CO Ltd
-
- vendor.id             pci 0x14f0
-+vendor.name           CANON RESEACH CENTRE FRANCE
-
- vendor.id             pci 0x14f1
-+vendor.name           Conexant
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1002
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1003
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1004
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1005
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1006
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1022
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1023
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1024
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1025
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1026
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1032
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-+device.name           HCF 56k Data/Fax Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8077
-+subdevice.name                NEC
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4027
-+subdevice.name                Dell Zeus - MDP3880-W(B) Data Fax Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4030
-+subdevice.name                Dell Mercury - MDP3880-U(B) Data Fax Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4034
-+subdevice.name                Dell Thor - MDP3880-W(U) Data Fax Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x020d
-+subdevice.name                Dell Copper
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x020e
-+subdevice.name                Dell Silver
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0261
-+subdevice.name                IBM
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0290
-+subdevice.name                Compaq Goldwing
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x02a0
-+subdevice.name                IBM
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x02b0
-+subdevice.name                IBM
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x02c0
-+subdevice.name                Compaq Scooter
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x02d0
-+subdevice.name                IBM
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x1500
-+subdevice.name                IBM P85-DF (1)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x1501
-+subdevice.name                IBM P85-DF (2)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x150a
-+subdevice.name                IBM P85-DF (3)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x150b
-+subdevice.name                IBM P85-DF Low Profile (1)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1033
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x1510
-+subdevice.name                IBM P85-DF Low Profile (2)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1034
-+device.name           HCF 56k Data/Fax/Voice Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1035
-+device.name           HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1035
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1098
-+subdevice.name                Fujitsu P85-DFSV
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1036
-+device.name           HCF 56k Data/Fax/Voice/Spkp Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1036
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8067
-+subdevice.name                HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1036
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4029
-+subdevice.name                MDP3880SP-W
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1036
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4031
-+subdevice.name                MDP3880SP-U
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1036
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0209
-+subdevice.name                Dell Titanium
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1036
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x020a
-+subdevice.name                Dell Graphite
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1036
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0260
-+subdevice.name                Gateway Red Owl
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1036
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0270
-+subdevice.name                Gateway White Horse
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1052
-+device.name           HCF 56k Data/Fax Modem (Worldwide)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1053
-+device.name           HCF 56k Data/Fax Modem (Worldwide)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1054
-+device.name           HCF 56k Data/Fax/Voice Modem (Worldwide)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1055
-+device.name           HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (Worldwide)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1056
-+device.name           HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1057
-+device.name           HCF 56k Data/Fax/Voice/Spkp Modem (Worldwide)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1059
-+device.name           HCF 56k Data/Fax/Voice Modem (Worldwide)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1063
-+device.name           HCF 56k Data/Fax Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1064
-+device.name           HCF 56k Data/Fax/Voice Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1065
-+device.name           HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1066
-+device.name           HCF 56k Data/Fax/Voice/Spkp Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1066
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4033
-+subdevice.name                Dell Athena - MDP3900V-U
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1433
-+device.name           HCF 56k Data/Fax Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1434
-+device.name           HCF 56k Data/Fax/Voice Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1435
-+device.name           HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1436
-+device.name           HCF 56k Data/Fax Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1453
-+device.name           HCF 56k Data/Fax Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1453
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0240
-+subdevice.name                IBM
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1453
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x0250
-+subdevice.name                IBM
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1453
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x1502
-+subdevice.name                IBM P95-DF (1)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1453
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x1503
-+subdevice.name                IBM P95-DF (2)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1454
-+device.name           HCF 56k Data/Fax/Voice Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1455
-+device.name           HCF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1456
-+device.name           HCF 56k Data/Fax/Voice/Spkp Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1456
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4035
-+subdevice.name                Dell Europa - MDP3900V-W
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1456
-&subvendor.id          pci 0x122d
-&subdevice.id          pci 0x4302
-+subdevice.name                Dell MP3930V-W(C) MiniPCI
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1610
-+device.name           ADSL AccessRunner PCI Arbitration Device
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1611
-+device.name           AccessRunner PCI ADSL Interface Device
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1620
-+device.name           ADSL AccessRunner V2 PCI Arbitration Device
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1621
-+device.name           AccessRunner V2 PCI ADSL Interface Device
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1622
-+device.name           AccessRunner V2 PCI ADSL Yukon WAN Adapter
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1803
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1803
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0023
-+subdevice.name                623-LAN Grizzly
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1803
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0043
-+subdevice.name                623-LAN Yogi
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1815
-+device.name           HCF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1815
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0022
-+subdevice.name                Grizzly
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x1815
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0042
-+subdevice.name                Yogi
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2003
-+device.name           HSF 56k Data/Fax Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2004
-+device.name           HSF 56k Data/Fax/Voice Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2005
-+device.name           HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2006
-+device.name           HSF 56k Data/Fax/Voice/Spkp Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2013
-+device.name           HSF 56k Data/Fax Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2013
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb195
-+subdevice.name                Bear
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2013
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb196
-+subdevice.name                Seminole 1
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2013
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb1be
-+subdevice.name                Seminole 2
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2013
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x8013
-+subdevice.name                Acer
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2013
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x809d
-+subdevice.name                NEC
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2013
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x80bc
-+subdevice.name                NEC
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2013
-&subvendor.id          pci 0x155d
-&subdevice.id          pci 0x6793
-+subdevice.name                HP
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2013
-&subvendor.id          pci 0x155d
-&subdevice.id          pci 0x8850
-+subdevice.name                E Machines
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2014
-+device.name           HSF 56k Data/Fax/Voice Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2015
-+device.name           HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2016
-+device.name           HSF 56k Data/Fax/Voice/Spkp Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2043
-+device.name           HSF 56k Data/Fax Modem (WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2044
-+device.name           HSF 56k Data/Fax/Voice Modem (WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2045
-+device.name           HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2046
-+device.name           HSF 56k Data/Fax/Voice/Spkp Modem (WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2063
-+device.name           HSF 56k Data/Fax Modem (SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2064
-+device.name           HSF 56k Data/Fax/Voice Modem (SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2065
-+device.name           HSF 56k Data/Fax/Voice/Spkp (w/Handset) Modem (SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2066
-+device.name           HSF 56k Data/Fax/Voice/Spkp Modem (SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2093
-+device.name           HSF 56k Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2093
-&subvendor.id          pci 0x155d
-&subdevice.id          pci 0x2f07
-+subdevice.name                Legend
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2143
-+device.name           HSF 56k Data/Fax/Cell Modem (Mob WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2144
-+device.name           HSF 56k Data/Fax/Voice/Cell Modem (Mob WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2145
-+device.name           HSF 56k Data/Fax/Voice/Spkp (w/HS)/Cell Modem (Mob WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2146
-+device.name           HSF 56k Data/Fax/Voice/Spkp/Cell Modem (Mob WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2163
-+device.name           HSF 56k Data/Fax/Cell Modem (Mob SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2164
-+device.name           HSF 56k Data/Fax/Voice/Cell Modem (Mob SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2165
-+device.name           HSF 56k Data/Fax/Voice/Spkp (w/HS)/Cell Modem (Mob SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2166
-+device.name           HSF 56k Data/Fax/Voice/Spkp/Cell Modem (Mob SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2343
-+device.name           HSF 56k Data/Fax CardBus Modem (Mob WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2344
-+device.name           HSF 56k Data/Fax/Voice CardBus Modem (Mob WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2345
-+device.name           HSF 56k Data/Fax/Voice/Spkp (w/HS) CardBus Modem (Mob WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2346
-+device.name           HSF 56k Data/Fax/Voice/Spkp CardBus Modem (Mob WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2363
-+device.name           HSF 56k Data/Fax CardBus Modem (Mob SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2364
-+device.name           HSF 56k Data/Fax/Voice CardBus Modem (Mob SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2365
-+device.name           HSF 56k Data/Fax/Voice/Spkp (w/HS) CardBus Modem (Mob SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2366
-+device.name           HSF 56k Data/Fax/Voice/Spkp CardBus Modem (Mob SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2443
-+device.name           HSF 56k Data/Fax Modem (Mob WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2443
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8075
-+subdevice.name                Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2443
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8083
-+subdevice.name                Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2443
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x8097
-+subdevice.name                Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2444
-+device.name           HSF 56k Data/Fax/Voice Modem (Mob WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2445
-+device.name           HSF 56k Data/Fax/Voice/Spkp (w/HS) Modem (Mob WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2446
-+device.name           HSF 56k Data/Fax/Voice/Spkp Modem (Mob WorldW SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2463
-+device.name           HSF 56k Data/Fax Modem (Mob SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2464
-+device.name           HSF 56k Data/Fax/Voice Modem (Mob SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2465
-+device.name           HSF 56k Data/Fax/Voice/Spkp (w/HS) Modem (Mob SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2466
-+device.name           HSF 56k Data/Fax/Voice/Spkp Modem (Mob SmartDAA)
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2f00
-+device.name           HSF 56k HSFi Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2f00
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x8d84
-+subdevice.name                IBM HSFi V.90
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2f00
-&subvendor.id          pci 0x13e0
-&subdevice.id          pci 0x8d85
-+subdevice.name                Compaq Stinger
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2f00
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x2004
-+subdevice.name                Dynalink 56PMi
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2f02
-+device.name           HSF 56k HSFi Data/Fax
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x2f11
-+device.name           HSF 56k HSFi Modem
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x8234
-+device.name           RS8234 ATM SAR Controller [ServiceSAR Plus]
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x8800
-+device.name           Winfast TV2000 XP
-
- vendor.id             pci 0x14f2
-+vendor.name           MOBILITY Electronics
-
- vendor.id             pci 0x14f2
-&device.id             pci 0x0120
-+device.name           EV1000 bridge
-
- vendor.id             pci 0x14f2
-&device.id             pci 0x0121
-+device.name           EV1000 Parallel port
-
- vendor.id             pci 0x14f2
-&device.id             pci 0x0122
-+device.name           EV1000 Serial port
-
- vendor.id             pci 0x14f2
-&device.id             pci 0x0123
-+device.name           EV1000 Keyboard controller
-
- vendor.id             pci 0x14f2
-&device.id             pci 0x0124
-+device.name           EV1000 Mouse controller
-
- vendor.id             pci 0x14f3
-+vendor.name           BroadLogic
-
- vendor.id             pci 0x14f3
-&device.id             pci 0x2030
-+device.name           2030 DVB-S Satellite Reciever
-
- vendor.id             pci 0x14f3
-&device.id             pci 0x2050
-+device.name           2050 DVB-T Terrestrial (Cable) Reciever
-
- vendor.id             pci 0x14f3
-&device.id             pci 0x2060
-+device.name           2060 ATSC Terrestrial (Cable) Reciever
-
- vendor.id             pci 0x14f4
-+vendor.name           TOKYO Electronic Industry CO Ltd
-
- vendor.id             pci 0x14f5
-+vendor.name           SOPAC Ltd
-
- vendor.id             pci 0x14f6
-+vendor.name           COYOTE Technologies LLC
-
- vendor.id             pci 0x14f7
-+vendor.name           WOLF Technology Inc
-
- vendor.id             pci 0x14f8
-+vendor.name           AUDIOCODES Inc
-
- vendor.id             pci 0x14f8
-&device.id             pci 0x2077
-+device.name           TP-240 dual span E1 VoIP PCI card
-
- vendor.id             pci 0x14f9
-+vendor.name           AG COMMUNICATIONS
-
- vendor.id             pci 0x14fa
-+vendor.name           WANDEL & GOCHERMANN
-
- vendor.id             pci 0x14fb
-+vendor.name           TRANSAS MARINE (UK) Ltd
-
- vendor.id             pci 0x14fc
-+vendor.name           Quadrics Ltd
-
- vendor.id             pci 0x14fc
-&device.id             pci 0x0000
-+device.name           QsNet Elan3 Network Adapter
-
- vendor.id             pci 0x14fc
-&device.id             pci 0x0001
-+device.name           QsNetII Elan4 Network Adapter
-
- vendor.id             pci 0x14fd
-+vendor.name           JAPAN Computer Industry Inc
-
- vendor.id             pci 0x14fe
-+vendor.name           ARCHTEK TELECOM Corp
-
- vendor.id             pci 0x14ff
-+vendor.name           TWINHEAD INTERNATIONAL Corp
-
- vendor.id             pci 0x1500
-+vendor.name           DELTA Electronics, Inc
-
- vendor.id             pci 0x1500
-&device.id             pci 0x1360
-+device.name           RTL81xx RealTek Ethernet
-
- vendor.id             pci 0x1501
-+vendor.name           BANKSOFT CANADA Ltd
-
- vendor.id             pci 0x1502
-+vendor.name           MITSUBISHI ELECTRIC LOGISTICS SUPPORT Co Ltd
-
- vendor.id             pci 0x1503
-+vendor.name           KAWASAKI LSI USA Inc
-
- vendor.id             pci 0x1504
-+vendor.name           KAISER Electronics
-
- vendor.id             pci 0x1505
-+vendor.name           ITA INGENIEURBURO FUR TESTAUFGABEN GmbH
-
- vendor.id             pci 0x1506
-+vendor.name           CHAMELEON Systems Inc
-
- vendor.id             pci 0x1507
-+vendor.name           Motorola ?? / HTEC
-
- vendor.id             pci 0x1507
-&device.id             pci 0x0001
-+device.name           MPC105 [Eagle]
-
- vendor.id             pci 0x1507
-&device.id             pci 0x0002
-+device.name           MPC106 [Grackle]
-
- vendor.id             pci 0x1507
-&device.id             pci 0x0003
-+device.name           MPC8240 [Kahlua]
-
- vendor.id             pci 0x1507
-&device.id             pci 0x0100
-+device.name           MC145575 [HFC-PCI]
-
- vendor.id             pci 0x1507
-&device.id             pci 0x0431
-+device.name           KTI829c 100VG
-
- vendor.id             pci 0x1507
-&device.id             pci 0x4801
-+device.name           Raven
-
- vendor.id             pci 0x1507
-&device.id             pci 0x4802
-+device.name           Falcon
-
- vendor.id             pci 0x1507
-&device.id             pci 0x4803
-+device.name           Hawk
-
- vendor.id             pci 0x1507
-&device.id             pci 0x4806
-+device.name           CPX8216
-
- vendor.id             pci 0x1508
-+vendor.name           HONDA CONNECTORS/MHOTRONICS Inc
-
- vendor.id             pci 0x1509
-+vendor.name           FIRST INTERNATIONAL Computer Inc
-
- vendor.id             pci 0x150a
-+vendor.name           FORVUS RESEARCH Inc
-
- vendor.id             pci 0x150b
-+vendor.name           YAMASHITA Systems Corp
-
- vendor.id             pci 0x150c
-+vendor.name           KYOPAL CO Ltd
-
- vendor.id             pci 0x150d
-+vendor.name           WARPSPPED Inc
-
- vendor.id             pci 0x150e
-+vendor.name           C-PORT Corp
-
- vendor.id             pci 0x150f
-+vendor.name           INTEC GmbH
-
- vendor.id             pci 0x1510
-+vendor.name           BEHAVIOR TECH Computer Corp
-
- vendor.id             pci 0x1511
-+vendor.name           CENTILLIUM Technology Corp
-
- vendor.id             pci 0x1512
-+vendor.name           ROSUN Technologies Inc
-
- vendor.id             pci 0x1513
-+vendor.name           Raychem
-
- vendor.id             pci 0x1514
-+vendor.name           TFL LAN Inc
-
- vendor.id             pci 0x1515
-+vendor.name           Advent design
-
- vendor.id             pci 0x1516
-+vendor.name           MYSON Technology Inc
-
- vendor.id             pci 0x1516
-&device.id             pci 0x0800
-+device.name           MTD-8xx 100/10M Ethernet PCI Adapter
-
- vendor.id             pci 0x1516
-&device.id             pci 0x0803
-+device.name           SURECOM EP-320X-S 100/10M Ethernet PCI Adapter
-
- vendor.id             pci 0x1516
-&device.id             pci 0x0803
-&subvendor.id          pci 0x1320
-&subdevice.id          pci 0x10bd
-+subdevice.name                SURECOM EP-320X-S 100/10M Ethernet PCI Adapter
-
- vendor.id             pci 0x1516
-&device.id             pci 0x0891
-+device.name           MTD-8xx 100/10M Ethernet PCI Adapter
-
- vendor.id             pci 0x1517
-+vendor.name           ECHOTEK Corp
-
- vendor.id             pci 0x1518
-+vendor.name           PEP MODULAR Computers GmbH
-
- vendor.id             pci 0x1519
-+vendor.name           TELEFON AKTIEBOLAGET LM Ericsson
-
- vendor.id             pci 0x151a
-+vendor.name           Globetek
-
- vendor.id             pci 0x151a
-&device.id             pci 0x1002
-+device.name           PCI-1002
-
- vendor.id             pci 0x151a
-&device.id             pci 0x1004
-+device.name           PCI-1004
-
- vendor.id             pci 0x151a
-&device.id             pci 0x1008
-+device.name           PCI-1008
-
- vendor.id             pci 0x151b
-+vendor.name           COMBOX Ltd
-
- vendor.id             pci 0x151c
-+vendor.name           DIGITAL AUDIO LABS Inc
-
- vendor.id             pci 0x151d
-+vendor.name           Fujitsu Computer Products Of America
-
- vendor.id             pci 0x151e
-+vendor.name           MATRIX Corp
-
- vendor.id             pci 0x151f
-+vendor.name           TOPIC SEMICONDUCTOR Corp
-
- vendor.id             pci 0x151f
-&device.id             pci 0x0000
-+device.name           TP560 Data/Fax/Voice 56k modem
-
- vendor.id             pci 0x1520
-+vendor.name           CHAPLET System Inc
-
- vendor.id             pci 0x1521
-+vendor.name           BELL Corp
-
- vendor.id             pci 0x1522
-+vendor.name           MainPine Ltd
-
- vendor.id             pci 0x1522
-&device.id             pci 0x0100
-+device.name           PCI <-> IOBus Bridge
-
- vendor.id             pci 0x1522
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0200
-+subdevice.name                RockForceDUO 2 Port V.92/V.44 Data/Fax/Voice Modem
-
- vendor.id             pci 0x1522
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0300
-+subdevice.name                RockForceQUATRO 4 Port V.92/V.44 Data/Fax/Voice Modem
-
- vendor.id             pci 0x1522
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0400
-+subdevice.name                RockForceDUO+ 2 Port V.92/V.44 Data/Fax/Voice Modem
-
- vendor.id             pci 0x1522
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0500
-+subdevice.name                RockForceQUATRO+ 4 Port V.92/V.44 Data/Fax/Voice Modem
-
- vendor.id             pci 0x1522
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0600
-+subdevice.name                RockForce+ 2 Port V.90 Data/Fax/Voice Modem
-
- vendor.id             pci 0x1522
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0700
-+subdevice.name                RockForce+ 4 Port V.90 Data/Fax/Voice Modem
-
- vendor.id             pci 0x1522
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0800
-+subdevice.name                RockForceOCTO+ 8 Port V.92/V.44 Data/Fax/Voice Modem
-
- vendor.id             pci 0x1522
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0c00
-+subdevice.name                RockForceDUO+ 2 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem
-
- vendor.id             pci 0x1522
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x0d00
-+subdevice.name                RockForceQUATRO+ 4 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem
-
- vendor.id             pci 0x1522
-&device.id             pci 0x0100
-&subvendor.id          pci 0x1522
-&subdevice.id          pci 0x1d00
-+subdevice.name                RockForceOCTO+ 8 Port V.92/V.44 Data, V.34 Super-G3 Fax, Voice Modem
-
- vendor.id             pci 0x1523
-+vendor.name           MUSIC Semiconductors
-
- vendor.id             pci 0x1524
-+vendor.name           ENE Technology Inc
-
- vendor.id             pci 0x1524
-&device.id             pci 0x0510
-+device.name           CB710 Memory Card Reader Controller
-
- vendor.id             pci 0x1524
-&device.id             pci 0x0610
-+device.name           PCI Smart Card Reader Controller
-
- vendor.id             pci 0x1524
-&device.id             pci 0x1211
-+device.name           CB1211 Cardbus Controller
-
- vendor.id             pci 0x1524
-&device.id             pci 0x1225
-+device.name           CB1225 Cardbus Controller
-
- vendor.id             pci 0x1524
-&device.id             pci 0x1410
-+device.name           CB1410 Cardbus Controller
-
- vendor.id             pci 0x1524
-&device.id             pci 0x1410
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x005a
-+subdevice.name                TravelMate 290
-
- vendor.id             pci 0x1524
-&device.id             pci 0x1411
-+device.name           CB-710/2/4 Cardbus Controller
-
- vendor.id             pci 0x1524
-&device.id             pci 0x1412
-+device.name           CB-712/4 Cardbus Controller
-
- vendor.id             pci 0x1524
-&device.id             pci 0x1420
-+device.name           CB1420 Cardbus Controller
-
- vendor.id             pci 0x1524
-&device.id             pci 0x1421
-+device.name           CB-720/2/4 Cardbus Controller
-
- vendor.id             pci 0x1524
-&device.id             pci 0x1422
-+device.name           CB-722/4 Cardbus Controller
-
- vendor.id             pci 0x1525
-+vendor.name           IMPACT Technologies
-
- vendor.id             pci 0x1526
-+vendor.name           ISS, Inc
-
- vendor.id             pci 0x1527
-+vendor.name           SOLECTRON
-
- vendor.id             pci 0x1528
-+vendor.name           ACKSYS
-
- vendor.id             pci 0x1529
-+vendor.name           AMERICAN MICROSystems Inc
-
- vendor.id             pci 0x152a
-+vendor.name           QUICKTURN DESIGN Systems
-
- vendor.id             pci 0x152b
-+vendor.name           FLYTECH Technology CO Ltd
-
- vendor.id             pci 0x152c
-+vendor.name           MACRAIGOR Systems LLC
-
- vendor.id             pci 0x152d
-+vendor.name           QUANTA Computer Inc
-
- vendor.id             pci 0x152e
-+vendor.name           MELEC Inc
-
- vendor.id             pci 0x152f
-+vendor.name           PHILIPS - CRYPTO
-
- vendor.id             pci 0x1530
-+vendor.name           ACQIS Technology Inc
-
- vendor.id             pci 0x1531
-+vendor.name           CHRYON Corp
-
- vendor.id             pci 0x1532
-+vendor.name           ECHELON Corp
-
- vendor.id             pci 0x1533
-+vendor.name           BALTIMORE
-
- vendor.id             pci 0x1534
-+vendor.name           ROAD Corp
-
- vendor.id             pci 0x1535
-+vendor.name           EVERGREEN Technologies Inc
-
- vendor.id             pci 0x1537
-+vendor.name           DATALEX COMMUNCATIONS
-
- vendor.id             pci 0x1538
-+vendor.name           ARALION Inc
-
- vendor.id             pci 0x1538
-&device.id             pci 0x0303
-+device.name           ARS106S Ultra ATA 133/100/66 Host Controller
-
- vendor.id             pci 0x1539
-+vendor.name           ATELIER INFORMATIQUES et ELECTRONIQUE ETUDES S.A.
-
- vendor.id             pci 0x153a
-+vendor.name           ONO SOKKI
-
- vendor.id             pci 0x153b
-+vendor.name           TERRATEC Electronic GmbH
-
- vendor.id             pci 0x153b
-&device.id             pci 0x1144
-+device.name           Aureon 5.1
-
- vendor.id             pci 0x153b
-&device.id             pci 0x1147
-+device.name           Aureon 5.1 Sky
-
- vendor.id             pci 0x153b
-&device.id             pci 0x1158
-+device.name           Philips Semiconductors SAA7134 (rev 01) [Terratec Cinergy 600 TV]
-
- vendor.id             pci 0x153c
-+vendor.name           ANTAL Electronic
-
- vendor.id             pci 0x153d
-+vendor.name           FILANET Corp
-
- vendor.id             pci 0x153e
-+vendor.name           TECHWELL Inc
-
- vendor.id             pci 0x153f
-+vendor.name           MIPS DENMARK
-
- vendor.id             pci 0x1540
-+vendor.name           PROVIDEO MULTIMEDIA Co Ltd
-
- vendor.id             pci 0x1541
-+vendor.name           MACHONE Communications
-
- vendor.id             pci 0x1542
-+vendor.name           VIVID Technology Inc
-
- vendor.id             pci 0x1543
-+vendor.name           SILICON Laboratories
-
- vendor.id             pci 0x1543
-&device.id             pci 0x3052
-+device.name           Intel 537 [Winmodem]
-
- vendor.id             pci 0x1543
-&device.id             pci 0x4c22
-+device.name           Si3036 MC'97 DAA
-
- vendor.id             pci 0x1544
-+vendor.name           DCM DATA Systems
-
- vendor.id             pci 0x1545
-+vendor.name           VISIONTEK
-
- vendor.id             pci 0x1546
-+vendor.name           IOI Technology Corp
-
- vendor.id             pci 0x1547
-+vendor.name           MITUTOYO Corp
-
- vendor.id             pci 0x1548
-+vendor.name           JET PROPULSION Laboratory
-
- vendor.id             pci 0x1549
-+vendor.name           INTERCONNECT Systems Solutions
-
- vendor.id             pci 0x154a
-+vendor.name           MAX Technologies Inc
-
- vendor.id             pci 0x154b
-+vendor.name           COMPUTEX Co Ltd
-
- vendor.id             pci 0x154c
-+vendor.name           VISUAL Technology Inc
-
- vendor.id             pci 0x154d
-+vendor.name           PAN INTERNATIONAL Industrial Corp
-
- vendor.id             pci 0x154e
-+vendor.name           SERVOTEST Ltd
-
- vendor.id             pci 0x154f
-+vendor.name           STRATABEAM Technology
-
- vendor.id             pci 0x1550
-+vendor.name           OPEN NETWORK Co Ltd
-
- vendor.id             pci 0x1551
-+vendor.name           SMART Electronic DEVELOPMENT GmBH
-
- vendor.id             pci 0x1552
-+vendor.name           RACAL AIRTECH Ltd
-
- vendor.id             pci 0x1553
-+vendor.name           CHICONY Electronics Co Ltd
-
- vendor.id             pci 0x1554
-+vendor.name           PROLINK Microsystems Corp
-
- vendor.id             pci 0x1555
-+vendor.name           GESYTEC GmBH
-
- vendor.id             pci 0x1556
-+vendor.name           PLD APPLICATIONS
-
- vendor.id             pci 0x1557
-+vendor.name           MEDIASTAR Co Ltd
-
- vendor.id             pci 0x1558
-+vendor.name           CLEVO/KAPOK Computer
-
- vendor.id             pci 0x1559
-+vendor.name           SI LOGIC Ltd
-
- vendor.id             pci 0x155a
-+vendor.name           INNOMEDIA Inc
-
- vendor.id             pci 0x155b
-+vendor.name           PROTAC INTERNATIONAL Corp
-
- vendor.id             pci 0x155c
-+vendor.name           Cemax-Icon Inc
-
- vendor.id             pci 0x155d
-+vendor.name           Mac System Co Ltd
-
- vendor.id             pci 0x155e
-+vendor.name           LP Elektronik GmbH
-
- vendor.id             pci 0x155f
-+vendor.name           Perle Systems Ltd
-
- vendor.id             pci 0x1560
-+vendor.name           Terayon Communications Systems
-
- vendor.id             pci 0x1561
-+vendor.name           Viewgraphics Inc
-
- vendor.id             pci 0x1562
-+vendor.name           Symbol Technologies
-
- vendor.id             pci 0x1563
-+vendor.name           A-Trend Technology Co Ltd
-
- vendor.id             pci 0x1564
-+vendor.name           Yamakatsu Electronics Industry Co Ltd
-
- vendor.id             pci 0x1565
-+vendor.name           Biostar Microtech Int'l Corp
-
- vendor.id             pci 0x1566
-+vendor.name           Ardent Technologies Inc
-
- vendor.id             pci 0x1567
-+vendor.name           Jungsoft
-
- vendor.id             pci 0x1568
-+vendor.name           DDK Electronics Inc
-
- vendor.id             pci 0x1569
-+vendor.name           Palit Microsystems Inc.
-
- vendor.id             pci 0x156a
-+vendor.name           Avtec Systems
-
- vendor.id             pci 0x156b
-+vendor.name           2wire Inc
-
- vendor.id             pci 0x156c
-+vendor.name           Vidac Electronics GmbH
-
- vendor.id             pci 0x156d
-+vendor.name           Alpha-Top Corp
-
- vendor.id             pci 0x156e
-+vendor.name           Alfa Inc
-
- vendor.id             pci 0x156f
-+vendor.name           M-Systems Flash Disk Pioneers Ltd
-
- vendor.id             pci 0x1570
-+vendor.name           Lecroy Corp
-
- vendor.id             pci 0x1571
-+vendor.name           Contemporary Controls
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa001
-+device.name           CCSI PCI20-485 ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa002
-+device.name           CCSI PCI20-485D ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa003
-+device.name           CCSI PCI20-485X ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa004
-+device.name           CCSI PCI20-CXB ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa005
-+device.name           CCSI PCI20-CXS ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa006
-+device.name           CCSI PCI20-FOG-SMA ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa007
-+device.name           CCSI PCI20-FOG-ST ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa008
-+device.name           CCSI PCI20-TB5 ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa009
-+device.name           CCSI PCI20-5-485 5Mbit ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa00a
-+device.name           CCSI PCI20-5-485D 5Mbit ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa00b
-+device.name           CCSI PCI20-5-485X 5Mbit ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa00c
-+device.name           CCSI PCI20-5-FOG-ST 5Mbit ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa00d
-+device.name           CCSI PCI20-5-FOG-SMA 5Mbit ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa201
-+device.name           CCSI PCI22-485 10Mbit ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa202
-+device.name           CCSI PCI22-485D 10Mbit ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa203
-+device.name           CCSI PCI22-485X 10Mbit ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa204
-+device.name           CCSI PCI22-CHB 10Mbit ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa205
-+device.name           CCSI PCI22-FOG_ST 10Mbit ARCnet
-
- vendor.id             pci 0x1571
-&device.id             pci 0xa206
-+device.name           CCSI PCI22-THB 10Mbit ARCnet
-
- vendor.id             pci 0x1572
-+vendor.name           Otis Elevator Company
-
- vendor.id             pci 0x1573
-+vendor.name           Lattice - Vantis
-
- vendor.id             pci 0x1574
-+vendor.name           Fairchild Semiconductor
-
- vendor.id             pci 0x1575
-+vendor.name           Voltaire Advanced Data Security Ltd
-
- vendor.id             pci 0x1576
-+vendor.name           Viewcast COM
-
- vendor.id             pci 0x1578
-+vendor.name           HITT
-
- vendor.id             pci 0x1579
-+vendor.name           Dual Technology Corp
-
- vendor.id             pci 0x157a
-+vendor.name           Japan Elecronics Ind Inc
-
- vendor.id             pci 0x157b
-+vendor.name           Star Multimedia Corp
-
- vendor.id             pci 0x157c
-+vendor.name           Eurosoft (UK)
-
- vendor.id             pci 0x157c
-&device.id             pci 0x8001
-+device.name           Fix2000 PCI Y2K Compliance Card
-
- vendor.id             pci 0x157d
-+vendor.name           Gemflex Networks
-
- vendor.id             pci 0x157e
-+vendor.name           Transition Networks
-
- vendor.id             pci 0x157f
-+vendor.name           PX Instruments Technology Ltd
-
- vendor.id             pci 0x1580
-+vendor.name           Primex Aerospace Co
-
- vendor.id             pci 0x1581
-+vendor.name           SEH Computertechnik GmbH
-
- vendor.id             pci 0x1582
-+vendor.name           Cytec Corp
-
- vendor.id             pci 0x1583
-+vendor.name           Inet Technologies Inc
-
- vendor.id             pci 0x1584
-+vendor.name           Uniwill Computer Corp
-
- vendor.id             pci 0x1585
-+vendor.name           Logitron
-
- vendor.id             pci 0x1586
-+vendor.name           Lancast Inc
-
- vendor.id             pci 0x1587
-+vendor.name           Konica Corp
-
- vendor.id             pci 0x1588
-+vendor.name           Solidum Systems Corp
-
- vendor.id             pci 0x1589
-+vendor.name           Atlantek Microsystems Pty Ltd
-
- vendor.id             pci 0x158a
-+vendor.name           Digalog Systems Inc
-
- vendor.id             pci 0x158b
-+vendor.name           Allied Data Technologies
-
- vendor.id             pci 0x158c
-+vendor.name           Hitachi Semiconductor & Devices Sales Co Ltd
-
- vendor.id             pci 0x158d
-+vendor.name           Point Multimedia Systems
-
- vendor.id             pci 0x158e
-+vendor.name           Lara Technology Inc
-
- vendor.id             pci 0x158f
-+vendor.name           Ditect Coop
-
- vendor.id             pci 0x1590
-+vendor.name           3pardata Inc
-
- vendor.id             pci 0x1591
-+vendor.name           ARN
-
- vendor.id             pci 0x1592
-+vendor.name           Syba Tech Ltd
-
- vendor.id             pci 0x1592
-&device.id             pci 0x0781
-+device.name           Multi-IO Card
-
- vendor.id             pci 0x1592
-&device.id             pci 0x0782
-+device.name           Parallel Port Card 2xEPP
-
- vendor.id             pci 0x1592
-&device.id             pci 0x0783
-+device.name           Multi-IO Card
-
- vendor.id             pci 0x1592
-&device.id             pci 0x0785
-+device.name           Multi-IO Card
-
- vendor.id             pci 0x1592
-&device.id             pci 0x0786
-+device.name           Multi-IO Card
-
- vendor.id             pci 0x1592
-&device.id             pci 0x0787
-+device.name           Multi-IO Card
-
- vendor.id             pci 0x1592
-&device.id             pci 0x0788
-+device.name           Multi-IO Card
-
- vendor.id             pci 0x1592
-&device.id             pci 0x078a
-+device.name           Multi-IO Card
-
- vendor.id             pci 0x1593
-+vendor.name           Bops Inc
-
- vendor.id             pci 0x1594
-+vendor.name           Netgame Ltd
-
- vendor.id             pci 0x1595
-+vendor.name           Diva Systems Corp
-
- vendor.id             pci 0x1596
-+vendor.name           Folsom Research Inc
-
- vendor.id             pci 0x1597
-+vendor.name           Memec Design Services
-
- vendor.id             pci 0x1598
-+vendor.name           Granite Microsystems
-
- vendor.id             pci 0x1599
-+vendor.name           Delta Electronics Inc
-
- vendor.id             pci 0x159a
-+vendor.name           General Instrument
-
- vendor.id             pci 0x159b
-+vendor.name           Faraday Technology Corp
-
- vendor.id             pci 0x159c
-+vendor.name           Stratus Computer Systems
-
- vendor.id             pci 0x159d
-+vendor.name           Ningbo Harrison Electronics Co Ltd
-
- vendor.id             pci 0x159e
-+vendor.name           A-Max Technology Co Ltd
-
- vendor.id             pci 0x159f
-+vendor.name           Galea Network Security
-
- vendor.id             pci 0x15a0
-+vendor.name           Compumaster SRL
-
- vendor.id             pci 0x15a1
-+vendor.name           Geocast Network Systems
-
- vendor.id             pci 0x15a2
-+vendor.name           Catalyst Enterprises Inc
-
- vendor.id             pci 0x15a2
-&device.id             pci 0x0001
-+device.name           TA700 PCI Bus Analyzer/Exerciser
-
- vendor.id             pci 0x15a3
-+vendor.name           Italtel
-
- vendor.id             pci 0x15a4
-+vendor.name           X-Net OY
-
- vendor.id             pci 0x15a5
-+vendor.name           Toyota Macs Inc
-
- vendor.id             pci 0x15a6
-+vendor.name           Sunlight Ultrasound Technologies Ltd
-
- vendor.id             pci 0x15a7
-+vendor.name           SSE Telecom Inc
-
- vendor.id             pci 0x15a8
-+vendor.name           Shanghai Communications Technologies Center
-
- vendor.id             pci 0x15aa
-+vendor.name           Moreton Bay
-
- vendor.id             pci 0x15ab
-+vendor.name           Bluesteel Networks Inc
-
- vendor.id             pci 0x15ac
-+vendor.name           North Atlantic Instruments
-
- vendor.id             pci 0x15ad
-+vendor.name           VMware Inc
-
- vendor.id             pci 0x15ad
-&device.id             pci 0x0405
-+device.name           [VMware SVGA II] PCI Display Adapter
-
- vendor.id             pci 0x15ad
-&device.id             pci 0x0710
-+device.name           Virtual SVGA
-
- vendor.id             pci 0x15ad
-&device.id             pci 0x0720
-+device.name           VMware High-Speed Virtual NIC [vmxnet]
-
- vendor.id             pci 0x15ae
-+vendor.name           Amersham Pharmacia Biotech
-
- vendor.id             pci 0x15b0
-+vendor.name           Zoltrix International Ltd
-
- vendor.id             pci 0x15b1
-+vendor.name           Source Technology Inc
-
- vendor.id             pci 0x15b2
-+vendor.name           Mosaid Technologies Inc
-
- vendor.id             pci 0x15b3
-+vendor.name           Mellanox Technologies
-
- vendor.id             pci 0x15b3
-&device.id             pci 0x5274
-+device.name           MT21108 InfiniBridge
-
- vendor.id             pci 0x15b3
-&device.id             pci 0x5a44
-+device.name           MT23108 InfiniHost HCA
-
- vendor.id             pci 0x15b3
-&device.id             pci 0x5a45
-+device.name           MT23108 InfiniHost HCA flash recovery (Tavor)
-
- vendor.id             pci 0x15b3
-&device.id             pci 0x5a46
-+device.name           MT23108 InfiniHost HCA bridge
-
- vendor.id             pci 0x15b3
-&device.id             pci 0x5e8c
-+device.name           MT24204 [InfiniHost III Lx HCA]
-
- vendor.id             pci 0x15b3
-&device.id             pci 0x5e8d
-+device.name           MT24204 [InfiniHost III Lx HCA Flash Recovery]
-
- vendor.id             pci 0x15b3
-&device.id             pci 0x6278
-+device.name           MT25208 InfiniHost III Ex HCA (Tavor compatibility mode)
-
- vendor.id             pci 0x15b3
-&device.id             pci 0x6279
-+device.name           MT25208 [InfiniHost III Ex HCA Flash Recovery]
-
- vendor.id             pci 0x15b3
-&device.id             pci 0x6282
-+device.name           MT25208 InfiniHost III Ex HCA
-
- vendor.id             pci 0x15b4
-+vendor.name           CCI/TRIAD
-
- vendor.id             pci 0x15b5
-+vendor.name           Cimetrics Inc
-
- vendor.id             pci 0x15b6
-+vendor.name           Texas Memory Systems Inc
-
- vendor.id             pci 0x15b7
-+vendor.name           Sandisk Corp
-
- vendor.id             pci 0x15b8
-+vendor.name           ADDI-DATA GmbH
-
- vendor.id             pci 0x15b9
-+vendor.name           Maestro Digital Communications
-
- vendor.id             pci 0x15ba
-+vendor.name           Impacct Technology Corp
-
- vendor.id             pci 0x15bb
-+vendor.name           Portwell Inc
-
- vendor.id             pci 0x15bc
-+vendor.name           Agilent Technologies
-
- vendor.id             pci 0x15bc
-&device.id             pci 0x2922
-+device.name           64 Bit, 133MHz PCI-X Exerciser & Protocol Checker
-
- vendor.id             pci 0x15bc
-&device.id             pci 0x2928
-+device.name           64 Bit, 66MHz PCI Exerciser & Analyzer
-
- vendor.id             pci 0x15bc
-&device.id             pci 0x2929
-+device.name           64 Bit, 133MHz PCI-X Analyzer & Exerciser
-
- vendor.id             pci 0x15bd
-+vendor.name           DFI Inc
-
- vendor.id             pci 0x15be
-+vendor.name           Sola Electronics
-
- vendor.id             pci 0x15bf
-+vendor.name           High Tech Computer Corp (HTC)
-
- vendor.id             pci 0x15c0
-+vendor.name           BVM Ltd
-
- vendor.id             pci 0x15c1
-+vendor.name           Quantel
-
- vendor.id             pci 0x15c2
-+vendor.name           Newer Technology Inc
-
- vendor.id             pci 0x15c3
-+vendor.name           Taiwan Mycomp Co Ltd
-
- vendor.id             pci 0x15c4
-+vendor.name           EVSX Inc
-
- vendor.id             pci 0x15c5
-+vendor.name           Procomp Informatics Ltd
-
- vendor.id             pci 0x15c5
-&device.id             pci 0x8010
-+device.name           1394b - 1394 Firewire 3-Port Host Adapter Card
-
- vendor.id             pci 0x15c6
-+vendor.name           Technical University of Budapest
-
- vendor.id             pci 0x15c7
-+vendor.name           Tateyama System Laboratory Co Ltd
-
- vendor.id             pci 0x15c7
-&device.id             pci 0x0349
-+device.name           Tateyama C-PCI PLC/NC card Rev.01A
-
- vendor.id             pci 0x15c8
-+vendor.name           Penta Media Co Ltd
-
- vendor.id             pci 0x15c9
-+vendor.name           Serome Technology Inc
-
- vendor.id             pci 0x15ca
-+vendor.name           Bitboys OY
-
- vendor.id             pci 0x15cb
-+vendor.name           AG Electronics Ltd
-
- vendor.id             pci 0x15cc
-+vendor.name           Hotrail Inc
-
- vendor.id             pci 0x15cd
-+vendor.name           Dreamtech Co Ltd
-
- vendor.id             pci 0x15ce
-+vendor.name           Genrad Inc
-
- vendor.id             pci 0x15cf
-+vendor.name           Hilscher GmbH
-
- vendor.id             pci 0x15d1
-+vendor.name           Infineon Technologies AG
-
- vendor.id             pci 0x15d2
-+vendor.name           FIC (First International Computer Inc)
-
- vendor.id             pci 0x15d3
-+vendor.name           NDS Technologies Israel Ltd
-
- vendor.id             pci 0x15d4
-+vendor.name           Iwill Corp
-
- vendor.id             pci 0x15d5
-+vendor.name           Tatung Co
-
- vendor.id             pci 0x15d6
-+vendor.name           Entridia Corp
-
- vendor.id             pci 0x15d7
-+vendor.name           Rockwell-Collins Inc
-
- vendor.id             pci 0x15d8
-+vendor.name           Cybernetics Technology Co Ltd
-
- vendor.id             pci 0x15d9
-+vendor.name           Super Micro Computer Inc
-
- vendor.id             pci 0x15da
-+vendor.name           Cyberfirm Inc
-
- vendor.id             pci 0x15db
-+vendor.name           Applied Computing Systems Inc
-
- vendor.id             pci 0x15dc
-+vendor.name           Litronic Inc
-
- vendor.id             pci 0x15dc
-&device.id             pci 0x0001
-+device.name           Argus 300 PCI Cryptography Module
-
- vendor.id             pci 0x15dd
-+vendor.name           Sigmatel Inc
-
- vendor.id             pci 0x15de
-+vendor.name           Malleable Technologies Inc
-
- vendor.id             pci 0x15df
-+vendor.name           Infinilink Corp
-
- vendor.id             pci 0x15e0
-+vendor.name           Cacheflow Inc
-
- vendor.id             pci 0x15e1
-+vendor.name           Voice Technologies Group Inc
-
- vendor.id             pci 0x15e2
-+vendor.name           Quicknet Technologies Inc
-
- vendor.id             pci 0x15e3
-+vendor.name           Networth Technologies Inc
-
- vendor.id             pci 0x15e4
-+vendor.name           VSN Systemen BV
-
- vendor.id             pci 0x15e5
-+vendor.name           Valley technologies Inc
-
- vendor.id             pci 0x15e6
-+vendor.name           Agere Inc
-
- vendor.id             pci 0x15e7
-+vendor.name           Get Engineering Corp
-
- vendor.id             pci 0x15e8
-+vendor.name           National Datacomm Corp
-
- vendor.id             pci 0x15e8
-&device.id             pci 0x0130
-+device.name           Wireless PCI Card
-
- vendor.id             pci 0x15e9
-+vendor.name           Pacific Digital Corp
-
- vendor.id             pci 0x15e9
-&device.id             pci 0x1841
-+device.name           ADMA-100 DiscStaQ ATA Controller
-
- vendor.id             pci 0x15ea
-+vendor.name           Tokyo Denshi Sekei K.K.
-
- vendor.id             pci 0x15eb
-+vendor.name           Drsearch GmbH
-
- vendor.id             pci 0x15ec
-+vendor.name           Beckhoff GmbH
-
- vendor.id             pci 0x15ec
-&device.id             pci 0x3101
-+device.name           FC3101 Profibus DP 1 Channel PCI
-
- vendor.id             pci 0x15ec
-&device.id             pci 0x5102
-+device.name           FC5102
-
- vendor.id             pci 0x15ed
-+vendor.name           Macrolink Inc
-
- vendor.id             pci 0x15ee
-+vendor.name           In Win Development Inc
-
- vendor.id             pci 0x15ef
-+vendor.name           Intelligent Paradigm Inc
-
- vendor.id             pci 0x15f0
-+vendor.name           B-Tree Systems Inc
-
- vendor.id             pci 0x15f1
-+vendor.name           Times N Systems Inc
-
- vendor.id             pci 0x15f2
-+vendor.name           Diagnostic Instruments Inc
-
- vendor.id             pci 0x15f3
-+vendor.name           Digitmedia Corp
-
- vendor.id             pci 0x15f4
-+vendor.name           Valuesoft
-
- vendor.id             pci 0x15f5
-+vendor.name           Power Micro Research
-
- vendor.id             pci 0x15f6
-+vendor.name           Extreme Packet Device Inc
-
- vendor.id             pci 0x15f7
-+vendor.name           Banctec
-
- vendor.id             pci 0x15f8
-+vendor.name           Koga Electronics Co
-
- vendor.id             pci 0x15f9
-+vendor.name           Zenith Electronics Corp
-
- vendor.id             pci 0x15fa
-+vendor.name           J.P. Axzam Corp
-
- vendor.id             pci 0x15fb
-+vendor.name           Zilog Inc
-
- vendor.id             pci 0x15fc
-+vendor.name           Techsan Electronics Co Ltd
-
- vendor.id             pci 0x15fd
-+vendor.name           N-CUBED.NET
-
- vendor.id             pci 0x15fe
-+vendor.name           Kinpo Electronics Inc
-
- vendor.id             pci 0x15ff
-+vendor.name           Fastpoint Technologies Inc
-
- vendor.id             pci 0x1600
-+vendor.name           Northrop Grumman - Canada Ltd
-
- vendor.id             pci 0x1601
-+vendor.name           Tenta Technology
-
- vendor.id             pci 0x1602
-+vendor.name           Prosys-tec Inc
-
- vendor.id             pci 0x1603
-+vendor.name           Nokia Wireless Communications
-
- vendor.id             pci 0x1604
-+vendor.name           Central System Research Co Ltd
-
- vendor.id             pci 0x1605
-+vendor.name           Pairgain Technologies
-
- vendor.id             pci 0x1606
-+vendor.name           Europop AG
-
- vendor.id             pci 0x1607
-+vendor.name           Lava Semiconductor Manufacturing Inc
-
- vendor.id             pci 0x1608
-+vendor.name           Automated Wagering International
-
- vendor.id             pci 0x1609
-+vendor.name           Scimetric Instruments Inc
-
- vendor.id             pci 0x1612
-+vendor.name           Telesynergy Research Inc.
-
- vendor.id             pci 0x1619
-+vendor.name           FarSite Communications Ltd
-
- vendor.id             pci 0x1619
-&device.id             pci 0x0400
-+device.name           FarSync T2P (2 port X.21/V.35/V.24)
-
- vendor.id             pci 0x1619
-&device.id             pci 0x0440
-+device.name           FarSync T4P (4 port X.21/V.35/V.24)
-
- vendor.id             pci 0x161f
-+vendor.name           Rioworks
-
- vendor.id             pci 0x1626
-+vendor.name           TDK Semiconductor Corp.
-
- vendor.id             pci 0x1626
-&device.id             pci 0x8410
-+device.name           RTL81xx Fast Ethernet
-
- vendor.id             pci 0x1629
-+vendor.name           Kongsberg Spacetec AS
-
- vendor.id             pci 0x1629
-&device.id             pci 0x1003
-+device.name           Format synchronizer v3.0
-
- vendor.id             pci 0x1629
-&device.id             pci 0x2002
-+device.name           Fast Universal Data Output
-
- vendor.id             pci 0x1637
-+vendor.name           Linksys
-
- vendor.id             pci 0x1637
-&device.id             pci 0x3874
-+device.name           Linksys 802.11b WMP11 PCI Wireless card
-
- vendor.id             pci 0x1638
-+vendor.name           Standard Microsystems Corp [SMC]
-
- vendor.id             pci 0x1638
-&device.id             pci 0x1100
-+device.name           SMC2602W EZConnect / Addtron AWA-100 / Eumitcom PCI WL11000
-
- vendor.id             pci 0x163c
-+vendor.name           Smart Link Ltd.
-
- vendor.id             pci 0x163c
-&device.id             pci 0x3052
-+device.name           SmartLink SmartPCI562 56K Modem
-
- vendor.id             pci 0x163c
-&device.id             pci 0x5449
-+device.name           SmartPCI561 Modem
-
- vendor.id             pci 0x1657
-+vendor.name           Brocade Communications Systems, Inc.
-
- vendor.id             pci 0x165a
-+vendor.name           Epix Inc
-
- vendor.id             pci 0x165a
-&device.id             pci 0xc100
-+device.name           PIXCI(R) CL1 Camera Link Video Capture Board [custom QL5232]
-
- vendor.id             pci 0x165a
-&device.id             pci 0xd200
-+device.name           PIXCI(R) D2X Digital Video Capture Board [custom QL5232]
-
- vendor.id             pci 0x165a
-&device.id             pci 0xd300
-+device.name           PIXCI(R) D3X Digital Video Capture Board [custom QL5232]
-
- vendor.id             pci 0x165d
-+vendor.name           Hsing Tech. Enterprise Co., Ltd.
-
- vendor.id             pci 0x1661
-+vendor.name           Worldspace Corp.
-
- vendor.id             pci 0x1668
-+vendor.name           Actiontec Electronics Inc
-
- vendor.id             pci 0x1668
-&device.id             pci 0x0100
-+device.name           Mini-PCI bridge
-
- vendor.id             pci 0x166d
-+vendor.name           Broadcom Corporation
-
- vendor.id             pci 0x166d
-&device.id             pci 0x0001
-+device.name           SiByte BCM1125/1125H/1250 System-on-a-Chip PCI
-
- vendor.id             pci 0x166d
-&device.id             pci 0x0002
-+device.name           SiByte BCM1125H/1250 System-on-a-Chip HyperTransport
-
- vendor.id             pci 0x1677
-+vendor.name           Bernecker + Rainer
-
- vendor.id             pci 0x1677
-&device.id             pci 0x104e
-+device.name           5LS172.6 B&R Dual CAN Interface Card
-
- vendor.id             pci 0x1677
-&device.id             pci 0x12d7
-+device.name           5LS172.61 B&R Dual CAN Interface Card
-
- vendor.id             pci 0x167b
-+vendor.name           ZyDAS Technology Corp.
-
- vendor.id             pci 0x1681
-+vendor.name           Hercules
-
- vendor.id             pci 0x1681
-&device.id             pci 0x0010
-+device.name           Hercules 3d Prophet II Ultra 64MB [ 350 MHz NV15BR core, 128-bit DDR @ 460 MHz, 1.5v AGP4x  ]
-
- vendor.id             pci 0x1688
-+vendor.name           CastleNet Technology Inc.
-
- vendor.id             pci 0x1688
-&device.id             pci 0x1170
-+device.name           WLAN 802.11b card
-
- vendor.id             pci 0x168c
-+vendor.name           Atheros Communications, Inc.
-
- vendor.id             pci 0x168c
-&device.id             pci 0x0007
-+device.name           AR5000 802.11a Wireless Adapter
-
- vendor.id             pci 0x168c
-&device.id             pci 0x0011
-+device.name           AR5210 802.11a NIC
-
- vendor.id             pci 0x168c
-&device.id             pci 0x0012
-+device.name           AR5211 802.11ab NIC
-
- vendor.id             pci 0x168c
-&device.id             pci 0x0013
-+device.name           AR5212 802.11abg NIC
-
- vendor.id             pci 0x168c
-&device.id             pci 0x0013
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x3202
-+subdevice.name                D-link DWL-G650 B3 Wireless cardbus adapter
-
- vendor.id             pci 0x168c
-&device.id             pci 0x0013
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x3203
-+subdevice.name                DWL-G520 Wireless PCI Adapter
-
- vendor.id             pci 0x168c
-&device.id             pci 0x0013
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x3a13
-+subdevice.name                DWL-G520 Wireless PCI Adapter rev. B
-
- vendor.id             pci 0x168c
-&device.id             pci 0x0013
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x3a94
-+subdevice.name                C54C Wireless 801.11g cardbus
-
- vendor.id             pci 0x168c
-&device.id             pci 0x0013
-&subvendor.id          pci 0x1385
-&subdevice.id          pci 0x4d00
-+subdevice.name                Netgear WG311T Wireless PCI Adapter
-
- vendor.id             pci 0x168c
-&device.id             pci 0x0013
-&subvendor.id          pci 0x14b7
-&subdevice.id          pci 0x0a60
-+subdevice.name                8482-WD ORiNOCO 11a/b/g Wireless PCI Adapter
-
- vendor.id             pci 0x168c
-&device.id             pci 0x0013
-&subvendor.id          pci 0x168c
-&subdevice.id          pci 0x0013
-+subdevice.name                WG511T Wireless CardBus Adapter
-
- vendor.id             pci 0x168c
-&device.id             pci 0x0013
-&subvendor.id          pci 0x168c
-&subdevice.id          pci 0x1025
-+subdevice.name                DWL-G650B2 Wireless CardBus Adapter
-
- vendor.id             pci 0x168c
-&device.id             pci 0x0013
-&subvendor.id          pci 0x168c
-&subdevice.id          pci 0x2026
-+subdevice.name                Netgate 5354MP ARIES a(108Mb turbo)/b/g MiniPCI Adapter
-
- vendor.id             pci 0x168c
-&device.id             pci 0x1014
-+device.name           AR5212 802.11abg NIC
-
- vendor.id             pci 0x16a5
-+vendor.name           Tekram Technology Co.,Ltd.
-
- vendor.id             pci 0x16ab
-+vendor.name           Global Sun Technology Inc
-
- vendor.id             pci 0x16ab
-&device.id             pci 0x1100
-+device.name           GL24110P
-
- vendor.id             pci 0x16ab
-&device.id             pci 0x1101
-+device.name           PLX9052 PCMCIA-to-PCI Wireless LAN
-
- vendor.id             pci 0x16ab
-&device.id             pci 0x1102
-+device.name           PCMCIA-to-PCI Wireless Network Bridge
-
- vendor.id             pci 0x16ae
-+vendor.name           Safenet Inc
-
- vendor.id             pci 0x16ae
-&device.id             pci 0x1141
-+device.name           SafeXcel-1141
-
- vendor.id             pci 0x16b4
-+vendor.name           Aspex Semiconductor Ltd
-
- vendor.id             pci 0x16be
-+vendor.name           Creatix Polymedia GmbH
-
- vendor.id             pci 0x16ca
-+vendor.name           CENATEK Inc
-
- vendor.id             pci 0x16ca
-&device.id             pci 0x0001
-+device.name           Rocket Drive DL
-
- vendor.id             pci 0x16cd
-+vendor.name           Densitron Technologies
-
- vendor.id             pci 0x16ce
-+vendor.name           Roland Corp.
-
- vendor.id             pci 0x16df
-+vendor.name           PIKA Technologies Inc.
-
- vendor.id             pci 0x16e3
-+vendor.name           European Space Agency
-
- vendor.id             pci 0x16e3
-&device.id             pci 0x1e0f
-+device.name           LEON2FT Processor
-
- vendor.id             pci 0x16ec
-+vendor.name           U.S. Robotics
-
- vendor.id             pci 0x16ec
-&device.id             pci 0x00ff
-+device.name           USR997900 10/100 Mbps PCI Network Card
-
- vendor.id             pci 0x16ec
-&device.id             pci 0x3685
-+device.name           Wireless Access PCI Adapter Model 022415
-
- vendor.id             pci 0x16ed
-+vendor.name           Sycron N. V.
-
- vendor.id             pci 0x16ed
-&device.id             pci 0x1001
-+device.name           UMIO communication card
-
- vendor.id             pci 0x16f3
-+vendor.name           Jetway Information Co., Ltd.
-
- vendor.id             pci 0x16f4
-+vendor.name           Vweb Corp
-
- vendor.id             pci 0x16f4
-&device.id             pci 0x8000
-+device.name           VW2010
-
- vendor.id             pci 0x16f6
-+vendor.name           VideoTele.com, Inc.
-
- vendor.id             pci 0x1702
-+vendor.name           Internet Machines Corporation (IMC)
-
- vendor.id             pci 0x1705
-+vendor.name           Digital First, Inc.
-
- vendor.id             pci 0x170b
-+vendor.name           NetOctave
-
- vendor.id             pci 0x170b
-&device.id             pci 0x0100
-+device.name           NSP2000-SSL crypto accelerator
-
- vendor.id             pci 0x170c
-+vendor.name           YottaYotta Inc.
-
- vendor.id             pci 0x1725
-+vendor.name           Vitesse Semiconductor
-
- vendor.id             pci 0x1725
-&device.id             pci 0x7174
-+device.name           VSC7174 PCI/PCI-X Serial ATA Host Bus Controller
-
- vendor.id             pci 0x172a
-+vendor.name           Accelerated Encryption
-
- vendor.id             pci 0x1734
-+vendor.name           Fujitsu Siemens Computer GmbH
-
- vendor.id             pci 0x1737
-+vendor.name           Linksys
-
- vendor.id             pci 0x1737
-&device.id             pci 0x0013
-+device.name           WMP54G Wireless Pci Card
-
- vendor.id             pci 0x1737
-&device.id             pci 0x0015
-+device.name           WMP54GS Wireless Pci Card
-
- vendor.id             pci 0x1737
-&device.id             pci 0x1032
-+device.name           Gigabit Network Adapter
-
- vendor.id             pci 0x1737
-&device.id             pci 0x1032
-&subvendor.id          pci 0x1737
-&subdevice.id          pci 0x0015
-+subdevice.name                EG1032 v2 Instant Gigabit Network Adapter
-
- vendor.id             pci 0x1737
-&device.id             pci 0x1064
-+device.name           Gigabit Network Adapter
-
- vendor.id             pci 0x1737
-&device.id             pci 0x1064
-&subvendor.id          pci 0x1737
-&subdevice.id          pci 0x0016
-+subdevice.name                EG1064 v2 Instant Gigabit Network Adapter
-
- vendor.id             pci 0x1737
-&device.id             pci 0xab08
-+device.name           21x4x DEC-Tulip compatible 10/100 Ethernet
-
- vendor.id             pci 0x1737
-&device.id             pci 0xab09
-+device.name           21x4x DEC-Tulip compatible 10/100 Ethernet
-
- vendor.id             pci 0x173b
-+vendor.name           Altima (nee Broadcom)
-
- vendor.id             pci 0x173b
-&device.id             pci 0x03e8
-+device.name           AC1000 Gigabit Ethernet
-
- vendor.id             pci 0x173b
-&device.id             pci 0x03e9
-+device.name           AC1001 Gigabit Ethernet
-
- vendor.id             pci 0x173b
-&device.id             pci 0x03ea
-+device.name           AC9100 Gigabit Ethernet
-
- vendor.id             pci 0x173b
-&device.id             pci 0x03ea
-&subvendor.id          pci 0x173b
-&subdevice.id          pci 0x0001
-+subdevice.name                AC1002
-
- vendor.id             pci 0x173b
-&device.id             pci 0x03eb
-+device.name           AC1003 Gigabit Ethernet
-
- vendor.id             pci 0x1743
-+vendor.name           Peppercon AG
-
- vendor.id             pci 0x1743
-&device.id             pci 0x8139
-+device.name           ROL/F-100 Fast Ethernet Adapter with ROL
-
- vendor.id             pci 0x1749
-+vendor.name           RLX Technologies
-
- vendor.id             pci 0x174b
-+vendor.name           PC Partner Limited
-
- vendor.id             pci 0x174d
-+vendor.name           WellX Telecom SA
-
- vendor.id             pci 0x175c
-+vendor.name           AudioScience Inc
-
- vendor.id             pci 0x175e
-+vendor.name           Sanera Systems, Inc.
-
- vendor.id             pci 0x1787
-+vendor.name           Hightech Information System Ltd.
-
- vendor.id             pci 0x1796
-+vendor.name           Research Centre Juelich
-
- vendor.id             pci 0x1796
-&device.id             pci 0x0001
-+device.name           SIS1100 [Gigabit link]
-
- vendor.id             pci 0x1796
-&device.id             pci 0x0002
-+device.name           HOTlink
-
- vendor.id             pci 0x1796
-&device.id             pci 0x0003
-+device.name           Counter Timer
-
- vendor.id             pci 0x1796
-&device.id             pci 0x0004
-+device.name           CAMAC Controller
-
- vendor.id             pci 0x1796
-&device.id             pci 0x0005
-+device.name           PROFIBUS
-
- vendor.id             pci 0x1796
-&device.id             pci 0x0006
-+device.name           AMCC HOTlink
-
- vendor.id             pci 0x1797
-+vendor.name           JumpTec h, GMBH
-
- vendor.id             pci 0x1799
-+vendor.name           Belkin
-
- vendor.id             pci 0x1799
-&device.id             pci 0x6001
-+device.name           Wireless PCI Card - F5D6001
-
- vendor.id             pci 0x1799
-&device.id             pci 0x6020
-+device.name           Wireless PCMCIA Card - F5D6020
-
- vendor.id             pci 0x1799
-&device.id             pci 0x6060
-+device.name           Wireless PDA Card - F5D6060
-
- vendor.id             pci 0x1799
-&device.id             pci 0x7000
-+device.name           Wireless PCI Card - F5D7000
-
- vendor.id             pci 0x17a0
-+vendor.name           Genesys Logic, Inc
-
- vendor.id             pci 0x17a0
-&device.id             pci 0x8033
-+device.name           GL880S USB 1.1 controller
-
- vendor.id             pci 0x17a0
-&device.id             pci 0x8034
-+device.name           GL880S USB 2.0 controller
-
- vendor.id             pci 0x17af
-+vendor.name           Hightech Information System Ltd.
-
- vendor.id             pci 0x17b3
-+vendor.name           Hawking Technologies
-
- vendor.id             pci 0x17b3
-&device.id             pci 0xab08
-+device.name           PN672TX 10/100 Ethernet
-
- vendor.id             pci 0x17b4
-+vendor.name           Indra Networks, Inc.
-
- vendor.id             pci 0x17b4
-&device.id             pci 0x0011
-+device.name           WebEnhance 100 GZIP Compression Card
-
- vendor.id             pci 0x17c0
-+vendor.name           Wistron Corp.
-
- vendor.id             pci 0x17c2
-+vendor.name           Newisys, Inc.
-
- vendor.id             pci 0x17cc
-+vendor.name           NetChip Technology, Inc
-
- vendor.id             pci 0x17cc
-&device.id             pci 0x2280
-+device.name           USB 2.0
-
- vendor.id             pci 0x17d3
-+vendor.name           Areca Technology Corp.
-
- vendor.id             pci 0x17d5
-+vendor.name           S2io Inc.
-
- vendor.id             pci 0x17de
-+vendor.name           KWorld Computer Co. Ltd.
-
- vendor.id             pci 0x17ee
-+vendor.name           Connect Components Ltd
-
- vendor.id             pci 0x17fe
-+vendor.name           Linksys, A Division of Cisco Systems
-
- vendor.id             pci 0x17fe
-&device.id             pci 0x2220
-+device.name           [AirConn] INPROCOMM IPN 2220 Wireless LAN Adapter (rev 01)
-
- vendor.id             pci 0x1813
-+vendor.name           Ambient Technologies Inc
-
- vendor.id             pci 0x1813
-&device.id             pci 0x4000
-+device.name           HaM controllerless modem
-
- vendor.id             pci 0x1813
-&device.id             pci 0x4000
-&subvendor.id          pci 0x16be
-&subdevice.id          pci 0x0001
-+subdevice.name                V9x HAM Data Fax Modem
-
- vendor.id             pci 0x1813
-&device.id             pci 0x4100
-+device.name           HaM plus Data Fax Modem
-
- vendor.id             pci 0x1813
-&device.id             pci 0x4100
-&subvendor.id          pci 0x16be
-&subdevice.id          pci 0x0002
-+subdevice.name                V9x HAM 1394
-
- vendor.id             pci 0x1814
-+vendor.name           RaLink
-
- vendor.id             pci 0x1814
-&device.id             pci 0x0101
-+device.name           Wireless PCI Adpator RT2400 / RT2460
-
- vendor.id             pci 0x1814
-&device.id             pci 0x0201
-+device.name           Ralink RT2500 802.11 Cardbus Reference Card
-
- vendor.id             pci 0x1814
-&device.id             pci 0x0201
-&subvendor.id          pci 0x1371
-&subdevice.id          pci 0x001e
-+subdevice.name                CWC-854 Wireless-G CardBus Adapter
-
- vendor.id             pci 0x1814
-&device.id             pci 0x0201
-&subvendor.id          pci 0x1371
-&subdevice.id          pci 0x001f
-+subdevice.name                CWM-854 Wireless-G Mini PCI Adapter
-
- vendor.id             pci 0x1814
-&device.id             pci 0x0201
-&subvendor.id          pci 0x1371
-&subdevice.id          pci 0x0020
-+subdevice.name                CWP-854 Wireless-G PCI Adapter
-
- vendor.id             pci 0x1820
-+vendor.name           InfiniCon Systems Inc.
-
- vendor.id             pci 0x1822
-+vendor.name           Twinhan Technology Co. Ltd
-
- vendor.id             pci 0x182d
-+vendor.name           SiteCom Europe BV
-
- vendor.id             pci 0x182d
-&device.id             pci 0x3069
-+device.name           ISDN PCI DC-105V2
-
- vendor.id             pci 0x1830
-+vendor.name           Credence Systems Corporation
-
- vendor.id             pci 0x183b
-+vendor.name           MikroM GmbH
-
- vendor.id             pci 0x183b
-&device.id             pci 0x08a7
-+device.name           MVC100 DVI
-
- vendor.id             pci 0x183b
-&device.id             pci 0x08a8
-+device.name           MVC101 SDI
-
- vendor.id             pci 0x183b
-&device.id             pci 0x08a9
-+device.name           MVC102 DVI+Audio
-
- vendor.id             pci 0x1849
-+vendor.name           ASRock Incorporation
-
- vendor.id             pci 0x1851
-+vendor.name           Microtune, Inc.
-
- vendor.id             pci 0x1852
-+vendor.name           Anritsu Corp.
-
- vendor.id             pci 0x185f
-+vendor.name           Wistron NeWeb Corp.
-
- vendor.id             pci 0x1867
-+vendor.name           Topspin Communications
-
- vendor.id             pci 0x1867
-&device.id             pci 0x5a44
-+device.name           MT23108 InfiniHost HCA
-
- vendor.id             pci 0x1867
-&device.id             pci 0x5a45
-+device.name           MT23108 InfiniHost HCA flash recovery
-
- vendor.id             pci 0x1867
-&device.id             pci 0x5a46
-+device.name           MT23108 InfiniHost HCA bridge
-
- vendor.id             pci 0x1867
-&device.id             pci 0x6278
-+device.name           MT25208 InfiniHost III Ex HCA (Tavor compatibility mode)
-
- vendor.id             pci 0x1867
-&device.id             pci 0x6282
-+device.name           MT25208 InfiniHost III Ex HCA
-
- vendor.id             pci 0x187e
-+vendor.name           ZyXEL Communication Corporation
-
- vendor.id             pci 0x1888
-+vendor.name           Varisys Ltd
-
- vendor.id             pci 0x1888
-&device.id             pci 0x0301
-+device.name           VMFX1 FPGA PMC module
-
- vendor.id             pci 0x1888
-&device.id             pci 0x0601
-+device.name           VSM2 dual PMC carrier
-
- vendor.id             pci 0x1888
-&device.id             pci 0x0710
-+device.name           VS14x series PowerPC PCI board
-
- vendor.id             pci 0x1888
-&device.id             pci 0x0720
-+device.name           VS24x series PowerPC PCI board
-
- vendor.id             pci 0x1894
-+vendor.name           KNC One
-
- vendor.id             pci 0x1896
-+vendor.name           B&B Electronics Manufacturing Company, Inc.
-
- vendor.id             pci 0x18a1
-+vendor.name           Astute Networks Inc.
-
- vendor.id             pci 0x18ac
-+vendor.name           DViCO Corporation
-
- vendor.id             pci 0x18ac
-&device.id             pci 0xd810
-+device.name           FusionHDTV 3 Gold
-
- vendor.id             pci 0x18b8
-+vendor.name           Ammasso
-
- vendor.id             pci 0x18bc
-+vendor.name           Info-Tek Corp.
-
- vendor.id             pci 0x18c8
-+vendor.name           Cray Inc
-
- vendor.id             pci 0x18c9
-+vendor.name           ARVOO Engineering BV
-
- vendor.id             pci 0x18ca
-+vendor.name           XGI - Xabre Graphics Inc
-
- vendor.id             pci 0x18ca
-&device.id             pci 0x0040
-+device.name           Volari V8
-
- vendor.id             pci 0x18e6
-+vendor.name           MPL AG
-
- vendor.id             pci 0x18e6
-&device.id             pci 0x0001
-+device.name           OSCI [Octal Serial Communication Interface]
-
- vendor.id             pci 0x18f7
-+vendor.name           Commtech, Inc.
-
- vendor.id             pci 0x18f7
-&device.id             pci 0x0001
-+device.name           Fastcom ESCC-PCI-335
-
- vendor.id             pci 0x18f7
-&device.id             pci 0x0002
-+device.name           Fastcom 422/4-PCI-335
-
- vendor.id             pci 0x18f7
-&device.id             pci 0x0004
-+device.name           Fastcom 422/2-PCI-335
-
- vendor.id             pci 0x18f7
-&device.id             pci 0x0005
-+device.name           Fastcom IGESCC-PCI-ISO/1
-
- vendor.id             pci 0x18f7
-&device.id             pci 0x000a
-+device.name           Fastcom 232/4-PCI-335
-
- vendor.id             pci 0x18fb
-+vendor.name           Resilience Corporation
-
- vendor.id             pci 0x1924
-+vendor.name           Level 5 Networks Inc.
-
- vendor.id             pci 0x1966
-+vendor.name           Orad Hi-Tec Systems
-
- vendor.id             pci 0x1975
-+vendor.name           Pudlis Co. Ltd.
-
- vendor.id             pci 0x1993
-+vendor.name           Innominate Security Technologies AG
-
- vendor.id             pci 0x1a08
-+vendor.name           Sierra semiconductor
-
- vendor.id             pci 0x1a08
-&device.id             pci 0x0000
-+device.name           SC15064
-
- vendor.id             pci 0x1b13
-+vendor.name           Jaton Corp
-
- vendor.id             pci 0x1c1c
-+vendor.name           Symphony
-
- vendor.id             pci 0x1c1c
-&device.id             pci 0x0001
-+device.name           82C101
-
- vendor.id             pci 0x1d44
-+vendor.name           DPT
-
- vendor.id             pci 0x1d44
-&device.id             pci 0xa400
-+device.name           PM2x24/PM3224
-
- vendor.id             pci 0x1de1
-+vendor.name           Tekram Technology Co.,Ltd.
-
- vendor.id             pci 0x1de1
-&device.id             pci 0x0391
-+device.name           TRM-S1040
-
- vendor.id             pci 0x1de1
-&device.id             pci 0x2020
-+device.name           DC-390
-
- vendor.id             pci 0x1de1
-&device.id             pci 0x690c
-+device.name           690c
-
- vendor.id             pci 0x1de1
-&device.id             pci 0xdc29
-+device.name           DC290
-
- vendor.id             pci 0x1fc0
-+vendor.name           Tumsan Oy
-
- vendor.id             pci 0x1fc0
-&device.id             pci 0x0300
-+device.name           E2200 Dual E1/Rawpipe Card
-
- vendor.id             pci 0x2000
-+vendor.name           Smart Link Ltd.
-
- vendor.id             pci 0x2001
-+vendor.name           Temporal Research Ltd
-
- vendor.id             pci 0x2003
-+vendor.name           Smart Link Ltd.
-
- vendor.id             pci 0x2004
-+vendor.name           Smart Link Ltd.
-
- vendor.id             pci 0x21c3
-+vendor.name           21st Century Computer Corp.
-
- vendor.id             pci 0x2348
-+vendor.name           Racore
-
- vendor.id             pci 0x2348
-&device.id             pci 0x2010
-+device.name           8142 100VG/AnyLAN
-
- vendor.id             pci 0x2646
-+vendor.name           Kingston Technologies
-
- vendor.id             pci 0x270b
-+vendor.name           Xantel Corporation
-
- vendor.id             pci 0x270f
-+vendor.name           Chaintech Computer Co. Ltd
-
- vendor.id             pci 0x2711
-+vendor.name           AVID Technology Inc.
-
- vendor.id             pci 0x2a15
-+vendor.name           3D Vision(???)
-
- vendor.id             pci 0x3000
-+vendor.name           Hansol Electronics Inc.
-
- vendor.id             pci 0x3142
-+vendor.name           Post Impression Systems.
-
- vendor.id             pci 0x3388
-+vendor.name           Hint Corp
-
- vendor.id             pci 0x3388
-&device.id             pci 0x0013
-+device.name           HiNT HC4 PCI to ISDN bridge, Multimedia audio controller
-
- vendor.id             pci 0x3388
-&device.id             pci 0x0014
-+device.name           HiNT HC4 PCI to ISDN bridge, Network controller
-
- vendor.id             pci 0x3388
-&device.id             pci 0x0020
-+device.name           HB6 Universal PCI-PCI bridge (transparent mode)
-
- vendor.id             pci 0x3388
-&device.id             pci 0x0021
-+device.name           HB6 Universal PCI-PCI bridge (non-transparent mode)
-
- vendor.id             pci 0x3388
-&device.id             pci 0x0021
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1050
-+subdevice.name                CT7 mainboard
-
- vendor.id             pci 0x3388
-&device.id             pci 0x0021
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1080
-+subdevice.name                CT8 mainboard
-
- vendor.id             pci 0x3388
-&device.id             pci 0x0021
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10a0
-+subdevice.name                CA3/CR3 mainboard
-
- vendor.id             pci 0x3388
-&device.id             pci 0x0021
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x3010
-+subdevice.name                PPCI mezzanine (32-bit PMC)
-
- vendor.id             pci 0x3388
-&device.id             pci 0x0021
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x3011
-+subdevice.name                PPCI mezzanine (64-bit PMC)
-
- vendor.id             pci 0x3388
-&device.id             pci 0x0022
-+device.name           HiNT HB4 PCI-PCI Bridge (PCI6150)
-
- vendor.id             pci 0x3388
-&device.id             pci 0x0026
-+device.name           HB2 PCI-PCI Bridge
-
- vendor.id             pci 0x3388
-&device.id             pci 0x101a
-+device.name           E.Band [AudioTrak Inca88]
-
- vendor.id             pci 0x3388
-&device.id             pci 0x101b
-+device.name           E.Band [AudioTrak Inca88]
-
- vendor.id             pci 0x3388
-&device.id             pci 0x8011
-+device.name           VXPro II Chipset
-
- vendor.id             pci 0x3388
-&device.id             pci 0x8011
-&subvendor.id          pci 0x3388
-&subdevice.id          pci 0x8011
-+subdevice.name                VXPro II Chipset CPU to PCI Bridge
-
- vendor.id             pci 0x3388
-&device.id             pci 0x8012
-+device.name           VXPro II Chipset
-
- vendor.id             pci 0x3388
-&device.id             pci 0x8012
-&subvendor.id          pci 0x3388
-&subdevice.id          pci 0x8012
-+subdevice.name                VXPro II Chipset PCI to ISA Bridge
-
- vendor.id             pci 0x3388
-&device.id             pci 0x8013
-+device.name           VXPro II IDE
-
- vendor.id             pci 0x3388
-&device.id             pci 0x8013
-&subvendor.id          pci 0x3388
-&subdevice.id          pci 0x8013
-+subdevice.name                VXPro II Chipset EIDE Controller
-
- vendor.id             pci 0x3411
-+vendor.name           Quantum Designs (H.K.) Inc
-
- vendor.id             pci 0x3513
-+vendor.name           ARCOM Control Systems Ltd
-
- vendor.id             pci 0x3842
-+vendor.name           eVga.com. Corp.
-
- vendor.id             pci 0x38ef
-+vendor.name           4Links
-
- vendor.id             pci 0x3d3d
-+vendor.name           3DLabs
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0001
-+device.name           GLINT 300SX
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0002
-+device.name           GLINT 500TX
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0003
-+device.name           GLINT Delta
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0004
-+device.name           Permedia
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0005
-+device.name           Permedia
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0006
-+device.name           GLINT MX
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0007
-+device.name           3D Extreme
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0008
-+device.name           GLINT Gamma G1
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-+device.name           Permedia II 2D+3D
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-&subvendor.id          pci 0x1040
-&subdevice.id          pci 0x0011
-+subdevice.name                AccelStar II
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-&subvendor.id          pci 0x13e9
-&subdevice.id          pci 0x1000
-+subdevice.name                6221L-4U
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-&subvendor.id          pci 0x3d3d
-&subdevice.id          pci 0x0100
-+subdevice.name                AccelStar II 3D Accelerator
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-&subvendor.id          pci 0x3d3d
-&subdevice.id          pci 0x0111
-+subdevice.name                Permedia 3:16
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-&subvendor.id          pci 0x3d3d
-&subdevice.id          pci 0x0114
-+subdevice.name                Santa Ana
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-&subvendor.id          pci 0x3d3d
-&subdevice.id          pci 0x0116
-+subdevice.name                Oxygen GVX1
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-&subvendor.id          pci 0x3d3d
-&subdevice.id          pci 0x0119
-+subdevice.name                Scirocco
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-&subvendor.id          pci 0x3d3d
-&subdevice.id          pci 0x0120
-+subdevice.name                Santa Ana PCL
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-&subvendor.id          pci 0x3d3d
-&subdevice.id          pci 0x0125
-+subdevice.name                Oxygen VX1
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-&subvendor.id          pci 0x3d3d
-&subdevice.id          pci 0x0127
-+subdevice.name                Permedia3 Create!
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000a
-+device.name           GLINT R3
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000a
-&subvendor.id          pci 0x3d3d
-&subdevice.id          pci 0x0121
-+subdevice.name                Oxygen VX1
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000c
-+device.name           GLINT R3 [Oxygen VX1]
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000c
-&subvendor.id          pci 0x3d3d
-&subdevice.id          pci 0x0144
-+subdevice.name                Oxygen VX1-4X AGP [Permedia 4]
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000d
-+device.name           GLint R4 rev A
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0011
-+device.name           GLint R4 rev B
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0012
-+device.name           GLint R5 rev A
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0013
-+device.name           GLint R5 rev B
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0020
-+device.name           VP10 visual processor
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0022
-+device.name           VP10 visual processor
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0024
-+device.name           VP9 visual processor
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0100
-+device.name           Permedia II 2D+3D
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x07a1
-+device.name           Wildcat III 6210
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x07a2
-+device.name           Sun XVR-500 Graphics Accelerator
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x07a3
-+device.name           Wildcat IV 7210
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x1004
-+device.name           Permedia
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x3d04
-+device.name           Permedia
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0xffff
-+device.name           Glint VGA
-
- vendor.id             pci 0x4005
-+vendor.name           Avance Logic Inc.
-
- vendor.id             pci 0x4005
-&device.id             pci 0x0300
-+device.name           ALS300 PCI Audio Device
-
- vendor.id             pci 0x4005
-&device.id             pci 0x0308
-+device.name           ALS300+ PCI Audio Device
-
- vendor.id             pci 0x4005
-&device.id             pci 0x0309
-+device.name           PCI Input Controller
-
- vendor.id             pci 0x4005
-&device.id             pci 0x1064
-+device.name           ALG-2064
-
- vendor.id             pci 0x4005
-&device.id             pci 0x2064
-+device.name           ALG-2064i
-
- vendor.id             pci 0x4005
-&device.id             pci 0x2128
-+device.name           ALG-2364A GUI Accelerator
-
- vendor.id             pci 0x4005
-&device.id             pci 0x2301
-+device.name           ALG-2301
-
- vendor.id             pci 0x4005
-&device.id             pci 0x2302
-+device.name           ALG-2302
-
- vendor.id             pci 0x4005
-&device.id             pci 0x2303
-+device.name           AVG-2302 GUI Accelerator
-
- vendor.id             pci 0x4005
-&device.id             pci 0x2364
-+device.name           ALG-2364A
-
- vendor.id             pci 0x4005
-&device.id             pci 0x2464
-+device.name           ALG-2464
-
- vendor.id             pci 0x4005
-&device.id             pci 0x2501
-+device.name           ALG-2564A/25128A
-
- vendor.id             pci 0x4005
-&device.id             pci 0x4000
-+device.name           ALS4000 Audio Chipset
-
- vendor.id             pci 0x4005
-&device.id             pci 0x4000
-&subvendor.id          pci 0x4005
-&subdevice.id          pci 0x4000
-+subdevice.name                ALS4000 Audio Chipset
-
- vendor.id             pci 0x4005
-&device.id             pci 0x4710
-+device.name           ALC200/200P
-
- vendor.id             pci 0x4033
-+vendor.name           Addtron Technology Co, Inc.
-
- vendor.id             pci 0x4033
-&device.id             pci 0x1360
-+device.name           RTL8139 Ethernet
-
- vendor.id             pci 0x4143
-+vendor.name           Digital Equipment Corp
-
- vendor.id             pci 0x4144
-+vendor.name           Alpha Data
-
- vendor.id             pci 0x416c
-+vendor.name           Aladdin Knowledge Systems
-
- vendor.id             pci 0x416c
-&device.id             pci 0x0100
-+device.name           AladdinCARD
-
- vendor.id             pci 0x416c
-&device.id             pci 0x0200
-+device.name           CPC
-
- vendor.id             pci 0x4444
-+vendor.name           Internext Compression Inc
-
- vendor.id             pci 0x4444
-&device.id             pci 0x0016
-+device.name           iTVC16 (CX23416) MPEG-2 Encoder
-
- vendor.id             pci 0x4444
-&device.id             pci 0x0016
-&subvendor.id          pci 0x0070
-&subdevice.id          pci 0x4009
-+subdevice.name                WinTV PVR 250
-
- vendor.id             pci 0x4444
-&device.id             pci 0x0803
-+device.name           iTVC15 MPEG-2 Encoder
-
- vendor.id             pci 0x4444
-&device.id             pci 0x0803
-&subvendor.id          pci 0x0070
-&subdevice.id          pci 0x4000
-+subdevice.name                WinTV PVR-350
-
- vendor.id             pci 0x4444
-&device.id             pci 0x0803
-&subvendor.id          pci 0x0070
-&subdevice.id          pci 0x4001
-+subdevice.name                WinTV PVR-250
-
- vendor.id             pci 0x4468
-+vendor.name           Bridgeport machines
-
- vendor.id             pci 0x4594
-+vendor.name           Cogetec Informatique Inc
-
- vendor.id             pci 0x45fb
-+vendor.name           Baldor Electric Company
-
- vendor.id             pci 0x4680
-+vendor.name           Umax Computer Corp
-
- vendor.id             pci 0x4843
-+vendor.name           Hercules Computer Technology Inc
-
- vendor.id             pci 0x4916
-+vendor.name           RedCreek Communications Inc
-
- vendor.id             pci 0x4916
-&device.id             pci 0x1960
-+device.name           RedCreek PCI adapter
-
- vendor.id             pci 0x4943
-+vendor.name           Growth Networks
-
- vendor.id             pci 0x494f
-+vendor.name           ACCES I/O Products, Inc.
-
- vendor.id             pci 0x494f
-&device.id             pci 0x10e8
-+device.name           LPCI-COM-8SM
-
- vendor.id             pci 0x4978
-+vendor.name           Axil Computer Inc
-
- vendor.id             pci 0x4a14
-+vendor.name           NetVin
-
- vendor.id             pci 0x4a14
-&device.id             pci 0x5000
-+device.name           NV5000SC
-
- vendor.id             pci 0x4a14
-&device.id             pci 0x5000
-&subvendor.id          pci 0x4a14
-&subdevice.id          pci 0x5000
-+subdevice.name                RT8029-Based Ethernet Adapter
-
- vendor.id             pci 0x4b10
-+vendor.name           Buslogic Inc.
-
- vendor.id             pci 0x4c48
-+vendor.name           LUNG HWA Electronics
-
- vendor.id             pci 0x4c53
-+vendor.name           SBS Technologies
-
- vendor.id             pci 0x4c53
-&device.id             pci 0x0000
-+device.name           PLUSTEST device
-
- vendor.id             pci 0x4c53
-&device.id             pci 0x0000
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x3000
-+subdevice.name                PLUSTEST card (PC104+)
-
- vendor.id             pci 0x4c53
-&device.id             pci 0x0000
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x3001
-+subdevice.name                PLUSTEST card (PMC)
-
- vendor.id             pci 0x4c53
-&device.id             pci 0x0001
-+device.name           PLUSTEST-MM device
-
- vendor.id             pci 0x4c53
-&device.id             pci 0x0001
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x3002
-+subdevice.name                PLUSTEST-MM card (PMC)
-
- vendor.id             pci 0x4ca1
-+vendor.name           Seanix Technology Inc
-
- vendor.id             pci 0x4d51
-+vendor.name           MediaQ Inc.
-
- vendor.id             pci 0x4d51
-&device.id             pci 0x0200
-+device.name           MQ-200
-
- vendor.id             pci 0x4d54
-+vendor.name           Microtechnica Co Ltd
-
- vendor.id             pci 0x4ddc
-+vendor.name           ILC Data Device Corp
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0100
-+device.name           DD-42924I5-300 (ARINC 429 Data Bus)
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0801
-+device.name           BU-65570I1 MIL-STD-1553 Test and Simulation
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0802
-+device.name           BU-65570I2 MIL-STD-1553 Test and Simulation
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0811
-+device.name           BU-65572I1 MIL-STD-1553 Test and Simulation
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0812
-+device.name           BU-65572I2 MIL-STD-1553 Test and Simulation
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0881
-+device.name           BU-65570T1 MIL-STD-1553 Test and Simulation
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0882
-+device.name           BU-65570T2 MIL-STD-1553 Test and Simulation
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0891
-+device.name           BU-65572T1 MIL-STD-1553 Test and Simulation
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0892
-+device.name           BU-65572T2 MIL-STD-1553 Test and Simulation
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0901
-+device.name           BU-65565C1 MIL-STD-1553 Data Bus
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0902
-+device.name           BU-65565C2 MIL-STD-1553 Data Bus
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0903
-+device.name           BU-65565C3 MIL-STD-1553 Data Bus
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0904
-+device.name           BU-65565C4 MIL-STD-1553 Data Bus
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0b01
-+device.name           BU-65569I1 MIL-STD-1553 Data Bus
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0b02
-+device.name           BU-65569I2 MIL-STD-1553 Data Bus
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0b03
-+device.name           BU-65569I3 MIL-STD-1553 Data Bus
-
- vendor.id             pci 0x4ddc
-&device.id             pci 0x0b04
-+device.name           BU-65569I4 MIL-STD-1553 Data Bus
-
- vendor.id             pci 0x5046
-+vendor.name           GemTek Technology Corporation
-
- vendor.id             pci 0x5046
-&device.id             pci 0x1001
-+device.name           PCI Radio
-
- vendor.id             pci 0x5053
-+vendor.name           Voyetra Technologies
-
- vendor.id             pci 0x5053
-&device.id             pci 0x2010
-+device.name           Daytona Audio Adapter
-
- vendor.id             pci 0x5136
-+vendor.name           S S Technologies
-
- vendor.id             pci 0x5143
-+vendor.name           Qualcomm Inc
-
- vendor.id             pci 0x5145
-+vendor.name           Ensoniq (Old)
-
- vendor.id             pci 0x5145
-&device.id             pci 0x3031
-+device.name           Concert AudioPCI
-
- vendor.id             pci 0x5168
-+vendor.name           Animation Technologies Inc.
-
- vendor.id             pci 0x5301
-+vendor.name           Alliance Semiconductor Corp.
-
- vendor.id             pci 0x5301
-&device.id             pci 0x0001
-+device.name           ProMotion aT3D
-
- vendor.id             pci 0x5333
-+vendor.name           S3 Inc.
-
- vendor.id             pci 0x5333
-&device.id             pci 0x0551
-+device.name           Plato/PX (system)
-
- vendor.id             pci 0x5333
-&device.id             pci 0x5631
-+device.name           86c325 [ViRGE]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8800
-+device.name           86c866 [Vision 866]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8801
-+device.name           86c964 [Vision 964]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8810
-+device.name           86c764_0 [Trio 32 vers 0]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8811
-+device.name           86c764/765 [Trio32/64/64V+]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8812
-+device.name           86cM65 [Aurora64V+]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8813
-+device.name           86c764_3 [Trio 32/64 vers 3]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8814
-+device.name           86c767 [Trio 64UV+]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8815
-+device.name           86cM65 [Aurora 128]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x883d
-+device.name           86c988 [ViRGE/VX]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8870
-+device.name           FireGL
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8880
-+device.name           86c868 [Vision 868 VRAM] vers 0
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8881
-+device.name           86c868 [Vision 868 VRAM] vers 1
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8882
-+device.name           86c868 [Vision 868 VRAM] vers 2
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8883
-+device.name           86c868 [Vision 868 VRAM] vers 3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88b0
-+device.name           86c928 [Vision 928 VRAM] vers 0
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88b1
-+device.name           86c928 [Vision 928 VRAM] vers 1
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88b2
-+device.name           86c928 [Vision 928 VRAM] vers 2
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88b3
-+device.name           86c928 [Vision 928 VRAM] vers 3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88c0
-+device.name           86c864 [Vision 864 DRAM] vers 0
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88c1
-+device.name           86c864 [Vision 864 DRAM] vers 1
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88c2
-+device.name           86c864 [Vision 864-P DRAM] vers 2
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88c3
-+device.name           86c864 [Vision 864-P DRAM] vers 3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88d0
-+device.name           86c964 [Vision 964 VRAM] vers 0
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88d1
-+device.name           86c964 [Vision 964 VRAM] vers 1
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88d2
-+device.name           86c964 [Vision 964-P VRAM] vers 2
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88d3
-+device.name           86c964 [Vision 964-P VRAM] vers 3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88f0
-+device.name           86c968 [Vision 968 VRAM] rev 0
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88f1
-+device.name           86c968 [Vision 968 VRAM] rev 1
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88f2
-+device.name           86c968 [Vision 968 VRAM] rev 2
-
- vendor.id             pci 0x5333
-&device.id             pci 0x88f3
-+device.name           86c968 [Vision 968 VRAM] rev 3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8900
-+device.name           86c755 [Trio 64V2/DX]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8900
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x8900
-+subdevice.name                86C775 Trio64V2/DX
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8901
-+device.name           86c775/86c785 [Trio 64V2/DX or /GX]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8901
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x8901
-+subdevice.name                86C775 Trio64V2/DX, 86C785 Trio64V2/GX
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8902
-+device.name           Plato/PX
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8903
-+device.name           Trio 3D business multimedia
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8904
-+device.name           Trio 64 3D
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8904
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x00db
-+subdevice.name                Integrated Trio3D
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8904
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x8904
-+subdevice.name                86C365 Trio3D AGP
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8905
-+device.name           Trio 64V+ family
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8906
-+device.name           Trio 64V+ family
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8907
-+device.name           Trio 64V+ family
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8908
-+device.name           Trio 64V+ family
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8909
-+device.name           Trio 64V+ family
-
- vendor.id             pci 0x5333
-&device.id             pci 0x890a
-+device.name           Trio 64V+ family
-
- vendor.id             pci 0x5333
-&device.id             pci 0x890b
-+device.name           Trio 64V+ family
-
- vendor.id             pci 0x5333
-&device.id             pci 0x890c
-+device.name           Trio 64V+ family
-
- vendor.id             pci 0x5333
-&device.id             pci 0x890d
-+device.name           Trio 64V+ family
-
- vendor.id             pci 0x5333
-&device.id             pci 0x890e
-+device.name           Trio 64V+ family
-
- vendor.id             pci 0x5333
-&device.id             pci 0x890f
-+device.name           Trio 64V+ family
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a01
-+device.name           ViRGE/DX or /GX
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a01
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb032
-+subdevice.name                ViRGE/GX
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a01
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x1617
-+subdevice.name                Nitro 3D
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a01
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x1717
-+subdevice.name                Nitro 3D
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a01
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x8a01
-+subdevice.name                ViRGE/DX
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a10
-+device.name           ViRGE/GX2
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a10
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x8a10
-+subdevice.name                Stealth 3D 4000
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a13
-+device.name           86c368 [Trio 3D/2X]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a13
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x8a13
-+subdevice.name                Trio3D/2X
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a20
-+device.name           86c794 [Savage 3D]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a20
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x8a20
-+subdevice.name                86C391 Savage3D
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a21
-+device.name           86c390 [Savage 3D/MV]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a21
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x8a21
-+subdevice.name                86C390 Savage3D/MV
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-+device.name           Savage 4
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8068
-+subdevice.name                Savage 4
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8069
-+subdevice.name                Savage 4
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8110
-+subdevice.name                Savage4 LT
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x0018
-+subdevice.name                SR9 8Mb SDRAM
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x002a
-+subdevice.name                SR9 Pro 16Mb SDRAM
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x003a
-+subdevice.name                SR9 Pro 32Mb SDRAM
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x105d
-&subdevice.id          pci 0x092f
-+subdevice.name                SR9 Pro+ 16Mb SGRAM
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4207
-+subdevice.name                Stealth III S540
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4800
-+subdevice.name                Stealth III S540
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4807
-+subdevice.name                SpeedStar A90
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4808
-+subdevice.name                Stealth III S540
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4809
-+subdevice.name                Stealth III S540
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x480e
-+subdevice.name                Stealth III S540
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4904
-+subdevice.name                Stealth III S520
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4905
-+subdevice.name                SpeedStar A200
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4a09
-+subdevice.name                Stealth III S540
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4a0b
-+subdevice.name                Stealth III S540 Xtreme
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4a0f
-+subdevice.name                Stealth III S540
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x4e01
-+subdevice.name                Stealth III S540
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x101d
-+subdevice.name                3d Blaster Savage 4
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x1102
-&subdevice.id          pci 0x101e
-+subdevice.name                3d Blaster Savage 4
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x8100
-+subdevice.name                86C394-397 Savage4 SDRAM 100
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x8110
-+subdevice.name                86C394-397 Savage4 SDRAM 110
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x8125
-+subdevice.name                86C394-397 Savage4 SDRAM 125
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x8143
-+subdevice.name                86C394-397 Savage4 SDRAM 143
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x8a22
-+subdevice.name                86C394-397 Savage4
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x8a2e
-+subdevice.name                86C394-397 Savage4 32bit
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x9125
-+subdevice.name                86C394-397 Savage4 SGRAM 125
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-&subvendor.id          pci 0x5333
-&subdevice.id          pci 0x9143
-+subdevice.name                86C394-397 Savage4 SGRAM 143
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a23
-+device.name           Savage 4
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a25
-+device.name           ProSavage PM133
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a26
-+device.name           ProSavage KM133
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c00
-+device.name           ViRGE/M3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c01
-+device.name           ViRGE/MX
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c01
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                ViRGE/MX
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c02
-+device.name           ViRGE/MX+
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c03
-+device.name           ViRGE/MX+MV
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c10
-+device.name           86C270-294 Savage/MX-MV
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c11
-+device.name           82C270-294 Savage/MX
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c12
-+device.name           86C270-294 Savage/IX-MV
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c12
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x017f
-+subdevice.name                ThinkPad T20
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c13
-+device.name           86C270-294 Savage/IX
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c13
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Magnia Z310
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c22
-+device.name           SuperSavage MX/128
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c24
-+device.name           SuperSavage MX/64
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c26
-+device.name           SuperSavage MX/64C
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2a
-+device.name           SuperSavage IX/128 SDR
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2b
-+device.name           SuperSavage IX/128 DDR
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2c
-+device.name           SuperSavage IX/64 SDR
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2d
-+device.name           SuperSavage IX/64 DDR
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2e
-+device.name           SuperSavage IX/C SDR
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01fc
-+subdevice.name                ThinkPad T23 (2647-4MG)
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2f
-+device.name           SuperSavage IX/C DDR
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d01
-+device.name           86C380 [ProSavageDDR K4M266]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d02
-+device.name           VT8636A [ProSavage KN133] AGP4X VGA Controller (TwisterK)
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d03
-+device.name           VT8751 [ProSavageDDR P4M266]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d04
-+device.name           VT8375 [ProSavage8 KM266/KL266]
-
- vendor.id             pci 0x5333
-&device.id             pci 0x9102
-+device.name           86C410 Savage 2000
-
- vendor.id             pci 0x5333
-&device.id             pci 0x9102
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x5932
-+subdevice.name                Viper II Z200
-
- vendor.id             pci 0x5333
-&device.id             pci 0x9102
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x5934
-+subdevice.name                Viper II Z200
-
- vendor.id             pci 0x5333
-&device.id             pci 0x9102
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x5952
-+subdevice.name                Viper II Z200
-
- vendor.id             pci 0x5333
-&device.id             pci 0x9102
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x5954
-+subdevice.name                Viper II Z200
-
- vendor.id             pci 0x5333
-&device.id             pci 0x9102
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x5a35
-+subdevice.name                Viper II Z200
-
- vendor.id             pci 0x5333
-&device.id             pci 0x9102
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x5a37
-+subdevice.name                Viper II Z200
-
- vendor.id             pci 0x5333
-&device.id             pci 0x9102
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x5a55
-+subdevice.name                Viper II Z200
-
- vendor.id             pci 0x5333
-&device.id             pci 0x9102
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x5a57
-+subdevice.name                Viper II Z200
-
- vendor.id             pci 0x5333
-&device.id             pci 0xca00
-+device.name           SonicVibes
-
- vendor.id             pci 0x544c
-+vendor.name           Teralogic Inc
-
- vendor.id             pci 0x544c
-&device.id             pci 0x0350
-+device.name           TL880-based HDTV/ATSC tuner
-
- vendor.id             pci 0x5455
-+vendor.name           Technische University Berlin
-
- vendor.id             pci 0x5455
-&device.id             pci 0x4458
-+device.name           S5933
-
- vendor.id             pci 0x5519
-+vendor.name           Cnet Technologies, Inc.
-
- vendor.id             pci 0x5544
-+vendor.name           Dunord Technologies
-
- vendor.id             pci 0x5544
-&device.id             pci 0x0001
-+device.name           I-30xx Scanner Interface
-
- vendor.id             pci 0x5555
-+vendor.name           Genroco, Inc
-
- vendor.id             pci 0x5555
-&device.id             pci 0x0003
-+device.name           TURBOstor HFP-832 [HiPPI NIC]
-
- vendor.id             pci 0x5654
-+vendor.name           VoiceTronix Pty Ltd
-
- vendor.id             pci 0x5654
-&device.id             pci 0x3132
-+device.name           OpenSwitch12
-
- vendor.id             pci 0x5700
-+vendor.name           Netpower
-
- vendor.id             pci 0x5851
-+vendor.name           Exacq Technologies
-
- vendor.id             pci 0x6356
-+vendor.name           UltraStor
-
- vendor.id             pci 0x6374
-+vendor.name           c't Magazin fuer Computertechnik
-
- vendor.id             pci 0x6374
-&device.id             pci 0x6773
-+device.name           GPPCI
-
- vendor.id             pci 0x6409
-+vendor.name           Logitec Corp.
-
- vendor.id             pci 0x6666
-+vendor.name           Decision Computer International Co.
-
- vendor.id             pci 0x6666
-&device.id             pci 0x0001
-+device.name           PCCOM4
-
- vendor.id             pci 0x6666
-&device.id             pci 0x0002
-+device.name           PCCOM8
-
- vendor.id             pci 0x7604
-+vendor.name           O.N. Electronic Co Ltd.
-
- vendor.id             pci 0x7bde
-+vendor.name           MIDAC Corporation
-
- vendor.id             pci 0x7fed
-+vendor.name           PowerTV
-
- vendor.id             pci 0x8008
-+vendor.name           Quancom Electronic GmbH
-
- vendor.id             pci 0x8008
-&device.id             pci 0x0010
-+device.name           WDOG1 [PCI-Watchdog 1]
-
- vendor.id             pci 0x8008
-&device.id             pci 0x0011
-+device.name           PWDOG2 [PCI-Watchdog 2]
-
- vendor.id             pci 0x807d
-+vendor.name           Asustek Computer, Inc.
-
- vendor.id             pci 0x8086
-+vendor.name           Intel Corporation
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0007
-+device.name           82379AB
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0008
-+device.name           Extended Express System Support Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0008
-&subvendor.id          pci 0x0008
-&subdevice.id          pci 0x1000
-+subdevice.name                WorldMark 4300 INCA ASIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0039
-+device.name           21145 Fast Ethernet
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0122
-+device.name           82437FX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0309
-+device.name           80303 I/O Processor PCI-to-PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x030d
-+device.name           80312 I/O Companion Chip PCI-to-PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0326
-+device.name           6700/6702PXH I/OxAPIC Interrupt Controller A
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0327
-+device.name           6700PXH I/OxAPIC Interrupt Controller B
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0329
-+device.name           6700PXH PCI Express-to-PCI Bridge A
-
- vendor.id             pci 0x8086
-&device.id             pci 0x032a
-+device.name           6700PXH PCI Express-to-PCI Bridge B
-
- vendor.id             pci 0x8086
-&device.id             pci 0x032c
-+device.name           6702PXH PCI Express-to-PCI Bridge A
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0330
-+device.name           80332 [Dobson] I/O processor
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0331
-+device.name           80332 [Dobson] I/O processor
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0332
-+device.name           80332 [Dobson] I/O processor
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0333
-+device.name           80332 [Dobson] I/O processor
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0334
-+device.name           80332 [Dobson] I/O processor
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0335
-+device.name           80331 [Lindsay] I/O processor
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0336
-+device.name           80331 [Lindsay] I/O processor
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0340
-+device.name           41210 [Lanai] Serial to Parallel PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0341
-+device.name           41210 [Lanai] Serial to Parallel PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0482
-+device.name           82375EB/SB PCI to EISA Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0483
-+device.name           82424TX/ZX [Saturn] CPU to PCI bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0484
-+device.name           82378ZB/IB, 82379AB (SIO, SIO.A) PCI to ISA Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0486
-+device.name           82425EX/ZX [Aries] PCIset with ISA bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x04a3
-+device.name           82434LX/NX [Mercury/Neptune] Processor to PCI bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x04d0
-+device.name           82437FX [Triton FX]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0500
-+device.name           E8870 Processor bus control
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0501
-+device.name           E8870 Memory controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0502
-+device.name           E8870 Scalability Port 0
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0503
-+device.name           E8870 Scalability Port 1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0510
-+device.name           E8870IO Hub Interface Port 0 registers (8-bit compatibility port)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0511
-+device.name           E8870IO Hub Interface Port 1 registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0512
-+device.name           E8870IO Hub Interface Port 2 registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0513
-+device.name           E8870IO Hub Interface Port 3 registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0514
-+device.name           E8870IO Hub Interface Port 4 registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0515
-+device.name           E8870IO General SIOH registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0516
-+device.name           E8870IO RAS registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0530
-+device.name           E8870SP Scalability Port 0 registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0531
-+device.name           E8870SP Scalability Port 1 registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0532
-+device.name           E8870SP Scalability Port 2 registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0533
-+device.name           E8870SP Scalability Port 3 registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0534
-+device.name           E8870SP Scalability Port 4 registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0535
-+device.name           E8870SP Scalability Port 5 registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0536
-+device.name           E8870SP Interleave registers 0 and 1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0537
-+device.name           E8870SP Interleave registers 2 and 3
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0600
-+device.name           RAID Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0600
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x01c1
-+subdevice.name                ICP Vortex GDT8546RZ
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0600
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x01f7
-+subdevice.name                SCRU32
-
- vendor.id             pci 0x8086
-&device.id             pci 0x061f
-+device.name           80303 I/O Processor
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0960
-+device.name           80960RP [i960 RP Microprocessor/Bridge]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0962
-+device.name           80960RM [i960RM Bridge]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x0964
-+device.name           80960RP [i960 RP Microprocessor/Bridge]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1000
-+device.name           82542 Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1000
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb0df
-+subdevice.name                Compaq NC6132 Gigabit Module
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1000
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb0e0
-+subdevice.name                Compaq NC6133 Gigabit Module
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1000
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb123
-+subdevice.name                Compaq NC6134 Gigabit NIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1000
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0119
-+subdevice.name                Netfinity Gigabit Ethernet SX Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1000
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1000
-+subdevice.name                PRO/1000 Gigabit Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1001
-+device.name           82543GC Gigabit Ethernet Controller (Fiber)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1001
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x004a
-+subdevice.name                Compaq NC6136 Gigabit Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1001
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01ea
-+subdevice.name                Netfinity Gigabit Ethernet SX Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1001
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1002
-+subdevice.name                PRO/1000 F Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1001
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1003
-+subdevice.name                PRO/1000 F Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1002
-+device.name           Pro 100 LAN+Modem 56 Cardbus II
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1002
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x200e
-+subdevice.name                Pro 100 LAN+Modem 56 Cardbus II
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1002
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2013
-+subdevice.name                Pro 100 SR Mobile Combo Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1002
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2017
-+subdevice.name                Pro 100 S Combo Mobile Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1004
-+device.name           82543GC Gigabit Ethernet Controller (Copper)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1004
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0049
-+subdevice.name                Compaq NC7132 Gigabit Upgrade Module
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1004
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb1a4
-+subdevice.name                Compaq NC7131 Gigabit Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1004
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x10f2
-+subdevice.name                Gigabit Ethernet Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1004
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1004
-+subdevice.name                PRO/1000 T Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1004
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2004
-+subdevice.name                PRO/1000 T Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1008
-+device.name           82544EI Gigabit Ethernet Controller (Copper)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1008
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0269
-+subdevice.name                iSeries 1000/100/10 Ethernet Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1008
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x011c
-+subdevice.name                PRO/1000 XT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1008
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1107
-+subdevice.name                PRO/1000 XT Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1008
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2107
-+subdevice.name                PRO/1000 XT Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1008
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2110
-+subdevice.name                PRO/1000 XT Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1008
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3108
-+subdevice.name                PRO/1000 XT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1009
-+device.name           82544EI Gigabit Ethernet Controller (Fiber)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1009
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0268
-+subdevice.name                iSeries Gigabit Ethernet Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1009
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1109
-+subdevice.name                PRO/1000 XF Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1009
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2109
-+subdevice.name                PRO/1000 XF Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100c
-+device.name           82544GC Gigabit Ethernet Controller (Copper)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100c
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1112
-+subdevice.name                PRO/1000 T Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100c
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2112
-+subdevice.name                PRO/1000 T Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100d
-+device.name           82544GC Gigabit Ethernet Controller (LOM)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100d
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0123
-+subdevice.name                PRO/1000 XT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100d
-&subvendor.id          pci 0x1079
-&subdevice.id          pci 0x891f
-+subdevice.name                82544GC Based Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100d
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1080
-+subdevice.name                CT8 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100d
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x110d
-+subdevice.name                82544GC Based Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100e
-+device.name           82540EM Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0265
-+subdevice.name                PRO/1000 MT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0267
-+subdevice.name                PRO/1000 MT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x026a
-+subdevice.name                PRO/1000 MT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100e
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x002e
-+subdevice.name                Optiplex GX260
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100e
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0151
-+subdevice.name                PRO/1000 MT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100e
-&subvendor.id          pci 0x107b
-&subdevice.id          pci 0x8920
-+subdevice.name                PRO/1000 MT Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100e
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x001e
-+subdevice.name                PRO/1000 MT Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100e
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x002e
-+subdevice.name                PRO/1000 MT Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100f
-+device.name           82545EM Gigabit Ethernet Controller (Copper)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100f
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0269
-+subdevice.name                iSeries 1000/100/10 Ethernet Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100f
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x028e
-+subdevice.name                PRO/1000 MT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100f
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1000
-+subdevice.name                PRO/1000 MT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x100f
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1001
-+subdevice.name                PRO/1000 MT Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1010
-+device.name           82546EB Gigabit Ethernet Controller (Copper)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1010
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x027c
-+subdevice.name                PRO/1000 MT Dual Port Network Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1010
-&subvendor.id          pci 0x18fb
-&subdevice.id          pci 0x7872
-+subdevice.name                RESlink-X
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1010
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1080
-+subdevice.name                CT8 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1010
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10a0
-+subdevice.name                CA3/CR3 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1010
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1011
-+subdevice.name                PRO/1000 MT Dual Port Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1010
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x101a
-+subdevice.name                PRO/1000 MT Dual Port Network Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1010
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3424
-+subdevice.name                SE7501HG2 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1011
-+device.name           82545EM Gigabit Ethernet Controller (Fiber)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1011
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0268
-+subdevice.name                iSeries Gigabit Ethernet Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1011
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1002
-+subdevice.name                PRO/1000 MF Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1011
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1003
-+subdevice.name                PRO/1000 MF Server Adapter (LX)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1012
-+device.name           82546EB Gigabit Ethernet Controller (Fiber)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1012
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1012
-+subdevice.name                PRO/1000 MF Dual Port Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1013
-+device.name           82541EI Gigabit Ethernet Controller (Copper)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1013
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0013
-+subdevice.name                PRO/1000 MT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1013
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1013
-+subdevice.name                IBM ThinkCentre Network Card
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1013
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1113
-+subdevice.name                PRO/1000 MT Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1014
-+device.name           82541ER Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1015
-+device.name           82540EM Gigabit Ethernet Controller (LOM)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1016
-+device.name           82540EP Gigabit Ethernet Controller (LOM)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1016
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x052c
-+subdevice.name                PRO/1000 MT Mobile Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1016
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                PRO/1000 MT Mobile Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1016
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1016
-+subdevice.name                PRO/1000 MT Mobile Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1017
-+device.name           82540EP Gigabit Ethernet Controller (LOM)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1017
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1017
-+subdevice.name                PR0/1000 MT Desktop Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1018
-+device.name           82541EI Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1018
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1018
-+subdevice.name                PRO/1000 MT Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1019
-+device.name           82547EI Gigabit Ethernet Controller (LOM)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1019
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x1019
-+subdevice.name                GA-8IPE1000 Pro2 motherboard (865PE)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1019
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1019
-+subdevice.name                PRO/1000 CT Desktop Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1019
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x301f
-+subdevice.name                D865PERL mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1019
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3427
-+subdevice.name                S875WP1-E mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x101d
-+device.name           82546EB Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x101d
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1000
-+subdevice.name                PRO/1000 MT Quad Port Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x101e
-+device.name           82540EP Gigabit Ethernet Controller (Mobile)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x101e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0549
-+subdevice.name                PRO/1000 MT Mobile Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x101e
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                PRO/1000 MT Mobile Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x101e
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x101e
-+subdevice.name                PRO/1000 MT Mobile Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1026
-+device.name           82545GM Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1026
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1000
-+subdevice.name                PRO/1000 MT Server Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1026
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1001
-+subdevice.name                PRO/1000 MT Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1026
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1002
-+subdevice.name                PRO/1000 MT Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1026
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1026
-+subdevice.name                PRO/1000 MT Server Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1027
-+device.name           82545GM Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1027
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1001
-+subdevice.name                PRO/1000 MF Server Adapter(LX)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1027
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1002
-+subdevice.name                PRO/1000 MF Server Adapter(LX)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1027
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1003
-+subdevice.name                PRO/1000 MF Server Adapter(LX)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1027
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1027
-+subdevice.name                PRO/1000 MF Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1028
-+device.name           82545GM Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1028
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1028
-+subdevice.name                PRO/1000 MB Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1029
-+device.name           82559 Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1030
-+device.name           82559 InBusiness 10/100
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1031
-+device.name           82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1031
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0209
-+subdevice.name                ThinkPad A/T/X Series
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1031
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80e7
-+subdevice.name                Vaio PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1031
-&subvendor.id          pci 0x107b
-&subdevice.id          pci 0x5350
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1031
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1031
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0xc000
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1031
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0xc001
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1031
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0xc003
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1031
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0xc006
-+subdevice.name                vpr Matrix 170B4
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1032
-+device.name           82801CAM (ICH3) PRO/100 VE Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1033
-+device.name           82801CAM (ICH3) PRO/100 VM (LOM) Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1034
-+device.name           82801CAM (ICH3) PRO/100 VM Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1035
-+device.name           82801CAM (ICH3)/82562EH (LOM)  Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1036
-+device.name           82801CAM (ICH3) 82562EH Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1037
-+device.name           82801CAM (ICH3) Chipset Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1038
-+device.name           82801CAM (ICH3) PRO/100 VM (KM) Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1039
-+device.name           82801DB PRO/100 VE (LOM) Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1039
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0267
-+subdevice.name                NetVista A30p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x103a
-+device.name           82801DB PRO/100 VE (CNR) Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x103b
-+device.name           82801DB PRO/100 VM (LOM) Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x103c
-+device.name           82801DB PRO/100 VM (CNR) Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x103d
-+device.name           82801DB PRO/100 VE (MOB) Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x103e
-+device.name           82801DB PRO/100 VM (MOB) Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1040
-+device.name           536EP Data Fax Modem
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1040
-&subvendor.id          pci 0x16be
-&subdevice.id          pci 0x1040
-+subdevice.name                V.9X DSP Data Fax Modem
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1043
-+device.name           PRO/Wireless LAN 2100 3B Mini PCI Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1043
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2527
-+subdevice.name                MIM2000/Centrino
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1048
-+device.name           PRO/10GbE LR Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1048
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0xa01f
-+subdevice.name                PRO/10GbE LR Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1048
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0xa11f
-+subdevice.name                PRO/10GbE LR Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1050
-+device.name           82562EZ 10/100 Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1050
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x728c
-+subdevice.name                865PE Neo2 (MS-6728)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1050
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x758c
-+subdevice.name                MS-6758 (875P Neo)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1050
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3427
-+subdevice.name                S875WP1-E mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1051
-+device.name           82801EB/ER (ICH5/ICH5R) integrated LAN Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1059
-+device.name           82551QM Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1064
-+device.name           82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1065
-+device.name           82562ET/EZ/GT/GZ - PRO/100 VE Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1066
-+device.name           82562 EM/EX/GX - PRO/100 VM (LOM) Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1067
-+device.name           82562 EM/EX/GX - PRO/100 VM Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1068
-+device.name           82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller Mobile
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1069
-+device.name           82562 EM/EX/GX - PRO/100 VM (LOM) Ethernet Controller Mobile
-
- vendor.id             pci 0x8086
-&device.id             pci 0x106a
-+device.name           82562G \t- PRO/100 VE (LOM) Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x106b
-+device.name           82562G \t- PRO/100 VE Ethernet Controller Mobile
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1075
-+device.name           82547GI Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1075
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0165
-+subdevice.name                PowerEdge 750
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1075
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0075
-+subdevice.name                PRO/1000 CT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1075
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1075
-+subdevice.name                PRO/1000 CT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1076
-+device.name           82541GI/PI Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1076
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0165
-+subdevice.name                PowerEdge 750
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1076
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0076
-+subdevice.name                PRO/1000 MT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1076
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1076
-+subdevice.name                PRO/1000 MT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1076
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1176
-+subdevice.name                PRO/1000 MT Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1076
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1276
-+subdevice.name                PRO/1000 MT Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1077
-+device.name           82541GI Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1077
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                PRO/1000 MT Mobile Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1077
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0077
-+subdevice.name                PRO/1000 MT Mobile Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1077
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1077
-+subdevice.name                PRO/1000 MT Mobile Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1078
-+device.name           82541EI Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1078
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1078
-+subdevice.name                PRO/1000 MT Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1079
-+device.name           82546GB Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1079
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12a6
-+subdevice.name                HP Dual Port 1000Base-T [A9900A]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1079
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12cf
-+subdevice.name                HP Core Dual Port 1000Base-T [AB352A]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1079
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1090
-+subdevice.name                Cx9 / Vx9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1079
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10b0
-+subdevice.name                CL9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1079
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0079
-+subdevice.name                PRO/1000 MT Dual Port Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1079
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1079
-+subdevice.name                PRO/1000 MT Dual Port Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1079
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1179
-+subdevice.name                PRO/1000 MT Dual Port Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1079
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x117a
-+subdevice.name                PRO/1000 MT Dual Port Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x107a
-+device.name           82546GB Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x107a
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12a8
-+subdevice.name                HP Dual Port 1000base-SX [A9899A]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x107a
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x107a
-+subdevice.name                PRO/1000 MF Dual Port Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x107a
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x127a
-+subdevice.name                PRO/1000 MF Dual Port Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x107b
-+device.name           82546GB Gigabit Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x107b
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x007b
-+subdevice.name                PRO/1000 MB Dual Port Server Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x107b
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x107b
-+subdevice.name                PRO/1000 MB Dual Port Server Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1107
-+device.name           PRO/1000 MF Server Adapter (LX)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1130
-+device.name           82815 815 Chipset Host Bridge and Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1130
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x1016
-+subdevice.name                Travelmate 612 TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1130
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8027
-+subdevice.name                TUSL2-C Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1130
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80df
-+subdevice.name                Vaio PCG-FX403
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1130
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4532
-+subdevice.name                D815EEA2 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1130
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4557
-+subdevice.name                D815EGEW Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1131
-+device.name           82815 815 Chipset AGP Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1132
-+device.name           82815 CGC [Chipset Graphics Controller]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1132
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x1016
-+subdevice.name                Travelmate 612 TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1132
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80df
-+subdevice.name                Vaio PCG-FX403
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1132
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4532
-+subdevice.name                D815EEA2 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1132
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4557
-+subdevice.name                D815EGEW Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1161
-+device.name           82806AA PCI64 Hub Advanced Programmable Interrupt Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1161
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1161
-+subdevice.name                82806AA PCI64 Hub APIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1162
-+device.name           Xscale 80200 Big Endian Companion Chip
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1200
-+device.name           Intel IXP1200 Network Processor
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1200
-&subvendor.id          pci 0x172a
-&subdevice.id          pci 0x0000
-+subdevice.name                AEP SSL Accelerator
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1209
-+device.name           8255xER/82551IT Fast Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1209
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1050
-+subdevice.name                CT7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1209
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1051
-+subdevice.name                CE7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1209
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1070
-+subdevice.name                PC6 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1221
-+device.name           82092AA PCI to PCMCIA Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1222
-+device.name           82092AA IDE Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1223
-+device.name           SAA7116
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1225
-+device.name           82452KX/GX [Orion]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1226
-+device.name           82596 PRO/10 PCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1227
-+device.name           82865 EtherExpress PRO/100A
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1228
-+device.name           82556 EtherExpress PRO/100 Smart
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-+device.name           82557/8/9 [Ethernet Pro 100]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x3001
-+subdevice.name                82559 Fast Ethernet LOM with Alert on LAN*
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x3002
-+subdevice.name                82559 Fast Ethernet LOM with Alert on LAN*
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x3003
-+subdevice.name                82559 Fast Ethernet LOM with Alert on LAN*
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x3004
-+subdevice.name                82559 Fast Ethernet LOM with Alert on LAN*
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x3005
-+subdevice.name                82559 Fast Ethernet LOM with Alert on LAN*
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x3006
-+subdevice.name                82559 Fast Ethernet LOM with Alert on LAN*
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x3007
-+subdevice.name                82559 Fast Ethernet LOM with Alert on LAN*
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb01e
-+subdevice.name                Compaq NC3120 Fast Ethernet NIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb01f
-+subdevice.name                Compaq NC3122 Fast Ethernet NIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb02f
-+subdevice.name                Compaq NC1120 Ethernet NIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb04a
-+subdevice.name                Compaq 10/100 TX PCI Intel WOL UTP Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb0c6
-+subdevice.name                Compaq NC3161 Fast Ethernet NIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb0c7
-+subdevice.name                Compaq NC3160 Fast Ethernet NIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb0d7
-+subdevice.name                Compaq NC3121 Fast Ethernet NIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb0dd
-+subdevice.name                Compaq NC3131 Fast Ethernet NIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb0de
-+subdevice.name                Compaq NC3132 Fast Ethernet Module
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb0e1
-+subdevice.name                Compaq NC3133 Fast Ethernet Module
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb134
-+subdevice.name                Compaq NC3163 Fast Ethernet NIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb13c
-+subdevice.name                Compaq NC3162 Fast Ethernet NIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb144
-+subdevice.name                Compaq NC3123 Fast Ethernet NIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb163
-+subdevice.name                Compaq NC3134 Fast Ethernet NIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb164
-+subdevice.name                Compaq NC3135 Fast Ethernet Upgrade Module
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb1a4
-+subdevice.name                NC7131 Gigabit Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x005c
-+subdevice.name                82558B Ethernet Pro 10/100
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01bc
-+subdevice.name                82559 Fast Ethernet LAN On Motherboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01f1
-+subdevice.name                10/100 Ethernet Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01f2
-+subdevice.name                10/100 Ethernet Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0207
-+subdevice.name                Ethernet Pro/100 S
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0232
-+subdevice.name                10/100 Dual Port Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x023a
-+subdevice.name                ThinkPad R30
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x105c
-+subdevice.name                Netfinity 10/100
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x2205
-+subdevice.name                ThinkPad A22p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x305c
-+subdevice.name                10/100 EtherJet Management Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x405c
-+subdevice.name                10/100 EtherJet Adapter with Alert on LAN
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x505c
-+subdevice.name                10/100 EtherJet Secure Management Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x605c
-+subdevice.name                10/100 EtherJet Secure Management Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x705c
-+subdevice.name                10/100 Netfinity 10/100 Ethernet Security Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x805c
-+subdevice.name                10/100 Netfinity 10/100 Ethernet Security Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x009b
-+subdevice.name                PowerEdge 2500/2550
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00ce
-+subdevice.name                PowerEdge 1400
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8000
-+subdevice.name                PC-9821X-B06
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8016
-+subdevice.name                PK-UG-X006
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x801f
-+subdevice.name                PK-UG-X006
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8026
-+subdevice.name                PK-UG-X006
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8063
-+subdevice.name                82559-based Fast Ethernet Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x8064
-+subdevice.name                82559-based Fast Ethernet Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10c0
-+subdevice.name                NetServer 10/100TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10c3
-+subdevice.name                NetServer 10/100TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10ca
-+subdevice.name                NetServer 10/100TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10cb
-+subdevice.name                NetServer 10/100TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10e3
-+subdevice.name                NetServer 10/100TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10e4
-+subdevice.name                NetServer 10/100TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x1200
-+subdevice.name                NetServer 10/100TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x10c3
-&subdevice.id          pci 0x1100
-+subdevice.name                SmartEther100 SC1100
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1115
-+subdevice.name                8255x-based Ethernet Adapter (10/100)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1143
-+subdevice.name                8255x-based Ethernet Adapter (10/100)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                8255x-based Ethernet Adapter (10/100)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0002
-+subdevice.name                PCI FastEther LAN on Docker
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0003
-+subdevice.name                8255x-based Fast Ethernet
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2560
-+subdevice.name                AT-2560 100
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1259
-&subdevice.id          pci 0x2561
-+subdevice.name                AT-2560 100 FX Ethernet Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1266
-&subdevice.id          pci 0x0001
-+subdevice.name                NE10/100 Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x13e9
-&subdevice.id          pci 0x1000
-+subdevice.name                6221L-4U
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0x2501
-+subdevice.name                SEM-2000 MiniPCI LAN Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0x2502
-+subdevice.name                SEM-2100IL MiniPCI LAN Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x1668
-&subdevice.id          pci 0x1100
-+subdevice.name                EtherExpress PRO/100B (TX) (MiniPCI Ethernet+Modem)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1080
-+subdevice.name                CT8 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0001
-+subdevice.name                EtherExpress PRO/100B (TX)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0002
-+subdevice.name                EtherExpress PRO/100B (T4)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0003
-+subdevice.name                EtherExpress PRO/10+
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0004
-+subdevice.name                EtherExpress PRO/100 WfM
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0005
-+subdevice.name                82557 10/100
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0006
-+subdevice.name                82557 10/100 with Wake on LAN
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0007
-+subdevice.name                82558 10/100 Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0008
-+subdevice.name                82558 10/100 with Wake on LAN
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0009
-+subdevice.name                EtherExpress PRO/100+
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x000a
-+subdevice.name                EtherExpress PRO/100+ Management Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x000b
-+subdevice.name                EtherExpress PRO/100+
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x000c
-+subdevice.name                EtherExpress PRO/100+ Management Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x000d
-+subdevice.name                EtherExpress PRO/100+ Alert On LAN II* Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x000e
-+subdevice.name                EtherExpress PRO/100+ Management Adapter with Alert On LAN*
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x000f
-+subdevice.name                EtherExpress PRO/100 Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0010
-+subdevice.name                EtherExpress PRO/100 S Management Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0011
-+subdevice.name                EtherExpress PRO/100 S Management Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0012
-+subdevice.name                EtherExpress PRO/100 S Advanced Management Adapter (D)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0013
-+subdevice.name                EtherExpress PRO/100 S Advanced Management Adapter (E)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0030
-+subdevice.name                EtherExpress PRO/100  Management Adapter with Alert On LAN* GC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0031
-+subdevice.name                EtherExpress PRO/100 Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0040
-+subdevice.name                EtherExpress PRO/100 S Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0041
-+subdevice.name                EtherExpress PRO/100 S Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0042
-+subdevice.name                EtherExpress PRO/100 Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0050
-+subdevice.name                EtherExpress PRO/100 S Desktop Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1009
-+subdevice.name                EtherExpress PRO/100+ Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x100c
-+subdevice.name                EtherExpress PRO/100+ Server Adapter (PILA8470B)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1012
-+subdevice.name                EtherExpress PRO/100 S Server Adapter (D)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1013
-+subdevice.name                EtherExpress PRO/100 S Server Adapter (E)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1015
-+subdevice.name                EtherExpress PRO/100 S Dual Port Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1017
-+subdevice.name                EtherExpress PRO/100+ Dual Port Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1030
-+subdevice.name                EtherExpress PRO/100+ Management Adapter with Alert On LAN* G Server
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1040
-+subdevice.name                EtherExpress PRO/100 S Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1041
-+subdevice.name                EtherExpress PRO/100 S Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1042
-+subdevice.name                EtherExpress PRO/100 Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1050
-+subdevice.name                EtherExpress PRO/100 S Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1051
-+subdevice.name                EtherExpress PRO/100 Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1052
-+subdevice.name                EtherExpress PRO/100 Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x10f0
-+subdevice.name                EtherExpress PRO/100+ Dual Port Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2009
-+subdevice.name                EtherExpress PRO/100 S Mobile Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x200d
-+subdevice.name                EtherExpress PRO/100 Cardbus
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x200e
-+subdevice.name                EtherExpress PRO/100 LAN+V90 Cardbus Modem
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x200f
-+subdevice.name                EtherExpress PRO/100 SR Mobile Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2010
-+subdevice.name                EtherExpress PRO/100 S Mobile Combo Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2013
-+subdevice.name                EtherExpress PRO/100 SR Mobile Combo Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2016
-+subdevice.name                EtherExpress PRO/100 S Mobile Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2017
-+subdevice.name                EtherExpress PRO/100 S Combo Mobile Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2018
-+subdevice.name                EtherExpress PRO/100 SR Mobile Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2019
-+subdevice.name                EtherExpress PRO/100 SR Combo Mobile Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2101
-+subdevice.name                EtherExpress PRO/100 P Mobile Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2102
-+subdevice.name                EtherExpress PRO/100 SP Mobile Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2103
-+subdevice.name                EtherExpress PRO/100 SP Mobile Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2104
-+subdevice.name                EtherExpress PRO/100 SP Mobile Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2105
-+subdevice.name                EtherExpress PRO/100 SP Mobile Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2106
-+subdevice.name                EtherExpress PRO/100 P Mobile Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2107
-+subdevice.name                EtherExpress PRO/100 Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2108
-+subdevice.name                EtherExpress PRO/100 Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2200
-+subdevice.name                EtherExpress PRO/100 P Mobile Combo Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2201
-+subdevice.name                EtherExpress PRO/100 P Mobile Combo Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2202
-+subdevice.name                EtherExpress PRO/100 SP Mobile Combo Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2203
-+subdevice.name                EtherExpress PRO/100+ MiniPCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2204
-+subdevice.name                EtherExpress PRO/100+ MiniPCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2205
-+subdevice.name                EtherExpress PRO/100 SP Mobile Combo Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2206
-+subdevice.name                EtherExpress PRO/100 SP Mobile Combo Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2207
-+subdevice.name                EtherExpress PRO/100 SP Mobile Combo Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2208
-+subdevice.name                EtherExpress PRO/100 P Mobile Combo Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2402
-+subdevice.name                EtherExpress PRO/100+ MiniPCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2407
-+subdevice.name                EtherExpress PRO/100+ MiniPCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2408
-+subdevice.name                EtherExpress PRO/100+ MiniPCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2409
-+subdevice.name                EtherExpress PRO/100+ MiniPCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x240f
-+subdevice.name                EtherExpress PRO/100+ MiniPCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2410
-+subdevice.name                EtherExpress PRO/100+ MiniPCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2411
-+subdevice.name                EtherExpress PRO/100+ MiniPCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2412
-+subdevice.name                EtherExpress PRO/100+ MiniPCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x2413
-+subdevice.name                EtherExpress PRO/100+ MiniPCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3000
-+subdevice.name                82559 Fast Ethernet LAN on Motherboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3001
-+subdevice.name                82559 Fast Ethernet LOM with Basic Alert on LAN*
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3002
-+subdevice.name                82559 Fast Ethernet LOM with Alert on LAN II*
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3006
-+subdevice.name                EtherExpress PRO/100 S Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3007
-+subdevice.name                EtherExpress PRO/100 S Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3008
-+subdevice.name                EtherExpress PRO/100 Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3010
-+subdevice.name                EtherExpress PRO/100 S Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3011
-+subdevice.name                EtherExpress PRO/100 S Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3012
-+subdevice.name                EtherExpress PRO/100 Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1229
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3411
-+subdevice.name                SDS2 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x122d
-+device.name           430FX - 82437FX TSC [Triton I]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x122e
-+device.name           82371FB PIIX ISA [Triton I]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1230
-+device.name           82371FB PIIX IDE [Triton I]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1231
-+device.name           DSVD Modem
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1234
-+device.name           430MX - 82371MX Mobile PCI I/O IDE Xcelerator (MPIIX)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1235
-+device.name           430MX - 82437MX Mob. System Ctrlr (MTSC) & 82438MX Data Path (MTDP)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1237
-+device.name           440FX - 82441FX PMC [Natoma]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1239
-+device.name           82371FB PIIX IDE Interface
-
- vendor.id             pci 0x8086
-&device.id             pci 0x123b
-+device.name           82380PB PCI to PCI Docking Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x123c
-+device.name           82380AB (MISA) Mobile PCI-to-ISA Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x123d
-+device.name           683053 Programmable Interrupt Device
-
- vendor.id             pci 0x8086
-&device.id             pci 0x123e
-+device.name           82466GX (IHPC) Integrated Hot-Plug Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x123f
-+device.name           82466GX Integrated Hot-Plug Controller (IHPC)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1240
-+device.name           82752 (752) AGP Graphics Accelerator
-
- vendor.id             pci 0x8086
-&device.id             pci 0x124b
-+device.name           82380FB (MPCI2) Mobile Docking Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1250
-+device.name           430HX - 82439HX TXC [Triton II]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1360
-+device.name           82806AA PCI64 Hub PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1361
-+device.name           82806AA PCI64 Hub Controller (HRes)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1361
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1361
-+subdevice.name                82806AA PCI64 Hub Controller (HRes)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1361
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x8000
-+subdevice.name                82806AA PCI64 Hub Controller (HRes)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1460
-+device.name           82870P2 P64H2 Hub PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1461
-+device.name           82870P2 P64H2 I/OxAPIC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1461
-&subvendor.id          pci 0x15d9
-&subdevice.id          pci 0x3480
-+subdevice.name                P4DP6
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1461
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1090
-+subdevice.name                Cx9 / Vx9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1462
-+device.name           82870P2 P64H2 Hot Plug Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-+device.name           80960RP [i960RP Microprocessor]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0431
-+subdevice.name                MegaRAID 431 RAID Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0438
-+subdevice.name                MegaRAID 438 Ultra2 LVD RAID Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0466
-+subdevice.name                MegaRAID 466 Express Plus RAID Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0467
-+subdevice.name                MegaRAID 467 Enterprise 1500 RAID Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0490
-+subdevice.name                MegaRAID 490 Express 300 RAID Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x0762
-+subdevice.name                MegaRAID 762 Express RAID Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x09a0
-+subdevice.name                PowerEdge Expandable RAID Controller 2/SC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0467
-+subdevice.name                PowerEdge Expandable RAID Controller 2/DC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x1111
-+subdevice.name                PowerEdge Expandable RAID Controller 2/SC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x03a2
-+subdevice.name                MegaRAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10c6
-+subdevice.name                MegaRAID 438, HP NetRAID-3Si
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10c7
-+subdevice.name                MegaRAID T5, Integrated HP NetRAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10cc
-+subdevice.name                MegaRAID, Integrated HP NetRAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10cd
-+subdevice.name                HP NetRAID-1Si
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x0000
-+subdevice.name                SuperTrak
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x2168
-+subdevice.name                SuperTrak Pro
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x5168
-+subdevice.name                SuperTrak66/100
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1111
-&subdevice.id          pci 0x1111
-+subdevice.name                MegaRAID 466, PowerEdge Expandable RAID Controller 2/SC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1111
-&subdevice.id          pci 0x1112
-+subdevice.name                PowerEdge Expandable RAID Controller 2/SC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0x113c
-&subdevice.id          pci 0x03a2
-+subdevice.name                MegaRAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0xe4bf
-&subdevice.id          pci 0x1010
-+subdevice.name                CG1-RADIO
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0xe4bf
-&subdevice.id          pci 0x1020
-+subdevice.name                CU2-QUARTET
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0xe4bf
-&subdevice.id          pci 0x1040
-+subdevice.name                CU1-CHORUS
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1960
-&subvendor.id          pci 0xe4bf
-&subdevice.id          pci 0x3100
-+subdevice.name                CX1-BAND
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1962
-+device.name           80960RM [i960RM Microprocessor]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1962
-&subvendor.id          pci 0x105a
-&subdevice.id          pci 0x0000
-+subdevice.name                SuperTrak SX6000 I2O CPU
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1a21
-+device.name           82840 840 (Carmel) Chipset Host Bridge (Hub A)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1a23
-+device.name           82840 840 (Carmel) Chipset AGP Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1a24
-+device.name           82840 840 (Carmel) Chipset PCI Bridge (Hub B)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1a30
-+device.name           82845 845 (Brookdale) Chipset Host Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1a30
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x010e
-+subdevice.name                Optiplex GX240
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1a31
-+device.name           82845 845 (Brookdale) Chipset AGP Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2410
-+device.name           82801AA ISA Bridge (LPC)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2411
-+device.name           82801AA IDE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2412
-+device.name           82801AA USB
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2413
-+device.name           82801AA SMBus
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2415
-+device.name           82801AA AC'97 Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2415
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0095
-+subdevice.name                Precision Workstation 220 Integrated Digital Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2415
-&subvendor.id          pci 0x11d4
-&subdevice.id          pci 0x0040
-+subdevice.name                SoundMAX Integrated Digital Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2415
-&subvendor.id          pci 0x11d4
-&subdevice.id          pci 0x0048
-+subdevice.name                SoundMAX Integrated Digital Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2415
-&subvendor.id          pci 0x11d4
-&subdevice.id          pci 0x5340
-+subdevice.name                SoundMAX Integrated Digital Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2416
-+device.name           82801AA AC'97 Modem
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2418
-+device.name           82801AA PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2420
-+device.name           82801AB ISA Bridge (LPC)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2421
-+device.name           82801AB IDE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2422
-+device.name           82801AB USB
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2423
-+device.name           82801AB SMBus
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2425
-+device.name           82801AB AC'97 Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2425
-&subvendor.id          pci 0x11d4
-&subdevice.id          pci 0x0040
-+subdevice.name                SoundMAX Integrated Digital Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2425
-&subvendor.id          pci 0x11d4
-&subdevice.id          pci 0x0048
-+subdevice.name                SoundMAX Integrated Digital Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2426
-+device.name           82801AB AC'97 Modem
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2428
-+device.name           82801AB PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2440
-+device.name           82801BA ISA Bridge (LPC)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2442
-+device.name           82801BA/BAM USB (Hub #1)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2442
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01c6
-+subdevice.name                Netvista A40/A40p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2442
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x1016
-+subdevice.name                Travelmate 612 TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2442
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x010e
-+subdevice.name                Optiplex GX240
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2442
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8027
-+subdevice.name                TUSL2-C Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2442
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80df
-+subdevice.name                Vaio PCG-FX403
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2442
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x0507
-+subdevice.name                TH7II-RAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2442
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4532
-+subdevice.name                D815EEA2 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2442
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4557
-+subdevice.name                D815EGEW Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2443
-+device.name           82801BA/BAM SMBus
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2443
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01c6
-+subdevice.name                Netvista A40/A40p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2443
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x1016
-+subdevice.name                Travelmate 612 TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2443
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x010e
-+subdevice.name                Optiplex GX240
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2443
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8027
-+subdevice.name                TUSL2-C Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2443
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80df
-+subdevice.name                Vaio PCG-FX403
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2443
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x0507
-+subdevice.name                TH7II-RAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2443
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4532
-+subdevice.name                D815EEA2 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2443
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4557
-+subdevice.name                D815EGEW Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2444
-+device.name           82801BA/BAM USB (Hub #2)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2444
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x1016
-+subdevice.name                Travelmate 612 TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2444
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x010e
-+subdevice.name                Optiplex GX240
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2444
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8027
-+subdevice.name                TUSL2-C Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2444
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80df
-+subdevice.name                Vaio PCG-FX403
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2444
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x0507
-+subdevice.name                TH7II-RAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2444
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4532
-+subdevice.name                D815EEA2 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2445
-+device.name           82801BA/BAM AC'97 Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2445
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01c6
-+subdevice.name                Netvista A40/A40p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2445
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x1016
-+subdevice.name                Travelmate 612 TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2445
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80df
-+subdevice.name                Vaio PCG-FX403
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2445
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x3370
-+subdevice.name                STAC9721 AC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2445
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x0507
-+subdevice.name                TH7II-RAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2445
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4557
-+subdevice.name                D815EGEW Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2446
-+device.name           82801BA/BAM AC'97 Modem
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2446
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x1016
-+subdevice.name                Travelmate 612 TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2446
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80df
-+subdevice.name                Vaio PCG-FX403
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2448
-+device.name           82801 Mobile PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-+device.name           82801BA/BAM/CA/CAM Ethernet Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0012
-+subdevice.name                EtherExpress PRO/100 VM
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0091
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01ce
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01dc
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01eb
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01ec
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0202
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0205
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0217
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0234
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x023d
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0244
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0245
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0265
-+subdevice.name                PRO/100 VE Desktop Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0267
-+subdevice.name                PRO/100 VE Desktop Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x026a
-+subdevice.name                PRO/100 VE Desktop Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x109f
-&subdevice.id          pci 0x315d
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x109f
-&subdevice.id          pci 0x3181
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0xff01
-+subdevice.name                PRO/100 VE Network Connection
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x1186
-&subdevice.id          pci 0x7801
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0x2602
-+subdevice.name                HomePNA 1M CNR
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3010
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3011
-+subdevice.name                EtherExpress PRO/100 VM
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3012
-+subdevice.name                82562EH based Phoneline
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3013
-+subdevice.name                EtherExpress PRO/100 VE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3014
-+subdevice.name                EtherExpress PRO/100 VM
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3015
-+subdevice.name                82562EH based Phoneline
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3016
-+subdevice.name                EtherExpress PRO/100 P Mobile Combo
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3017
-+subdevice.name                EtherExpress PRO/100 P Mobile
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2449
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3018
-+subdevice.name                EtherExpress PRO/100
-
- vendor.id             pci 0x8086
-&device.id             pci 0x244a
-+device.name           82801BAM IDE U100
-
- vendor.id             pci 0x8086
-&device.id             pci 0x244a
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x1016
-+subdevice.name                Travelmate 612TX
-
- vendor.id             pci 0x8086
-&device.id             pci 0x244a
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80df
-+subdevice.name                Vaio PCG-FX403
-
- vendor.id             pci 0x8086
-&device.id             pci 0x244b
-+device.name           82801BA IDE U100
-
- vendor.id             pci 0x8086
-&device.id             pci 0x244b
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x01c6
-+subdevice.name                Netvista A40/A40p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x244b
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x010e
-+subdevice.name                Optiplex GX240
-
- vendor.id             pci 0x8086
-&device.id             pci 0x244b
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x8027
-+subdevice.name                TUSL2-C Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x244b
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x0507
-+subdevice.name                TH7II-RAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x244b
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4532
-+subdevice.name                D815EEA2 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x244b
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4557
-+subdevice.name                D815EGEW Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x244c
-+device.name           82801BAM ISA Bridge (LPC)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x244e
-+device.name           82801 PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x244e
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0267
-+subdevice.name                NetVista A30p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2450
-+device.name           82801E ISA Bridge (LPC)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2452
-+device.name           82801E USB
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2453
-+device.name           82801E SMBus
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2459
-+device.name           82801E Ethernet Controller 0
-
- vendor.id             pci 0x8086
-&device.id             pci 0x245b
-+device.name           82801E IDE U100
-
- vendor.id             pci 0x8086
-&device.id             pci 0x245d
-+device.name           82801E Ethernet Controller 1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x245e
-+device.name           82801E PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2480
-+device.name           82801CA LPC Interface Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2482
-+device.name           82801CA/CAM USB (Hub #1)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2482
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0220
-+subdevice.name                ThinkPad A/T/X Series
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2482
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80e7
-+subdevice.name                VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2482
-&subvendor.id          pci 0x15d9
-&subdevice.id          pci 0x3480
-+subdevice.name                P4DP6
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2482
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1958
-+subdevice.name                vpr Matrix 170B4
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2482
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3424
-+subdevice.name                SE7501HG2 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2482
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4541
-+subdevice.name                Latitude C640
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2483
-+device.name           82801CA/CAM SMBus Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2483
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0220
-+subdevice.name                ThinkPad A/T/X Series
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2483
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80e7
-+subdevice.name                VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2483
-&subvendor.id          pci 0x15d9
-&subdevice.id          pci 0x3480
-+subdevice.name                P4DP6
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2483
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1958
-+subdevice.name                vpr Matrix 170B4
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2484
-+device.name           82801CA/CAM USB (Hub #2)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2484
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0220
-+subdevice.name                ThinkPad A/T/X Series
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2484
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80e7
-+subdevice.name                VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2484
-&subvendor.id          pci 0x15d9
-&subdevice.id          pci 0x3480
-+subdevice.name                P4DP6
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2484
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1958
-+subdevice.name                vpr Matrix 170B4
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2485
-+device.name           82801CA/CAM AC'97 Audio Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2485
-&subvendor.id          pci 0x1013
-&subdevice.id          pci 0x5959
-+subdevice.name                Crystal WMD Audio Codec
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2485
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0222
-+subdevice.name                ThinkPad T23 (2647-4MG) or A30/A30p (2652/2653)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2485
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0508
-+subdevice.name                ThinkPad T30
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2485
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x051c
-+subdevice.name                ThinkPad A/T/X Series
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2485
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80e7
-+subdevice.name                VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2485
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0xc006
-+subdevice.name                vpr Matrix 170B4
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2486
-+device.name           82801CA/CAM AC'97 Modem Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2486
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0223
-+subdevice.name                ThinkPad A/T/X Series
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2486
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0503
-+subdevice.name                ThinkPad R31 2656BBG
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2486
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x051a
-+subdevice.name                ThinkPad A/T/X Series
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2486
-&subvendor.id          pci 0x101f
-&subdevice.id          pci 0x1025
-+subdevice.name                Acer 620 Series
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2486
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80e7
-+subdevice.name                VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2486
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Toshiba Satellite 1110 Z15 internal Modem
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2486
-&subvendor.id          pci 0x134d
-&subdevice.id          pci 0x4c21
-+subdevice.name                Dell modem (Inspiron 2100, Latitude C640)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2486
-&subvendor.id          pci 0x144d
-&subdevice.id          pci 0x2115
-+subdevice.name                vpr Matrix 170B4 internal modem
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2486
-&subvendor.id          pci 0x14f1
-&subdevice.id          pci 0x5421
-+subdevice.name                MD56ORD V.92 MDC Modem
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2487
-+device.name           82801CA/CAM USB (Hub #3)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2487
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0220
-+subdevice.name                ThinkPad A/T/X Series
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2487
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80e7
-+subdevice.name                VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2487
-&subvendor.id          pci 0x15d9
-&subdevice.id          pci 0x3480
-+subdevice.name                P4DP6
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2487
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1958
-+subdevice.name                vpr Matrix 170B4
-
- vendor.id             pci 0x8086
-&device.id             pci 0x248a
-+device.name           82801CAM IDE U100
-
- vendor.id             pci 0x8086
-&device.id             pci 0x248a
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0220
-+subdevice.name                ThinkPad A/T/X Series
-
- vendor.id             pci 0x8086
-&device.id             pci 0x248a
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80e7
-+subdevice.name                VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-
- vendor.id             pci 0x8086
-&device.id             pci 0x248a
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x1958
-+subdevice.name                vpr Matrix 170B4
-
- vendor.id             pci 0x8086
-&device.id             pci 0x248a
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4541
-+subdevice.name                Latitude C640
-
- vendor.id             pci 0x8086
-&device.id             pci 0x248b
-+device.name           82801CA Ultra ATA Storage Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x248b
-&subvendor.id          pci 0x15d9
-&subdevice.id          pci 0x3480
-+subdevice.name                P4DP6
-
- vendor.id             pci 0x8086
-&device.id             pci 0x248c
-+device.name           82801CAM ISA Bridge (LPC)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c0
-+device.name           82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c0
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0267
-+subdevice.name                NetVista A30p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c0
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x5800
-+subdevice.name                845PE Max (MS-6580)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c1
-+device.name           82801DBL (ICH4-L) IDE Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c2
-+device.name           82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c2
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0267
-+subdevice.name                NetVista A30p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c2
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x005a
-+subdevice.name                TravelMate 290
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c2
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0126
-+subdevice.name                Optiplex GX260
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c2
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0163
-+subdevice.name                Latitude D505
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c2
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0890
-+subdevice.name                NC6000 laptop
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c2
-&subvendor.id          pci 0x1071
-&subdevice.id          pci 0x8160
-+subdevice.name                MIM2000
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c2
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x5800
-+subdevice.name                845PE Max (MS-6580)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c2
-&subvendor.id          pci 0x1509
-&subdevice.id          pci 0x2990
-+subdevice.name                Averatec 5110H laptop
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c2
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1090
-+subdevice.name                Cx9 / Vx9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c3
-+device.name           82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c3
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0267
-+subdevice.name                NetVista A30p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c3
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x005a
-+subdevice.name                TravelMate 290
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c3
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0126
-+subdevice.name                Optiplex GX260
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c3
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0890
-+subdevice.name                NC6000 laptop
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c3
-&subvendor.id          pci 0x1071
-&subdevice.id          pci 0x8160
-+subdevice.name                MIM2000
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c3
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x24c2
-+subdevice.name                GA-8PE667 Ultra
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c3
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x5800
-+subdevice.name                845PE Max (MS-6580)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c3
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1090
-+subdevice.name                Cx9 / Vx9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c4
-+device.name           82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c4
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0267
-+subdevice.name                NetVista A30p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c4
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x005a
-+subdevice.name                TravelMate 290
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c4
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0126
-+subdevice.name                Optiplex GX260
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c4
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0163
-+subdevice.name                Latitude D505
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c4
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0890
-+subdevice.name                NC6000 laptop
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c4
-&subvendor.id          pci 0x1071
-&subdevice.id          pci 0x8160
-+subdevice.name                MIM2000
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c4
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x5800
-+subdevice.name                845PE Max (MS-6580)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c4
-&subvendor.id          pci 0x1509
-&subdevice.id          pci 0x2990
-+subdevice.name                Averatec 5110H
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c4
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1090
-+subdevice.name                Cx9 / Vx9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c5
-+device.name           82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c5
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00b8
-+subdevice.name                Analog Devices Inc. codec [SoundMAX]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c5
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0267
-+subdevice.name                NetVista A30p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c5
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x005a
-+subdevice.name                TravelMate 290
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c5
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0163
-+subdevice.name                Latitude D505
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c5
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0890
-+subdevice.name                NC6000 laptop
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c5
-&subvendor.id          pci 0x1071
-&subdevice.id          pci 0x8160
-+subdevice.name                MIM2000
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c5
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0xa002
-+subdevice.name                GA-8PE667 Ultra
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c5
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x5800
-+subdevice.name                845PE Max (MS-6580)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c6
-+device.name           82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c6
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x005a
-+subdevice.name                TravelMate 290
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c6
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0890
-+subdevice.name                NC6000 laptop
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c6
-&subvendor.id          pci 0x1071
-&subdevice.id          pci 0x8160
-+subdevice.name                MIM2000
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c7
-+device.name           82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c7
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0267
-+subdevice.name                NetVista A30p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c7
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x005a
-+subdevice.name                TravelMate 290
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c7
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0126
-+subdevice.name                Optiplex GX260
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c7
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0163
-+subdevice.name                Latitude D505
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c7
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0890
-+subdevice.name                NC6000 laptop
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c7
-&subvendor.id          pci 0x1071
-&subdevice.id          pci 0x8160
-+subdevice.name                MIM2000
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c7
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x5800
-+subdevice.name                845PE Max (MS-6580)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c7
-&subvendor.id          pci 0x1509
-&subdevice.id          pci 0x2990
-+subdevice.name                Averatec 5110H
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24c7
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1090
-+subdevice.name                Cx9 / Vx9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24ca
-+device.name           82801DBM (ICH4-M) IDE Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24ca
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x005a
-+subdevice.name                TravelMate 290
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24ca
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0163
-+subdevice.name                Latitude D505
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24ca
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0890
-+subdevice.name                NC6000 laptop
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24ca
-&subvendor.id          pci 0x1071
-&subdevice.id          pci 0x8160
-+subdevice.name                MIM2000
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cb
-+device.name           82801DB (ICH4) IDE Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cb
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0267
-+subdevice.name                NetVista A30p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cb
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0126
-+subdevice.name                Optiplex GX260
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cb
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x24c2
-+subdevice.name                GA-8PE667 Ultra
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cb
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x5800
-+subdevice.name                845PE Max (MS-6580)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cb
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1090
-+subdevice.name                Cx9 / Vx9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cc
-+device.name           82801DBM (ICH4-M) LPC Interface Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cd
-+device.name           82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cd
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0267
-+subdevice.name                NetVista A30p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cd
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x005a
-+subdevice.name                TravelMate 290
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cd
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0126
-+subdevice.name                Optiplex GX260
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cd
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0163
-+subdevice.name                Latitude D505
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cd
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0890
-+subdevice.name                NC6000 laptop
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cd
-&subvendor.id          pci 0x1071
-&subdevice.id          pci 0x8160
-+subdevice.name                MIM2000
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cd
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x3981
-+subdevice.name                845PE Max (MS-6580)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cd
-&subvendor.id          pci 0x1509
-&subdevice.id          pci 0x1968
-+subdevice.name                Averatec 5110H
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24cd
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1090
-+subdevice.name                Cx9 / Vx9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d0
-+device.name           82801EB/ER (ICH5/ICH5R) LPC Interface Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d1
-+device.name           82801EB (ICH5) SATA Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d1
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12bc
-+subdevice.name                d530 CMT (DG746A)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d1
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x24d1
-+subdevice.name                GA-8IPE1000 Pro2 motherboard (865PE)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d1
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7280
-+subdevice.name                865PE Neo2 (MS-6728)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d1
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3427
-+subdevice.name                S875WP1-E mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d1
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x524c
-+subdevice.name                D865PERL mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d2
-+device.name           82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d2
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12bc
-+subdevice.name                d530 CMT (DG746A)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d2
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a6
-+subdevice.name                P4P800 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d2
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x24d2
-+subdevice.name                GA-8KNXP motherboard (875P)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d2
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7280
-+subdevice.name                865PE Neo2 (MS-6728)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d2
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3427
-+subdevice.name                S875WP1-E mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d2
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x524c
-+subdevice.name                D865PERL mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d3
-+device.name           82801EB/ER (ICH5/ICH5R) SMBus Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d3
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a6
-+subdevice.name                P4P800 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d3
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x24d2
-+subdevice.name                GA-8IPE1000 Pro2 motherboard (865PE)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d3
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7280
-+subdevice.name                865PE Neo2 (MS-6728)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d3
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3427
-+subdevice.name                S875WP1-E mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d3
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x524c
-+subdevice.name                D865PERL mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d4
-+device.name           82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d4
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12bc
-+subdevice.name                d530 CMT (DG746A)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d4
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a6
-+subdevice.name                P4P800 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d4
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x24d2
-+subdevice.name                GA-8IPE1000 Pro2 motherboard (865PE)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d4
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7280
-+subdevice.name                865PE Neo2 (MS-6728)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d4
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3427
-+subdevice.name                S875WP1-E mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d4
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x524c
-+subdevice.name                D865PERL mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d5
-+device.name           82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d5
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12bc
-+subdevice.name                Analog Devices codec [SoundMAX Integrated Digital Audio]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d5
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80f3
-+subdevice.name                P4P800 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d5
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0xa002
-+subdevice.name                GA-8KNXP motherboard (875P)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d5
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7280
-+subdevice.name                865PE Neo2 (MS-6728)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d5
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0xa000
-+subdevice.name                D865PERL mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d6
-+device.name           82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d7
-+device.name           82801EB/ER (ICH5/ICH5R) USB UHCI #3
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d7
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12bc
-+subdevice.name                d530 CMT (DG746A)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d7
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a6
-+subdevice.name                P4P800 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d7
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x24d2
-+subdevice.name                GA-8IPE1000 Pro2 motherboard (865PE)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d7
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7280
-+subdevice.name                865PE Neo2 (MS-6728)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d7
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3427
-+subdevice.name                S875WP1-E mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24d7
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x524c
-+subdevice.name                D865PERL mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24db
-+device.name           82801EB/ER (ICH5/ICH5R) IDE Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24db
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12bc
-+subdevice.name                d530 CMT (DG746A)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24db
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a6
-+subdevice.name                P4P800 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24db
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x24d2
-+subdevice.name                GA-8IPE1000 Pro2 motherboard (865PE)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24db
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7280
-+subdevice.name                865PE Neo2 (MS-6728)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24db
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7580
-+subdevice.name                MSI 875P
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24db
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3427
-+subdevice.name                S875WP1-E mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24db
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x524c
-+subdevice.name                D865PERL mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24dc
-+device.name           82801EB (ICH5) LPC Interface Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24dd
-+device.name           82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24dd
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x12bc
-+subdevice.name                d530 CMT (DG746A)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24dd
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a6
-+subdevice.name                P4P800 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24dd
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x5006
-+subdevice.name                GA-8IPE1000 Pro2 motherboard (865PE)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24dd
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7280
-+subdevice.name                865PE Neo2 (MS-6728)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24dd
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3427
-+subdevice.name                S875WP1-E mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24dd
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x524c
-+subdevice.name                D865PERL mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24de
-+device.name           82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24de
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80a6
-+subdevice.name                P4P800 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24de
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x24d2
-+subdevice.name                GA-8IPE1000 Pro2 motherboard (865PE)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24de
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7280
-+subdevice.name                865PE Neo2 (MS-6728)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24de
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3427
-+subdevice.name                S875WP1-E mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24de
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x524c
-+subdevice.name                D865PERL mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x24df
-+device.name           82801ER (ICH5R) SATA Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2500
-+device.name           82820 820 (Camino) Chipset Host Bridge (MCH)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2500
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0095
-+subdevice.name                Precision Workstation 220 Chipset
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2500
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x801c
-+subdevice.name                P3C-2000 system chipset
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2501
-+device.name           82820 820 (Camino) Chipset Host Bridge (MCH)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2501
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x801c
-+subdevice.name                P3C-2000 system chipset
-
- vendor.id             pci 0x8086
-&device.id             pci 0x250b
-+device.name           82820 820 (Camino) Chipset Host Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x250f
-+device.name           82820 820 (Camino) Chipset AGP Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2520
-+device.name           82805AA MTH Memory Translator Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2521
-+device.name           82804AA MRH-S Memory Repeater Hub for SDRAM
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2530
-+device.name           82850 850 (Tehama) Chipset Host Bridge (MCH)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2530
-&subvendor.id          pci 0x147b
-&subdevice.id          pci 0x0507
-+subdevice.name                TH7II-RAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2531
-+device.name           82860 860 (Wombat) Chipset Host Bridge (MCH)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2532
-+device.name           82850 850 (Tehama) Chipset AGP Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2533
-+device.name           82860 860 (Wombat) Chipset AGP Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2534
-+device.name           82860 860 (Wombat) Chipset PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2540
-+device.name           E7500 Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2540
-&subvendor.id          pci 0x15d9
-&subdevice.id          pci 0x3480
-+subdevice.name                P4DP6
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2541
-+device.name           E7500/E7501 Host RASUM Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2541
-&subvendor.id          pci 0x15d9
-&subdevice.id          pci 0x3480
-+subdevice.name                P4DP6
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2541
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1090
-+subdevice.name                Cx9 / Vx9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2541
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3424
-+subdevice.name                SE7501HG2 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2543
-+device.name           E7500/E7501 Hub Interface B PCI-to-PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2544
-+device.name           E7500/E7501 Hub Interface B RASUM Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2544
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1090
-+subdevice.name                Cx9 / Vx9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2545
-+device.name           E7500/E7501 Hub Interface C PCI-to-PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2546
-+device.name           E7500/E7501 Hub Interface C RASUM Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2547
-+device.name           E7500/E7501 Hub Interface D PCI-to-PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2548
-+device.name           E7500/E7501 Hub Interface D RASUM Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x254c
-+device.name           E7501 Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x254c
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1090
-+subdevice.name                Cx9 / Vx9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x254c
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3424
-+subdevice.name                SE7501HG2 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2550
-+device.name           E7505 Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2551
-+device.name           E7505/E7205 Series RAS Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2552
-+device.name           E7505/E7205 PCI-to-AGP Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2553
-+device.name           E7505 Hub Interface B PCI-to-PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2554
-+device.name           E7505 Hub Interface B PCI-to-PCI Bridge RAS Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x255d
-+device.name           E7205 Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2560
-+device.name           82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2560
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0126
-+subdevice.name                Optiplex GX260
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2560
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x2560
-+subdevice.name                GA-8PE667 Ultra
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2560
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x5800
-+subdevice.name                845PE Max (MS-6580)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2561
-+device.name           82845G/GL[Brookdale-G]/GE/PE Host-to-AGP Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2562
-+device.name           82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2562
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0267
-+subdevice.name                NetVista A30p
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2570
-+device.name           82865G/PE/P DRAM Controller/Host-Hub Interface
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2570
-&subvendor.id          pci 0x1043
-&subdevice.id          pci 0x80f2
-+subdevice.name                P4P800 Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2570
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x2570
-+subdevice.name                GA-8IPE1000 Pro2 motherboard (865PE)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2571
-+device.name           82865G/PE/P PCI to AGP Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2572
-+device.name           82865G Integrated Graphics Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2573
-+device.name           82865G/PE/P PCI to CSA Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2576
-+device.name           82865G/PE/P Processor to I/O Memory Interface
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2578
-+device.name           82875P/E7210 Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2578
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x2578
-+subdevice.name                GA-8KNXP motherboard (875P)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2578
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x7580
-+subdevice.name                MS-6758 (875P Neo)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2578
-&subvendor.id          pci 0x15d9
-&subdevice.id          pci 0x4580
-+subdevice.name                Super Micro Computer Inc. P4SCE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2579
-+device.name           82875P Processor to AGP Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x257b
-+device.name           82875P/E7210 Processor to PCI to CSA Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x257e
-+device.name           82875P/E7210 Processor to I/O Memory Interface
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2580
-+device.name           915G/P/GV Processor to I/O Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2581
-+device.name           915G/P/GV PCI Express Root Port
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2582
-+device.name           82915G/GV/910GL Express Chipset Family Graphics Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2582
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x1079
-+subdevice.name                Optiplex GX280
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2584
-+device.name           925X/XE Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2585
-+device.name           925X/XE PCI Express Root Port
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2588
-+device.name           E7220/E7221 Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2589
-+device.name           E7220/E7221 PCI Express Root Port
-
- vendor.id             pci 0x8086
-&device.id             pci 0x258a
-+device.name           E7221 Integrated Graphics Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2590
-+device.name           Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2591
-+device.name           Mobile 915GM/PM Express PCI Express Root Port
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2592
-+device.name           Mobile 915GM/GMS/910GML Express Graphics Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25a1
-+device.name           6300ESB LPC Interface Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25a2
-+device.name           6300ESB PATA Storage Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25a2
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10b0
-+subdevice.name                CL9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25a3
-+device.name           6300ESB SATA Storage Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25a3
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10b0
-+subdevice.name                CL9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25a4
-+device.name           6300ESB SMBus Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25a4
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10b0
-+subdevice.name                CL9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25a6
-+device.name           6300ESB AC'97 Audio Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25a6
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10b0
-+subdevice.name                CL9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25a7
-+device.name           6300ESB AC'97 Modem Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25a9
-+device.name           6300ESB USB Universal Host Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25a9
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10b0
-+subdevice.name                CL9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25aa
-+device.name           6300ESB USB Universal Host Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25aa
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10b0
-+subdevice.name                CL9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25ab
-+device.name           6300ESB Watchdog Timer
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25ab
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10b0
-+subdevice.name                CL9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25ac
-+device.name           6300ESB I/O Advanced Programmable Interrupt Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25ac
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10b0
-+subdevice.name                CL9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25ad
-+device.name           6300ESB USB2 Enhanced Host Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25ae
-+device.name           6300ESB 64-bit PCI-X Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x25b0
-+device.name           6300ESB SATA RAID Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2600
-+device.name           Server Hub Interface
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2601
-+device.name           Server Hub PCI Express x4 Port D
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2602
-+device.name           Server Hub PCI Express x4 Port C0
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2603
-+device.name           Server Hub PCI Express x4 Port C1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2604
-+device.name           Server Hub PCI Express x4 Port B0
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2605
-+device.name           Server Hub PCI Express x4 Port B1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2606
-+device.name           Server Hub PCI Express x4 Port A0
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2607
-+device.name           Server Hub PCI Express x4 Port A1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2608
-+device.name           Server Hub PCI Express x8 Port C
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2609
-+device.name           Server Hub PCI Express x8 Port B
-
- vendor.id             pci 0x8086
-&device.id             pci 0x260a
-+device.name           Server Hub PCI Express x8 Port A
-
- vendor.id             pci 0x8086
-&device.id             pci 0x260c
-+device.name           Server Hub IMI Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2610
-+device.name           Server Hub System Bus, Boot, and Interrupt Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2611
-+device.name           Server Hub Address Mapping Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2612
-+device.name           Server Hub RAS Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2613
-+device.name           Server Hub Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2614
-+device.name           Server Hub Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2615
-+device.name           Server Hub Miscellaneous Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2617
-+device.name           Server Hub Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2618
-+device.name           Server Hub Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2619
-+device.name           Server Hub Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x261a
-+device.name           Server Hub Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x261b
-+device.name           Server Hub Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x261c
-+device.name           Server Hub Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x261d
-+device.name           Server Hub Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x261e
-+device.name           Server Hub Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2620
-+device.name           External Memory Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2621
-+device.name           External Memory Bridge Control Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2622
-+device.name           External Memory Bridge Memory Interleaving Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2623
-+device.name           External Memory Bridge DDR Initialization and Calibration
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2624
-+device.name           External Memory Bridge Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2625
-+device.name           External Memory Bridge Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2626
-+device.name           External Memory Bridge Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2627
-+device.name           External Memory Bridge Reserved Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2640
-+device.name           82801FB/FR (ICH6/ICH6R) LPC Interface Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2641
-+device.name           82801FBM (ICH6M) LPC Interface Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2642
-+device.name           82801FW/FRW (ICH6W/ICH6RW) LPC Interface Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2651
-+device.name           82801FB/FW (ICH6/ICH6W) SATA Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2651
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0179
-+subdevice.name                Optiplex GX280
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2652
-+device.name           82801FR/FRW (ICH6R/ICH6RW) SATA Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2653
-+device.name           82801FBM (ICH6M) SATA Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2658
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2658
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0179
-+subdevice.name                Optiplex GX280
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2659
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2659
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0179
-+subdevice.name                Optiplex GX280
-
- vendor.id             pci 0x8086
-&device.id             pci 0x265a
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3
-
- vendor.id             pci 0x8086
-&device.id             pci 0x265a
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0179
-+subdevice.name                Optiplex GX280
-
- vendor.id             pci 0x8086
-&device.id             pci 0x265b
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4
-
- vendor.id             pci 0x8086
-&device.id             pci 0x265b
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0179
-+subdevice.name                Optiplex GX280
-
- vendor.id             pci 0x8086
-&device.id             pci 0x265c
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x265c
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0179
-+subdevice.name                Optiplex GX280
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2660
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2662
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2664
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2666
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2668
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x266a
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x266a
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0179
-+subdevice.name                Optiplex GX280
-
- vendor.id             pci 0x8086
-&device.id             pci 0x266c
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) LAN Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x266d
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x266e
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x266e
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0179
-+subdevice.name                Optiplex GX280
-
- vendor.id             pci 0x8086
-&device.id             pci 0x266f
-+device.name           82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2770
-+device.name           Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2771
-+device.name           PCI Express Graphics Port
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2772
-+device.name           Integrated Graphics Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2774
-+device.name           Workstation Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2775
-+device.name           PCI Express Graphics Port
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2776
-+device.name           Integrated Graphics Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2778
-+device.name           Server Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2779
-+device.name           PCI Express Root Port
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2782
-+device.name           82915G Express Chipset Family Graphics Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2792
-+device.name           Mobile 915GM/GMS/910GML Express Graphics Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27b1
-+device.name           Mobile I/O Controller Hub LPC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27b8
-+device.name           I/O Controller Hub LPC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27c0
-+device.name           I/O Controller Hub SATA cc=IDE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27c1
-+device.name           I/O Controller Hub SATA cc=AHCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27c2
-+device.name           I/O Controller Hub SATA cc=RAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27c3
-+device.name           I/O Controller Hub SATA cc=RAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27c4
-+device.name           Mobile I/O Controller Hub SATA cc=IDE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27c5
-+device.name           Mobile I/O Controller Hub SATA cc=AHCI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27c8
-+device.name           I/O Controller Hub UHCI USB #1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27c9
-+device.name           I/O Controller Hub UHCI USB #2
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27ca
-+device.name           I/O Controller Hub UHCI USB #3
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27cb
-+device.name           I/O Controller Hub UHCI USB #4
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27cc
-+device.name           I/O Controller Hub EHCI USB
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27d0
-+device.name           I/O Controller Hub PCI Express Port 1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27d2
-+device.name           I/O Controller Hub PCI Express Port 2
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27d4
-+device.name           I/O Controller Hub PCI Express Port 3
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27d6
-+device.name           I/O Controller Hub PCI Express Port 4
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27d8
-+device.name           I/O Controller Hub High Definition Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27da
-+device.name           I/O Controller Hub SMBus
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27dc
-+device.name           I/O Controller Hub LAN
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27dd
-+device.name           I/O Controller Hub AC'97 Modem
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27de
-+device.name           I/O Controller Hub AC'97 Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27df
-+device.name           I/O Controller Hub PATA
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27e0
-+device.name           I/O Controller Hub PCI Express Port 5
-
- vendor.id             pci 0x8086
-&device.id             pci 0x27e2
-+device.name           I/O Controller Hub PCI Express Port 6
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3092
-+device.name           Integrated RAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3200
-+device.name           GD31244 PCI-X SATA HBA
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3340
-+device.name           82855PM Processor to I/O Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3340
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x005a
-+subdevice.name                TravelMate 290
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3340
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x0890
-+subdevice.name                NC6000 laptop
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3341
-+device.name           82855PM Processor to AGP Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3575
-+device.name           82830 830 Chipset Host Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3575
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x021d
-+subdevice.name                ThinkPad A/T/X Series
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3575
-&subvendor.id          pci 0x104d
-&subdevice.id          pci 0x80e7
-+subdevice.name                VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3576
-+device.name           82830 830 Chipset AGP Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3577
-+device.name           82830 CGC [Chipset Graphics Controller]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3577
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0513
-+subdevice.name                ThinkPad A/T/X Series
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3578
-+device.name           82830 830 Chipset Host Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3580
-+device.name           82852/82855 GM/GME/PM/GMV Processor to I/O Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3580
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0163
-+subdevice.name                Latitude D505
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3580
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10b0
-+subdevice.name                CL9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3581
-+device.name           82852/82855 GM/GME/PM/GMV Processor to AGP Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3582
-+device.name           82852/855GM Integrated Graphics Device
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3582
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0163
-+subdevice.name                Latitude D505
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3582
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10b0
-+subdevice.name                CL9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3584
-+device.name           82852/82855 GM/GME/PM/GMV Processor to I/O Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3584
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0163
-+subdevice.name                Latitude D505
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3584
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10b0
-+subdevice.name                CL9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3585
-+device.name           82852/82855 GM/GME/PM/GMV Processor to I/O Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3585
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0163
-+subdevice.name                Latitude D505
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3585
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10b0
-+subdevice.name                CL9 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3590
-+device.name           E7520 Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3591
-+device.name           E7525/E7520 Error Reporting Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3592
-+device.name           E7320 Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3593
-+device.name           E7320 Error Reporting Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3594
-+device.name           E7520 DMA Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3595
-+device.name           E7525/E7520/E7320 PCI Express Port A
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3596
-+device.name           E7525/E7520/E7320 PCI Express Port A1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3597
-+device.name           E7525/E7520 PCI Express Port B
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3598
-+device.name           E7520 PCI Express Port B1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3599
-+device.name           E7520 PCI Express Port C
-
- vendor.id             pci 0x8086
-&device.id             pci 0x359a
-+device.name           E7520 PCI Express Port C1
-
- vendor.id             pci 0x8086
-&device.id             pci 0x359b
-+device.name           E7525/E7520/E7320 Extended Configuration Registers
-
- vendor.id             pci 0x8086
-&device.id             pci 0x359e
-+device.name           E7525 Memory Controller Hub
-
- vendor.id             pci 0x8086
-&device.id             pci 0x4220
-+device.name           PRO/Wireless 2200BG
-
- vendor.id             pci 0x8086
-&device.id             pci 0x4223
-+device.name           PRO/Wireless 2915ABG MiniPCI Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x5200
-+device.name           EtherExpress PRO/100 Intelligent Server
-
- vendor.id             pci 0x8086
-&device.id             pci 0x5201
-+device.name           EtherExpress PRO/100 Intelligent Server
-
- vendor.id             pci 0x8086
-&device.id             pci 0x5201
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0001
-+subdevice.name                EtherExpress PRO/100 Server Ethernet Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0x530d
-+device.name           80310 IOP [IO Processor]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7000
-+device.name           82371SB PIIX3 ISA [Natoma/Triton II]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7010
-+device.name           82371SB PIIX3 IDE [Natoma/Triton II]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7020
-+device.name           82371SB PIIX3 USB [Natoma/Triton II]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7030
-+device.name           430VX - 82437VX TVX [Triton VX]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7050
-+device.name           Intel Intercast Video Capture Card
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7100
-+device.name           430TX - 82439TX MTXC
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7110
-+device.name           82371AB/EB/MB PIIX4 ISA
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7110
-&subvendor.id          pci 0x15ad
-&subdevice.id          pci 0x1976
-+subdevice.name                virtualHW v3
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7111
-+device.name           82371AB/EB/MB PIIX4 IDE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7111
-&subvendor.id          pci 0x15ad
-&subdevice.id          pci 0x1976
-+subdevice.name                virtualHW v3
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7112
-+device.name           82371AB/EB/MB PIIX4 USB
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7112
-&subvendor.id          pci 0x15ad
-&subdevice.id          pci 0x1976
-+subdevice.name                virtualHW v3
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7113
-+device.name           82371AB/EB/MB PIIX4 ACPI
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7113
-&subvendor.id          pci 0x15ad
-&subdevice.id          pci 0x1976
-+subdevice.name                virtualHW v3
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7120
-+device.name           82810 GMCH [Graphics Memory Controller Hub]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7120
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1040
-+subdevice.name                CL7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7120
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1060
-+subdevice.name                PC7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7121
-+device.name           82810 CGC [Chipset Graphics Controller]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7121
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1040
-+subdevice.name                CL7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7121
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1060
-+subdevice.name                PC7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7121
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x4341
-+subdevice.name                Cayman (CA810) Mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7122
-+device.name           82810 DC-100 GMCH [Graphics Memory Controller Hub]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7123
-+device.name           82810 DC-100 CGC [Chipset Graphics Controller]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7124
-+device.name           82810E DC-133 GMCH [Graphics Memory Controller Hub]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7125
-+device.name           82810E DC-133 CGC [Chipset Graphics Controller]
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7126
-+device.name           82810 DC-133 System and Graphics Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7128
-+device.name           82810-M DC-100 System and Graphics Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x712a
-+device.name           82810-M DC-133 System and Graphics Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7180
-+device.name           440LX/EX - 82443LX/EX Host bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7181
-+device.name           440LX/EX - 82443LX/EX AGP bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7190
-+device.name           440BX/ZX/DX - 82443BX/ZX/DX Host bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7190
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0500
-+subdevice.name                Armada 1750 Laptop System Chipset
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7190
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xb110
-+subdevice.name                Armada M700/E500
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7190
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Toshiba Tecra 8100 Laptop System Chipset
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7190
-&subvendor.id          pci 0x15ad
-&subdevice.id          pci 0x1976
-+subdevice.name                virtualHW v3
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7190
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1050
-+subdevice.name                CT7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7190
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1051
-+subdevice.name                CE7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7191
-+device.name           440BX/ZX/DX - 82443BX/ZX/DX AGP bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7192
-+device.name           440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7192
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0460
-+subdevice.name                Armada 1700 Laptop System Chipset
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7192
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1000
-+subdevice.name                CC7/CR7/CP7/VC7/VP7/VR7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7194
-+device.name           82440MX Host Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7194
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x0000
-+subdevice.name                Versa Note Vxi
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7194
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x10a0
-+subdevice.name                CA3/CR3 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7195
-+device.name           82440MX AC'97 Audio Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7195
-&subvendor.id          pci 0x1033
-&subdevice.id          pci 0x80cc
-+subdevice.name                Versa Note VXi
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7195
-&subvendor.id          pci 0x10cf
-&subdevice.id          pci 0x1099
-+subdevice.name                QSound_SigmaTel Stac97 PCI Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7195
-&subvendor.id          pci 0x11d4
-&subdevice.id          pci 0x0040
-+subdevice.name                SoundMAX Integrated Digital Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7195
-&subvendor.id          pci 0x11d4
-&subdevice.id          pci 0x0048
-+subdevice.name                SoundMAX Integrated Digital Audio
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7196
-+device.name           82440MX AC'97 Modem Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7198
-+device.name           82440MX ISA Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7199
-+device.name           82440MX EIDE Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x719a
-+device.name           82440MX USB Universal Host Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x719b
-+device.name           82440MX Power Management Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x71a0
-+device.name           440GX - 82443GX Host bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x71a0
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1050
-+subdevice.name                CT7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x71a0
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1051
-+subdevice.name                CE7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x71a1
-+device.name           440GX - 82443GX AGP bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x71a2
-+device.name           440GX - 82443GX Host bridge (AGP disabled)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x71a2
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1000
-+subdevice.name                CC7/CR7/CP7/VC7/VP7/VR7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7600
-+device.name           82372FB PIIX5 ISA
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7601
-+device.name           82372FB PIIX5 IDE
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7602
-+device.name           82372FB PIIX5 USB
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7603
-+device.name           82372FB PIIX5 SMBus
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7800
-+device.name           82740 (i740) AGP Graphics Accelerator
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7800
-&subvendor.id          pci 0x003d
-&subdevice.id          pci 0x0008
-+subdevice.name                Starfighter AGP
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7800
-&subvendor.id          pci 0x003d
-&subdevice.id          pci 0x000b
-+subdevice.name                Starfighter AGP
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7800
-&subvendor.id          pci 0x1092
-&subdevice.id          pci 0x0100
-+subdevice.name                Stealth II G460
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7800
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x201a
-+subdevice.name                Lightspeed 740
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7800
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x202f
-+subdevice.name                Lightspeed 740
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7800
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0000
-+subdevice.name                Terminator 2x/i
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7800
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0100
-+subdevice.name                Intel740 Graphics Accelerator
-
- vendor.id             pci 0x8086
-&device.id             pci 0x84c4
-+device.name           450KX/GX [Orion] - 82454KX/GX PCI bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x84c5
-+device.name           450KX/GX [Orion] - 82453KX/GX Memory controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x84ca
-+device.name           450NX - 82451NX Memory & I/O Controller
-
- vendor.id             pci 0x8086
-&device.id             pci 0x84cb
-+device.name           450NX - 82454NX/84460GX PCI Expander Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0x84e0
-+device.name           460GX - 84460GX System Address Controller (SAC)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x84e1
-+device.name           460GX - 84460GX System Data Controller (SDC)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x84e2
-+device.name           460GX - 84460GX AGP Bridge (GXB function 2)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x84e3
-+device.name           460GX - 84460GX Memory Address Controller (MAC)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x84e4
-+device.name           460GX - 84460GX Memory Data Controller (MDC)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x84e6
-+device.name           460GX - 82466GX Wide and fast PCI eXpander Bridge (WXB)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x84ea
-+device.name           460GX - 84460GX AGP Bridge (GXB function 1)
-
- vendor.id             pci 0x8086
-&device.id             pci 0x8500
-+device.name           IXP4XX - Intel Network Processor family. IXP420, IXP421, IXP422, IXP425 and IXC1100
-
- vendor.id             pci 0x8086
-&device.id             pci 0x9000
-+device.name           IXP2000 Family Network Processor
-
- vendor.id             pci 0x8086
-&device.id             pci 0x9001
-+device.name           IXP2400 Network Processor
-
- vendor.id             pci 0x8086
-&device.id             pci 0x9004
-+device.name           IXP2800 Network Processor
-
- vendor.id             pci 0x8086
-&device.id             pci 0x9621
-+device.name           Integrated RAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x9622
-+device.name           Integrated RAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x9641
-+device.name           Integrated RAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0x96a1
-+device.name           Integrated RAID
-
- vendor.id             pci 0x8086
-&device.id             pci 0xa01f
-+device.name           PRO/10GbE LR Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0xa11f
-+device.name           PRO/10GbE LR Server Adapter
-
- vendor.id             pci 0x8086
-&device.id             pci 0xb152
-+device.name           21152 PCI-to-PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0xb154
-+device.name           21154 PCI-to-PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0xb555
-+device.name           21555 Non transparent PCI-to-PCI Bridge
-
- vendor.id             pci 0x8086
-&device.id             pci 0xb555
-&subvendor.id          pci 0x12d9
-&subdevice.id          pci 0x000a
-+subdevice.name                PCI VoIP Gateway
-
- vendor.id             pci 0x8086
-&device.id             pci 0xb555
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1050
-+subdevice.name                CT7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0xb555
-&subvendor.id          pci 0x4c53
-&subdevice.id          pci 0x1051
-+subdevice.name                CE7 mainboard
-
- vendor.id             pci 0x8086
-&device.id             pci 0xb555
-&subvendor.id          pci 0xe4bf
-&subdevice.id          pci 0x1000
-+subdevice.name                CC8-1-BLUES
-
- vendor.id             pci 0x8086
-&device.id             pci 0xffff
-+device.name           450NX/GX [Orion] - 82453KX/GX Memory controller [BUG]
-
- vendor.id             pci 0x8401
-+vendor.name           TRENDware International Inc.
-
- vendor.id             pci 0x8800
-+vendor.name           Trigem Computer Inc.
-
- vendor.id             pci 0x8800
-&device.id             pci 0x2008
-+device.name           Video assistent component
-
- vendor.id             pci 0x8866
-+vendor.name           T-Square Design Inc.
-
- vendor.id             pci 0x8888
-+vendor.name           Silicon Magic
-
- vendor.id             pci 0x8c4a
-+vendor.name           Winbond
-
- vendor.id             pci 0x8c4a
-&device.id             pci 0x1980
-+device.name           W89C940 misprogrammed [ne2k]
-
- vendor.id             pci 0x8e0e
-+vendor.name           Computone Corporation
-
- vendor.id             pci 0x8e2e
-+vendor.name           KTI
-
- vendor.id             pci 0x8e2e
-&device.id             pci 0x3000
-+device.name           ET32P2
-
- vendor.id             pci 0x9004
-+vendor.name           Adaptec
-
- vendor.id             pci 0x9004
-&device.id             pci 0x0078
-+device.name           AHA-2940U_CN
-
- vendor.id             pci 0x9004
-&device.id             pci 0x1078
-+device.name           AIC-7810
-
- vendor.id             pci 0x9004
-&device.id             pci 0x1160
-+device.name           AIC-1160 [Family Fibre Channel Adapter]
-
- vendor.id             pci 0x9004
-&device.id             pci 0x2178
-+device.name           AIC-7821
-
- vendor.id             pci 0x9004
-&device.id             pci 0x3860
-+device.name           AHA-2930CU
-
- vendor.id             pci 0x9004
-&device.id             pci 0x3b78
-+device.name           AHA-4844W/4844UW
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5075
-+device.name           AIC-755x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5078
-+device.name           AHA-7850
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5078
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7850
-+subdevice.name                AHA-2904/Integrated AIC-7850
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5175
-+device.name           AIC-755x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5178
-+device.name           AIC-7851
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5275
-+device.name           AIC-755x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5278
-+device.name           AIC-7852
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5375
-+device.name           AIC-755x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5378
-+device.name           AIC-7850
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5475
-+device.name           AIC-755x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5478
-+device.name           AIC-7850
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5575
-+device.name           AVA-2930
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5578
-+device.name           AIC-7855
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5647
-+device.name           ANA-7711 TCP Offload Engine
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5647
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7710
-+subdevice.name                ANA-7711F TCP Offload Engine - Optical
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5647
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7711
-+subdevice.name                ANA-7711LP TCP Offload Engine - Copper
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5675
-+device.name           AIC-755x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5678
-+device.name           AIC-7856
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5775
-+device.name           AIC-755x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5778
-+device.name           AIC-7850
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5800
-+device.name           AIC-5800
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5900
-+device.name           ANA-5910/5930/5940 ATM155 & 25 LAN Adapter
-
- vendor.id             pci 0x9004
-&device.id             pci 0x5905
-+device.name           ANA-5910A/5930A/5940A ATM Adapter
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6038
-+device.name           AIC-3860
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6075
-+device.name           AIC-1480 / APA-1480
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6075
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7560
-+subdevice.name                AIC-1480 / APA-1480 Cardbus
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6078
-+device.name           AIC-7860
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6178
-+device.name           AIC-7861
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6178
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7861
-+subdevice.name                AHA-2940AU Single
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6278
-+device.name           AIC-7860
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6378
-+device.name           AIC-7860
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6478
-+device.name           AIC-786x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6578
-+device.name           AIC-786x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6678
-+device.name           AIC-786x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6778
-+device.name           AIC-786x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-+device.name           ANA620xx/ANA69011A
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x0008
-+subdevice.name                ANA69011A/TX 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x0009
-+subdevice.name                ANA69011A/TX 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x0010
-+subdevice.name                ANA62022 2-port 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x0018
-+subdevice.name                ANA62044 4-port 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x0019
-+subdevice.name                ANA62044 4-port 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x0020
-+subdevice.name                ANA62022 2-port 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x0028
-+subdevice.name                ANA69011A/TX 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x8008
-+subdevice.name                ANA69011A/TX 64 bit 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x8009
-+subdevice.name                ANA69011A/TX 64 bit 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x8010
-+subdevice.name                ANA62022 2-port 64 bit 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x8018
-+subdevice.name                ANA62044 4-port 64 bit 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x8019
-+subdevice.name                ANA62044 4-port 64 bit 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x8020
-+subdevice.name                ANA62022 2-port 64 bit 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x6915
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x8028
-+subdevice.name                ANA69011A/TX 64 bit 10/100
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7078
-+device.name           AHA-294x / AIC-7870
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7178
-+device.name           AHA-2940/2940W / AIC-7871
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7278
-+device.name           AHA-3940/3940W / AIC-7872
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7378
-+device.name           AHA-3985 / AIC-7873
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7478
-+device.name           AHA-2944/2944W / AIC-7874
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7578
-+device.name           AHA-3944/3944W / AIC-7875
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7678
-+device.name           AHA-4944W/UW / AIC-7876
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7710
-+device.name           ANA-7711F Network Accelerator Card (NAC) - Optical
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7711
-+device.name           ANA-7711C Network Accelerator Card (NAC) - Copper
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7778
-+device.name           AIC-787x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7810
-+device.name           AIC-7810
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7815
-+device.name           AIC-7815 RAID+Memory Controller IC
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7815
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7815
-+subdevice.name                ARO-1130U2 RAID Controller
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7815
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7840
-+subdevice.name                AIC-7815 RAID+Memory Controller IC
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7850
-+device.name           AIC-7850
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7855
-+device.name           AHA-2930
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7860
-+device.name           AIC-7860
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7870
-+device.name           AIC-7870
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7871
-+device.name           AHA-2940
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7872
-+device.name           AHA-3940
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7873
-+device.name           AHA-3980
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7874
-+device.name           AHA-2944
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7880
-+device.name           AIC-7880P
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7890
-+device.name           AIC-7890
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7891
-+device.name           AIC-789x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7892
-+device.name           AIC-789x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7893
-+device.name           AIC-789x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7894
-+device.name           AIC-789x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7895
-+device.name           AHA-2940U/UW / AHA-39xx / AIC-7895
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7895
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7890
-+subdevice.name                AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7895
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7891
-+subdevice.name                AHA-2940U/2940UW Dual
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7895
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7892
-+subdevice.name                AHA-3940AU/AUW/AUWD/UWD
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7895
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7894
-+subdevice.name                AHA-3944AUWD
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7895
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7895
-+subdevice.name                AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7895
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7896
-+subdevice.name                AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7895
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7897
-+subdevice.name                AHA-2940U/2940UW Dual AHA-394xAU/AUW/AUWD AIC-7895B
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7896
-+device.name           AIC-789x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x7897
-+device.name           AIC-789x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8078
-+device.name           AIC-7880U
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8078
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7880
-+subdevice.name                AIC-7880P Ultra/Ultra Wide SCSI Chipset
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8178
-+device.name           AHA-2940U/UW/D / AIC-7881U
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8178
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7881
-+subdevice.name                AHA-2940UW SCSI Host Adapter
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8278
-+device.name           AHA-3940U/UW/UWD / AIC-7882U
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8378
-+device.name           AHA-3940U/UW / AIC-7883U
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8478
-+device.name           AHA-2944UW / AIC-7884U
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8578
-+device.name           AHA-3944U/UWD / AIC-7885
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8678
-+device.name           AHA-4944UW / AIC-7886
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8778
-+device.name           AHA-2940UW Pro / AIC-788x
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8778
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7887
-+subdevice.name                2940UW Pro Ultra-Wide SCSI Controller
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8878
-+device.name           AHA-2930UW / AIC-7888
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8878
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7888
-+subdevice.name                AHA-2930UW SCSI Controller
-
- vendor.id             pci 0x9004
-&device.id             pci 0x8b78
-+device.name           ABA-1030
-
- vendor.id             pci 0x9004
-&device.id             pci 0xec78
-+device.name           AHA-4944W/UW
-
- vendor.id             pci 0x9005
-+vendor.name           Adaptec
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0010
-+device.name           AHA-2940U2/U2W
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0010
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x2180
-+subdevice.name                AHA-2940U2 SCSI Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0010
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x8100
-+subdevice.name                AHA-2940U2B SCSI Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0010
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0xa100
-+subdevice.name                AHA-2940U2B SCSI Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0010
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0xa180
-+subdevice.name                AHA-2940U2W SCSI Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0010
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0xe100
-+subdevice.name                AHA-2950U2B SCSI Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0011
-+device.name           AHA-2930U2
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0013
-+device.name           78902
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0013
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0003
-+subdevice.name                AAA-131U2 Array1000 1 Channel RAID Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0013
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x000f
-+subdevice.name                AIC7890_ARO
-
- vendor.id             pci 0x9005
-&device.id             pci 0x001f
-+device.name           AHA-2940U2/U2W / 7890/7891
-
- vendor.id             pci 0x9005
-&device.id             pci 0x001f
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x000f
-+subdevice.name                2940U2W SCSI Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x001f
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0xa180
-+subdevice.name                2940U2W SCSI Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0020
-+device.name           AIC-7890
-
- vendor.id             pci 0x9005
-&device.id             pci 0x002f
-+device.name           AIC-7890
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0030
-+device.name           AIC-7890
-
- vendor.id             pci 0x9005
-&device.id             pci 0x003f
-+device.name           AIC-7890
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0050
-+device.name           AHA-3940U2x/395U2x
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0050
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0xf500
-+subdevice.name                AHA-3950U2B
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0050
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0xffff
-+subdevice.name                AHA-3950U2B
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0051
-+device.name           AHA-3950U2D
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0051
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0xb500
-+subdevice.name                AHA-3950U2D
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0053
-+device.name           AIC-7896 SCSI Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0053
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0xffff
-+subdevice.name                AIC-7896 SCSI Controller mainboard implementation
-
- vendor.id             pci 0x9005
-&device.id             pci 0x005f
-+device.name           AIC-7896U2/7897U2
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0080
-+device.name           AIC-7892A U160/m
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0080
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xe2a0
-+subdevice.name                Compaq 64-Bit/66MHz Wide Ultra3 SCSI Adapter
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0080
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x6220
-+subdevice.name                AHA-29160C
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0080
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x62a0
-+subdevice.name                29160N Ultra160 SCSI Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0080
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0xe220
-+subdevice.name                29160LP Low Profile Ultra160 SCSI Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0080
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0xe2a0
-+subdevice.name                29160 Ultra160 SCSI Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0081
-+device.name           AIC-7892B U160/m
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0081
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x62a1
-+subdevice.name                19160 Ultra160 SCSI Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0083
-+device.name           AIC-7892D U160/m
-
- vendor.id             pci 0x9005
-&device.id             pci 0x008f
-+device.name           AIC-7892P U160/m
-
- vendor.id             pci 0x9005
-&device.id             pci 0x008f
-&subvendor.id          pci 0x1179
-&subdevice.id          pci 0x0001
-+subdevice.name                Magnia Z310
-
- vendor.id             pci 0x9005
-&device.id             pci 0x008f
-&subvendor.id          pci 0x15d9
-&subdevice.id          pci 0x9005
-+subdevice.name                Onboard SCSI Host Adapter
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00c0
-+device.name           AHA-3960D / AIC-7899A U160/m
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00c0
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0xf620
-+subdevice.name                Compaq 64-Bit/66MHz Dual Channel Wide Ultra3 SCSI Adapter
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00c0
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0xf620
-+subdevice.name                AHA-3960D U160/m
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00c1
-+device.name           AIC-7899B U160/m
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00c3
-+device.name           AIC-7899D U160/m
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00c5
-+device.name           RAID subsystem HBA
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00c5
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00c5
-+subdevice.name                PowerEdge 2400,2500,2550,4400
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00cf
-+device.name           AIC-7899P U160/m
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00cf
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00ce
-+subdevice.name                PowerEdge 1400
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00cf
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00d1
-+subdevice.name                PowerEdge 2550
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00cf
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00d9
-+subdevice.name                PowerEdge 2500
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00cf
-&subvendor.id          pci 0x10f1
-&subdevice.id          pci 0x2462
-+subdevice.name                Thunder K7 S2462
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00cf
-&subvendor.id          pci 0x15d9
-&subdevice.id          pci 0x9005
-+subdevice.name                Onboard SCSI Host Adapter
-
- vendor.id             pci 0x9005
-&device.id             pci 0x00cf
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3411
-+subdevice.name                SDS2 Mainboard
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0250
-+device.name           ServeRAID Controller
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0250
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x0279
-+subdevice.name                ServeRAID-xx
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0250
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x028c
-+subdevice.name                ServeRAID-xx
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0279
-+device.name           ServeRAID 6M
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0283
-+device.name           AAC-RAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0283
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0283
-+subdevice.name                Catapult
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0284
-+device.name           AAC-RAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0284
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0284
-+subdevice.name                Tomcat
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-+device.name           AAC-RAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x0295
-+subdevice.name                SATA 6Ch (Bearcat)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0287
-+subdevice.name                PowerEdge Expandable RAID Controller 320/DC
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0291
-+subdevice.name                CERC SATA RAID 2 PCI SATA 6ch (DellCorsair)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x17aa
-&subdevice.id          pci 0x0286
-+subdevice.name                Legend S220 (Legend Crusader)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x17aa
-&subdevice.id          pci 0x0287
-+subdevice.name                Legend S230 (Legend Vulcan)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0285
-+subdevice.name                2200S (Vulcan)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0286
-+subdevice.name                2120S (Crusader)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0287
-+subdevice.name                2200S (Vulcan-2m)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0288
-+subdevice.name                3230S (Harrier)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0289
-+subdevice.name                3240S (Tornado)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x028a
-+subdevice.name                ASR-2020S PCI-X ZCR (Skyhawk)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x028b
-+subdevice.name                ASR-2020S SO-DIMM PCI-X ZCR (Terminator)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0290
-+subdevice.name                AAR-2410SA PCI SATA 4ch (Jaguar II)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0292
-+subdevice.name                AAR-2810SA PCI SATA 8ch (Corsair-8)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0293
-+subdevice.name                AAR-21610SA PCI SATA 16ch (Corsair-16)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0294
-+subdevice.name                ESD SO-DIMM PCI-X SATA ZCR (Prowler)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0286
-+device.name           AAC-RAID (Rocket)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x0286
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x028c
-+subdevice.name                ASR-2230S + ASR-2230SLP PCI-X (Lancer)
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8000
-+device.name           ASC-29320A U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x800f
-+device.name           AIC-7901 U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8010
-+device.name           ASC-39320 U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8011
-+device.name           ASC-32320D U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8011
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x00ac
-+subdevice.name                ASC-39320D U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8011
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0041
-+subdevice.name                ASC-39320D U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8012
-+device.name           ASC-29320 U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8013
-+device.name           ASC-29320B U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8014
-+device.name           ASC-29320LP U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8015
-+device.name           ASC-39320B U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8016
-+device.name           ASC-39320A U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8017
-+device.name           ASC-29320ALP U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x801c
-+device.name           ASC-39320D U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x801d
-+device.name           AIC-7902B U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x801e
-+device.name           AIC-7901A U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x801f
-+device.name           AIC-7902 U320
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8080
-+device.name           ASC-29320A U320 w/HostRAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x808f
-+device.name           AIC-7901 U320 w/HostRAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8090
-+device.name           ASC-39320 U320 w/HostRAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8091
-+device.name           ASC-39320D U320 w/HostRAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8092
-+device.name           ASC-29320 U320 w/HostRAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8093
-+device.name           ASC-29320B U320 w/HostRAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8094
-+device.name           ASC-29320LP U320 w/HostRAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8095
-+device.name           ASC-39320(B) U320 w/HostRAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8096
-+device.name           ASC-39320A U320 w/HostRAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8097
-+device.name           ASC-29320ALP U320 w/HostRAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x809c
-+device.name           ASC-39320D(B) U320 w/HostRAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x809d
-+device.name           AIC-7902(B) U320 w/HostRAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x809e
-+device.name           AIC-7901A U320 w/HostRAID
-
- vendor.id             pci 0x9005
-&device.id             pci 0x809f
-+device.name           AIC-7902 U320 w/HostRAID
-
- vendor.id             pci 0x907f
-+vendor.name           Atronics
-
- vendor.id             pci 0x907f
-&device.id             pci 0x2015
-+device.name           IDE-2015PL
-
- vendor.id             pci 0x919a
-+vendor.name           Gigapixel Corp
-
- vendor.id             pci 0x9412
-+vendor.name           Holtek
-
- vendor.id             pci 0x9412
-&device.id             pci 0x6565
-+device.name           6565
-
- vendor.id             pci 0x9699
-+vendor.name           Omni Media Technology Inc
-
- vendor.id             pci 0x9699
-&device.id             pci 0x6565
-+device.name           6565
-
- vendor.id             pci 0x9710
-+vendor.name           NetMos Technology
-
- vendor.id             pci 0x9710
-&device.id             pci 0x7780
-+device.name           USB IRDA-port
-
- vendor.id             pci 0x9710
-&device.id             pci 0x9815
-+device.name           PCI 9815 Multi-I/O Controller
-
- vendor.id             pci 0x9710
-&device.id             pci 0x9815
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0020
-+subdevice.name                2P0S (2 port parallel adaptor)
-
- vendor.id             pci 0x9710
-&device.id             pci 0x9835
-+device.name           PCI 9835 Multi-I/O Controller
-
- vendor.id             pci 0x9710
-&device.id             pci 0x9835
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0002
-+subdevice.name                2S (16C550 UART)
-
- vendor.id             pci 0x9710
-&device.id             pci 0x9835
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0012
-+subdevice.name                1P2S
-
- vendor.id             pci 0x9710
-&device.id             pci 0x9845
-+device.name           PCI 9845 Multi-I/O Controller
-
- vendor.id             pci 0x9710
-&device.id             pci 0x9845
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0004
-+subdevice.name                0P4S (4 port 16550A serial card)
-
- vendor.id             pci 0x9710
-&device.id             pci 0x9845
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0006
-+subdevice.name                0P6S (6 port 16550a serial card)
-
- vendor.id             pci 0x9710
-&device.id             pci 0x9855
-+device.name           PCI 9855 Multi-I/O Controller
-
- vendor.id             pci 0x9710
-&device.id             pci 0x9855
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0014
-+subdevice.name                1P4S
-
- vendor.id             pci 0x9902
-+vendor.name           Stargen Inc.
-
- vendor.id             pci 0x9902
-&device.id             pci 0x0001
-+device.name           SG2010 PCI over Starfabric Bridge
-
- vendor.id             pci 0x9902
-&device.id             pci 0x0002
-+device.name           SG2010 PCI to Starfabric Gateway
-
- vendor.id             pci 0x9902
-&device.id             pci 0x0003
-+device.name           SG1010 Starfabric Switch and PCI Bridge
-
- vendor.id             pci 0xa0a0
-+vendor.name           AOPEN Inc.
-
- vendor.id             pci 0xa0f1
-+vendor.name           UNISYS Corporation
-
- vendor.id             pci 0xa200
-+vendor.name           NEC Corporation
-
- vendor.id             pci 0xa259
-+vendor.name           Hewlett Packard
-
- vendor.id             pci 0xa25b
-+vendor.name           Hewlett Packard GmbH PL24-MKT
-
- vendor.id             pci 0xa304
-+vendor.name           Sony
-
- vendor.id             pci 0xa727
-+vendor.name           3Com Corporation
-
- vendor.id             pci 0xa727
-&device.id             pci 0x0013
-+device.name           3CRPAG175 Wireless PC Card
-
- vendor.id             pci 0xaa42
-+vendor.name           Scitex Digital Video
-
- vendor.id             pci 0xac1e
-+vendor.name           Digital Receiver Technology Inc
-
- vendor.id             pci 0xac3d
-+vendor.name           Actuality Systems
-
- vendor.id             pci 0xaecb
-+vendor.name           Adrienne Electronics Corporation
-
- vendor.id             pci 0xb1b3
-+vendor.name           Shiva Europe Limited
-
- vendor.id             pci 0xbd11
-+vendor.name           Pinnacle Systems, Inc. (Wrong ID)
-
- vendor.id             pci 0xc001
-+vendor.name           TSI Telsys
-
- vendor.id             pci 0xc0a9
-+vendor.name           Micron/Crucial Technology
-
- vendor.id             pci 0xc0de
-+vendor.name           Motorola
-
- vendor.id             pci 0xc0fe
-+vendor.name           Motion Engineering, Inc.
-
- vendor.id             pci 0xca50
-+vendor.name           Varian Australia Pty Ltd
-
- vendor.id             pci 0xcafe
-+vendor.name           Chrysalis-ITS
-
- vendor.id             pci 0xcccc
-+vendor.name           Catapult Communications
-
- vendor.id             pci 0xcddd
-+vendor.name           Tyzx, Inc.
-
- vendor.id             pci 0xcddd
-&device.id             pci 0x0101
-+device.name           DeepSea 1 High Speed Stereo Vision Frame Grabber
-
- vendor.id             pci 0xcddd
-&device.id             pci 0x0200
-+device.name           DeepSea 2 High Speed Stereo Vision Frame Grabber
-
- vendor.id             pci 0xd4d4
-+vendor.name           Dy4 Systems Inc
-
- vendor.id             pci 0xd4d4
-&device.id             pci 0x0601
-+device.name           PCI Mezzanine Card
-
- vendor.id             pci 0xd531
-+vendor.name           I+ME ACTIA GmbH
-
- vendor.id             pci 0xd84d
-+vendor.name           Exsys
-
- vendor.id             pci 0xdead
-+vendor.name           Indigita Corporation
-
- vendor.id             pci 0xe000
-+vendor.name           Winbond
-
- vendor.id             pci 0xe000
-&device.id             pci 0xe000
-+device.name           W89C940
-
- vendor.id             pci 0xe159
-+vendor.name           Tiger Jet Network Inc.
-
- vendor.id             pci 0xe159
-&device.id             pci 0x0001
-+device.name           Tiger3XX Modem/ISDN interface
-
- vendor.id             pci 0xe159
-&device.id             pci 0x0001
-&subvendor.id          pci 0x0059
-&subdevice.id          pci 0x0001
-+subdevice.name                128k ISDN-S/T Adapter
-
- vendor.id             pci 0xe159
-&device.id             pci 0x0001
-&subvendor.id          pci 0x0059
-&subdevice.id          pci 0x0003
-+subdevice.name                128k ISDN-U Adapter
-
- vendor.id             pci 0xe159
-&device.id             pci 0x0002
-+device.name           Tiger100APC ISDN chipset
-
- vendor.id             pci 0xe4bf
-+vendor.name           EKF Elektronik GmbH
-
- vendor.id             pci 0xe55e
-+vendor.name           Essence Technology, Inc.
-
- vendor.id             pci 0xea01
-+vendor.name           Eagle Technology
-
- vendor.id             pci 0xea60
-+vendor.name           RME
-
- vendor.id             pci 0xea60
-&device.id             pci 0x9896
-+device.name           Digi32
-
- vendor.id             pci 0xea60
-&device.id             pci 0x9897
-+device.name           Digi32 Pro
-
- vendor.id             pci 0xea60
-&device.id             pci 0x9898
-+device.name           Digi32/8
-
- vendor.id             pci 0xeabb
-+vendor.name           Aashima Technology B.V.
-
- vendor.id             pci 0xeace
-+vendor.name           Endace Measurement Systems, Ltd
-
- vendor.id             pci 0xeace
-&device.id             pci 0x3100
-+device.name           DAG 3.10 OC-3/OC-12
-
- vendor.id             pci 0xeace
-&device.id             pci 0x3200
-+device.name           DAG 3.2x OC-3/OC-12
-
- vendor.id             pci 0xeace
-&device.id             pci 0x320e
-+device.name           DAG 3.2E Fast Ethernet
-
- vendor.id             pci 0xeace
-&device.id             pci 0x340e
-+device.name           DAG 3.4E Fast Ethernet
-
- vendor.id             pci 0xeace
-&device.id             pci 0x341e
-+device.name           DAG 3.41E Fast Ethernet
-
- vendor.id             pci 0xeace
-&device.id             pci 0x3500
-+device.name           DAG 3.5 OC-3/OC-12
-
- vendor.id             pci 0xeace
-&device.id             pci 0x351c
-+device.name           DAG 3.5ECM Fast Ethernet
-
- vendor.id             pci 0xeace
-&device.id             pci 0x4100
-+device.name           DAG 4.10 OC-48
-
- vendor.id             pci 0xeace
-&device.id             pci 0x4110
-+device.name           DAG 4.11 OC-48
-
- vendor.id             pci 0xeace
-&device.id             pci 0x4220
-+device.name           DAG 4.2 OC-48
-
- vendor.id             pci 0xeace
-&device.id             pci 0x422e
-+device.name           DAG 4.2E Dual Gigabit Ethernet
-
- vendor.id             pci 0xec80
-+vendor.name           Belkin Corporation
-
- vendor.id             pci 0xec80
-&device.id             pci 0xec00
-+device.name           F5D6000
-
- vendor.id             pci 0xecc0
-+vendor.name           Echo Digital Audio Corporation
-
- vendor.id             pci 0xecc0
-&device.id             pci 0x0050
-+device.name           Gina24_301
-
- vendor.id             pci 0xecc0
-&device.id             pci 0x0051
-+device.name           Gina24_361
-
- vendor.id             pci 0xecc0
-&device.id             pci 0x0060
-+device.name           Layla24
-
- vendor.id             pci 0xecc0
-&device.id             pci 0x0070
-+device.name           Mona_301_80
-
- vendor.id             pci 0xecc0
-&device.id             pci 0x0071
-+device.name           Mona_301_66
-
- vendor.id             pci 0xecc0
-&device.id             pci 0x0072
-+device.name           Mona_361
-
- vendor.id             pci 0xecc0
-&device.id             pci 0x0080
-+device.name           Mia
-
- vendor.id             pci 0xedd8
-+vendor.name           ARK Logic Inc
-
- vendor.id             pci 0xedd8
-&device.id             pci 0xa091
-+device.name           1000PV [Stingray]
-
- vendor.id             pci 0xedd8
-&device.id             pci 0xa099
-+device.name           2000PV [Stingray]
-
- vendor.id             pci 0xedd8
-&device.id             pci 0xa0a1
-+device.name           2000MT
-
- vendor.id             pci 0xedd8
-&device.id             pci 0xa0a9
-+device.name           2000MI
-
- vendor.id             pci 0xf1d0
-+vendor.name           AJA Video
-
- vendor.id             pci 0xf1d0
-&device.id             pci 0xcafe
-+device.name           KONA SD SMPTE 259M I/O
-
- vendor.id             pci 0xf1d0
-&device.id             pci 0xefac
-+device.name           KONA SD SMPTE 259M I/O
-
- vendor.id             pci 0xf1d0
-&device.id             pci 0xfacd
-+device.name           KONA HD SMPTE 292M I/O
-
- vendor.id             pci 0xfa57
-+vendor.name           Interagon AS
-
- vendor.id             pci 0xfa57
-&device.id             pci 0x0001
-+device.name           PMC [Pattern Matching Chip]
-
- vendor.id             pci 0xfebd
-+vendor.name           Ultraview Corp.
-
- vendor.id             pci 0xfeda
-+vendor.name           Broadcom Inc (nee Epigram)
-
- vendor.id             pci 0xfeda
-&device.id             pci 0xa0fa
-+device.name           BCM4210 iLine10 HomePNA 2.0
-
- vendor.id             pci 0xfeda
-&device.id             pci 0xa10e
-+device.name           BCM4230 iLine10 HomePNA 2.0
-
- vendor.id             pci 0xfede
-+vendor.name           Fedetec Inc.
-
- vendor.id             pci 0xfede
-&device.id             pci 0x0003
-+device.name           TABIC PCI v3
-
- vendor.id             pci 0xfffe
-+vendor.name           VMWare Inc
-
- vendor.id             pci 0xfffe
-&device.id             pci 0x0405
-+device.name           Virtual SVGA 4.0
-
- vendor.id             pci 0xfffe
-&device.id             pci 0x0710
-+device.name           Virtual SVGA
-
- vendor.id             pci 0xffff
-+vendor.name           Illegal Vendor ID
-
- baseclass.id          0x000
-+baseclass.name                Unclassified device
-
- baseclass.id          0x000
-&subclass.id           0x00
-+subclass.name         Non-VGA unclassified device
-
- baseclass.id          0x000
-&subclass.id           0x01
-+subclass.name         VGA compatible unclassified device
-
- baseclass.id          0x001
-+baseclass.name                Mass storage controller
-
- baseclass.id          0x001
-&subclass.id           0x00
-+subclass.name         SCSI storage controller
-
- baseclass.id          0x001
-&subclass.id           0x01
-+subclass.name         IDE interface
-
- baseclass.id          0x001
-&subclass.id           0x02
-+subclass.name         Floppy disk controller
-
- baseclass.id          0x001
-&subclass.id           0x03
-+subclass.name         IPI bus controller
-
- baseclass.id          0x001
-&subclass.id           0x04
-+subclass.name         RAID bus controller
-
- baseclass.id          0x001
-&subclass.id           0x80
-+subclass.name         Unknown mass storage controller
-
- baseclass.id          0x002
-+baseclass.name                Network controller
-
- baseclass.id          0x002
-&subclass.id           0x00
-+subclass.name         Ethernet controller
-
- baseclass.id          0x002
-&subclass.id           0x01
-+subclass.name         Token ring network controller
-
- baseclass.id          0x002
-&subclass.id           0x02
-+subclass.name         FDDI network controller
-
- baseclass.id          0x002
-&subclass.id           0x03
-+subclass.name         ATM network controller
-
- baseclass.id          0x002
-&subclass.id           0x04
-+subclass.name         ISDN controller
-
- baseclass.id          0x002
-&subclass.id           0x80
-+subclass.name         Network controller
-
- baseclass.id          0x003
-+baseclass.name                Display controller
-
- baseclass.id          0x003
-&subclass.id           0x00
-+subclass.name         VGA compatible controller
-
- baseclass.id          0x003
-&subclass.id           0x00
-&progif.id             0x00
-+progif.name           VGA
-
- baseclass.id          0x003
-&subclass.id           0x00
-&progif.id             0x01
-+progif.name           8514
-
- baseclass.id          0x003
-&subclass.id           0x01
-+subclass.name         XGA compatible controller
-
- baseclass.id          0x003
-&subclass.id           0x02
-+subclass.name         3D controller
-
- baseclass.id          0x003
-&subclass.id           0x80
-+subclass.name         Display controller
-
- baseclass.id          0x004
-+baseclass.name                Multimedia controller
-
- baseclass.id          0x004
-&subclass.id           0x00
-+subclass.name         Multimedia video controller
-
- baseclass.id          0x004
-&subclass.id           0x01
-+subclass.name         Multimedia audio controller
-
- baseclass.id          0x004
-&subclass.id           0x02
-+subclass.name         Computer telephony device
-
- baseclass.id          0x004
-&subclass.id           0x80
-+subclass.name         Multimedia controller
-
- baseclass.id          0x005
-+baseclass.name                Memory controller
-
- baseclass.id          0x005
-&subclass.id           0x00
-+subclass.name         RAM memory
-
- baseclass.id          0x005
-&subclass.id           0x01
-+subclass.name         FLASH memory
-
- baseclass.id          0x005
-&subclass.id           0x80
-+subclass.name         Memory controller
-
- baseclass.id          0x006
-+baseclass.name                Bridge
-
- baseclass.id          0x006
-&subclass.id           0x00
-+subclass.name         Host bridge
-
- baseclass.id          0x006
-&subclass.id           0x01
-+subclass.name         ISA bridge
-
- baseclass.id          0x006
-&subclass.id           0x02
-+subclass.name         EISA bridge
-
- baseclass.id          0x006
-&subclass.id           0x03
-+subclass.name         MicroChannel bridge
-
- baseclass.id          0x006
-&subclass.id           0x04
-+subclass.name         PCI bridge
-
- baseclass.id          0x006
-&subclass.id           0x04
-&progif.id             0x00
-+progif.name           Normal decode
-
- baseclass.id          0x006
-&subclass.id           0x04
-&progif.id             0x01
-+progif.name           Subtractive decode
-
- baseclass.id          0x006
-&subclass.id           0x05
-+subclass.name         PCMCIA bridge
-
- baseclass.id          0x006
-&subclass.id           0x06
-+subclass.name         NuBus bridge
-
- baseclass.id          0x006
-&subclass.id           0x07
-+subclass.name         CardBus bridge
-
- baseclass.id          0x006
-&subclass.id           0x08
-+subclass.name         RACEway bridge
-
- baseclass.id          0x006
-&subclass.id           0x08
-&progif.id             0x00
-+progif.name           Transparent mode
-
- baseclass.id          0x006
-&subclass.id           0x08
-&progif.id             0x01
-+progif.name           Endpoint mode
-
- baseclass.id          0x006
-&subclass.id           0x09
-+subclass.name         Semi-transparent PCI-to-PCI bridge
-
- baseclass.id          0x006
-&subclass.id           0x09
-&progif.id             0x40
-+progif.name           Primary bus towards host CPU
-
- baseclass.id          0x006
-&subclass.id           0x09
-&progif.id             0x80
-+progif.name           Secondary bus towards host CPU
-
- baseclass.id          0x006
-&subclass.id           0x0a
-+subclass.name         InfiniBand to PCI host bridge
-
- baseclass.id          0x006
-&subclass.id           0x80
-+subclass.name         Bridge
-
- baseclass.id          0x007
-+baseclass.name                Communication controller
-
- baseclass.id          0x007
-&subclass.id           0x00
-+subclass.name         Serial controller
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x00
-+progif.name           8250
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x01
-+progif.name           16450
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x02
-+progif.name           16550
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x03
-+progif.name           16650
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x04
-+progif.name           16750
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x05
-+progif.name           16850
-
- baseclass.id          0x007
-&subclass.id           0x00
-&progif.id             0x06
-+progif.name           16950
-
- baseclass.id          0x007
-&subclass.id           0x01
-+subclass.name         Parallel controller
-
- baseclass.id          0x007
-&subclass.id           0x01
-&progif.id             0x00
-+progif.name           SPP
-
- baseclass.id          0x007
-&subclass.id           0x01
-&progif.id             0x01
-+progif.name           BiDir
-
- baseclass.id          0x007
-&subclass.id           0x01
-&progif.id             0x02
-+progif.name           ECP
-
- baseclass.id          0x007
-&subclass.id           0x01
-&progif.id             0x03
-+progif.name           IEEE1284
-
- baseclass.id          0x007
-&subclass.id           0x01
-&progif.id             0xfe
-+progif.name           IEEE1284 Target
-
- baseclass.id          0x007
-&subclass.id           0x02
-+subclass.name         Multiport serial controller
-
- baseclass.id          0x007
-&subclass.id           0x03
-+subclass.name         Modem
-
- baseclass.id          0x007
-&subclass.id           0x03
-&progif.id             0x00
-+progif.name           Generic
-
- baseclass.id          0x007
-&subclass.id           0x03
-&progif.id             0x01
-+progif.name           Hayes/16450
-
- baseclass.id          0x007
-&subclass.id           0x03
-&progif.id             0x02
-+progif.name           Hayes/16550
-
- baseclass.id          0x007
-&subclass.id           0x03
-&progif.id             0x03
-+progif.name           Hayes/16650
-
- baseclass.id          0x007
-&subclass.id           0x03
-&progif.id             0x04
-+progif.name           Hayes/16750
-
- baseclass.id          0x007
-&subclass.id           0x80
-+subclass.name         Communication controller
-
- baseclass.id          0x008
-+baseclass.name                Generic system peripheral
-
- baseclass.id          0x008
-&subclass.id           0x00
-+subclass.name         PIC
-
- baseclass.id          0x008
-&subclass.id           0x00
-&progif.id             0x00
-+progif.name           8259
-
- baseclass.id          0x008
-&subclass.id           0x00
-&progif.id             0x01
-+progif.name           ISA PIC
-
- baseclass.id          0x008
-&subclass.id           0x00
-&progif.id             0x02
-+progif.name           EISA PIC
-
- baseclass.id          0x008
-&subclass.id           0x00
-&progif.id             0x10
-+progif.name           IO-APIC
-
- baseclass.id          0x008
-&subclass.id           0x00
-&progif.id             0x20
-+progif.name           IO(X)-APIC
-
- baseclass.id          0x008
-&subclass.id           0x01
-+subclass.name         DMA controller
-
- baseclass.id          0x008
-&subclass.id           0x01
-&progif.id             0x00
-+progif.name           8237
-
- baseclass.id          0x008
-&subclass.id           0x01
-&progif.id             0x01
-+progif.name           ISA DMA
-
- baseclass.id          0x008
-&subclass.id           0x01
-&progif.id             0x02
-+progif.name           EISA DMA
-
- baseclass.id          0x008
-&subclass.id           0x02
-+subclass.name         Timer
-
- baseclass.id          0x008
-&subclass.id           0x02
-&progif.id             0x00
-+progif.name           8254
-
- baseclass.id          0x008
-&subclass.id           0x02
-&progif.id             0x01
-+progif.name           ISA Timer
-
- baseclass.id          0x008
-&subclass.id           0x02
-&progif.id             0x02
-+progif.name           EISA Timers
-
- baseclass.id          0x008
-&subclass.id           0x03
-+subclass.name         RTC
-
- baseclass.id          0x008
-&subclass.id           0x03
-&progif.id             0x00
-+progif.name           Generic
-
- baseclass.id          0x008
-&subclass.id           0x03
-&progif.id             0x01
-+progif.name           ISA RTC
-
- baseclass.id          0x008
-&subclass.id           0x04
-+subclass.name         PCI Hot-plug controller
-
- baseclass.id          0x008
-&subclass.id           0x80
-+subclass.name         System peripheral
-
- baseclass.id          0x009
-+baseclass.name                Input device controller
-
- baseclass.id          0x009
-&subclass.id           0x00
-+subclass.name         Keyboard controller
-
- baseclass.id          0x009
-&subclass.id           0x01
-+subclass.name         Digitizer Pen
-
- baseclass.id          0x009
-&subclass.id           0x02
-+subclass.name         Mouse controller
-
- baseclass.id          0x009
-&subclass.id           0x03
-+subclass.name         Scanner controller
-
- baseclass.id          0x009
-&subclass.id           0x04
-+subclass.name         Gameport controller
-
- baseclass.id          0x009
-&subclass.id           0x04
-&progif.id             0x00
-+progif.name           Generic
-
- baseclass.id          0x009
-&subclass.id           0x04
-&progif.id             0x10
-+progif.name           Extended
-
- baseclass.id          0x009
-&subclass.id           0x80
-+subclass.name         Input device controller
-
- baseclass.id          0x00a
-+baseclass.name                Docking station
-
- baseclass.id          0x00a
-&subclass.id           0x00
-+subclass.name         Generic Docking Station
-
- baseclass.id          0x00a
-&subclass.id           0x80
-+subclass.name         Docking Station
-
- baseclass.id          0x00b
-+baseclass.name                Processor
-
- baseclass.id          0x00b
-&subclass.id           0x00
-+subclass.name         386
-
- baseclass.id          0x00b
-&subclass.id           0x01
-+subclass.name         486
-
- baseclass.id          0x00b
-&subclass.id           0x02
-+subclass.name         Pentium
-
- baseclass.id          0x00b
-&subclass.id           0x10
-+subclass.name         Alpha
-
- baseclass.id          0x00b
-&subclass.id           0x20
-+subclass.name         Power PC
-
- baseclass.id          0x00b
-&subclass.id           0x30
-+subclass.name         MIPS
-
- baseclass.id          0x00b
-&subclass.id           0x40
-+subclass.name         Co-processor
-
- baseclass.id          0x00c
-+baseclass.name                Serial bus controller
-
- baseclass.id          0x00c
-&subclass.id           0x00
-+subclass.name         FireWire (IEEE 1394)
-
- baseclass.id          0x00c
-&subclass.id           0x00
-&progif.id             0x00
-+progif.name           Generic
-
- baseclass.id          0x00c
-&subclass.id           0x00
-&progif.id             0x10
-+progif.name           OHCI
-
- baseclass.id          0x00c
-&subclass.id           0x01
-+subclass.name         ACCESS Bus
-
- baseclass.id          0x00c
-&subclass.id           0x02
-+subclass.name         SSA
-
- baseclass.id          0x00c
-&subclass.id           0x03
-+subclass.name         USB Controller
-
- baseclass.id          0x00c
-&subclass.id           0x03
-&progif.id             0x00
-+progif.name           UHCI
-
- baseclass.id          0x00c
-&subclass.id           0x03
-&progif.id             0x10
-+progif.name           OHCI
-
- baseclass.id          0x00c
-&subclass.id           0x03
-&progif.id             0x20
-+progif.name           EHCI
-
- baseclass.id          0x00c
-&subclass.id           0x03
-&progif.id             0x80
-+progif.name           Unspecified
-
- baseclass.id          0x00c
-&subclass.id           0x03
-&progif.id             0xfe
-+progif.name           USB Device
-
- baseclass.id          0x00c
-&subclass.id           0x04
-+subclass.name         Fibre Channel
-
- baseclass.id          0x00c
-&subclass.id           0x05
-+subclass.name         SMBus
-
- baseclass.id          0x00c
-&subclass.id           0x06
-+subclass.name         InfiniBand
-
- baseclass.id          0x00d
-+baseclass.name                Wireless controller
-
- baseclass.id          0x00d
-&subclass.id           0x00
-+subclass.name         IRDA controller
-
- baseclass.id          0x00d
-&subclass.id           0x01
-+subclass.name         Consumer IR controller
-
- baseclass.id          0x00d
-&subclass.id           0x10
-+subclass.name         RF controller
-
- baseclass.id          0x00d
-&subclass.id           0x80
-+subclass.name         Wireless controller
-
- baseclass.id          0x00e
-+baseclass.name                Intelligent controller
-
- baseclass.id          0x00e
-&subclass.id           0x00
-+subclass.name         I2O
-
- baseclass.id          0x00f
-+baseclass.name                Satellite communications controller
-
- baseclass.id          0x00f
-&subclass.id           0x00
-+subclass.name         Satellite TV controller
-
- baseclass.id          0x00f
-&subclass.id           0x01
-+subclass.name         Satellite audio communication controller
-
- baseclass.id          0x00f
-&subclass.id           0x03
-+subclass.name         Satellite voice communication controller
-
- baseclass.id          0x00f
-&subclass.id           0x04
-+subclass.name         Satellite data communication controller
-
- baseclass.id          0x010
-+baseclass.name                Encryption controller
-
- baseclass.id          0x010
-&subclass.id           0x00
-+subclass.name         Network and computing encryption device
-
- baseclass.id          0x010
-&subclass.id           0x10
-+subclass.name         Entertainment encryption device
-
- baseclass.id          0x010
-&subclass.id           0x80
-+subclass.name         Encryption controller
-
- baseclass.id          0x011
-+baseclass.name                Signal processing controller
-
- baseclass.id          0x011
-&subclass.id           0x00
-+subclass.name         DPIO module
-
- baseclass.id          0x011
-&subclass.id           0x01
-+subclass.name         Performance counters
-
- baseclass.id          0x011
-&subclass.id           0x10
-+subclass.name         Communication synchronizer
-
- baseclass.id          0x011
-&subclass.id           0x80
-+subclass.name         Signal processing controller
-
diff --git a/src/hwinfo/src/ids/src/pcmcia b/src/hwinfo/src/ids/src/pcmcia
deleted file mode 100644 (file)
index 4cc45b6..0000000
+++ /dev/null
@@ -1,346 +0,0 @@
- vendor.id             pcmcia 0x0004
-&device.id             pcmcia 0x0004
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        fmvj18x_cs
-
- vendor.id             pcmcia 0x000b
-&device.id             pcmcia 0x7100
-|vendor.id             pcmcia 0x0101
-&device.id             pcmcia 0x0777
-|vendor.id             pcmcia 0x0126
-&device.id             pcmcia 0x8000
-|vendor.id             pcmcia 0x0250
-&device.id             pcmcia 0x0002
-|vendor.id             pcmcia 0x0274
-&device.id             pcmcia 0x1612
-|vendor.id             pcmcia 0x02d2
-&device.id             pcmcia 0x0001
-|vendor.id             pcmcia 0x50c2
-&device.id             pcmcia 0x0001
-|vendor.id             pcmcia 0xc00f
-&device.id             pcmcia 0x0000
-+driver.module.modprobe        hostap_cs
-
- vendor.id             pcmcia 0x000b
-&device.id             pcmcia 0x7300
-|vendor.id             pcmcia 0x0138
-&device.id             pcmcia 0x0002
-|vendor.id             pcmcia 0x0156
-&device.id             pcmcia 0x0002
-|vendor.id             pcmcia 0x0274
-&device.id             pcmcia 0x1613
-|vendor.id             pcmcia 0x028a
-&device.id             pcmcia 0x0002
-|vendor.id             pcmcia 0xc250
-&device.id             pcmcia 0x0002
-+driver.module.modprobe        hostap_cs
-+driver.module.modprobe        orinoco_cs
-
- vendor.id             pcmcia 0x0032
-&device.id             pcmcia 0x0704
-|vendor.id             pcmcia 0x00a4
-&device.id             pcmcia 0x002d
-|vendor.id             pcmcia 0x2080
-&device.id             pcmcia 0x0001
-+driver.module.modprobe        ide-cs
-
- vendor.id             pcmcia 0x0057
-&device.id             pcmcia 0x1004
-|vendor.id             pcmcia 0x0104
-&device.id             pcmcia 0x000d
-|vendor.id             pcmcia 0x0104
-&device.id             pcmcia 0x0075
-|vendor.id             pcmcia 0x0104
-&device.id             pcmcia 0x0145
-|vendor.id             pcmcia 0x0149
-&device.id             pcmcia 0x0230
-|vendor.id             pcmcia 0x0149
-&device.id             pcmcia 0x4530
-|vendor.id             pcmcia 0x0186
-&device.id             pcmcia 0x0110
-|vendor.id             pcmcia 0x01bf
-&device.id             pcmcia 0x2216
-|vendor.id             pcmcia 0x01bf
-&device.id             pcmcia 0x2328
-|vendor.id             pcmcia 0x01bf
-&device.id             pcmcia 0x8041
-|vendor.id             pcmcia 0x0213
-&device.id             pcmcia 0x2452
-|vendor.id             pcmcia 0x026f
-&device.id             pcmcia 0x0300
-|vendor.id             pcmcia 0x026f
-&device.id             pcmcia 0x0307
-|vendor.id             pcmcia 0x026f
-&device.id             pcmcia 0x030a
-|vendor.id             pcmcia 0x0274
-&device.id             pcmcia 0x1103
-|vendor.id             pcmcia 0x0274
-&device.id             pcmcia 0x1121
-|vendor.id             pcmcia 0xc00f
-&device.id             pcmcia 0x0002
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        pcnet_cs
-
- vendor.id             pcmcia 0x0089
-&device.id             pcmcia 0x0001
-|vendor.id             pcmcia 0x01eb
-&device.id             pcmcia 0x080a
-|vendor.id             pcmcia 0x0261
-&device.id             pcmcia 0x0002
-|vendor.id             pcmcia 0x0268
-&device.id             pcmcia 0x0001
-|vendor.id             pcmcia 0x026f
-&device.id             pcmcia 0x0305
-|vendor.id             pcmcia 0x028a
-&device.id             pcmcia 0x0673
-|vendor.id             pcmcia 0x02aa
-&device.id             pcmcia 0x0002
-|vendor.id             pcmcia 0x02ac
-&device.id             pcmcia 0x0002
-|vendor.id             pcmcia 0x14ea
-&device.id             pcmcia 0xb001
-|vendor.id             pcmcia 0x50c2
-&device.id             pcmcia 0x7300
-|vendor.id             pcmcia 0x9005
-&device.id             pcmcia 0x0021
-+driver.module.modprobe        orinoco_cs
-
-# tulip_cb
- vendor.id             pcmcia 0x0089
-&device.id             pcmcia 0x0102
-|vendor.id             pcmcia 0x0089
-&device.id             pcmcia 0x0113
-|vendor.id             pcmcia 0x00a4
-&device.id             pcmcia 0x0113
-|vendor.id             pcmcia 0x0105
-&device.id             pcmcia 0x0500
-|vendor.id             pcmcia 0x0149
-&device.id             pcmcia 0x0231
-|vendor.id             pcmcia 0x0149
-&device.id             pcmcia 0xc2ab
-|vendor.id             pcmcia 0x0186
-&device.id             pcmcia 0x0101
-|vendor.id             pcmcia 0x01bf
-&device.id             pcmcia 0x2220
-|vendor.id             pcmcia 0x01bf
-&device.id             pcmcia 0x2225
-|vendor.id             pcmcia 0x01bf
-&device.id             pcmcia 0x2227
-|vendor.id             pcmcia 0x01bf
-&device.id             pcmcia 0x8036
-|vendor.id             pcmcia 0x01da
-&device.id             pcmcia 0x0081
-|vendor.id             pcmcia 0x01da
-&device.id             pcmcia 0x0090
-|vendor.id             pcmcia 0x021b
-&device.id             pcmcia 0x0510
-|vendor.id             pcmcia 0x022d
-&device.id             pcmcia 0x2103
-|vendor.id             pcmcia 0x02ac
-&device.id             pcmcia 0x1012
-|vendor.id             pcmcia 0x13d1
-&device.id             pcmcia 0xab02+0x0002
-|vendor.id             pcmcia 0x50c7
-&device.id             pcmcia 0xcafe
-|vendor.id             pcmcia 0x9513
-&device.id             pcmcia 0x0081
-|vendor.id             pcmcia 0xe815
-&device.id             pcmcia 0x0081
-+baseclass.id          0x002
-+subclass.id           0x00
-
-# eepro100_cb
- vendor.id             pcmcia 0x0089
-&device.id             pcmcia 0x0103
-+baseclass.id          0x002
-+subclass.id           0x00
-
- vendor.id             pcmcia 0x0089
-&device.id             pcmcia 0x0301
-|vendor.id             pcmcia 0x0101
-&device.id             pcmcia 0x0039
-|vendor.id             pcmcia 0x0104
-&device.id             pcmcia 0x0006
-|vendor.id             pcmcia 0x0105
-&device.id             pcmcia 0x410a
-|vendor.id             pcmcia 0x010b
-&device.id             pcmcia 0x0d50+0x0004
-|vendor.id             pcmcia 0x010b
-&device.id             pcmcia 0xd180
-|vendor.id             pcmcia 0x0137
-&device.id             pcmcia 0x000e
-|vendor.id             pcmcia 0x0137
-&device.id             pcmcia 0x001b
-|vendor.id             pcmcia 0x0137
-&device.id             pcmcia 0x0025
-|vendor.id             pcmcia 0x0137
-&device.id             pcmcia 0x0045
-|vendor.id             pcmcia 0x0137
-&device.id             pcmcia 0x0052
-|vendor.id             pcmcia 0x018a
-&device.id             pcmcia 0x0001
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        serial_cs
-
-# eepro100_cb
- vendor.id             pcmcia 0x0089
-&device.id             pcmcia 0x1103
-+baseclass.id          0x002
-+subclass.id           0x00
-
-# tulip_cb
- vendor.id             pcmcia 0x00a4
-&device.id             pcmcia 0x0103
-+baseclass.id          0x002
-+subclass.id           0x00
-
- vendor.id             pcmcia 0x0101
-&device.id             pcmcia 0x0035
-|vendor.id             pcmcia 0x0101
-&device.id             pcmcia 0x003d
-|vendor.id             pcmcia 0x0101
-&device.id             pcmcia 0x0562
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        3c589_cs
-
- vendor.id             pcmcia 0x0101
-&device.id             pcmcia 0x0556
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        3c574_cs
-
- vendor.id             pcmcia 0x0101
-&device.id             pcmcia 0x0574
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        3c574_cs
-
- vendor.id             pcmcia 0x0101
-&device.id             pcmcia 0x0589
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        3c589_cs
-
- vendor.id             pcmcia 0x0101
-&device.id             pcmcia 0x0620
-|vendor.id             pcmcia 0x0101
-&device.id             pcmcia 0x0696
-|vendor.id             pcmcia 0x01bf
-&device.id             pcmcia 0x3302
-|vendor.id             pcmcia 0x01bf
-&device.id             pcmcia 0xb301
-|vendor.id             pcmcia 0xd601
-&device.id             pcmcia 0x0007
-+driver.module.modprobe        atmel_cs
-
- vendor.id             pcmcia 0x0104
-&device.id             pcmcia 0x0070
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        serial_cs
-
- vendor.id             pcmcia 0x0105
-&device.id             pcmcia 0x0007
-|vendor.id             pcmcia 0x015f
-&device.id             pcmcia 0x0005
-|vendor.id             pcmcia 0x015f
-&device.id             pcmcia 0x0007
-|vendor.id             pcmcia 0x015f
-&device.id             pcmcia 0x000a
-+driver.module.modprobe        airo_cs
-
- vendor.id             pcmcia 0x0137
-&device.id             pcmcia 0x0003
-+driver.module.modprobe        parport_cs
-
-# epic_cb
- vendor.id             pcmcia 0x0140
-&device.id             pcmcia 0x000f
-|vendor.id             pcmcia 0x0140
-&device.id             pcmcia 0x0012
-|vendor.id             pcmcia 0x016c
-&device.id             pcmcia 0x0021
-+baseclass.id          0x002
-+subclass.id           0x00
-
-# epic_cb
- vendor.id             pcmcia 0x0140
-&device.id             pcmcia 0x0011
-+baseclass.id          0x002
-+subclass.id           0x00
-
- vendor.id             pcmcia 0x0149
-&device.id             pcmcia 0xc1ab
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        axnet_cs
-+driver.module.modprobe        pcnet_cs
-
- vendor.id             pcmcia 0x016c
-&device.id             pcmcia 0x0020
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        smc91c92_cs
-
- vendor.id             pcmcia 0x016c
-&device.id             pcmcia 0x0023
-|vendor.id             pcmcia 0x0186
-&device.id             pcmcia 0x0100
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        smc91c92_cs
-
- vendor.id             pcmcia 0x0175
-&device.id             pcmcia 0x0000
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        pcnet_cs
-
- vendor.id             pcmcia 0x018a
-&device.id             pcmcia 0x0301
-|vendor.id             pcmcia 0x026f
-&device.id             pcmcia 0x0301
-|vendor.id             pcmcia 0x026f
-&device.id             pcmcia 0x0303
-|vendor.id             pcmcia 0x026f
-&device.id             pcmcia 0x0309
-|vendor.id             pcmcia 0x0274
-&device.id             pcmcia 0x1106
-|vendor.id             pcmcia 0x8a01
-&device.id             pcmcia 0xc1ab
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        axnet_cs
-
- vendor.id             pcmcia 0x01a6
-&device.id             pcmcia 0x0000
-+driver.module.modprobe        ray_cs
-
- vendor.id             pcmcia 0x01bf
-&device.id             pcmcia 0x010a
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        xirc2ps_cs
-
- vendor.id             pcmcia 0x020c
-&device.id             pcmcia 0x0103
-+driver.module.modprobe        sedl_cs
-
- vendor.id             pcmcia 0x021b
-&device.id             pcmcia 0x0202
-+baseclass.id          0x002
-+subclass.id           0x00
-+driver.module.modprobe        pcnet_cs
-+driver.module.modprobe        axnet_cs
-
- vendor.id             pcmcia 0xd601
-&device.id             pcmcia 0x0002
-|vendor.id             pcmcia 0xd601
-&device.id             pcmcia 0x0005
-+driver.module.modprobe        hostap_cs
-+driver.module.modprobe        orinoco_cs
-
diff --git a/src/hwinfo/src/ids/src/ppc b/src/hwinfo/src/ids/src/ppc
deleted file mode 100644 (file)
index 1499c58..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# modules.alias
-# tg3 vs. bcm5700: #34486, #36992, #38647
- vendor.id             pci 0x14e4
-&device.id             pci 0x1644+0x0006
-|vendor.id             pci 0x14e4
-&device.id             pci 0x1653+0x0002
-|vendor.id             pci 0x14e4
-&device.id             pci 0x165d+0x0002
-|vendor.id             pci 0x14e4
-&device.id             pci 0x166e
-|vendor.id             pci 0x14e4
-&device.id             pci 0x1696
-|vendor.id             pci 0x14e4
-&device.id             pci 0x169c
-|vendor.id             pci 0x14e4
-&device.id             pci 0x16a6+0x0003
-|vendor.id             pci 0x14e4
-&device.id             pci 0x16c6+0x0002
-|vendor.id             pci 0x14e4
-&device.id             pci 0x170d+0x0002
-+driver.module.modprobe        bcm5700
-+driver.module.modprobe        tg3
-
diff --git a/src/hwinfo/src/ids/src/s390 b/src/hwinfo/src/ids/src/s390
deleted file mode 100644 (file)
index dc9cf1c..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-# special s390 hardware
- vendor.id             special 0x6001
-+vendor.name           IBM
-
- vendor.id             special 0x6001
-&device.id             special 0x1731
-&subdevice.id          special 0x1732
-&detail.ccw.data.cu_model 1
-+device.name           OSA Express Network card
-+baseclass.id          2
-+subclass.id           0x86
-+driver.module.modprobe        qeth
-
- vendor.id             special 0x6001
-&device.id             special 0x1731
-&subdevice.id          special 0x1732
-&detail.ccw.data.cu_model 3
-+device.name           zFCP controller
-+baseclass.id          1
-+subclass.id           0
-+driver.module.modprobe zfcp
-
- vendor.id             special 0x6001
-&device.id             special 0x1731
-&subdevice.id          special 0x1732
-&detail.ccw.data.cu_model 5
-+device.name           Hipersocket
-+baseclass.id          2
-+subclass.id           0x87
-+driver.module.modprobe qeth
-
- vendor.id             special 0x6001
-&device.id             special 0x2540
-&baseclass.id          0x10c
-+device.name           z/VM Virtual Card Reader
-
- vendor.id             special 0x6001
-&device.id             special 0x2540
-&baseclass.id          0x109
-+device.name           z/VM Virtual Card Punch
-
- vendor.id             special 0x6001
-&device.id             special 0x2701
-+device.name           2701 Data Adapter
-
- vendor.id             special 0x6001
-&device.id             special 0x3890
-+device.name           Document Processor
-
- vendor.id             special 0x6001
-&device.id             special 0x3250
-+device.name           3250 Display
-
- vendor.id             special 0x6001
-&device.id             special 0x3178
-|device.id             special 0x3179
-|device.id             special 0x3180
-|device.id             special 0x3190
-|device.id             special 0x3270
-|device.id             special 0x3277
-|device.id             special 0x3278
-|device.id             special 0x3279
-|device.id             special 0x3290
-+device.name           3270-Family Display
-+baseclass.id          0x108
-+subclass.id           1
-
- vendor.id             special 0x6001
-&device.id             special 0x3203
-|device.id             special 0x3211
-|device.id             special 0x3262
-|device.id             special 0x4245
-|device.id             special 0x4248
-|device.id             special 0x6562
-+device.name           Impact Printer
-+baseclass.id          0x109
-
- vendor.id             special 0x6001
-&device.id             special 0x3203
-&detail.ccw.data.cu_model 5
-+device.name           z/VM Virtual Printer
-+baseclass.id          0x109
-
- vendor.id             special 0x6001
-&device.id             special 0x3215
-+device.name           3215 Display
-+baseclass.id          0x108
-+subclass.id           1
-
- vendor.id             special 0x6001
-&device.id             special 0x3990
-&subdevice.id          special 0x3390
-|subdevice.id          special 0x3380
-|subdevice.id          special 0x3350
-|subdevice.id          special 0x3330
-|subdevice.id          special 0x3375
-|subdevice.id          special 0x3851
-+device.name           DASD
-+baseclass.id          0x106
-+subclass.id           0
-+progif.id             1
-+driver.module.modprobe dasd_eckd_mod
-
- vendor.id             special 0x6001
-&device.id             special 0x2105
-&subdevice.id          special 0x3390
-|subdevice.id          special 0x3380
-+device.name           DASD
-+baseclass.id          0x106
-+subclass.id           0
-+progif.id             1
-+driver.module.modprobe dasd_eckd_mod
-
- vendor.id             special 0x6001
-&device.id             special 0x3880
-&subdevice.id          special 0x3390
-+device.name           DASD
-+baseclass.id          0x106
-+subclass.id           0
-+progif.id             1
-+driver.module.modprobe dasd_eckd_mod
-
- vendor.id             special 0x6001
-&device.id             special 0x3880
-&subdevice.id          special 0x3370
-+device.name           DASD
-+baseclass.id          0x106
-+subclass.id           0
-+progif.id             2
-+driver.module.modprobe dasd_fba_mod
-
- vendor.id             special 0x6001
-&device.id             special 0x9343
-&subdevice.id          special 0x9345
-+device.name           DASD
-+baseclass.id          0x106
-+subclass.id           0
-+progif.id             1
-+driver.module.modprobe dasd_eckd_mod
-
- vendor.id             special 0x6001
-&device.id             special 0x6310
-&subdevice.id          special 0x9336
-+device.name           DASD
-+baseclass.id          0x106
-+subclass.id           0
-+progif.id             2
-+driver.module.modprobe dasd_fba_mod
-
- vendor.id             special 0x6001
-&device.id             special 0x2107
-|device.id             special 0x1750
-+device.name           DASD
-+baseclass.id          0x106
-+subclass.id           0
-+progif.id             1
-+driver.module.modprobe dasd_eckd_mod
-
- vendor.id             special 0x6001
-&device.id             special 0x3705
-&device.id             special 0x3725
-&device.id             special 0x3745
-+device.name           37x5 Line Adapter
-
- vendor.id             special 0x6001
-&device.id             special 0x3286
-&device.id             special 0x3287
-&device.id             special 0x3288
-&device.id             special 0x3289
-+device.name           328x Display Printer
-
- vendor.id             special 0x6001
-&device.id             special 0x3420
-+device.name           3420 Tape Drive
-+baseclass.id          0x106
-+subclass.id           1
-+driver.module.modprobe tape_34xx
- vendor.id             special 0x6001
-&device.id             special 0x3422
-+device.name           3422 Tape Drive
-+baseclass.id          0x106
-+subclass.id           1
-+driver.module.modprobe tape_34xx
- vendor.id             special 0x6001
-&device.id             special 0x3480
-+device.name           3480 Tape Drive
-+baseclass.id          0x106
-+subclass.id           1
-+driver.module.modprobe tape_34xx
- vendor.id             special 0x6001
-&device.id             special 0x3490
-+device.name           3490 Tape Drive
-+baseclass.id          0x106
-+subclass.id           1
-+driver.module.modprobe tape_34xx
-
- vendor.id             special 0x6001
-&device.id             special 0x3505
-+device.name           3505 Card Reader
- vendor.id             special 0x6001
-&device.id             special 0x3525
-+device.name           3525 Card Punch
-
- vendor.id             special 0x6001
-&device.id             special 0x3800
-+device.name           3800 Printer
-+baseclass.id          0x109
-
- vendor.id             special 0x6001
-&device.id             special 0x3820
-+device.name           3820 Printer
-+baseclass.id          0x109
-
- vendor.id             special 0x6001
-&device.id             special 0x5080
-+device.name           5080 Graphics Display
-
- vendor.id             special 0x6001
-&device.id             special 0x9032
-|device.id             special 0x9033
-+device.name           903x ES Connection Director
- vendor.id             special 0x6001
-&device.id             special 0x0001
-+device.name           Token ring card
-
- vendor.id             special 0x6001
-&device.id             special 0x3088
-&detail.ccw.data.cu_model 8
-+device.name           parallel CTC Adapter
-+baseclass.id          2
-+subclass.id           0x88
-+driver.module.modprobe ctc
-
- vendor.id             special 0x6001
-&device.id             special 0x3088
-&detail.ccw.data.cu_model 0x1f
-+device.name           ESCON Adapter
-+baseclass.id          2
-+subclass.id           0x8f
-+driver.module.modprobe ctc
-
- vendor.id             special 0x6001
-&device.id             special 0x3088
-&detail.ccw.data.cu_model 0x1e
-+device.name           FICON Adapter
-+baseclass.id          2
-+subclass.id           0x8e
-
- vendor.id             special 0x6001
-&device.id             special 0x3088
-&detail.ccw.data.cu_model 1
-+device.name           P/390
-+baseclass.id          2
-+subclass.id           0x89
-
- vendor.id             special 0x6001
-&device.id             special 0x3088
-&detail.ccw.data.cu_model 0x60
-+device.name           OSA2 Adapter
-+baseclass.id          2
-+subclass.id           0x89
-+driver.module.modprobe lcs
-
- vendor.id             special 0x6001
-&device.id             special 0x0005
-+device.name           IUCV
-+baseclass.id          2
-+subclass.id           0x90
-+driver.module.modprobe netiucv
diff --git a/src/hwinfo/src/ids/src/scanner b/src/hwinfo/src/ids/src/scanner
deleted file mode 100644 (file)
index 38fc5df..0000000
+++ /dev/null
@@ -1,775 +0,0 @@
-# usb scanner
-
- vendor.id             usb 0x03f0
-+vendor.name           HP
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0101
-+device.name           4100C
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0101+0x0002
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0105
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0201
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0205
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0305
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0401
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0405
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0505
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0601
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0605
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0701
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0705
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0801
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0805
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0901
-|vendor.id             usb 0x03f0
-&device.id             usb 0x0a01
-|vendor.id             usb 0x03f0
-&device.id             usb 0x1005
-|vendor.id             usb 0x03f0
-&device.id             usb 0x1105
-|vendor.id             usb 0x03f0
-&device.id             usb 0x1205
-|vendor.id             usb 0x03f0
-&device.id             usb 0x1305
-|vendor.id             usb 0x03f0
-&device.id             usb 0x1411
-|vendor.id             usb 0x03f0
-&device.id             usb 0x2005
-|vendor.id             usb 0x03f0
-&device.id             usb 0x2205
-|vendor.id             usb 0x03f0
-&device.id             usb 0x2f11
-|vendor.id             usb 0x0400
-&device.id             usb 0x1000+0x0002
-|vendor.id             usb 0x043d
-&device.id             usb 0x002d
-|vendor.id             usb 0x043d
-&device.id             usb 0x003d
-|vendor.id             usb 0x0458
-&device.id             usb 0x2001
-|vendor.id             usb 0x0458
-&device.id             usb 0x2007+0x0003
-|vendor.id             usb 0x0458
-&device.id             usb 0x2011
-|vendor.id             usb 0x0458
-&device.id             usb 0x2013
-|vendor.id             usb 0x0458
-&device.id             usb 0x2015+0x0002
-|vendor.id             usb 0x0458
-&device.id             usb 0x2018
-|vendor.id             usb 0x0458
-&device.id             usb 0x201b
-|vendor.id             usb 0x0461
-&device.id             usb 0x0300+0x0004
-|vendor.id             usb 0x0461
-&device.id             usb 0x0340+0x0002
-|vendor.id             usb 0x0461
-&device.id             usb 0x0345+0x0003
-|vendor.id             usb 0x0461
-&device.id             usb 0x0360+0x0002
-|vendor.id             usb 0x0461
-&device.id             usb 0x0364
-|vendor.id             usb 0x0461
-&device.id             usb 0x0371
-|vendor.id             usb 0x0461
-&device.id             usb 0x0377
-|vendor.id             usb 0x0461
-&device.id             usb 0x0380+0x0004
-|vendor.id             usb 0x0475
-&device.id             usb 0x0210
-|vendor.id             usb 0x049f
-&device.id             usb 0x001a
-|vendor.id             usb 0x049f
-&device.id             usb 0x0021
-|vendor.id             usb 0x04a5
-&device.id             usb 0x1a20
-|vendor.id             usb 0x04a5
-&device.id             usb 0x1a2a
-|vendor.id             usb 0x04a5
-&device.id             usb 0x2022
-|vendor.id             usb 0x04a5
-&device.id             usb 0x2040
-|vendor.id             usb 0x04a5
-&device.id             usb 0x2060
-|vendor.id             usb 0x04a5
-&device.id             usb 0x207e
-|vendor.id             usb 0x04a5
-&device.id             usb 0x20b0
-|vendor.id             usb 0x04a5
-&device.id             usb 0x20be
-|vendor.id             usb 0x04a5
-&device.id             usb 0x20c0
-|vendor.id             usb 0x04a5
-&device.id             usb 0x20de
-|vendor.id             usb 0x04a5
-&device.id             usb 0x20fc
-|vendor.id             usb 0x04a5
-&device.id             usb 0x20fe
-|vendor.id             usb 0x04a7
-&device.id             usb 0x0211
-|vendor.id             usb 0x04a7
-&device.id             usb 0x0221
-|vendor.id             usb 0x04a7
-&device.id             usb 0x0224
-|vendor.id             usb 0x04a7
-&device.id             usb 0x0226
-|vendor.id             usb 0x04a7
-&device.id             usb 0x0229
-|vendor.id             usb 0x04a7
-&device.id             usb 0x022c
-|vendor.id             usb 0x04a7
-&device.id             usb 0x0231
-|vendor.id             usb 0x04a7
-&device.id             usb 0x0311
-|vendor.id             usb 0x04a7
-&device.id             usb 0x0321
-|vendor.id             usb 0x04a7
-&device.id             usb 0x0331
-|vendor.id             usb 0x04a9
-&device.id             usb 0x2201+0x0002
-|vendor.id             usb 0x04a9
-&device.id             usb 0x2204+0x0005
-|vendor.id             usb 0x04a9
-&device.id             usb 0x220a+0x0007
-|vendor.id             usb 0x04a9
-&device.id             usb 0x2212+0x0002
-|vendor.id             usb 0x04a9
-&device.id             usb 0x2215
-|vendor.id             usb 0x04a9
-&device.id             usb 0x3042
-|vendor.id             usb 0x04b0
-&device.id             usb 0x4000
-|vendor.id             usb 0x04b8
-&device.id             usb 0x0101+0x0007
-|vendor.id             usb 0x04b8
-&device.id             usb 0x0109+0x0004
-|vendor.id             usb 0x04b8
-&device.id             usb 0x010e+0x0003
-|vendor.id             usb 0x04b8
-&device.id             usb 0x0112
-|vendor.id             usb 0x04b8
-&device.id             usb 0x0114
-|vendor.id             usb 0x04b8
-&device.id             usb 0x011b+0x0005
-|vendor.id             usb 0x04b8
-&device.id             usb 0x0801+0x0002
-|vendor.id             usb 0x04c5
-&device.id             usb 0x1029
-|vendor.id             usb 0x04c5
-&device.id             usb 0x1041+0x0002
-|vendor.id             usb 0x04f9
-&device.id             usb 0x010f
-|vendor.id             usb 0x04f9
-&device.id             usb 0x0111
-|vendor.id             usb 0x055f
-&device.id             usb 0x0001+0x0003
-|vendor.id             usb 0x055f
-&device.id             usb 0x0006+0x0003
-|vendor.id             usb 0x055f
-&device.id             usb 0x0010
-|vendor.id             usb 0x055f
-&device.id             usb 0x0210
-|vendor.id             usb 0x055f
-&device.id             usb 0x0218+0x0002
-|vendor.id             usb 0x055f
-&device.id             usb 0x021c+0x0003
-|vendor.id             usb 0x055f
-&device.id             usb 0x0400+0x0002
-|vendor.id             usb 0x055f
-&device.id             usb 0x0409
-|vendor.id             usb 0x055f
-&device.id             usb 0x0873
-|vendor.id             usb 0x055f
-&device.id             usb 0x1000
-|vendor.id             usb 0x05cb
-&device.id             usb 0x1483
-|vendor.id             usb 0x05d8
-&device.id             usb 0x4001+0x0004
-|vendor.id             usb 0x05d8
-&device.id             usb 0x4006
-|vendor.id             usb 0x05d8
-&device.id             usb 0x4009
-|vendor.id             usb 0x05da
-&device.id             usb 0x0099+0x0002
-|vendor.id             usb 0x05da
-&device.id             usb 0x00b6
-|vendor.id             usb 0x05da
-&device.id             usb 0x20a7
-|vendor.id             usb 0x05da
-&device.id             usb 0x20c9
-|vendor.id             usb 0x05da
-&device.id             usb 0x30ce+0x0002
-|vendor.id             usb 0x05da
-&device.id             usb 0x30d4
-|vendor.id             usb 0x05da
-&device.id             usb 0x30d8
-|vendor.id             usb 0x05da
-&device.id             usb 0x40b3
-|vendor.id             usb 0x05da
-&device.id             usb 0x40b8
-|vendor.id             usb 0x05da
-&device.id             usb 0x40ca+0x0002
-|vendor.id             usb 0x05da
-&device.id             usb 0x40dd
-|vendor.id             usb 0x05da
-&device.id             usb 0x40ff
-|vendor.id             usb 0x05e3
-&device.id             usb 0x0120
-|vendor.id             usb 0x0638
-&device.id             usb 0x0268
-|vendor.id             usb 0x0638
-&device.id             usb 0x026a
-|vendor.id             usb 0x0638
-&device.id             usb 0x0a10
-|vendor.id             usb 0x0638
-&device.id             usb 0x0a13
-|vendor.id             usb 0x0638
-&device.id             usb 0x0a16
-|vendor.id             usb 0x0638
-&device.id             usb 0x0a18
-|vendor.id             usb 0x0638
-&device.id             usb 0x0a20
-|vendor.id             usb 0x0638
-&device.id             usb 0x0a23+0x0002
-|vendor.id             usb 0x0681
-&device.id             usb 0x0005
-|vendor.id             usb 0x0681
-&device.id             usb 0x0010
-|vendor.id             usb 0x0686
-&device.id             usb 0x4004
-|vendor.id             usb 0x0686
-&device.id             usb 0x400d
-|vendor.id             usb 0x06bd
-&device.id             usb 0x0001+0x0002
-|vendor.id             usb 0x06bd
-&device.id             usb 0x0100
-|vendor.id             usb 0x06bd
-&device.id             usb 0x2061
-|vendor.id             usb 0x06bd
-&device.id             usb 0x208d
-|vendor.id             usb 0x06bd
-&device.id             usb 0x208f
-|vendor.id             usb 0x06bd
-&device.id             usb 0x2091
-|vendor.id             usb 0x06bd
-&device.id             usb 0x2093
-|vendor.id             usb 0x06bd
-&device.id             usb 0x2095
-|vendor.id             usb 0x06bd
-&device.id             usb 0x2097
-|vendor.id             usb 0x06bd
-&device.id             usb 0x20fd
-|vendor.id             usb 0x06bd
-&device.id             usb 0x20ff
-|vendor.id             usb 0x06dc
-&device.id             usb 0x0014
-|vendor.id             usb 0x07b3
-&device.id             usb 0x0001
-|vendor.id             usb 0x07b3
-&device.id             usb 0x0005
-|vendor.id             usb 0x07b3
-&device.id             usb 0x0007
-|vendor.id             usb 0x07b3
-&device.id             usb 0x000f+0x0009
-|vendor.id             usb 0x07b3
-&device.id             usb 0x0400+0x0002
-|vendor.id             usb 0x07b3
-&device.id             usb 0x0403
-|vendor.id             usb 0x07b3
-&device.id             usb 0x0413
-|vendor.id             usb 0x0a82
-&device.id             usb 0x4600
-|vendor.id             usb 0x1606
-&device.id             usb 0x0010
-|vendor.id             usb 0x1606
-&device.id             usb 0x0030
-|vendor.id             usb 0x1606
-&device.id             usb 0x0060
-|vendor.id             usb 0x1606
-&device.id             usb 0x0070
-|vendor.id             usb 0x1606
-&device.id             usb 0x0130
-|vendor.id             usb 0x1606
-&device.id             usb 0x0160
-|vendor.id             usb 0x1606
-&device.id             usb 0x0230
-+baseclass.id          0x10c
-+subclass.id           0x00
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0102
-+device.name           PhotoSmart S20
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0105
-+device.name           4200C
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0201
-+device.name           6200C
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0205
-+device.name           3300C
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0305
-+device.name           4300C
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0401
-+device.name           5200C
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0405
-+device.name           3400C
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0601
-+device.name           6300C
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0605
-+device.name           2200C
-
- vendor.id             usb 0x0400
-+vendor.name           National Semiconductor
-
- vendor.id             usb 0x0400
-&device.id             usb 0x1000
-+device.name           BearPaw 1200
-
- vendor.id             usb 0x0400
-&device.id             usb 0x1001
-+device.name           BearPaw 2400
-
- vendor.id             usb 0x0458
-+vendor.name           KYE Systems
-
- vendor.id             usb 0x0458
-&device.id             usb 0x2001
-+device.name           Genius ColorPage-Vivid Pro
-
- vendor.id             usb 0x0458
-&device.id             usb 0x2007
-+device.name           ColorPage HR6 V2
-
- vendor.id             usb 0x0458
-&device.id             usb 0x2008
-+device.name           Unknown 2008
-
- vendor.id             usb 0x0458
-&device.id             usb 0x2009
-+device.name           Unknown 2009
-
- vendor.id             usb 0x0458
-&device.id             usb 0x2013
-+device.name           Unknown 2013
-
- vendor.id             usb 0x0458
-&device.id             usb 0x2015
-+device.name           Unknown 2015
-
- vendor.id             usb 0x0458
-&device.id             usb 0x2016
-+device.name           Unknown 2016
-
- vendor.id             usb 0x0461
-+vendor.name           Colorado
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0034
-+baseclass.id          0x10c
-+subclass.id           0x00
-+device.name           USB 9600
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0300
-|vendor.id             usb 0x0461
-&device.id             usb 0x0302
-+device.name           G2-300
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0301
-|vendor.id             usb 0x0461
-&device.id             usb 0x0303
-+device.name           G2E-300
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0341
-+device.name           600U
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0346
-+device.name           6136u
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0361
-|vendor.id             usb 0x0638
-&device.id             usb 0x0268
-+device.name           1200U
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0380
-|vendor.id             usb 0x0461
-&device.id             usb 0x0382
-+device.name           G2-600
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0381
-+device.name           ReadyScan 636i
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0383
-+device.name           G2E-600
-
- vendor.id             usb 0x04a5
-+vendor.name           Acer
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x1a20
-+device.name           Prisa Acerscan 310U
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x1a2a
-|vendor.id             usb 0x04a5
-&device.id             usb 0x2040
-|vendor.id             usb 0x04a5
-&device.id             usb 0x2060
-+device.name           Prisa Acerscan 620U
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x2022
-+device.name           Vuego Scan Brisa 340U
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x207e
-+device.name           Prisa Acerscan 640BU
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x20b0
-+device.name           S2W 3300U/4300U
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x20be
-+device.name           Prisa Acerscan 640BT
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x20c0
-+device.name           Prisa Acerscan 1240UT
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x20de
-+device.name           S2W 3300U
-
- vendor.id             usb 0x04a7
-+vendor.name           Visioneer
-
- vendor.id             usb 0x04a7
-&device.id             usb 0x0211
-+device.name           OneTouch 7600 USB
-
- vendor.id             usb 0x04a7
-&device.id             usb 0x0221
-+device.name           OneTouch 5300 USB
-
- vendor.id             usb 0x04a7
-&device.id             usb 0x0231
-+device.name           6100 USB
-
- vendor.id             usb 0x04a7
-&device.id             usb 0x0311
-+device.name           6200 EPP/USB
-
- vendor.id             usb 0x04a7
-&device.id             usb 0x0321
-+device.name           OneTouch 8100 EPP/USB
-
- vendor.id             usb 0x04a7
-&device.id             usb 0x0331
-+device.name           OneTouch 8600 EPP/USB
-
- vendor.id             usb 0x04a9
-+vendor.name           Canon
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x2202
-+device.name           FB620U
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x2207
-+device.name           1220U
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x220b
-+device.name           D646U
-
- vendor.id             usb 0x04b0
-+vendor.name           Nikon
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x4000
-+device.name           Coolscan IV
-
- vendor.id             usb 0x04b8
-+vendor.name           Epson
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0101
-+device.name           Perfection 636U
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0103
-+device.name           Perfection 610
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0104
-+device.name           Perfection 1200U
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0106
-+device.name           Stylus Scan 2500
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0107
-+device.name           Expression 1600
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x010a
-+device.name           Perfection 1640SU
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x010b
-+device.name           Perfection 1240U
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x010c
-+device.name           Perfection 640
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x010e
-+device.name           Expression 1680
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0110
-+device.name           Perfection 1650
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0112
-+device.name           Perfection 2450
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x011f
-+device.name           Perfection 1670
-
- vendor.id             usb 0x04ce
-+vendor.name           ScanLogic
-
- vendor.id             usb 0x04ce
-&device.id             usb 0x0300
-|vendor.id             usb 0x05da
-&device.id             usb 0x0094
-|vendor.id             usb 0x05da
-&device.id             usb 0x00a0
-+baseclass.id          0x10c
-+subclass.id           0x00
-+device.name           Phantom 336CX
-
- vendor.id             usb 0x055f
-+vendor.name           Mustek
-
- vendor.id             usb 0x055f
-&device.id             usb 0x0001
-+device.name           1200 CU
-
- vendor.id             usb 0x055f
-&device.id             usb 0x0002
-+device.name           600 CU
-
- vendor.id             usb 0x055f
-&device.id             usb 0x0003
-+device.name           1200 USB
-
- vendor.id             usb 0x055f
-&device.id             usb 0x0006
-+device.name           1200 UB
-
- vendor.id             usb 0x055f
-&device.id             usb 0x0008
-+device.name           1200 CU Plus
-
- vendor.id             usb 0x055f
-&device.id             usb 0x0873
-+device.name           600 USB
-
- vendor.id             usb 0x05d8
-+vendor.name           Lifetec
-
- vendor.id             usb 0x05d8
-&device.id             usb 0x4002
-+device.name           LT9385
-
- vendor.id             usb 0x05da
-+vendor.name           Microtek
-
- vendor.id             usb 0x05da
-&device.id             usb 0x0099
-+device.name           ScanMaker X6
-
- vendor.id             usb 0x05da
-&device.id             usb 0x009a
-+device.name           Phantom C6
-
- vendor.id             usb 0x05da
-&device.id             usb 0x00a3
-|vendor.id             usb 0x05da
-&device.id             usb 0x80a3
-+baseclass.id          0x10c
-+subclass.id           0x00
-+device.name           ScanMaker V6USL
-
- vendor.id             usb 0x05da
-&device.id             usb 0x80ac
-+baseclass.id          0x10c
-+subclass.id           0x00
-+device.name           ScanMaker V6UL
-
- vendor.id             usb 0x0638
-+vendor.name           iVina
-
- vendor.id             usb 0x06bd
-+vendor.name           Agfa
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x0001
-+device.name           SnapScan 1212U
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x0002
-+device.name           SnapScan 1236U
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x0100
-+device.name           SnapScan Touch
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x2061
-+device.name           SnapScan 1212U?
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x208d
-+device.name           SnapScan e40
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x2091
-+device.name           SnapScan e20
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x2095
-+device.name           SnapScan e25
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x2097
-+device.name           SnapScan e26
-
- vendor.id             usb 0x07b3
-+vendor.name           Plustek
-
- vendor.id             usb 0x07b3
-&device.id             usb 0x0011
-+device.name           OpticPro UT24
-
- vendor.id             usb 0x07b3
-&device.id             usb 0x0017
-+device.name           OpticPro UT12
-
- vendor.id             usb 0x0ff5
-+vendor.name           Mustek?
-
- vendor.id             usb 0x0ff5
-&device.id             usb 0x0010
-+baseclass.id          0x10c
-+subclass.id           0x00
-+device.name           BearPaw 1200F
-
- vendor.id             usb 0x1606
-+vendor.name           UMAX
-
- vendor.id             usb 0x1606
-&device.id             usb 0x0002
-+baseclass.id          0x10c
-+subclass.id           0x00
-+device.name           Astra 1236U
-
- vendor.id             usb 0x1606
-&device.id             usb 0x0010
-+device.name           Astra 1220U
-
- vendor.id             usb 0x1606
-&device.id             usb 0x0030
-+device.name           Astra 2000U
-
- vendor.id             usb 0x1606
-&device.id             usb 0x0130
-+device.name           Astra 2100U
-
- vendor.id             usb 0x1606
-&device.id             usb 0x0230
-+device.name           Astra 2200U
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# hp officejet
- vendor.id             usb 0x03f0
-&device.id             usb 0x2811
-|vendor.id             usb 0x03f0
-&device.id             usb 0x2911
-|vendor.id             usb 0x03f0
-&device.id             usb 0x2a11
-|vendor.id             usb 0x03f0
-&device.id             usb 0x2d11
-+requires              hp-officeJet
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# 45074
- vendor.id             usb 0x04b8
-&device.id             usb 0x0805
-+baseclass.id          0x10c
-+subclass.id           0x00
-+device.name           Stylus CX6400
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0806
-+baseclass.id          0x10c
-+subclass.id           0x00
-+device.name           Stylus Photo RX600
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0807
-+baseclass.id          0x10c
-+subclass.id           0x00
-+device.name           Stylus Photo RX500
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0808
-+baseclass.id          0x10c
-+subclass.id           0x00
-+device.name           Stylus CX5400
-
diff --git a/src/hwinfo/src/ids/src/sound b/src/hwinfo/src/ids/src/sound
deleted file mode 100644 (file)
index f28c396..0000000
+++ /dev/null
@@ -1,389 +0,0 @@
-# sound cards
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# module info from kernel/sound/*.ko
-
- vendor.id             ADS
-&device.id             eisa 0x7150
-|vendor.id             ADS
-&device.id             eisa 0x7181
-|vendor.id             AZT
-&device.id             eisa 0x1022
-|vendor.id             LWC
-&device.id             eisa 0x1061
-|vendor.id             MDK
-&device.id             eisa 0x1605
-|vendor.id             SMM
-&device.id             eisa 0x7180
-|vendor.id             TER
-&device.id             eisa 0x1112
-|vendor.id             TER
-&device.id             eisa 0x1411
-+driver.module.modprobe        snd-ad1816a
-
- vendor.id             ADV
-&device.id             eisa 0x550a
-+driver.module.modprobe        snd-interwave-stb
-+driver.module.modprobe        snd-interwave
-
- vendor.id             ADV
-&device.id             eisa 0x55ff
-|vendor.id             CDC
-&device.id             eisa 0x1111
-|vendor.id             DXP
-&device.id             eisa 0x3201
-|vendor.id             GRV
-&device.id             eisa 0x0001
-|vendor.id             STB
-&device.id             eisa 0x011a
-+driver.module.modprobe        snd-interwave
-
- vendor.id             ALS
-&device.id             eisa 0x0001
-|vendor.id             ALS
-&device.id             eisa 0x0110
-|vendor.id             ALS
-&device.id             eisa 0x0120
-|vendor.id             ALS
-&device.id             eisa 0x0200
-|vendor.id             RTL
-&device.id             eisa 0x3000
-+driver.module.modprobe        snd-als100
-
- vendor.id             ALS
-&device.id             eisa 0x0007
-|vendor.id             RWB
-&device.id             eisa 0x1688
-+driver.module.modprobe        snd-dt019x
-
- vendor.id             AZT
-&device.id             eisa 0x1008
-|vendor.id             AZT
-&device.id             eisa 0x2320
-|vendor.id             AZT
-&device.id             eisa 0x3000
-|vendor.id             AZT
-&device.id             eisa 0x3002
-|vendor.id             AZT
-&device.id             eisa 0x3005
-|vendor.id             AZT
-&device.id             eisa 0x3011
-+driver.module.modprobe        snd-azt2320
-
- vendor.id             CMI
-&device.id             eisa 0x0001
-+driver.module.modprobe        snd-cmi8330
-
- vendor.id             CSC
-&device.id             eisa 0x0000
-|vendor.id             CSC
-&device.id             eisa 0x0100
-|vendor.id             GIM
-&device.id             eisa 0x0100
-+driver.module.modprobe        cs4232
-
- vendor.id             CSC
-&device.id             eisa 0x0225
-|vendor.id             CSC
-&device.id             eisa 0x0437
-|vendor.id             CSC
-&device.id             eisa 0x0735
-|vendor.id             CSC
-&device.id             eisa 0x0b35+0x0002
-|vendor.id             CSC
-&device.id             eisa 0x1335
-|vendor.id             CSC
-&device.id             eisa 0x1425
-|vendor.id             CSC
-&device.id             eisa 0x1525
-|vendor.id             CSC
-&device.id             eisa 0x1e37
-|vendor.id             CSC
-&device.id             eisa 0x4237
-|vendor.id             CSC
-&device.id             eisa 0x4336
-|vendor.id             CSC
-&device.id             eisa 0x4536
-|vendor.id             CSC
-&device.id             eisa 0x4625
-|vendor.id             CSC
-&device.id             eisa 0x4637
-|vendor.id             CSC
-&device.id             eisa 0x4837
-|vendor.id             CSC
-&device.id             eisa 0x6835+0x0002
-|vendor.id             CSC
-&device.id             eisa 0x7537
-|vendor.id             CSC
-&device.id             eisa 0x8025
-|vendor.id             CSC
-&device.id             eisa 0x8037
-|vendor.id             CSC
-&device.id             eisa 0x9836+0x0002
-|vendor.id             CSC
-&device.id             eisa 0xa836
-|vendor.id             CSC
-&device.id             eisa 0xc835
-|vendor.id             CSC
-&device.id             eisa 0xd925
-|vendor.id             CSC
-&device.id             eisa 0xd937
-|vendor.id             CSC
-&device.id             eisa 0xe825
-|vendor.id             CSC
-&device.id             eisa 0xe835+0x0002
-|vendor.id             CSC
-&device.id             eisa 0xe936
-|vendor.id             CSC
-&device.id             eisa 0xf235
-|vendor.id             CSC
-&device.id             eisa 0xf238
-+driver.module.modprobe        snd-cs4236
-
- vendor.id             CSC
-&device.id             eisa 0x0d32
-|vendor.id             CSC
-&device.id             eisa 0x1a32
-|vendor.id             CSC
-&device.id             eisa 0x4232
-|vendor.id             CSC
-&device.id             eisa 0xf032
-+driver.module.modprobe        snd-cs4232
-
- vendor.id             CSC
-&device.id             eisa 0x4236
-+driver.module.modprobe        snd-cs4232
-+driver.module.modprobe        snd-cs4236
-
- vendor.id             CSC
-&device.id             eisa 0x7532
-|vendor.id             CSC
-&device.id             eisa 0x7632
-+driver.module.modprobe        snd-cs4232
-+driver.module.modprobe        snd-wavefront
-
- vendor.id             CTL
-&device.id             eisa 0x0024+0x0009
-|vendor.id             CTL
-&device.id             eisa 0x0051
-|vendor.id             CTL
-&device.id             eisa 0x0070
-|vendor.id             CTL
-&device.id             eisa 0x0080
-|vendor.id             CTL
-&device.id             eisa 0x0086
-|vendor.id             CTL
-&device.id             eisa 0x00f0
-+driver.module.modprobe        snd-sb16
-
- vendor.id             CTL
-&device.id             eisa 0x0035
-|vendor.id             CTL
-&device.id             eisa 0x0039
-|vendor.id             CTL
-&device.id             eisa 0x0042+0x0007
-|vendor.id             CTL
-&device.id             eisa 0x0054
-|vendor.id             CTL
-&device.id             eisa 0x009a
-|vendor.id             CTL
-&device.id             eisa 0x009c+0x0004
-|vendor.id             CTL
-&device.id             eisa 0x00b2
-|vendor.id             CTL
-&device.id             eisa 0x00c1
-|vendor.id             CTL
-&device.id             eisa 0x00c3
-|vendor.id             CTL
-&device.id             eisa 0x00c5
-|vendor.id             CTL
-&device.id             eisa 0x00c7
-|vendor.id             CTL
-&device.id             eisa 0x00e4
-|vendor.id             CTL
-&device.id             eisa 0x00e9
-|vendor.id             CTL
-&device.id             eisa 0x00ed
-+driver.module.modprobe        snd-sbawe
-
- vendor.id             ENS
-&device.id             eisa 0x3081
-+driver.module.modprobe        snd-sscape
-
- vendor.id             ESS
-&device.id             eisa 0x0003
-|vendor.id             ESS
-&device.id             eisa 0x1868+0x0002
-|vendor.id             ESS
-&device.id             eisa 0x1878+0x0002
-+driver.module.modprobe        snd-es18xx
-
- vendor.id             ESS
-&device.id             eisa 0x0968
-+driver.module.modprobe        snd-es968
-
- vendor.id             NMX
-&device.id             eisa 0x2200
-|vendor.id             YMH
-&device.id             eisa 0x0020
-|vendor.id             YMH
-&device.id             eisa 0x0030
-|vendor.id             YMH
-&device.id             eisa 0x0800+0x0002
-+driver.module.modprobe        snd-opl3sa2
-
- vendor.id             OPT
-&device.id             eisa 0x0924+0x0002
-+driver.module.modprobe        snd-opti92x-cs4231
-+driver.module.modprobe        snd-opti92x-ad1848
-
- vendor.id             OPT
-&device.id             eisa 0x0931
-+driver.module.modprobe        snd-opti93x
-
- vendor.id             YMH
-&device.id             eisa 0x0021
-+driver.module.modprobe        opl3sa2
-
- vendor.id             usb 0x041e
-&device.id             usb 0x3010
-|vendor.id             usb 0x0499
-&device.id             usb 0x1000+0x000b
-|vendor.id             usb 0x0499
-&device.id             usb 0x100e+0x0008
-|vendor.id             usb 0x0499
-&device.id             usb 0x1017+0x0006
-|vendor.id             usb 0x0499
-&device.id             usb 0x101e
-|vendor.id             usb 0x0499
-&device.id             usb 0x1020+0x000c
-|vendor.id             usb 0x0499
-&device.id             usb 0x102e
-|vendor.id             usb 0x0499
-&device.id             usb 0x1030+0x000d
-|vendor.id             usb 0x0499
-&device.id             usb 0x2000+0x0003
-|vendor.id             usb 0x0499
-&device.id             usb 0x5000+0x0009
-|vendor.id             usb 0x0499
-&device.id             usb 0x500a+0x0003
-|vendor.id             usb 0x0499
-&device.id             usb 0x7000
-|vendor.id             usb 0x0499
-&device.id             usb 0x7010
-|vendor.id             usb 0x0582
-&device.id             usb 0x0000
-|vendor.id             usb 0x0582
-&device.id             usb 0x0002+0x0004
-|vendor.id             usb 0x0582
-&device.id             usb 0x0007+0x0003
-|vendor.id             usb 0x0582
-&device.id             usb 0x000b+0x0002
-|vendor.id             usb 0x0582
-&device.id             usb 0x0010
-|vendor.id             usb 0x0582
-&device.id             usb 0x0012
-|vendor.id             usb 0x0582
-&device.id             usb 0x0014
-|vendor.id             usb 0x0582
-&device.id             usb 0x0016
-|vendor.id             usb 0x0582
-&device.id             usb 0x001b
-|vendor.id             usb 0x0582
-&device.id             usb 0x001d
-|vendor.id             usb 0x0582
-&device.id             usb 0x0023
-|vendor.id             usb 0x0582
-&device.id             usb 0x0025
-|vendor.id             usb 0x0582
-&device.id             usb 0x0027
-|vendor.id             usb 0x0582
-&device.id             usb 0x0029
-|vendor.id             usb 0x0582
-&device.id             usb 0x002b
-|vendor.id             usb 0x0582
-&device.id             usb 0x002d
-|vendor.id             usb 0x0582
-&device.id             usb 0x002f
-|vendor.id             usb 0x0582
-&device.id             usb 0x0033
-|vendor.id             usb 0x0582
-&device.id             usb 0x0037
-|vendor.id             usb 0x0582
-&device.id             usb 0x003b
-|vendor.id             usb 0x0582
-&device.id             usb 0x0040
-|vendor.id             usb 0x0582
-&device.id             usb 0x0044
-|vendor.id             usb 0x0582
-&device.id             usb 0x0048
-|vendor.id             usb 0x0582
-&device.id             usb 0x004d
-|vendor.id             usb 0x0582
-&device.id             usb 0x0050
-|vendor.id             usb 0x0582
-&device.id             usb 0x0052
-|vendor.id             usb 0x0582
-&device.id             usb 0x0065
-|vendor.id             usb 0x0763
-&device.id             usb 0x1002
-|vendor.id             usb 0x0763
-&device.id             usb 0x1011
-|vendor.id             usb 0x0763
-&device.id             usb 0x1015
-|vendor.id             usb 0x0763
-&device.id             usb 0x1021
-|vendor.id             usb 0x0763
-&device.id             usb 0x1033
-|vendor.id             usb 0x0763
-&device.id             usb 0x1041
-|vendor.id             usb 0x0763
-&device.id             usb 0x2001
-|vendor.id             usb 0x0763
-&device.id             usb 0x2003
-|vendor.id             usb 0x0763
-&device.id             usb 0x2008
-|vendor.id             usb 0x0763
-&device.id             usb 0x200d
-|vendor.id             usb 0x07fd
-&device.id             usb 0x0001
-|vendor.id             usb 0x0ccd
-&device.id             usb 0x0013
-+driver.module.modprobe        snd-usb-audio
-
- vendor.id             usb 0x1604
-&device.id             usb 0x8001
-|vendor.id             usb 0x1604
-&device.id             usb 0x8005
-|vendor.id             usb 0x1604
-&device.id             usb 0x8007
-+driver.module.modprobe        snd-usb-usx2y
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-# ppc audio
- vendor.id             special 0x0401
-&device.id             special 0x0010+0x0004
-+driver.module.modprobe        dmasound
-
-# ppc audio
- vendor.id             special 0x0402
-&device.id             special 0x0014
-+driver.module.modprobe        cs4232
-
-# AMD7930
- vendor.id             special 0x4001
-&device.id             special 0x2001
-+driver.module.modprobe        amd7930
-
-# CS4231
- vendor.id             special 0x4001
-&device.id             special 0x2002+0x0002
-+driver.module.modprobe        cs4231
-
-# SS10/SS20 DBRI
- vendor.id             special 0x4001
-&device.id             special 0x2004
-+driver.module.modprobe        dbri
-
diff --git a/src/hwinfo/src/ids/src/special b/src/hwinfo/src/ids/src/special
deleted file mode 100644 (file)
index 3090c50..0000000
+++ /dev/null
@@ -1,683 +0,0 @@
-# special ids
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# adb devices
-
- vendor.id             special 0x0100
-+vendor.name           Apple
-
- vendor.id             special 0x0100
-&device.id             special 0x0201
-+device.name           ADB Keyboard 1
-
- vendor.id             special 0x0100
-&device.id             special 0x0203
-+device.name           ADB Keyboard 3
-
- vendor.id             special 0x0100
-&device.id             special 0x0302
-+device.name           ADB Mouse
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# generic mice
-
- vendor.id             special 0x0200
-+vendor.name           Unknown
-
- vendor.id             special 0x0200
-&device.id             special 0x0001
-+device.name           Generic USB Mouse
-
- vendor.id             special 0x0200
-&device.id             special 0x0002
-+device.name           Generic PS/2 Mouse
-
- vendor.id             special 0x0200
-&device.id             special 0x0003
-+device.name           MS-Compatible Serial Mouse
-
- vendor.id             special 0x0200
-&device.id             special 0x0004
-+device.name           Intelli/Wheel Mouse
-
- vendor.id             special 0x0200
-&device.id             special 0x0005
-+device.name           Intelli/Wheel Mouse
-
- vendor.id             special 0x0200
-&device.id             special 0x0006
-+device.name           Touch Pad
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# pc keyboards
-# ids > 1 are keyboard ids as read via keyboard id command
-
- vendor.id             special 0x0201
-+vendor.name           Unknown
-
- vendor.id             special 0x0201
-&device.id             special 0x0000
-+device.name           PC Keyboard
-
- vendor.id             special 0x0201
-&device.id             special 0x0001
-+device.name           PS/2 Keyboard
-
- vendor.id             special 0x0201
-&device.id             special 0x0002
-+device.name           UML Keyboard
-
- vendor.id             special 0x0201
-&device.id             special 0x41ab
-+device.name           MF2 Keyboard
-
- vendor.id             special 0x0202
-+vendor.name           Sun Microsystems
-
- vendor.id             special 0x0202
-&device.id             special 0x0000
-+device.name           Sun Mouse
-
- vendor.id             special 0x0202
-&device.id             special 0x0002
-+device.name           Type-2 Keyboard
-
- vendor.id             special 0x0202
-&device.id             special 0x0003
-+device.name           Type-3 Keyboard
-
- vendor.id             special 0x0202
-&device.id             special 0x0004
-+device.name           Type-4 Keyboard
-
- vendor.id             special 0x0202
-&device.id             special 0x0005
-+device.name           Type-5 Keyboard
-
- vendor.id             special 0x0202
-&device.id             special 0x0005
-&subvendor.id          special 0x0202
-&subdevice.id          special 0x0001
-+subdevice.name                Type-5 Unix Keyboard
-
- vendor.id             special 0x0202
-&device.id             special 0x0005
-&subvendor.id          special 0x0202
-&subdevice.id          special 0x0002
-+subdevice.name                Type-5 Euro Keyboard
-
- vendor.id             special 0x0203
-+vendor.name           Unknown
-
- vendor.id             special 0x0203
-&device.id             special 0x0000
-+device.name           Serial Console
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# Mac colors
-
- vendor.id             special 0x0300
-&device.id             special 0x0001
-+device.name           Blueberry
-
- vendor.id             special 0x0300
-&device.id             special 0x0004
-+device.name           Lime
-
- vendor.id             special 0x0300
-&device.id             special 0x0005
-+device.name           Tangerine
-
- vendor.id             special 0x0300
-&device.id             special 0x0007
-+device.name           Black
-
- vendor.id             special 0x0300
-&device.id             special 0x0008
-+device.name           Snow
-
- vendor.id             special 0x0300
-&device.id             special 0x00ff
-+device.name           Graphite
-
-# Strawberry, Grape, Ruby, Indigo, Sage
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# special ppc hardware; ids shared with special 0x0402
-
- vendor.id             special 0x0401
-+vendor.name           Apple
-
- vendor.id             special 0x0401
-&device.id             special 0x0010
-+device.name           Integrated Sound (awacs)
-
- vendor.id             special 0x0401
-&device.id             special 0x0011
-+device.name           Integrated Sound (screamer)
-
- vendor.id             special 0x0401
-&device.id             special 0x0012
-+device.name           Integrated Sound (burgundy)
-
- vendor.id             special 0x0401
-&device.id             special 0x0013
-+device.name           Integrated Sound (daca)
-
- vendor.id             special 0x0401
-&device.id             special 0x0020
-+device.name           MACE Ethernet Controller
-
- vendor.id             special 0x0401
-&device.id             special 0x0021
-+device.name           BMAC Ethernet Controller
-
- vendor.id             special 0x0401
-&device.id             special 0x0022
-+device.name           BMAC+ Ethernet Controller
-
- vendor.id             special 0x0401
-&device.id             special 0x0030
-+device.name           MESH SCSI Controller
-
- vendor.id             special 0x0401
-&device.id             special 0x0031
-+device.name           53c94 SCSI Controller
-
- vendor.id             special 0x0401
-&device.id             special 0x0040
-+device.name           Super Woz Integrated Machine 3
-
- vendor.id             special 0x0401
-&device.id             special 0x1000
-+device.name           21" Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x1114
-+device.name           Portrait Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x1221
-+device.name           12" Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x1331
-+device.name           21" Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x1334
-+device.name           21" Monitor (mono)
-
- vendor.id             special 0x0401
-&device.id             special 0x1335
-+device.name           21" Monitor (mono)
-
- vendor.id             special 0x0401
-&device.id             special 0x140a
-+device.name           NTSC Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x151e
-+device.name           Portrait Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x1603
-+device.name           16" Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x160b
-+device.name           19" Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x1623
-+device.name           21" Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x162b
-+device.name           14" Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x1700
-+device.name           PAL Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x1714
-+device.name           NTSC Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x1717
-+device.name           VGA Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x172d
-+device.name           16" Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x1730
-+device.name           PAL Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x173a
-+device.name           19" Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x173f
-+device.name           Unknown Monitor
-
- vendor.id             special 0x0401
-&device.id             special 0x2000
-+device.name           800x600 LCD
-
- vendor.id             special 0x0401
-&device.id             special 0x2001
-+device.name           1024x768 LCD
-
- vendor.id             special 0x0401
-&device.id             special 0x3000
-+device.name           Valkyrie
-
- vendor.id             special 0x0401
-&device.id             special 0x3001
-+device.name           Platinum
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# chrp hardware; ids shared with special 0x0401
-
- vendor.id             special 0x0402
-+vendor.name           IBM
-
- vendor.id             special 0x0402
-&device.id             special 0x0014
-+device.name           CS4236B
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# parport zip controller
-
- vendor.id             special 0x1800
-+vendor.name           Iomega
-
- vendor.id             special 0x1800
-&device.id             special 0x0001
-+device.name           MatchMaker
-
- vendor.id             special 0x1800
-&device.id             special 0x0002
-+device.name           PPA3
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# modem
-
- vendor.id             special 0x2000
-+vendor.name           Unknown
-
- vendor.id             special 0x2000
-&device.id             special 0x0001
-+baseclass.id          0x102
-+subclass.id           0x00
-+device.name           AT Modem
-
- vendor.id             special 0x2001
-+vendor.name           U.S. Robotics, Inc.
-
- vendor.id             special 0x2001
-&device.id             special 0x0001
-+baseclass.id          0x102
-+subclass.id           0x00
-+device.name           USRobotics Sportster Vi 33600 Faxmodem
-
- vendor.id             special 0x2002
-+vendor.name           3Com U.S. Robotics, Inc.
-
- vendor.id             special 0x2002
-&device.id             special 0x0001
-+baseclass.id          0x102
-+subclass.id           0x00
-+device.name           3Com U.S. Robotics ISDN Pro TA
-
- vendor.id             special 0x2003
-+vendor.name           ZyXEL
-
- vendor.id             special 0x2003
-&device.id             special 0x0001
-+baseclass.id          0x102
-+subclass.id           0x00
-+device.name           U1496C
-
- vendor.id             special 0x2004
-+vendor.name           Zoom Telephonics, Inc.
-
- vendor.id             special 0x2004
-&device.id             special 0x0001
-+baseclass.id          0x102
-+subclass.id           0x00
-+device.name           Zoom FaxModem V.34X Plus Model 2836
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# isa isdn cards
-
- vendor.id             special 0x3000
-+vendor.name           Unknown
-
- vendor.id             special 0x3001
-+vendor.name           Teles
-
- vendor.id             special 0x3001
-&device.id             special 0x0100
-+device.name           Teles 16.0
-
- vendor.id             special 0x3001
-&device.id             special 0x0101
-+device.name           Teles 16.0 AB
-
- vendor.id             special 0x3003
-+vendor.name           Teles
-
- vendor.id             special 0x3003
-&device.id             special 0x0300
-+device.name           Teles 16.3
-
- vendor.id             special 0x3003
-&device.id             special 0x0301
-+device.name           Teles 16.3 AB Video
-
- vendor.id             special 0x3005
-+vendor.name           AVM
-
- vendor.id             special 0x3005
-&device.id             special 0x0500
-+device.name           AVM A1 or Fritz!Classic
-
- vendor.id             special 0x3006
-+vendor.name           Elsa
-
- vendor.id             special 0x3006
-&device.id             special 0x0601
-+device.name           Elsa ML PC
-
- vendor.id             special 0x3006
-&device.id             special 0x0602
-+device.name           Elsa ML PCC-8
-
- vendor.id             special 0x3006
-&device.id             special 0x0603
-+device.name           Elsa ML PCC-16
-
- vendor.id             special 0x3006
-&device.id             special 0x0604
-+device.name           Elsa ML PCF
-
- vendor.id             special 0x3006
-&device.id             special 0x0605
-+device.name           Elsa ML PCF-Pro
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# sbus cards
-
- vendor.id             special 0x4001
-+vendor.name           Sun Microsystems
-
-
-# Grafik cards
- vendor.id             special 0x4001
-&device.id             special 0x0001
-+device.name           Sun|Monochrome (bwtwo)
-
- vendor.id             special 0x4001
-&device.id             special 0x0002
-+device.name           Sun|Color3 (cgthree)
-
- vendor.id             special 0x4001
-&device.id             special 0x0003
-+device.name           Sun|CG8/RasterOps (cgeight)
-
- vendor.id             special 0x4001
-&device.id             special 0x0004
-+device.name           Sun|GS (cgtwelve)
-
- vendor.id             special 0x4001
-&device.id             special 0x0005
-+device.name           Sun|Graphics Tower (gt)
-
- vendor.id             special 0x4001
-&device.id             special 0x0006
-+device.name           Quantum 3D MGXplus with 4M VRAM (mgx)
-
- vendor.id             special 0x4001
-&device.id             special 0x0007
-+device.name           Quantum 3D MGXplus (mgx)
-
- vendor.id             special 0x4001
-&device.id             special 0x0008
-+device.name           Sun|Double width GX (cgsix)
-
- vendor.id             special 0x4001
-&device.id             special 0x0009
-+device.name           Sun|Single width GX (cgsix)
-
- vendor.id             special 0x4001
-&device.id             special 0x000a
-+device.name           Sun|Turbo GX with 1M VSIMM (cgsix)
-
- vendor.id             special 0x4001
-&device.id             special 0x000b
-+device.name           Sun|Turbo GX Plus (cgsix)
-
- vendor.id             special 0x4001
-&device.id             special 0x000c
-+device.name           Sun|Turbo GX (cgsix)
-
- vendor.id             special 0x4001
-&device.id             special 0x000d
-+device.name           Sun|Unknown GX (cgsix)
-
- vendor.id             special 0x4001
-&device.id             special 0x000e
-+device.name           Sun|SX with 4M VSIMM (cgfourteen)
-
- vendor.id             special 0x4001
-&device.id             special 0x000f
-+device.name           Sun|SX with 8M VSIMM (cgfourteen)
-
- vendor.id             special 0x4001
-&device.id             special 0x0010
-+device.name           Sun|SX (cgfourteen)
-
- vendor.id             special 0x4001
-&device.id             special 0x0011
-+device.name           Sun|ZX or Turbo ZX (leo)
-
- vendor.id             special 0x4001
-&device.id             special 0x0012
-+device.name           Sun|Turbo ZX (leo)
-
- vendor.id             special 0x4001
-&device.id             special 0x0013
-+device.name           Sun|TCX (8bit)
-
- vendor.id             special 0x4001
-&device.id             special 0x0014
-+device.name           Sun|TCX (S24)
-
- vendor.id             special 0x4001
-&device.id             special 0x0015
-+device.name           Sun|Elite3D-M6 Horizontal (afb)
-
- vendor.id             special 0x4001
-&device.id             special 0x0016
-+device.name           Sun|Elite3D (afb)
-
- vendor.id             special 0x4001
-&device.id             special 0x0017
-+device.name           Sun|FFB 67MHz Creator (ffb)
-
- vendor.id             special 0x4001
-&device.id             special 0x0018
-+device.name           Sun|FFB 67MHz Creator 3D (ffb)
-
- vendor.id             special 0x4001
-&device.id             special 0x0019
-+device.name           Sun|FFB 75MHz Creator 3D (ffb)
-
- vendor.id             special 0x4001
-&device.id             special 0x001a
-+device.name           Sun|FFB2 Vertical Creator (ffb)
-
- vendor.id             special 0x4001
-&device.id             special 0x001b
-+device.name           Sun|FFB2 Vertical Creator 3D (ffb)
-
- vendor.id             special 0x4001
-&device.id             special 0x001c
-+device.name           Sun|FFB2+ Vertical Creator (ffb)
-
- vendor.id             special 0x4001
-&device.id             special 0x001d
-+device.name           Sun|FFB2+ Vertical Creator 3D (ffb)
-
- vendor.id             special 0x4001
-&device.id             special 0x001e
-+device.name           Sun|FFB2 Horizontal Creator (ffb)
-
- vendor.id             special 0x4001
-&device.id             special 0x001f
-+device.name           Sun|FFB2 Horizontal Creator 3D (ffb)
-
- vendor.id             special 0x4001
-&device.id             special 0x0020
-+device.name           Sun|FFB [unknown type] (ffb)
-
- vendor.id             special 0x4001
-&device.id             special 0x1001
-+device.name           Sun Enhanced SCSI Processor (ESP)
-
- vendor.id             special 0x4001
-&device.id             special 0x1002
-+device.name           Sun Swift (ESP)
-
- vendor.id             special 0x4001
-&device.id             special 0x1003
-+device.name           Performance Technologies ISP
-
- vendor.id             special 0x4001
-&device.id             special 0x1004
-+device.name           QLogic ISP
-
- vendor.id             special 0x4001
-&device.id             special 0x1101
-+device.name           Sun SPARCStorage Array (fc4)
-
- vendor.id             special 0x4001
-&device.id             special 0x1102
-+device.name           Sun Enterprise Network Array (fc4)
-
-
-# audio chips
- vendor.id             special 0x4001
-&device.id             special 0x2001
-+device.name           AMD7930
-
- vendor.id             special 0x4001
-&device.id             special 0x2002
-+device.name           CS4231 EB2 DMA
-
- vendor.id             special 0x4001
-&device.id             special 0x2003
-+device.name           CS4231 APC DMA
-
- vendor.id             special 0x4001
-&device.id             special 0x2004
-+device.name           SS10/SS20 DBRI
-
-
-# Network cards
- vendor.id             special 0x4001
-&device.id             special 0x3001
-+device.name           Sun Happy Meal Ethernet
-
- vendor.id             special 0x4001
-&device.id             special 0x3002
-+device.name           Sun Lance Ethernet
-
- vendor.id             special 0x4001
-&device.id             special 0x3003
-+device.name           Sun Quad Ethernet
-
- vendor.id             special 0x4001
-&device.id             special 0x3004
-+device.name           MyriCOM MyriNET Gigabit Ethernet
-
-
-# iSeries network
- vendor.id             special 0x6001
-&device.id             special 0x1000
-+driver.module.modprobe        iseries_veth
-
-# IBM vscsi
- vendor.id             special 0x6001
-&device.id             special 0x1001
-+driver.module.modprobe        ibmvscsic
-
-
-# IBM veth
- vendor.id             special 0x6001
-&device.id             special 0x1002
-+driver.module.modprobe        ibmveth
-
-
-# UML veth
- vendor.id             special 0x6010
-+vendor.name           UML
-
-
-# internal: usb scanner driver list
- vendor.id             special 0xf000
-&device.id             special 0x0001
-+driver.module.modprobe        usbscanner
-+driver.module.modprobe        microtek
-
-
-# internal: special notebook packages
-# see int.c::int_system()
- vendor.id             special 0xf001
-&device.id             special 0x0001
-+device.name           IBM Notebook
-+requires              tpctl|tpconfig|tpb|configure-thinkpad
-
- vendor.id             special 0xf001
-&device.id             special 0x0002
-+device.name           Toshiba Notebook
-+requires              toshutils|fnfx
-
- vendor.id             special 0xf001
-&device.id             special 0x0003
-+device.name           Sony Notebook
-+requires              spicctrl
-
- vendor.id             special 0xf001
-&device.id             special 0x0004
-+device.name           HP Notebook
-+driver.module.modprobe        thermal|fan
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# altix things
-
- vendor.id             special 0x4002
-+vendor.name           SGI
-
-# look at net.c if module name changes
- vendor.id             special 0x4002
-&device.id             special 0x0001
-+device.name           Cross Partition Network adapter
-+driver.module.modprobe        xpnet
-
diff --git a/src/hwinfo/src/ids/src/storage b/src/hwinfo/src/ids/src/storage
deleted file mode 100644 (file)
index 173c922..0000000
+++ /dev/null
@@ -1,696 +0,0 @@
-# storage controller
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# scsi controller
-
-# modinfo
- vendor.id             pci 0x1000
-&device.id             pci 0x0001+0x0006
-|vendor.id             pci 0x1000
-&device.id             pci 0x000a+0x0004
-|vendor.id             pci 0x1000
-&device.id             pci 0x000f+0x0002
-|vendor.id             pci 0x1000
-&device.id             pci 0x0012+0x0002
-|vendor.id             pci 0x1000
-&device.id             pci 0x0020+0x0002
-|vendor.id             pci 0x1000
-&device.id             pci 0x008f
-+driver.module.modprobe        sym53c8xx
-
-# message/fusion/
- vendor.id             pci 0x1000
-&device.id             pci 0x0030
-|vendor.id             pci 0x1000
-&device.id             pci 0x0621+0x0002
-|vendor.id             pci 0x1000
-&device.id             pci 0x0624
-|vendor.id             pci 0x1000
-&device.id             pci 0x0626
-|vendor.id             pci 0x1000
-&device.id             pci 0x0628
-+driver.module.modprobe        mptscsih
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0096
-+driver.module.modprobe        ibmsis
-
-# modinfo
- vendor.id             pci 0x1000
-&device.id             pci 0x0407
-|vendor.id             pci 0x1000
-&device.id             pci 0x1960
-|vendor.id             pci 0x101e
-&device.id             pci 0x1960
-|vendor.id             pci 0x101e
-&device.id             pci 0x9010
-|vendor.id             pci 0x101e
-&device.id             pci 0x9060
-|vendor.id             pci 0x1028
-&device.id             pci 0x000e+0x0002
-|vendor.id             pci 0x8086
-&device.id             pci 0x1960
-+driver.module.modprobe        megaraid
-
-# modinfo
- vendor.id             pci 0x1000
-&device.id             pci 0x0407
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0530+0x0003
-|vendor.id             pci 0x1000
-&device.id             pci 0x0407
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0531
-|vendor.id             pci 0x1000
-&device.id             pci 0x0407
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0530
-|vendor.id             pci 0x1000
-&device.id             pci 0x0407
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0532
-|vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0001+0x0002
-|vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x004d
-|vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0001+0x0002
-|vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x1734
-&subdevice.id          pci 0x1065
-|vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0002
-|vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3431
-|vendor.id             pci 0x1000
-&device.id             pci 0x0408
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3499
-|vendor.id             pci 0x1000
-&device.id             pci 0x0409
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x3004
-|vendor.id             pci 0x1000
-&device.id             pci 0x0409
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x3008
-|vendor.id             pci 0x1000
-&device.id             pci 0x0409
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x3008
-|vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0518
-|vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0520
-|vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x0522+0x0002
-|vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0x4523
-|vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1000
-&subdevice.id          pci 0xa520
-|vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0518
-|vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0520
-|vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0520
-|vendor.id             pci 0x1000
-&device.id             pci 0x1960
-&subvendor.id          pci 0x8086
-&subdevice.id          pci 0x0523
-|vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0471
-|vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0475
-|vendor.id             pci 0x101e
-&device.id             pci 0x1960
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0493
-|vendor.id             pci 0x1028
-&device.id             pci 0x000e
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0123
-|vendor.id             pci 0x1028
-&device.id             pci 0x000f
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x014a
-|vendor.id             pci 0x1028
-&device.id             pci 0x0013
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x016c+0x0005
-+driver.module.modprobe        megaraid_mbox
-
-# override qla1280 info (#26325)
- vendor.id             pci 0x1077
-&device.id             pci 0x1216
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x8493
-|vendor.id             pci 0x1077
-&device.id             pci 0x1216
-&subvendor.id          pci 0x101e
-&subdevice.id          pci 0x8471
-+driver.module.modprobe        megaraid
-
-# modinfo
- vendor.id             pci 0x1022
-&device.id             pci 0x2020
-+driver.module.modprobe        tmscsim
-
-# scsi/fdomain.c
- vendor.id             pci 0x1036
-&device.id             pci 0x0000
-+driver.module.modprobe        fdomain
-
-# scsi/eata_dma.c
- vendor.id             pci 0x1044
-&device.id             pci 0xa400
-+driver.module.modprobe        eata
-
-# scsi/dpti.c
- baseclass.id           0x00e
-&subclass.id            0x00
-&vendor.id             pci 0x1044
-&device.id             pci 0xa501
-|baseclass.id           0x00e
-&subclass.id            0x00
-&vendor.id             pci 0x1044
-&device.id             pci 0xa511
-+driver.module.modprobe        dpt_i2o
-
-# scsi/BusLogic.c
- vendor.id             pci 0x104b
-&device.id             pci 0x0140
-|vendor.id             pci 0x104b
-&device.id             pci 0x1040
-|vendor.id             pci 0x104b
-&device.id             pci 0x8130
-+driver.module.modprobe        BusLogic
-
-# scsi/qla1280.c
- vendor.id             pci 0x1077
-&device.id             pci 0x1016
-|vendor.id             pci 0x1077
-&device.id             pci 0x1080
-|vendor.id             pci 0x1077
-&device.id             pci 0x1216
-|vendor.id             pci 0x1077
-&device.id             pci 0x1240
-|vendor.id             pci 0x1077
-&device.id             pci 0x1280
-+driver.module.modprobe        qla1280
-
-# scsi/qlogicisp.c
- vendor.id             pci 0x1077
-&device.id             pci 0x1020
-+driver.module.modprobe        qlogicisp
-
-# scsi/qlogicfc.c
- vendor.id             pci 0x1077
-&device.id             pci 0x2100
-+driver.module.modprobe        qlogicfc
-
- vendor.id             pci 0x1077
-&device.id             pci 0x2200
-+driver.module.modprobe        qla2200
-+driver.module.modprobe        qlogicfc
-
- vendor.id             pci 0x1077
-&device.id             pci 0x2300
-|vendor.id             pci 0x1077
-&device.id             pci 0x2312
-+driver.module.modprobe        qla2300
-
-# scsi/inia100.c
- vendor.id             pci 0x1101
-&device.id             pci 0x0002
-|vendor.id             pci 0x1101
-&device.id             pci 0x1060
-+driver.module.modprobe        a100u2w
-
-# scsi/ini9100u.c
- vendor.id             pci 0x1101
-&device.id             pci 0x9400+0x0002
-|vendor.id             pci 0x1101
-&device.id             pci 0x9500
-|vendor.id             pci 0x134a
-&device.id             pci 0x0002
-+driver.module.modprobe        initio
-
-# scsi/gdth.c
- vendor.id             pci 0x1119
-&device.id             pci 0x0000+0x000e
-|vendor.id             pci 0x1119
-&device.id             pci 0x0100+0x0300
-|vendor.id             pci 0x8086
-&device.id             pci 0x0600
-+driver.module.modprobe        gdth
-
-# scsi/atp870u.c
- vendor.id             pci 0x1191
-&device.id             pci 0x8002
-|vendor.id             pci 0x1191
-&device.id             pci 0x8010
-|vendor.id             pci 0x1191
-&device.id             pci 0x8020
-|vendor.id             pci 0x1191
-&device.id             pci 0x8030
-|vendor.id             pci 0x1191
-&device.id             pci 0x8040
-|vendor.id             pci 0x1191
-&device.id             pci 0x8050
-|vendor.id             pci 0x1191
-&device.id             pci 0x8060
-+driver.module.modprobe        atp870u
-
-# scsi/pci2220i.c
- vendor.id             pci 0x1256
-&device.id             pci 0x4401
-+driver.module.modprobe        pci2220i
-
-# scsi/pci2000.c
- vendor.id             pci 0x1256
-&device.id             pci 0x5201
-+driver.module.modprobe        pci2000
-
-# scsi/dmx3191d.c
- vendor.id             pci 0x134a
-&device.id             pci 0x0001
-+driver.module.modprobe        dmx3191d
-
-# scsi/3w-xxxx.c
- vendor.id             pci 0x13c1
-&device.id             pci 0x1000+0x0002
-+driver.module.modprobe        3w-xxxx
-
-# modules.alias
- vendor.id             pci 0x1de1
-&device.id             pci 0x0391
-+driver.module.modprobe        dc395x
-
-# scsi/aic7xxx/{aic7xxx_pci.c,aic79xx_pci.c}
- vendor.id             pci 0x9004
-&device.id             pci 0x0078
-|vendor.id             pci 0x9004
-&device.id             pci 0x1078
-|vendor.id             pci 0x9004
-&device.id             pci 0x2178
-|vendor.id             pci 0x9004
-&device.id             pci 0x3860
-|vendor.id             pci 0x9004
-&device.id             pci 0x5078
-|vendor.id             pci 0x9004
-&device.id             pci 0x5578
-|vendor.id             pci 0x9004
-&device.id             pci 0x6038
-|vendor.id             pci 0x9004
-&device.id             pci 0x6075
-|vendor.id             pci 0x9004
-&device.id             pci 0x6078
-|vendor.id             pci 0x9004
-&device.id             pci 0x6178
-|vendor.id             pci 0x9004
-&device.id             pci 0x7078
-|vendor.id             pci 0x9004
-&device.id             pci 0x7178
-&subvendor.id          pci 0x0000
-&subdevice.id          pci 0x0000
-|vendor.id             pci 0x9004
-&device.id             pci 0x7278
-&subvendor.id          pci 0x0000
-&subdevice.id          pci 0x0000
-|vendor.id             pci 0x9004
-&device.id             pci 0x7378
-&subvendor.id          pci 0x0000
-&subdevice.id          pci 0x0000
-|vendor.id             pci 0x9004
-&device.id             pci 0x7478
-&subvendor.id          pci 0x0000
-&subdevice.id          pci 0x0000
-|vendor.id             pci 0x9004
-&device.id             pci 0x7578
-&subvendor.id          pci 0x0000
-&subdevice.id          pci 0x0000
-|vendor.id             pci 0x9004
-&device.id             pci 0x7678
-&subvendor.id          pci 0x0000
-&subdevice.id          pci 0x0000
-|vendor.id             pci 0x9004
-&device.id             pci 0x7815
-|vendor.id             pci 0x9004
-&device.id             pci 0x7890+0x0010
-&subvendor.id          pci 0x9004
-&subdevice.id          pci 0x7893
-|vendor.id             pci 0x9004
-&device.id             pci 0x7895
-|vendor.id             pci 0x9004
-&device.id             pci 0x8078
-|vendor.id             pci 0x9004
-&device.id             pci 0x8178
-|vendor.id             pci 0x9004
-&device.id             pci 0x8278
-|vendor.id             pci 0x9004
-&device.id             pci 0x8378
-|vendor.id             pci 0x9004
-&device.id             pci 0x8478
-|vendor.id             pci 0x9004
-&device.id             pci 0x8578
-|vendor.id             pci 0x9004
-&device.id             pci 0x8678
-|vendor.id             pci 0x9004
-&device.id             pci 0x8778
-|vendor.id             pci 0x9004
-&device.id             pci 0x8878
-|vendor.id             pci 0x9005
-&device.id             pci 0x0010+0x0010
-|vendor.id             pci 0x9005
-&device.id             pci 0x0050+0x0010
-|vendor.id             pci 0x9005
-&device.id             pci 0x0080+0x0010
-|vendor.id             pci 0x9005
-&device.id             pci 0x00c0+0x0010
-+driver.module.modprobe        aic7xxx
-
- vendor.id             pci 0x9005
-&device.id             pci 0x8000+0x0020
-+driver.module.modprobe        aic79xx
-
-# scsi/aha152x.c
- vendor.id             ADP
-&device.id             eisa 0x1505
-+driver.module.modprobe        aha152x
-+driver.module.config  options aha152x         aha152x=<io0>,<irq0>
-+driver.module.insmod  aha152x aha152x=<io0>,<irq0>
-
-# scsi/mesh.c
- vendor.id             special 0x0401
-&device.id             special 0x0030
-+driver.module.modprobe        mesh
-
-# scsi/mac53c94.c
- vendor.id             special 0x0401
-&device.id             special 0x0031
-+driver.module.modprobe        mac53c94
-
-# iomega zip
- vendor.id             special 0x1800
-&device.id             special 0x0001
-+driver.module.modprobe        imm
-
-# iomega zip
- vendor.id             special 0x1800
-&device.id             special 0x0002
-+driver.module.modprobe        ppa
-
-# scsi/qlogicpti.c
- vendor.id             special 0x4001
-&device.id             special 0x1003+0x0002
-+driver.module.modprobe        qlogicpti
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# block devices (RAID, ...)
-
-# modules.alias
- vendor.id             pci 0x1011
-&device.id             pci 0x1065
-&subvendor.id          pci 0x1069
-&subdevice.id          pci 0x0020
-|vendor.id             pci 0x1069
-&device.id             pci 0x0001+0x0002
-|vendor.id             pci 0x1069
-&device.id             pci 0x0010
-|vendor.id             pci 0x1069
-&device.id             pci 0x0050
-|vendor.id             pci 0x1069
-&device.id             pci 0xba56
-+driver.module.modprobe        DAC960
-+baseclass.id          0x001
-+subclass.id           0x04
-
-# pcimap
- vendor.id             pci 0x0e11
-&device.id             pci 0xae10
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4030+0x0005
-|vendor.id             pci 0x1000
-&device.id             pci 0x0010
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4040
-|vendor.id             pci 0x1000
-&device.id             pci 0x0010
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4048
-|vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4050+0x0002
-|vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4058
-+driver.module.modprobe        cpqarray
-
-# pcimap
- vendor.id             pci 0x0e11
-&device.id             pci 0x0046
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x409a+0x0004
-|vendor.id             pci 0x0e11
-&device.id             pci 0xb060
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4070
-|vendor.id             pci 0x0e11
-&device.id             pci 0xb178
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4080
-|vendor.id             pci 0x0e11
-&device.id             pci 0xb178
-&subvendor.id          pci 0x0e11
-&subdevice.id          pci 0x4082+0x0002
-+driver.module.modprobe        cciss
-
-# block/swim3.c
- vendor.id             special 0x0401
-&device.id             special 0x0040
-+driver.module.modprobe        swim3
-
- baseclass.id          0x00e
-&subclass.id           0x00+2
-+driver.module.insmod  i2o_pci|i2o_core|i2o_config|i2o_block
-
-# scsi/aacraid/linit.c
- vendor.id             pci 0x1028
-&device.id             pci 0x0001
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0001
-|vendor.id             pci 0x1028
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0002
-|vendor.id             pci 0x1028
-&device.id             pci 0x0003
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0003
-|vendor.id             pci 0x1028
-&device.id             pci 0x0004
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00d0
-|vendor.id             pci 0x1028
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00d1
-|vendor.id             pci 0x1028
-&device.id             pci 0x0002
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00d9
-|vendor.id             pci 0x1028
-&device.id             pci 0x000a
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0106
-|vendor.id             pci 0x1028
-&device.id             pci 0x000a
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x011b
-|vendor.id             pci 0x1028
-&device.id             pci 0x000a
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0121
-|vendor.id             pci 0x9005
-&device.id             pci 0x0283
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0283
-|vendor.id             pci 0x9005
-&device.id             pci 0x0284
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0284
-|vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0286
-|vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0285
-|vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0287
-|vendor.id             pci 0x9005
-&device.id             pci 0x0285
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x0287
-|vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x0364+2
-|vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x9005
-&subdevice.id          pci 0x1364
-|vendor.id             pci 0x1011
-&device.id             pci 0x0046
-&subvendor.id          pci 0x103c
-&subdevice.id          pci 0x10c2
-+driver.module.modprobe        aacraid
-
-# modules.alias sata_*
- baseclass.id          0x001
-&subclass.id           0x06
-&progif.id             0x00
-&vendor.id             pci 0x1725
-&device.id             pci 0x7174
-|baseclass.id          0x001
-&subclass.id           0x06
-&progif.id             0x00
-&vendor.id             pci 0x8086
-&device.id             pci 0x3200
-+driver.module.modprobe        sata_vsc
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0180+0x0002
-+driver.module.modprobe        sata_sis
-
- vendor.id             pci 0x105a
-&device.id             pci 0x3318+0x0002
-|vendor.id             pci 0x105a
-&device.id             pci 0x3371
-|vendor.id             pci 0x105a
-&device.id             pci 0x3373
-|vendor.id             pci 0x105a
-&device.id             pci 0x3375+0x0002
-+driver.module.modprobe        sata_promise
-
- vendor.id             pci 0x105a
-&device.id             pci 0x6622
-+driver.module.modprobe        sata_sx4
-
- vendor.id             pci 0x1095
-&device.id             pci 0x0240
-|vendor.id             pci 0x1095
-&device.id             pci 0x3112
-|vendor.id             pci 0x1095
-&device.id             pci 0x3114
-|vendor.id             pci 0x1095
-&device.id             pci 0x3512
-+driver.module.modprobe        sata_sil
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0036
-|vendor.id             pci 0x10de
-&device.id             pci 0x003e
-|vendor.id             pci 0x10de
-&device.id             pci 0x0054+0x0002
-|vendor.id             pci 0x10de
-&device.id             pci 0x008e
-|vendor.id             pci 0x10de
-&device.id             pci 0x00e3
-|vendor.id             pci 0x10de
-&device.id             pci 0x00ee
-+driver.module.modprobe        sata_nv
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3149
-+driver.module.modprobe        sata_via
-
- vendor.id             pci 0x1166
-&device.id             pci 0x0240
-+driver.module.modprobe        sata_svw
-
-# modules.alias, #38628
- baseclass.id          0x00b
-&subclass.id           0x40
-&progif.id             0x00
-&vendor.id             pci 0x10a9
-&device.id             pci 0x100a
-+driver.module.modprobe        sgiioc4
-+baseclass.id          0x001
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# usb controller
-
- baseclass.id          0x00c
-&subclass.id           0x03
-&progif.id             0x00
-+driver.module.modprobe        uhci-hcd
-
- baseclass.id          0x00c
-&subclass.id           0x03
-&progif.id             0x10
-+driver.module.modprobe        ohci-hcd
-
- baseclass.id          0x00c
-&subclass.id           0x03
-&progif.id             0x20
-+driver.module.modprobe        ehci-hcd
-
- baseclass.id          0x00c
-&subclass.id           0x00
-&progif.id             0x10
-+driver.module.modprobe        ohci1394
-
- vendor.id             pci 0x104c
-&device.id             pci 0x8000
-+driver.module.modprobe        pcilynx
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# Compaq Virtual Management Device
-
-# make it a floppy
- baseclass.id          0x106
-&vendor.id             usb 0x049f
-&device.id             usb 0x0040
-+subclass.id           0x03
diff --git a/src/hwinfo/src/ids/src/tv b/src/hwinfo/src/ids/src/tv
deleted file mode 100644 (file)
index c0adb62..0000000
+++ /dev/null
@@ -1,435 +0,0 @@
-# video/tv cards
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# media/video/buz.c
-
- vendor.id             pci 0x11de
-&device.id             pci 0x6057
-+driver.module.modprobe        buz
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# media/video/zr36120.c
-# (framegrabber)
- vendor.id             pci 0x11de
-&device.id             pci 0x6120
-+driver.module.modprobe        zr36120
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# media/video/bttv-cards.c, kernel 2.4.7
-
- vendor.id             pci 0x109e
-+vendor.name           Brooktree Corporation
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-+device.name           Bt878
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036f
-+device.name           Bt879
-
- vendor.id             pci 0x109e
-&device.id             pci 0x0350+0x0002
-|vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x107d
-&subdevice.id          pci 0x6606
-|vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x6606
-&subdevice.id          pci 0x217d
-|vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x107d
-&subdevice.id          pci 0x6606
-|vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x6606
-&subdevice.id          pci 0x217d
-+subdevice.name                Leadtek WinFast TV 2000
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x0012
-|vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0xbd11
-&subdevice.id          pci 0x1200
-|vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x11bd
-&subdevice.id          pci 0x0012
-|vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0xbd11
-&subdevice.id          pci 0x1200
-+subdevice.name                Pinnacle PCTV
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x1461
-&subdevice.id          pci 0x0001
-|vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x1461
-&subdevice.id          pci 0x0003
-|vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x1461
-&subdevice.id          pci 0x0001
-|vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x1461
-&subdevice.id          pci 0x0003
-+subdevice.name                AVerMedia TVPhone98
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x153b
-&subdevice.id          pci 0x1117+0x0004
-|vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x153b
-&subdevice.id          pci 0x1134
-|vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x153b
-&subdevice.id          pci 0x1117+0x0004
-|vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x153b
-&subdevice.id          pci 0x1134
-+subdevice.name                Terratec TValue
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x15b0
-&subdevice.id          pci 0x400d
-|vendor.id             pci 0x109e
-&device.id             pci 0x036e
-&subvendor.id          pci 0x15b0
-&subdevice.id          pci 0x4010
-|vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x15b0
-&subdevice.id          pci 0x400d
-|vendor.id             pci 0x109e
-&device.id             pci 0x036f
-&subvendor.id          pci 0x15b0
-&subdevice.id          pci 0x4010
-+subdevice.name                Zoltrix Genie TV / Radio
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x0070
-&subdevice.id          pci 0x13eb
-+subdevice.name                Hauppauge WinTV
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x0070
-&subdevice.id          pci 0x3900
-+subdevice.name                Hauppauge WinTV-D
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x0070
-&subdevice.id          pci 0x4500
-+subdevice.name                Hauppauge WinTV/PVR
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x0070
-&subdevice.id          pci 0xff00
-+subdevice.name                Osprey-100
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x0070
-&subdevice.id          pci 0xff01
-+subdevice.name                Osprey-200
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0001
-+subdevice.name                ATI TV Wonder
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0003
-+subdevice.name                ATI TV Wonder/VE
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x10b4
-&subdevice.id          pci 0x2636
-+subdevice.name                STB TV PCI FM, P/N 6000704
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x10fc
-&subdevice.id          pci 0x4020
-+subdevice.name                I-O Data Co. GV-BCV3/PCI
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x10fc
-&subdevice.id          pci 0x4050
-+subdevice.name                I-O Data Co. GV-BCV4/PCI
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x121a
-&subdevice.id          pci 0x3000
-+subdevice.name                VoodooTV 200
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x3000
-+subdevice.name                TView 99 (CPH063)
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x144f
-&subdevice.id          pci 0x3002
-+subdevice.name                Askey Magic TView
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x1461
-&subdevice.id          pci 0x0002
-+subdevice.name                AVermedia TVCapture 98
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x1461
-&subdevice.id          pci 0x0004
-+subdevice.name                AVerMedia TVCapture 98
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x14c7
-&subdevice.id          pci 0x0101
-+subdevice.name                Modular Technology PCTV
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x14ff
-&subdevice.id          pci 0x3000
-+subdevice.name                TView 99 (CPH061)
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x14ff
-&subdevice.id          pci 0x3002
-+subdevice.name                Phoebe TV Master
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x153b
-&subdevice.id          pci 0x1123
-+subdevice.name                Terratec TV Radio+
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x153b
-&subdevice.id          pci 0x1127
-+subdevice.name                Terratec TV+
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x153b
-&subdevice.id          pci 0x1135
-+subdevice.name                Terratec TValue Radio
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x15b0
-&subdevice.id          pci 0x400a
-+subdevice.name                Zoltrix Genie TV
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x15cb
-&subdevice.id          pci 0x0101
-+subdevice.name                AG GMV1
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x1851
-&subdevice.id          pci 0x1850
-+subdevice.name                Chronos Video Shuttle II
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x1851
-&subdevice.id          pci 0x1851
-+subdevice.name                CyberMail AV
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x1852
-&subdevice.id          pci 0x1852
-+subdevice.name                Typhoon TView TV/FM Tuner
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
- vendor.id             pci 0x109e
-&device.id             pci 0x036e+0x0002
-&subvendor.id          pci 0x2636
-&subdevice.id          pci 0x10b4
-+subdevice.name                STB ???
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        bttv
-
-
- vendor.id             pci 0x14f1
-&device.id             pci 0x8800
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        cx8800
-
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7130
-|vendor.id             pci 0x1131
-&device.id             pci 0x7133
-|vendor.id             pci 0x1131
-&device.id             pci 0x7134
-|vendor.id             pci 0x1131
-&device.id             pci 0x7135
-+baseclass.id          0x112
-+subclass.id           0x00
-+driver.module.modprobe        saa7134
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7134
-&subvendor.id          pci 0x1131
-&subdevice.id          pci 0x2001
-+subdevice.name                Proteus Pro [philips reference design]
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7134
-&subvendor.id          pci 0x1131
-&subdevice.id          pci 0x6752
-+subdevice.name                EMPRESS
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7134
-&subvendor.id          pci 0x1131
-&subdevice.id          pci 0x4e85
-+subdevice.name                SKNet Monster TV
-
- vendor.id             pci 0x1131
-&device.id             pci 0x7134
-&subvendor.id          pci 0x153b
-&subdevice.id          pci 0x1142
-+subdevice.name                Terratec Cinergy 400 TV
-
diff --git a/src/hwinfo/src/ids/src/usb b/src/hwinfo/src/ids/src/usb
deleted file mode 100644 (file)
index 5b94262..0000000
+++ /dev/null
@@ -1,6824 +0,0 @@
-# info from usbutils
-
-
- vendor.id             usb 0x0386
-+vendor.name           LTS
-
- vendor.id             usb 0x0386
-&device.id             usb 0x0001
-+device.name           PSX for USB Converter
-
- vendor.id             usb 0x03e8
-+vendor.name           AOX Inc.
-
- vendor.id             usb 0x03e8
-&device.id             usb 0x0004
-+device.name           SE401 WebCam
-
- vendor.id             usb 0x03e8
-&device.id             usb 0x0008
-+device.name           101 Ethernet [klsi]
-
- vendor.id             usb 0x03e9
-+vendor.name           Thesys Microelectronics
-
- vendor.id             usb 0x03ea
-+vendor.name           Data Broadcasting Corp.
-
- vendor.id             usb 0x03eb
-+vendor.name           Atmel Corp.
-
- vendor.id             usb 0x03eb
-&device.id             usb 0x3301
-+device.name           4-port Hub
-
- vendor.id             usb 0x03eb
-&device.id             usb 0x3312
-+device.name           4-port Hub
-
- vendor.id             usb 0x03eb
-&device.id             usb 0x7603
-+device.name           AT76c503a D-Link DWL-120
-
- vendor.id             usb 0x03ec
-+vendor.name           Iwatsu America Inc.
-
- vendor.id             usb 0x03ed
-+vendor.name           Mitel Corp.
-
- vendor.id             usb 0x03ee
-+vendor.name           Mitsumi
-
- vendor.id             usb 0x03ee
-&device.id             usb 0x0000
-+device.name           CD-R/RW Drive
-
- vendor.id             usb 0x03f0
-+vendor.name           Hewlett-Packard
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0004
-+device.name           DeskJet 895c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0101
-+device.name           ScanJet 4100c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0102
-+device.name           PhotoSmart S20
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0104
-+device.name           DeskJet 880c/970c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0105
-+device.name           ScanJet 4200c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0107
-+device.name           CD-Writer Plus
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x010c
-+device.name           Multimedia Keyboard Hub
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0111
-+device.name           G55xi Printer/Scanner/Copier
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x011c
-+device.name           hn210w 802.11b Wireless Ethernet
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0201
-+device.name           ScanJet 6200c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0202
-+device.name           PhotoSmart S20
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0204
-+device.name           DeskJet 815c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0205
-+device.name           ScanJet 3300c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0207
-+device.name           CD-Writer Plus 8200e
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x020c
-+device.name           Multimedia Keyboard
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0304
-+device.name           DeskJet 810c/812c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0311
-+device.name           OfficeJet G85xi
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0317
-+device.name           LaserJet 1200
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0401
-+device.name           ScanJet 5200c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0404
-+device.name           DeskJet 830c/832c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0405
-+device.name           ScanJet 3400cse
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0504
-+device.name           DeskJet 885c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0601
-+device.name           ScanJet 6300c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0604
-+device.name           DeskJet 840c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0605
-+device.name           ScanJet 2200c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0701
-+device.name           ScanJet 5300c/5370c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0705
-+device.name           ScanJet 4400c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x0804
-+device.name           DeskJet 816c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x1004
-+device.name           DeskJet 970c/970cse
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x1104
-+device.name           Deskjet 959C
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x1105
-+device.name           ScanJet 5470c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x1151
-+device.name           750xi Printer/Scanner/Copier
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x1204
-+device.name           DeskJet 930c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x2004
-+device.name           DeskJet 640c
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x3102
-+device.name           PhotoSmart P1100 Printer w/ Card Reader
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x4102
-+device.name           PhotoSmart 618 Camera
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x6202
-+device.name           PhotoSmart 215 Camera
-
- vendor.id             usb 0x03f0
-&device.id             usb 0x6302
-+device.name           PhotoSmart 318/612 Camera
-
- vendor.id             usb 0x03f0
-&device.id             usb 0xefbe
-+device.name           NEC Picty900
-
- vendor.id             usb 0x03f0
-&device.id             usb 0xbef4
-+device.name           NEC Picty760
-
- vendor.id             usb 0x03f0
-&device.id             usb 0xf0be
-+device.name           NEC Picty920
-
- vendor.id             usb 0x03f0
-&device.id             usb 0xf1be
-+device.name           NEC Picty800
-
- vendor.id             usb 0x03f1
-+vendor.name           Genoa Technology
-
- vendor.id             usb 0x03f2
-+vendor.name           Oak Technology, Inc.
-
- vendor.id             usb 0x03f3
-+vendor.name           Adaptec, Inc.
-
- vendor.id             usb 0x03f4
-+vendor.name           Diebold, Inc.
-
- vendor.id             usb 0x03f5
-+vendor.name           Siemens Electromechanical
-
- vendor.id             usb 0x03f8
-+vendor.name           Epson Imaging Technology Center
-
- vendor.id             usb 0x03f9
-+vendor.name           KeyTronic Corp.
-
- vendor.id             usb 0x03fb
-+vendor.name           OPTi Inc.
-
- vendor.id             usb 0x03fc
-+vendor.name           Elitegroup Computer Systems
-
- vendor.id             usb 0x03fd
-+vendor.name           Xilinx Inc.
-
- vendor.id             usb 0x03fe
-+vendor.name           Farallon Comunications
-
- vendor.id             usb 0x0400
-+vendor.name           National Semiconductor
-
- vendor.id             usb 0x0400
-&device.id             usb 0x1000
-+device.name           BearPaw 1200 Scanner
-
- vendor.id             usb 0x0400
-&device.id             usb 0x1001
-+device.name           BearPaw 2400 Scanner
-
- vendor.id             usb 0x0401
-+vendor.name           National Registry Inc.
-
- vendor.id             usb 0x0402
-+vendor.name           Acer Labs Inc.
-
- vendor.id             usb 0x0403
-+vendor.name           Future Technology Devices
-
- vendor.id             usb 0x0403
-&device.id             usb 0x0000
-+device.name           H4SMK 7 Port Hub
-
- vendor.id             usb 0x0403
-&device.id             usb 0x8070
-+device.name           7 Port Hub
-
- vendor.id             usb 0x0403
-&device.id             usb 0x8040
-+device.name           4 Port Hub
-
- vendor.id             usb 0x0403
-&device.id             usb 0x8370
-+device.name           7 Port Hub
-
- vendor.id             usb 0x0403
-&device.id             usb 0x8371
-+device.name           PS/2 Keyboard And Mouse
-
- vendor.id             usb 0x0403
-&device.id             usb 0x8372
-+device.name           FT8U100AX Serial Port
-
- vendor.id             usb 0x0404
-+vendor.name           NCR Corp.
-
- vendor.id             usb 0x0405
-+vendor.name           inSilicon
-
- vendor.id             usb 0x0406
-+vendor.name           Fujitsu-ICL Computers
-
- vendor.id             usb 0x0407
-+vendor.name           Fujitsu Personal Systems, Inc.
-
- vendor.id             usb 0x0408
-+vendor.name           Quanta Computer Inc.
-
- vendor.id             usb 0x0409
-+vendor.name           NEC Systems
-
- vendor.id             usb 0x0409
-&device.id             usb 0x0012
-+device.name           ATerm IT75DSU ISDN TA
-
- vendor.id             usb 0x0409
-&device.id             usb 0x0014
-+device.name           Japanese Keyboard
-
- vendor.id             usb 0x0409
-&device.id             usb 0x0027
-+device.name           MultiSync Monitor
-
- vendor.id             usb 0x0409
-&device.id             usb 0x0058
-+device.name           USB2.0 Hub Controller
-
- vendor.id             usb 0x0409
-&device.id             usb 0x55aa
-+device.name           Hub
-
- vendor.id             usb 0x0409
-&device.id             usb 0x55ab
-+device.name           Hub [iMac kbd]
-
- vendor.id             usb 0x0409
-&device.id             usb 0xefbe
-+device.name           P!cty 900 [HP DJ]
-
- vendor.id             usb 0x0409
-&device.id             usb 0xf0be
-+device.name           P!cty 920 [HP DJ 812c]
-
- vendor.id             usb 0x040a
-+vendor.name           Kodak Co.
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0001
-+device.name           DVC-323
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0002
-+device.name           DVC-325
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0100
-+device.name           DC-220
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0110
-+device.name           DC-260
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0111
-+device.name           DC-265
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0112
-+device.name           DC-290
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0120
-+device.name           DC-240
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0121
-+device.name           DC-240 (PTP firmware)
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0130
-+device.name           DC-280
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0131
-+device.name           DC-5000
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0132
-+device.name           DC-3400
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0140
-+device.name           DC-4800
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0300
-+device.name           EZ-200
-
- vendor.id             usb 0x040a
-&device.id             usb 0x0400
-+device.name           MC3
-
- vendor.id             usb 0x040b
-+vendor.name           Weltrend Semiconductor
-
- vendor.id             usb 0x040c
-+vendor.name           VTech Computers Ltd.
-
- vendor.id             usb 0x040d
-+vendor.name           VIA Technologies, Inc.
-
- vendor.id             usb 0x040e
-+vendor.name           MCCI
-
- vendor.id             usb 0x040f
-+vendor.name           Echo Speech Corp.
-
- vendor.id             usb 0x0411
-+vendor.name           Melco, Inc.
-
- vendor.id             usb 0x0411
-&device.id             usb 0x0001
-+device.name           LUA-TX Ethernet [pegasus]
-
- vendor.id             usb 0x0412
-+vendor.name           Award Software International
-
- vendor.id             usb 0x0413
-+vendor.name           Leadtek Research Inc.
-
- vendor.id             usb 0x0414
-+vendor.name           Giga-Byte Technology Co., Ltd.
-
- vendor.id             usb 0x0416
-+vendor.name           Winbond Electronics Corp.
-
- vendor.id             usb 0x0416
-&device.id             usb 0x0961
-+device.name           AVL Flash Card Reader
-
- vendor.id             usb 0x0416
-&device.id             usb 0x5518
-+device.name           Hub
-
- vendor.id             usb 0x0416
-&device.id             usb 0x551a
-+device.name           PC Sync Keypad
-
- vendor.id             usb 0x0416
-&device.id             usb 0x551b
-+device.name           PC Async Keypad
-
- vendor.id             usb 0x0416
-&device.id             usb 0x551c
-+device.name           Sync Tenkey
-
- vendor.id             usb 0x0416
-&device.id             usb 0x551d
-+device.name           Async Tenkey
-
- vendor.id             usb 0x0416
-&device.id             usb 0x551e
-+device.name           Keyboard
-
- vendor.id             usb 0x0416
-&device.id             usb 0x551f
-+device.name           Keyboard w/ Sys and Media
-
- vendor.id             usb 0x0416
-&device.id             usb 0x5521
-+device.name           Keyboard
-
- vendor.id             usb 0x0416
-&device.id             usb 0x6481
-+device.name           16-bit Scanner
-
- vendor.id             usb 0x0417
-+vendor.name           Symbios Logic
-
- vendor.id             usb 0x0418
-+vendor.name           AST Research
-
- vendor.id             usb 0x0419
-+vendor.name           Samsung Info. Systems America Inc.
-
- vendor.id             usb 0x041a
-+vendor.name           Phoenix Technologies, Ltd.
-
- vendor.id             usb 0x041b
-+vendor.name           d'TV
-
- vendor.id             usb 0x041d
-+vendor.name           S3, Inc.
-
- vendor.id             usb 0x041e
-+vendor.name           Creative Labs
-
- vendor.id             usb 0x041e
-&device.id             usb 0x1002
-+device.name           Nomad II MP3 Player
-
- vendor.id             usb 0x041e
-&device.id             usb 0x1003
-+device.name           Blaster GamePad Cobra
-
- vendor.id             usb 0x041e
-&device.id             usb 0x1050
-+device.name           GamePad Cobra
-
- vendor.id             usb 0x041e
-&device.id             usb 0x4003
-+device.name           VideoBlaster WebCam Go Plus [W9967CF]
-
- vendor.id             usb 0x041e
-&device.id             usb 0x4004
-+device.name           Nomad II MG MP3 Player
-
- vendor.id             usb 0x041e
-&device.id             usb 0x400a
-+device.name           PC-Cam 300
-
- vendor.id             usb 0x041e
-&device.id             usb 0x400b
-+device.name           PC-Cam 600
-
- vendor.id             usb 0x041e
-&device.id             usb 0x400c
-+device.name           WebCam 5 [pwc]
-
- vendor.id             usb 0x041f
-+vendor.name           LCS Telegraphics
-
- vendor.id             usb 0x0420
-+vendor.name           Chips and Technologies
-
- vendor.id             usb 0x0421
-+vendor.name           Nokia Mobile Phones
-
- vendor.id             usb 0x0422
-+vendor.name           ADI Systems Inc.
-
- vendor.id             usb 0x0423
-+vendor.name           Computer Access Technology Corp.
-
- vendor.id             usb 0x0423
-&device.id             usb 0x000a
-+device.name           NetMate Ethernet
-
- vendor.id             usb 0x0423
-&device.id             usb 0x000c
-+device.name           NetMate2 Ethernet
-
- vendor.id             usb 0x0423
-&device.id             usb 0x000d
-+device.name           USB Chief Analyzer
-
- vendor.id             usb 0x0423
-&device.id             usb 0x1237
-+device.name           Andromeda Hub
-
- vendor.id             usb 0x0424
-+vendor.name           Standard Microsystems Corp.
-
- vendor.id             usb 0x0425
-+vendor.name           Motorola Semiconductors HK, Ltd.
-
- vendor.id             usb 0x0426
-+vendor.name           Integrated Device Technology
-
- vendor.id             usb 0x0427
-+vendor.name           Motorola Electronics Taiwan Ltd.
-
- vendor.id             usb 0x0428
-+vendor.name           Advanced Gravis Computer Tech. Ltd.
-
- vendor.id             usb 0x0428
-&device.id             usb 0x4001
-+device.name           GamePad Pro
-
- vendor.id             usb 0x0429
-+vendor.name           Cirrus Logic
-
- vendor.id             usb 0x042a
-+vendor.name           Ericsson Austrian, AG
-
- vendor.id             usb 0x042b
-+vendor.name           Intel Corp.
-
- vendor.id             usb 0x042c
-+vendor.name           Innovative Semiconductors, Inc.
-
- vendor.id             usb 0x042d
-+vendor.name           Micronics
-
- vendor.id             usb 0x042e
-+vendor.name           Acer, Inc.
-
- vendor.id             usb 0x042f
-+vendor.name           Molex, Inc.
-
- vendor.id             usb 0x0430
-+vendor.name           Sun Microsystems
-
- vendor.id             usb 0x0430
-&device.id             usb 0x0005
-+device.name           Type 6 Keyboard
-
- vendor.id             usb 0x0430
-&device.id             usb 0x0100
-+device.name           3-button Mouse
-
- vendor.id             usb 0x0431
-+vendor.name           Itac Systems, Inc.
-
- vendor.id             usb 0x0432
-+vendor.name           Unisys Corp.
-
- vendor.id             usb 0x0433
-+vendor.name           Alps Electric Inc.
-
- vendor.id             usb 0x0433
-&device.id             usb 0x1101
-+device.name           IBM Game Controller
-
- vendor.id             usb 0x0434
-+vendor.name           Samsung Info. Systems America Inc.
-
- vendor.id             usb 0x0435
-+vendor.name           Hyundai Electronics America
-
- vendor.id             usb 0x0436
-+vendor.name           Taugagreining HF
-
- vendor.id             usb 0x0437
-+vendor.name           Framatome Connectors USA
-
- vendor.id             usb 0x0438
-+vendor.name           Advanced Micro Devices
-
- vendor.id             usb 0x0439
-+vendor.name           Voice Technologies Group
-
- vendor.id             usb 0x043d
-+vendor.name           Lexmark International Inc.
-
- vendor.id             usb 0x043d
-&device.id             usb 0x0002
-+device.name           Optra E310 Printer
-
- vendor.id             usb 0x043d
-&device.id             usb 0x0009
-+device.name           Optra S2450 Printer
-
- vendor.id             usb 0x043d
-&device.id             usb 0x000c
-+device.name           Optra E312 Printer
-
- vendor.id             usb 0x043d
-&device.id             usb 0x0017
-+device.name           Z32 printer
-
- vendor.id             usb 0x043d
-&device.id             usb 0x0018
-+device.name           Z52 Printer
-
- vendor.id             usb 0x043d
-&device.id             usb 0x0020
-+device.name           Z51 Printer
-
- vendor.id             usb 0x043d
-&device.id             usb 0x003d
-+device.name           X83 Scan/Print/Copy
-
- vendor.id             usb 0x043e
-+vendor.name           LG Electronics USA Inc.
-
- vendor.id             usb 0x043e
-&device.id             usb 0x42bd
-+device.name           Flatron 795FT Plus Monitor
-
- vendor.id             usb 0x043e
-&device.id             usb 0x7001
-+device.name           MF-PD100 Soul Digital MP3 Player
-
- vendor.id             usb 0x043e
-&device.id             usb 0x8484
-+device.name           LPC-U30 Webcam II
-
- vendor.id             usb 0x043e
-&device.id             usb 0x8585
-+device.name           LPC-UC35 Webcam
-
- vendor.id             usb 0x043f
-+vendor.name           RadiSys Corp.
-
- vendor.id             usb 0x0440
-+vendor.name           Eizo Nanao Corp.
-
- vendor.id             usb 0x0441
-+vendor.name           Winbond Systems Lab.
-
- vendor.id             usb 0x0441
-&device.id             usb 0x1456
-+device.name           Hub
-
- vendor.id             usb 0x0442
-+vendor.name           Ericsson Inc.
-
- vendor.id             usb 0x0443
-+vendor.name           Gateway 2000
-
- vendor.id             usb 0x0445
-+vendor.name           Lucent Technologies
-
- vendor.id             usb 0x0446
-+vendor.name           NMB Technologies, Inc.
-
- vendor.id             usb 0x0447
-+vendor.name           Momentum Microsystems
-
- vendor.id             usb 0x044a
-+vendor.name           Shamrock Tech. Co., Ltd.
-
- vendor.id             usb 0x044b
-+vendor.name           WSI
-
- vendor.id             usb 0x044c
-+vendor.name           CCL/ITRI
-
- vendor.id             usb 0x044d
-+vendor.name           Siemens Nixdorf
-
- vendor.id             usb 0x044e
-+vendor.name           Alps Electric Co.
-
- vendor.id             usb 0x044e
-&device.id             usb 0x2002
-+device.name           MD-5500 Printer
-
- vendor.id             usb 0x044f
-+vendor.name           ThrustMaster, Inc.
-
- vendor.id             usb 0x044f
-&device.id             usb 0xa0a3
-+device.name           Fusion Digital GamePad
-
- vendor.id             usb 0x044f
-&device.id             usb 0xb300
-+device.name           Firestorm Dual Power
-
- vendor.id             usb 0x0450
-+vendor.name           DFI Inc.
-
- vendor.id             usb 0x0451
-+vendor.name           Texas Instruments
-
- vendor.id             usb 0x0451
-&device.id             usb 0x1428
-+device.name           Hub
-
- vendor.id             usb 0x0451
-&device.id             usb 0x1446
-+device.name           TUSB2040/2070 Hub
-
- vendor.id             usb 0x0451
-&device.id             usb 0x2036
-+device.name           TUSB2036 Hub
-
- vendor.id             usb 0x0451
-&device.id             usb 0x2046
-+device.name           TUSB2046 Hub
-
- vendor.id             usb 0x0451
-&device.id             usb 0x2077
-+device.name           TUSB2077 Hub
-
- vendor.id             usb 0x0451
-&device.id             usb 0xe001
-+device.name           GraphLink
-
- vendor.id             usb 0x0452
-+vendor.name           Mitsubishi Electronics America, Inc.
-
- vendor.id             usb 0x0453
-+vendor.name           CMD Technology
-
- vendor.id             usb 0x0454
-+vendor.name           Vobis Microcomputer AG
-
- vendor.id             usb 0x0455
-+vendor.name           Telematics International, Inc.
-
- vendor.id             usb 0x0456
-+vendor.name           Analog Devices, Inc.
-
- vendor.id             usb 0x0457
-+vendor.name           Silicon Integrated Systems Corp.
-
- vendor.id             usb 0x0458
-+vendor.name           KYE Systems Corp.(Mouse Systems)
-
- vendor.id             usb 0x0458
-&device.id             usb 0x0001
-+device.name           Mouse
-
- vendor.id             usb 0x0458
-&device.id             usb 0x0002
-+device.name           Genius NetMouse Pro
-
- vendor.id             usb 0x0458
-&device.id             usb 0x0003
-+device.name           Genius NetScroll+
-
- vendor.id             usb 0x0458
-&device.id             usb 0x0100
-+device.name           EasyPen Tablet
-
- vendor.id             usb 0x0458
-&device.id             usb 0x0101
-+device.name           CueCat
-
- vendor.id             usb 0x0458
-&device.id             usb 0x1003
-+device.name           Genius VideoCam
-
- vendor.id             usb 0x0458
-&device.id             usb 0x1004
-+device.name           Flight2000 F-23 Joystick
-
- vendor.id             usb 0x0458
-&device.id             usb 0x2001
-+device.name           ColorPage-Vivid Pro Scanner
-
- vendor.id             usb 0x0459
-+vendor.name           Adobe Systems, Inc.
-
- vendor.id             usb 0x045a
-+vendor.name           Diamond Multimedia Systems
-
- vendor.id             usb 0x045a
-&device.id             usb 0x0b4a
-+device.name           SupraMax 2890 56K Modem [Lucent Atlas]
-
- vendor.id             usb 0x045a
-&device.id             usb 0x0b68
-+device.name           SupraMax 56K Modem
-
- vendor.id             usb 0x045b
-+vendor.name           Hitachi, Ltd.
-
- vendor.id             usb 0x045d
-+vendor.name           Nortel Networks
-
- vendor.id             usb 0x045e
-+vendor.name           Microsoft Corp.
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0008
-+device.name           SideWinder Precision Pro
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0009
-+device.name           IntelliMouse
-
- vendor.id             usb 0x045e
-&device.id             usb 0x000b
-+device.name           Natural Keyboard Elite
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0014
-+device.name           Digital Sound System 80
-
- vendor.id             usb 0x045e
-&device.id             usb 0x001a
-+device.name           SideWinder Precision Racing Wheel
-
- vendor.id             usb 0x045e
-&device.id             usb 0x001b
-+device.name           SideWinder Force Feedback 2 Joystick
-
- vendor.id             usb 0x045e
-&device.id             usb 0x001d
-+device.name           Natural Keyboard Pro
-
- vendor.id             usb 0x045e
-&device.id             usb 0x001e
-+device.name           IntelliMouse Explorer
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0024
-+device.name           Trackball Explorer
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0025
-+device.name           IntelliEye Mouse
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0026
-+device.name           SideWinder GamePad Pro
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0027
-+device.name           SideWinder PnP GamePad
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0028
-+device.name           SideWinder Dual Strike
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0029
-+device.name           IntelliMouse Optical
-
- vendor.id             usb 0x045e
-&device.id             usb 0x002b
-+device.name           Internet Keyboard Pro
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0034
-+device.name           SideWinder Force Feedback Wheel
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0033
-+device.name           Sidewinder Strategic Commander
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0038
-+device.name           SideWinder Precision 2
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0039
-+device.name           IntelliMouse Optical
-
- vendor.id             usb 0x045e
-&device.id             usb 0x003b
-+device.name           SideWinder Game Voice
-
- vendor.id             usb 0x045e
-&device.id             usb 0x003c
-+device.name           SideWinder Joystick
-
- vendor.id             usb 0x045e
-&device.id             usb 0x0040
-+device.name           Wheel Mouse Optical
-
- vendor.id             usb 0x0460
-+vendor.name           Ace Cad Enterprise Co., Ltd.
-
- vendor.id             usb 0x0461
-+vendor.name           Primax Electronics
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0300
-+device.name           G2-300 Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0301
-+device.name           G2E-300 Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0302
-+device.name           G2-300 #2 Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0303
-+device.name           G2E-300 #2 Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0340
-+device.name           Colorado 9600 Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0341
-+device.name           Colorado 600u Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0346
-+device.name           Memorex Maxx 6136u Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0347
-+device.name           Visioneer 4400 Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0360
-+device.name           Colorado 19200 Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0361
-+device.name           Colorado 1200u Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0380
-+device.name           G2-600 Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0381
-+device.name           ReadyScan 636i Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0382
-+device.name           G2-600 #2 Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0383
-+device.name           G2E-600 Scanner
-
- vendor.id             usb 0x0461
-&device.id             usb 0x0813
-+device.name           IBM UltraPort Camera
-
- vendor.id             usb 0x0461
-&device.id             usb 0x081a
-+device.name           Fujifilm IX-30 Camera
-
- vendor.id             usb 0x0461
-&device.id             usb 0x4d01
-+device.name           Comfort Keyboard
-
- vendor.id             usb 0x0461
-&device.id             usb 0x4d02
-+device.name           Mouse-in-a-Box
-
- vendor.id             usb 0x0461
-&device.id             usb 0x4d03
-+device.name           Kensington Mouse-in-a-box
-
- vendor.id             usb 0x0461
-&device.id             usb 0x4d04
-+device.name           Mouse
-
- vendor.id             usb 0x0463
-+vendor.name           MGE UPS Systems
-
- vendor.id             usb 0x0463
-&device.id             usb 0xffff
-+device.name           Ellipse UPS
-
- vendor.id             usb 0x0464
-+vendor.name           AMP Incorporated
-
- vendor.id             usb 0x0467
-+vendor.name           AT&T Paradyne
-
- vendor.id             usb 0x0468
-+vendor.name           Wieson Electronic Co., Ltd.
-
- vendor.id             usb 0x046a
-+vendor.name           Cherry Mikroschalter GmbH
-
- vendor.id             usb 0x046a
-&device.id             usb 0x0001
-+device.name           My3000 Keyboard
-
- vendor.id             usb 0x046a
-&device.id             usb 0x0003
-+device.name           My3000 Hub
-
- vendor.id             usb 0x046b
-+vendor.name           American Megatrends
-
- vendor.id             usb 0x046c
-+vendor.name           Toshiba Corp., Digital Media Equipment
-
- vendor.id             usb 0x046d
-+vendor.name           Logitech Inc.
-
- vendor.id             usb 0x046d
-&device.id             usb 0x0203
-+device.name           M2452 Keyboard
-
- vendor.id             usb 0x046d
-&device.id             usb 0x0301
-+device.name           M4848 Mouse
-
- vendor.id             usb 0x046d
-&device.id             usb 0x0401
-+device.name           HP PageScan
-
- vendor.id             usb 0x046d
-&device.id             usb 0x0402
-+device.name           NEC PageScan
-
- vendor.id             usb 0x046d
-&device.id             usb 0x040f
-+device.name           Logitech/Storm PageScan
-
- vendor.id             usb 0x046d
-&device.id             usb 0x0801
-+device.name           QuickCam Home
-
- vendor.id             usb 0x046d
-&device.id             usb 0x0810
-+device.name           QuickCam Pro
-
- vendor.id             usb 0x046d
-&device.id             usb 0x0840
-+device.name           QuickCam Express
-
- vendor.id             usb 0x046d
-&device.id             usb 0x0850
-+device.name           QuickCam Web
-
- vendor.id             usb 0x046d
-&device.id             usb 0x0870
-+device.name           QuickCam Express
-
- vendor.id             usb 0x046d
-&device.id             usb 0x08b0
-+device.name           QuickCam 3000 Pro [pwc]
-
- vendor.id             usb 0x046d
-&device.id             usb 0x0900
-+device.name           ClickSmart 310
-
- vendor.id             usb 0x046d
-&device.id             usb 0x0901
-+device.name           ClickSmart 510
-
- vendor.id             usb 0x046d
-&device.id             usb 0x0950
-+device.name           Pocket Camera
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc000
-+device.name           N43 [Pilot Mouse]
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc001
-+device.name           N48/M-BB48 [FirstMouse Plus]
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc002
-+device.name           M-BA47 [MouseMan Plus]
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc004
-+device.name           WingMan Gaming Mouse
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc00b
-+device.name           MouseMan Wheel
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc00c
-+device.name           Optical Wheel Mouse
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc00e
-+device.name           Optical Mouse
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc012
-+device.name           Optical Mouse
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc030
-+device.name           iFeel Mouse
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc032
-+device.name           MouseMan iFeel
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc202
-+device.name           WingMan Formula
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc207
-+device.name           WingMan Extreme Digital 3D
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc208
-+device.name           WingMan Gamepad Extreme
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc209
-+device.name           WingMan Gamepad
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc20a
-+device.name           WingMan RumblePad
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc20c
-+device.name           WingMan Precision
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc281
-+device.name           WingMan Force
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc283
-+device.name           WingMan Force 3D
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc285
-+device.name           WingMan Strike Force 3D
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc291
-+device.name           WingMan Formula Force
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc295
-+device.name           Momo Force Steering Wheel
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc2a0
-+device.name           Wingman Force Feedback Mouse
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc308
-+device.name           Internet Navigator Keyboard
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc401
-+device.name           TrackMan Marble Wheel
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc501
-+device.name           Cordless Mouse Receiver
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc503
-+device.name           Cordless Mouse+Keyboard Receiver
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc504
-+device.name           Cordless Mouse+Keyboard Receiver
-
- vendor.id             usb 0x046d
-&device.id             usb 0xd001
-+device.name           QuickCam Pro
-
- vendor.id             usb 0x046e
-+vendor.name           Behavior Tech. Computer
-
- vendor.id             usb 0x046e
-&device.id             usb 0x6782
-+device.name           BTC 7932 mouse+keyboard
-
- vendor.id             usb 0x046f
-+vendor.name           Crystal Semiconductor
-
- vendor.id             usb 0x0471
-+vendor.name           Philips
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0101
-+device.name           DSS350 Digital Speaker System
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0104
-+device.name           DSS330 Digital Speaker System [uda1321]
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0201
-+device.name           Hub
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0222
-+device.name           Creative Nomad Jukebox
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0302
-+device.name           PCA645VC WebCam [pwc]
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0303
-+device.name           PCA646VC WebCam [pwc]
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0304
-+device.name           Askey VC010 WebCam [pwc]
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0307
-+device.name           PCVC675K WebCam [pwc]
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0308
-+device.name           PCVC680K WebCam [pwc]
-
- vendor.id             usb 0x0471
-&device.id             usb 0x030c
-+device.name           PCVC690K WebCam [pwc]
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0310
-+device.name           PCVC730K WebCam [pwc]
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0311
-+device.name           PCVC740K ToUcam Pro [pwc]
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0312
-+device.name           PCVC750K WebCam [pwc]
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0471
-+device.name           Digital Speaker System
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0601
-+device.name           OVU1020 IR Dongle (Kbd+Mouse)
-
- vendor.id             usb 0x0471
-&device.id             usb 0x0701
-+device.name           150P1 TFT Display
-
- vendor.id             usb 0x0471
-&device.id             usb 0x1801
-+device.name           Diva MP3 player
-
- vendor.id             usb 0x0472
-+vendor.name           Chicony
-
- vendor.id             usb 0x0472
-&device.id             usb 0x0065
-+device.name           PFU-65 Keyboard
-
- vendor.id             usb 0x0473
-+vendor.name           Sanyo Information Business Co., Ltd.
-
- vendor.id             usb 0x0474
-+vendor.name           Sanyo Electric Co. Ltd.
-
- vendor.id             usb 0x0475
-+vendor.name           Relisys/Teco Information System
-
- vendor.id             usb 0x0476
-+vendor.name           AESP
-
- vendor.id             usb 0x0477
-+vendor.name           Seagate Technology
-
- vendor.id             usb 0x0478
-+vendor.name           Connectix Corp.
-
- vendor.id             usb 0x0478
-&device.id             usb 0x0001
-+device.name           QuickCam
-
- vendor.id             usb 0x0478
-&device.id             usb 0x0002
-+device.name           QuickClip
-
- vendor.id             usb 0x0479
-+vendor.name           Advanced Peripheral Laboratories
-
- vendor.id             usb 0x047a
-+vendor.name           USAR Systems
-
- vendor.id             usb 0x047b
-+vendor.name           Silitek Corp.
-
- vendor.id             usb 0x047b
-&device.id             usb 0x0002
-+device.name           Keyboard and Mouse
-
- vendor.id             usb 0x047b
-&device.id             usb 0x0101
-+device.name           BlueTooth Keyboard and Mouse
-
- vendor.id             usb 0x047b
-&device.id             usb 0x1002
-+device.name           HP ScanJet 4300c Parallel Port
-
- vendor.id             usb 0x047c
-+vendor.name           Dell Computer Corp.
-
- vendor.id             usb 0x047d
-+vendor.name           Kensington
-
- vendor.id             usb 0x047d
-&device.id             usb 0x1003
-+device.name           Orbit TrackBall
-
- vendor.id             usb 0x047d
-&device.id             usb 0x1005
-+device.name           TurboBall
-
- vendor.id             usb 0x047d
-&device.id             usb 0x5002
-+device.name           VideoCam CABO II
-
- vendor.id             usb 0x047d
-&device.id             usb 0x5003
-+device.name           VideoCam
-
- vendor.id             usb 0x047d
-&device.id             usb 0x4006
-+device.name           Gravis Eliminator AfterShock
-
- vendor.id             usb 0x047d
-&device.id             usb 0x4005
-+device.name           Gravis Eliminator GamePad Pro
-
- vendor.id             usb 0x047d
-&device.id             usb 0x4008
-+device.name           Gravis Destroyer TiltPad
-
- vendor.id             usb 0x047e
-+vendor.name           Agere (Lucent)
-
- vendor.id             usb 0x047e
-&device.id             usb 0x1001
-+device.name           USS720 Parallel Port
-
- vendor.id             usb 0x047e
-&device.id             usb 0xf101
-+device.name           Atlas Modem
-
- vendor.id             usb 0x047f
-+vendor.name           Plantronics, Inc.
-
- vendor.id             usb 0x0480
-+vendor.name           Toshiba America Info. Systems, Inc.
-
- vendor.id             usb 0x0481
-+vendor.name           Zenith Data Systems
-
- vendor.id             usb 0x0482
-+vendor.name           Kyocera Electronics, Inc.
-
- vendor.id             usb 0x0483
-+vendor.name           SGS Thomson Microelectronics
-
- vendor.id             usb 0x0483
-&device.id             usb 0x7554
-+device.name           56k SoftModem
-
- vendor.id             usb 0x0484
-+vendor.name           Specialix
-
- vendor.id             usb 0x0485
-+vendor.name           Nokia Monitors
-
- vendor.id             usb 0x0486
-+vendor.name           ASUS Computers Inc.
-
- vendor.id             usb 0x0487
-+vendor.name           Stewart Connector
-
- vendor.id             usb 0x0488
-+vendor.name           Cirque Corp.
-
- vendor.id             usb 0x0489
-+vendor.name           Foxconn / Hon Hai
-
- vendor.id             usb 0x0489
-&device.id             usb 0x0502
-+device.name           SmartMedia Card Reader Firmware Loader
-
- vendor.id             usb 0x0489
-&device.id             usb 0x0503
-+device.name           SmartMedia Card Reader
-
- vendor.id             usb 0x048a
-+vendor.name           S-MOS Systems, Inc.
-
- vendor.id             usb 0x048c
-+vendor.name           Alps Electric Ireland Ltd.
-
- vendor.id             usb 0x048d
-+vendor.name           Integrated Technology Express
-
- vendor.id             usb 0x048f
-+vendor.name           Eicon Tech.
-
- vendor.id             usb 0x0490
-+vendor.name           United Microelectronics Corp.
-
- vendor.id             usb 0x0491
-+vendor.name           Capetronic
-
- vendor.id             usb 0x0492
-+vendor.name           Samsung SemiConductor, Inc.
-
- vendor.id             usb 0x0493
-+vendor.name           MAG Technology Co., Ltd.
-
- vendor.id             usb 0x0495
-+vendor.name           ESS Technology, Inc.
-
- vendor.id             usb 0x0496
-+vendor.name           Micron Electronics
-
- vendor.id             usb 0x0497
-+vendor.name           Smile International
-
- vendor.id             usb 0x0498
-+vendor.name           Capetronic (Kaohsiung) Corp.
-
- vendor.id             usb 0x0499
-+vendor.name           Yamaha Corp.
-
- vendor.id             usb 0x0499
-&device.id             usb 0x6001
-+device.name           CRW2200UX Lightspeed 2 External CD-RW Drive
-
- vendor.id             usb 0x049a
-+vendor.name           Gandalf Technologies Ltd.
-
- vendor.id             usb 0x049b
-+vendor.name           Curtis Computer Products
-
- vendor.id             usb 0x049c
-+vendor.name           Acer Advanced Labs, Inc.
-
- vendor.id             usb 0x049c
-&device.id             usb 0x0002
-+device.name           Keyboard (???)
-
- vendor.id             usb 0x049d
-+vendor.name           VLSI Technology
-
- vendor.id             usb 0x049f
-+vendor.name           Compaq Computer Corp.
-
- vendor.id             usb 0x049f
-&device.id             usb 0x0003
-+device.name           iPAQ PocketPC
-
- vendor.id             usb 0x049f
-&device.id             usb 0x000e
-+device.name           Internet Keyboard
-
- vendor.id             usb 0x049f
-&device.id             usb 0x0018
-+device.name           PA-1/PA-2 MP3 Player
-
- vendor.id             usb 0x049f
-&device.id             usb 0x0033
-+device.name           Evo N600c Builtin Wireless Ethernet [orinoco]
-
- vendor.id             usb 0x049f
-&device.id             usb 0x505a
-+device.name           SA-11x0 based Linux Device, or Itsy (experimental)
-
- vendor.id             usb 0x049f
-&device.id             usb 0x8511
-+device.name           iPAQ Networking 10/100 Ethernet [pegasus2]
-
- vendor.id             usb 0x04a0
-+vendor.name           Digital Equipment Corp.
-
- vendor.id             usb 0x04a1
-+vendor.name           SystemSoft Corp.
-
- vendor.id             usb 0x04a2
-+vendor.name           FirePower Systems
-
- vendor.id             usb 0x04a3
-+vendor.name           Trident Microsystems Inc.
-
- vendor.id             usb 0x04a4
-+vendor.name           Hitachi, Ltd.
-
- vendor.id             usb 0x04a5
-+vendor.name           Acer Peripherals Inc.
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x0001
-+device.name           Keyboard
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x12a6
-+device.name           AcerScan C310U
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x1a20
-+device.name           Prisa 310U
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x1a2a
-+device.name           Prisa 620U
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x2022
-+device.name           Prisa 320U/340U
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x2040
-+device.name           Prisa 620UT
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x2060
-+device.name           Prisa 620U+/640U
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x207e
-+device.name           Prisa 640BU
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x20b0
-+device.name           S2W 3300U/4300U
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x20be
-+device.name           Prisa 640BT
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x20c0
-+device.name           Prisa 1240UT
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x20de
-+device.name           S2W 4300U+
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x20fe
-+device.name           SW2 5300U
-
- vendor.id             usb 0x04a5
-&device.id             usb 0x9213
-+device.name           Kbd Hub
-
- vendor.id             usb 0x04a6
-+vendor.name           Nokia Display Products
-
- vendor.id             usb 0x04a7
-+vendor.name           Visioneer
-
- vendor.id             usb 0x04a7
-&device.id             usb 0x0211
-+device.name           OneTouch 7600 Scanner
-
- vendor.id             usb 0x04a7
-&device.id             usb 0x0221
-+device.name           OneTouch 5300 Scanner
-
- vendor.id             usb 0x04a7
-&device.id             usb 0x0224
-+device.name           Microtek Scanport 3000
-
- vendor.id             usb 0x04a7
-&device.id             usb 0x0231
-+device.name           6100 Scanner
-
- vendor.id             usb 0x04a7
-&device.id             usb 0x0311
-+device.name           6200 EPP/USB Scanner
-
- vendor.id             usb 0x04a7
-&device.id             usb 0x0321
-+device.name           OneTouch 8100 EPP/USB Scanner
-
- vendor.id             usb 0x04a7
-&device.id             usb 0x0331
-+device.name           OneTouch 8600 EPP/USB Scanner
-
- vendor.id             usb 0x04a8
-+vendor.name           Multivideo Labs, Inc.
-
- vendor.id             usb 0x04a9
-+vendor.name           Canon Inc.
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x1051
-+device.name           BJC-3000 Color Printer
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x1056
-+device.name           BJC-2110 Color Printer
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x105b
-+device.name           S600 Printer
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x105d
-+device.name           S450 Printer
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x1062
-+device.name           S500 Printer
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x1064
-+device.name           S300 Printer
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x2204
-+device.name           CanoScan FB630U
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x2205
-+device.name           CanoScan FB1210U
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x2206
-+device.name           CanoScan N650U
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x2207
-+device.name           CanoScan 1220U
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x2208
-+device.name           CanoScan D660U
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x220d
-+device.name           CanoScan N670U
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3041
-+device.name           PowerShot S10
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3043
-+device.name           PowerShot S20
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3045
-+device.name           PowerShot S100
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3047
-+device.name           Digital IXUS
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3048
-+device.name           PowerShot G1
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3049
-+device.name           PowerShot Pro90 IS
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x304b
-+device.name           IXY Digital 300
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x304e
-+device.name           PowerShot A20
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x304f
-+device.name           PowerShot A10
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3056
-+device.name           PowerShot S40
-
- vendor.id             usb 0x04a9
-&device.id             usb 0x3058
-+device.name           PowerShot A40
-
- vendor.id             usb 0x04aa
-+vendor.name           DaeWoo Telecom, Ltd.
-
- vendor.id             usb 0x04ab
-+vendor.name           Chromatic Research
-
- vendor.id             usb 0x04ac
-+vendor.name           Micro Audiometrics Corp.
-
- vendor.id             usb 0x04ad
-+vendor.name           Dooin Electronics
-
- vendor.id             usb 0x04af
-+vendor.name           Winnov L.P.
-
- vendor.id             usb 0x04b0
-+vendor.name           Nikon Corp.
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0102
-+device.name           Coolpix 990
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0103
-+device.name           Coolpix 880
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0104
-+device.name           Coolpix 995
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0106
-+device.name           Coolpix 775
-
- vendor.id             usb 0x04b0
-&device.id             usb 0x0107
-+device.name           Coolpix 5000
-
- vendor.id             usb 0x04b1
-+vendor.name           Pan International
-
- vendor.id             usb 0x04b3
-+vendor.name           IBM Corp.
-
- vendor.id             usb 0x04b3
-&device.id             usb 0x3004
-+device.name           Media Access Pro Keyboard
-
- vendor.id             usb 0x04b3
-&device.id             usb 0x3100
-+device.name           NetVista Mouse
-
- vendor.id             usb 0x04b3
-&device.id             usb 0x4427
-+device.name           Portable CD ROM
-
- vendor.id             usb 0x04b3
-&device.id             usb 0x4525
-+device.name           Double sided CRT
-
- vendor.id             usb 0x04b3
-&device.id             usb 0x4550
-+device.name           NVRAM (128 KB)
-
- vendor.id             usb 0x04b3
-&device.id             usb 0x4554
-+device.name           Cash Drawer
-
- vendor.id             usb 0x04b3
-&device.id             usb 0x4580
-+device.name           Hub w/ NVRAM
-
- vendor.id             usb 0x04b3
-&device.id             usb 0x4581
-+device.name           4800-2xx Hub w/ Cash Drawer
-
- vendor.id             usb 0x04b3
-&device.id             usb 0x4604
-+device.name           Keyboard w/ Card Reader
-
- vendor.id             usb 0x04b3
-&device.id             usb 0x4671
-+device.name           4820 LCD w/ MSR/KB
-
- vendor.id             usb 0x04b4
-+vendor.name           Cypress Semiconductor
-
- vendor.id             usb 0x04b4
-&device.id             usb 0x0000
-+device.name           Dacal DC-101 CD Library
-
- vendor.id             usb 0x04b4
-&device.id             usb 0x0001
-+device.name           Mouse
-
- vendor.id             usb 0x04b4
-&device.id             usb 0x0002
-+device.name           CY7C63x0x Thermometer
-
- vendor.id             usb 0x04b4
-&device.id             usb 0x1002
-+device.name           CY7C63001 R100 FM Radio
-
- vendor.id             usb 0x04b4
-&device.id             usb 0x8613
-+device.name           CY7C68013 EZ-USB FX2 USB 2.0 Development Kit
-
- vendor.id             usb 0x04b4
-&device.id             usb 0xd5d5
-+device.name           CY7C63x0x Zoltrix Z-Boxer GamePad
-
- vendor.id             usb 0x04b5
-+vendor.name           ROHM LSI Systems, Inc.
-
- vendor.id             usb 0x04b6
-+vendor.name           Hint Corp.
-
- vendor.id             usb 0x04b7
-+vendor.name           Compal Electronics, Inc.
-
- vendor.id             usb 0x04b8
-+vendor.name           Seiko Epson Corp.
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0001
-+device.name           Stylus Color 740 / Photo 750
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0002
-+device.name           ISD Smart Cable for Mac
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0003
-+device.name           ISD Smart Cable
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0005
-+device.name           Stylus Printer
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0101
-+device.name           Perfection 636
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0103
-+device.name           Perfection 610
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0104
-+device.name           Perfection 1200
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0106
-+device.name           Stylus Scan 2500
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0107
-+device.name           Expression 1600U
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x010a
-+device.name           Perfection 1640SU
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x010b
-+device.name           Perfection 1240
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x010c
-+device.name           Perfection 640
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x010f
-+device.name           Perfection 1250
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0110
-+device.name           Perfection 1650
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0202
-+device.name           Receipt Printer M129C
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0601
-+device.name           Stylus Photo 875DC Card Reader
-
- vendor.id             usb 0x04b8
-&device.id             usb 0x0602
-+device.name           Stylus Photo 895 Card Reader
-
- vendor.id             usb 0x04b9
-+vendor.name           Rainbow Technologies, Inc.
-
- vendor.id             usb 0x04b9
-&device.id             usb 0x1000
-+device.name           iKey 1000 Token
-
- vendor.id             usb 0x04b9
-&device.id             usb 0x1001
-+device.name           iKey 1200 Token
-
- vendor.id             usb 0x04b9
-&device.id             usb 0x1200
-+device.name           iKey 2000 Token
-
- vendor.id             usb 0x04b9
-&device.id             usb 0x1202
-+device.name           iKey 2032 Token
-
- vendor.id             usb 0x04b9
-&device.id             usb 0x1300
-+device.name           iKey 3000 Token
-
- vendor.id             usb 0x04ba
-+vendor.name           Toucan Systems Ltd.
-
- vendor.id             usb 0x04bb
-+vendor.name           I-O Data Device, Inc.
-
- vendor.id             usb 0x04bb
-&device.id             usb 0x0904
-+device.name           ET/TX Ethernet [pegasus]
-
- vendor.id             usb 0x04bb
-&device.id             usb 0x0913
-+device.name           ET/TX-S Ethernet [pegasus2]
-
- vendor.id             usb 0x04bd
-+vendor.name           Toshiba Electronics Taiwan Corp.
-
- vendor.id             usb 0x04be
-+vendor.name           Telia Research AB
-
- vendor.id             usb 0x04bf
-+vendor.name           TDK Corp.
-
- vendor.id             usb 0x04bf
-&device.id             usb 0x0100
-+device.name           MediaReader CF
-
- vendor.id             usb 0x04c1
-+vendor.name           U.S. Robotics (3Com)
-
- vendor.id             usb 0x04c1
-&device.id             usb 0x0082
-+device.name           OfficeConnect Analog Modem
-
- vendor.id             usb 0x04c1
-&device.id             usb 0x008f
-+device.name           Pro ISDN TA
-
- vendor.id             usb 0x04c1
-&device.id             usb 0x009d
-+device.name           HomeConnect WebCam [vicam]
-
- vendor.id             usb 0x04c1
-&device.id             usb 0x3021
-+device.name           56k Voice FaxModem Pro
-
- vendor.id             usb 0x04c2
-+vendor.name           Methode Electronics Far East PTE Ltd.
-
- vendor.id             usb 0x04c3
-+vendor.name           Maxi Switch, Inc.
-
- vendor.id             usb 0x04c4
-+vendor.name           Lockheed Martin Energy Research
-
- vendor.id             usb 0x04c5
-+vendor.name           Fujitsu Ltd.
-
- vendor.id             usb 0x04c6
-+vendor.name           Toshiba America Electronic Components
-
- vendor.id             usb 0x04c7
-+vendor.name           Micro Macro Technologies
-
- vendor.id             usb 0x04c8
-+vendor.name           Konica Corp.
-
- vendor.id             usb 0x04c8
-&device.id             usb 0x0720
-+device.name           Digital Color Camera
-
- vendor.id             usb 0x04c8
-&device.id             usb 0x0721
-+device.name           e-miniD Camera
-
- vendor.id             usb 0x04c8
-&device.id             usb 0x0723
-+device.name           KD-200Z Camera
-
- vendor.id             usb 0x04ca
-+vendor.name           Lite-On Technology Corp.
-
- vendor.id             usb 0x04cb
-+vendor.name           Fuji Photo Film Co., Ltd.
-
- vendor.id             usb 0x04cb
-&device.id             usb 0x0100
-+device.name           FinePix 1300 / 1400 / 4700 Zoom digital camrea
-
- vendor.id             usb 0x04cb
-&device.id             usb 0x0103
-+device.name           FinePix NX-700 printer
-
- vendor.id             usb 0x04cc
-+vendor.name           Philips Semiconductors
-
- vendor.id             usb 0x04cc
-&device.id             usb 0x1122
-+device.name           Hub
-
- vendor.id             usb 0x04cc
-&device.id             usb 0x8116
-+device.name           Camera
-
- vendor.id             usb 0x04cd
-+vendor.name           Tatung Co. Of America
-
- vendor.id             usb 0x04ce
-+vendor.name           ScanLogic Corp.
-
- vendor.id             usb 0x04ce
-&device.id             usb 0x0002
-+device.name           SL11R-IDE IDE Bridge
-
- vendor.id             usb 0x04cf
-+vendor.name           Myson Technology Inc.
-
- vendor.id             usb 0x04d0
-+vendor.name           Digi International
-
- vendor.id             usb 0x04d1
-+vendor.name           ITT Canon
-
- vendor.id             usb 0x04d2
-+vendor.name           Altec Lansing Technologies
-
- vendor.id             usb 0x04d2
-&device.id             usb 0x0311
-+device.name           ADA-310 Speakers
-
- vendor.id             usb 0x04d2
-&device.id             usb 0xff05
-+device.name           ADA-305 Speakers
-
- vendor.id             usb 0x04d3
-+vendor.name           VidUS, Inc.
-
- vendor.id             usb 0x04d4
-+vendor.name           LSI Logic Corp.
-
- vendor.id             usb 0x04d5
-+vendor.name           Forte Technologies, Inc.
-
- vendor.id             usb 0x04d6
-+vendor.name           Mentor Graphics
-
- vendor.id             usb 0x04d7
-+vendor.name           Oki Semiconductor
-
- vendor.id             usb 0x04d8
-+vendor.name           Microchip Technology Inc.
-
- vendor.id             usb 0x04d9
-+vendor.name           Holtek Semiconductor, Inc.
-
- vendor.id             usb 0x04da
-+vendor.name           Panasonic (Matsushita)
-
- vendor.id             usb 0x04db
-+vendor.name           Hypertec Pty Ltd.
-
- vendor.id             usb 0x04dc
-+vendor.name           Huan Hsin Co.
-
- vendor.id             usb 0x04dd
-+vendor.name           Sharp Corp.
-
- vendor.id             usb 0x04dd
-&device.id             usb 0x8004
-+device.name           Zaurus SL-5000D/SL-5500 PDA
-
- vendor.id             usb 0x04de
-+vendor.name           MindShare, Inc.
-
- vendor.id             usb 0x04df
-+vendor.name           Interlink Electronics
-
- vendor.id             usb 0x04e1
-+vendor.name           Iiyama North America Inc.
-
- vendor.id             usb 0x04e1
-&device.id             usb 0x0201
-+device.name           Monitor Hub
-
- vendor.id             usb 0x04e2
-+vendor.name           Exar Corp.
-
- vendor.id             usb 0x04e3
-+vendor.name           Zilog
-
- vendor.id             usb 0x04e4
-+vendor.name           ACC Microelectronics
-
- vendor.id             usb 0x04e5
-+vendor.name           Promise Technology
-
- vendor.id             usb 0x04e6
-+vendor.name           Shuttle Technology Inc.
-
- vendor.id             usb 0x04e6
-&device.id             usb 0x0001
-+device.name           E-USB ATA Bridge
-
- vendor.id             usb 0x04e6
-&device.id             usb 0x0002
-+device.name           eUSCSI SCSI Bridge
-
- vendor.id             usb 0x04e6
-&device.id             usb 0x0003
-+device.name           eUSB SmartMedia Card Reader
-
- vendor.id             usb 0x04e6
-&device.id             usb 0x0005
-+device.name           eUSB SmartMedia/CompactFlash Card Reader
-
- vendor.id             usb 0x04e6
-&device.id             usb 0x0006
-+device.name           eUSB SmartMedia Card Reader
-
- vendor.id             usb 0x04e6
-&device.id             usb 0x0007
-+device.name           Hifd
-
- vendor.id             usb 0x04e6
-&device.id             usb 0x0101
-+device.name           E-USB ATA Bridge
-
- vendor.id             usb 0x04e6
-&device.id             usb 0x1010
-+device.name           USBAT-2 CompactFlash Card Reader
-
- vendor.id             usb 0x04e7
-+vendor.name           Elo TouchSystems
-
- vendor.id             usb 0x04e7
-&device.id             usb 0x0001
-+device.name           TouchScreen
-
- vendor.id             usb 0x04e8
-+vendor.name           Samsung Electronics Co., Ltd.
-
- vendor.id             usb 0x04e8
-&device.id             usb 0x5a03
-+device.name           Yepp MP3 Player
-
- vendor.id             usb 0x04e9
-+vendor.name           PC-Tel Inc.
-
- vendor.id             usb 0x04ea
-+vendor.name           Brooktree Corp.
-
- vendor.id             usb 0x04eb
-+vendor.name           Northstar Systems, Inc.
-
- vendor.id             usb 0x04ec
-+vendor.name           Tokyo Electron Limited
-
- vendor.id             usb 0x04ed
-+vendor.name           Annabooks
-
- vendor.id             usb 0x04ef
-+vendor.name           Pacific Electronic International, Inc.
-
- vendor.id             usb 0x04f0
-+vendor.name           Daewoo Electronics Co., Ltd.
-
- vendor.id             usb 0x04f1
-+vendor.name           Victor Company of Japan (JVC)
-
- vendor.id             usb 0x04f1
-&device.id             usb 0x0001
-+device.name           GC-QX3 Digital Still Camera
-
- vendor.id             usb 0x04f1
-&device.id             usb 0x0004
-+device.name           GR-DVL815U Digital Video Camera
-
- vendor.id             usb 0x04f2
-+vendor.name           Chicony Electronics Co., Ltd.
-
- vendor.id             usb 0x04f2
-&device.id             usb 0x0001
-+device.name           KU-8933 Keyboard
-
- vendor.id             usb 0x04f2
-&device.id             usb 0x0002
-+device.name           NT68P81 Keyboard
-
- vendor.id             usb 0x04f2
-&device.id             usb 0x0112
-+device.name           KU-8933 Keyboard with PS/2 Mouse port
-
- vendor.id             usb 0x04f3
-+vendor.name           Elan Microelectronics Corportation
-
- vendor.id             usb 0x04f4
-+vendor.name           Harting Elektronik Inc.
-
- vendor.id             usb 0x04f5
-+vendor.name           Fujitsu-ICL Systems, Inc.
-
- vendor.id             usb 0x04f6
-+vendor.name           Norand Corp.
-
- vendor.id             usb 0x04f7
-+vendor.name           Newnex Technology Corp.
-
- vendor.id             usb 0x04f8
-+vendor.name           FuturePlus Systems
-
- vendor.id             usb 0x04f9
-+vendor.name           Brother Industries, Ltd.
-
- vendor.id             usb 0x04f9
-&device.id             usb 0x0002
-+device.name           HL-1050 Laser Printer
-
- vendor.id             usb 0x04f9
-&device.id             usb 0x0007
-+device.name           HL-1250 Laser Printer
-
- vendor.id             usb 0x04f9
-&device.id             usb 0x0008
-+device.name           HL-1270 Laser Printer
-
- vendor.id             usb 0x04fa
-+vendor.name           Dallas Semiconductor
-
- vendor.id             usb 0x04fa
-&device.id             usb 0x2490
-+device.name           DS1490F 2-in-1 Fob, 1-Wire adapter
-
- vendor.id             usb 0x04fa
-&device.id             usb 0x4201
-+device.name           DS4201 Audio DAC
-
- vendor.id             usb 0x04fb
-+vendor.name           Biostar Microtech Int'l Corp.
-
- vendor.id             usb 0x04fc
-+vendor.name           Sunplus Technology Co.
-
- vendor.id             usb 0x04fd
-+vendor.name           Soliton Systems, K.K.
-
- vendor.id             usb 0x04fe
-+vendor.name           PFU Limited
-
- vendor.id             usb 0x04ff
-+vendor.name           E-CMOS Corp.
-
- vendor.id             usb 0x0500
-+vendor.name           Siam United Hi-Tech
-
- vendor.id             usb 0x0501
-+vendor.name           DDK Electronics, Inc.
-
- vendor.id             usb 0x0502
-+vendor.name           Acer, Inc.
-
- vendor.id             usb 0x0502
-&device.id             usb 0xd001
-+device.name           Divio NW801/DVC-V6+ Digital Camera
-
- vendor.id             usb 0x0503
-+vendor.name           Hitachi America Ltd.
-
- vendor.id             usb 0x0504
-+vendor.name           Hayes Microcomputer Products
-
- vendor.id             usb 0x0506
-+vendor.name           3Com Corp.
-
- vendor.id             usb 0x0506
-&device.id             usb 0x03e8
-+device.name           3C19250 Ethernet [klsi]
-
- vendor.id             usb 0x0506
-&device.id             usb 0x4601
-+device.name           3C460B USB 10/100 Ethernet Adaptor
-
- vendor.id             usb 0x0506
-&device.id             usb 0xf002
-+device.name           3CP4218 ADSL Modem (pre-init)
-
- vendor.id             usb 0x0506
-&device.id             usb 0xf003
-+device.name           3CP4218 ADSL Modem
-
- vendor.id             usb 0x0506
-&device.id             usb 0xf100
-+device.name           3CP4218 ADSL Modem (pre-init)
-
- vendor.id             usb 0x0507
-+vendor.name           Hosiden Corp.
-
- vendor.id             usb 0x0508
-+vendor.name           Clarion Co., Ltd.
-
- vendor.id             usb 0x0509
-+vendor.name           Aztech Systems Ltd.
-
- vendor.id             usb 0x050a
-+vendor.name           Cinch Connectors
-
- vendor.id             usb 0x050b
-+vendor.name           Cable System International
-
- vendor.id             usb 0x050c
-+vendor.name           InnoMedia, Inc.
-
- vendor.id             usb 0x050d
-+vendor.name           Belkin Components
-
- vendor.id             usb 0x050d
-&device.id             usb 0x0103
-+device.name           F5U103 Serial Adapter [etek]
-
- vendor.id             usb 0x050d
-&device.id             usb 0x0109
-+device.name           F5U109 PDA Adapter
-
- vendor.id             usb 0x050d
-&device.id             usb 0x0115
-+device.name           SCSI Adapter
-
- vendor.id             usb 0x050d
-&device.id             usb 0x0121
-+device.name           F5D5050 100Mbps Ethernet
-
- vendor.id             usb 0x050d
-&device.id             usb 0x0208
-+device.name           Video Adapter [nt1004]
-
- vendor.id             usb 0x050d
-&device.id             usb 0x0805
-+device.name           Nostromo N50 GamePad
-
- vendor.id             usb 0x050d
-&device.id             usb 0x1203
-+device.name           F5U120-PC Serial Port
-
- vendor.id             usb 0x050e
-+vendor.name           Neon Technology, Inc.
-
- vendor.id             usb 0x050f
-+vendor.name           KC Technology Inc.
-
- vendor.id             usb 0x050f
-&device.id             usb 0x0003
-+device.name           KC82C160S Hub
-
- vendor.id             usb 0x050f
-&device.id             usb 0x0180
-+device.name           KC-180 IrDA Dongle
-
- vendor.id             usb 0x0510
-+vendor.name           Sejin Electron Inc.
-
- vendor.id             usb 0x0511
-+vendor.name           N'Able (DataBook) Technologies, Inc.
-
- vendor.id             usb 0x0512
-+vendor.name           Hualon Microelectronics Corp.
-
- vendor.id             usb 0x0513
-+vendor.name           digital-X, Inc.
-
- vendor.id             usb 0x0514
-+vendor.name           FCI/Berg Electronics Group
-
- vendor.id             usb 0x0515
-+vendor.name           ACTC
-
- vendor.id             usb 0x0516
-+vendor.name           Longwell Electronics
-
- vendor.id             usb 0x0517
-+vendor.name           Butterfly Communications
-
- vendor.id             usb 0x0518
-+vendor.name           EzKEY Corp.
-
- vendor.id             usb 0x0519
-+vendor.name           Star Micronics Co., Ltd.
-
- vendor.id             usb 0x051a
-+vendor.name           WYSE Technology
-
- vendor.id             usb 0x051b
-+vendor.name           Silicon Graphics
-
- vendor.id             usb 0x051c
-+vendor.name           Shuttle Inc.
-
- vendor.id             usb 0x051d
-+vendor.name           American Power Conversion
-
- vendor.id             usb 0x051d
-&device.id             usb 0x0002
-+device.name           Back-UPS Pro 500
-
- vendor.id             usb 0x051e
-+vendor.name           Scientific Atlanta
-
- vendor.id             usb 0x051f
-+vendor.name           IO Systems (Elite Electronics), Inc.
-
- vendor.id             usb 0x0520
-+vendor.name           Taiwan Semiconductor Manufacturing Co.
-
- vendor.id             usb 0x0521
-+vendor.name           Airborn Connectors
-
- vendor.id             usb 0x0522
-+vendor.name           Advanced Connectek USA Inc.
-
- vendor.id             usb 0x0523
-+vendor.name           ATEN GmbH
-
- vendor.id             usb 0x0524
-+vendor.name           Sola Electronics
-
- vendor.id             usb 0x0525
-+vendor.name           Netchip Technology Inc.
-
- vendor.id             usb 0x0525
-&device.id             usb 0x1080
-+device.name           NET1080 USB-USB Bridge
-
- vendor.id             usb 0x0526
-+vendor.name           Temic MHS S.A.
-
- vendor.id             usb 0x0527
-+vendor.name           ALTRA
-
- vendor.id             usb 0x0528
-+vendor.name           ATI Technologies, Inc.
-
- vendor.id             usb 0x0528
-&device.id             usb 0x7561
-+device.name           TV Wonder
-
- vendor.id             usb 0x0529
-+vendor.name           Aladdin Knowledge Systems
-
- vendor.id             usb 0x0529
-&device.id             usb 0x0001
-+device.name           HASP v0.06
-
- vendor.id             usb 0x0529
-&device.id             usb 0x030b
-+device.name           eToken R1 v3.1.3.x
-
- vendor.id             usb 0x0529
-&device.id             usb 0x0313
-+device.name           eToken R1 v3.2.3.x
-
- vendor.id             usb 0x0529
-&device.id             usb 0x031b
-+device.name           eToken R1 v3.3.3.x
-
- vendor.id             usb 0x0529
-&device.id             usb 0x0323
-+device.name           eToken R1 v3.4.3.x
-
- vendor.id             usb 0x0529
-&device.id             usb 0x050c
-+device.name           eToken Pro v4.1.5.x
-
- vendor.id             usb 0x0529
-&device.id             usb 0x0412
-+device.name           eToken R2 v2.2.4.x
-
- vendor.id             usb 0x0529
-&device.id             usb 0x041a
-+device.name           eToken R2 v2.2.4.x
-
- vendor.id             usb 0x0529
-&device.id             usb 0x0422
-+device.name           eToken R2 v2.4.4.x
-
- vendor.id             usb 0x0529
-&device.id             usb 0x042a
-+device.name           eToken R2 v2.5.4.x
-
- vendor.id             usb 0x052a
-+vendor.name           Crescent Heart Software
-
- vendor.id             usb 0x052b
-+vendor.name           Tekom Technologies, Inc.
-
- vendor.id             usb 0x052c
-+vendor.name           Canon Information System
-
- vendor.id             usb 0x052d
-+vendor.name           Avid Electronics Corp.
-
- vendor.id             usb 0x052e
-+vendor.name           Standard Microsystems Corp.
-
- vendor.id             usb 0x052f
-+vendor.name           Unicore Software, Inc.
-
- vendor.id             usb 0x0530
-+vendor.name           American Microsystems Inc.
-
- vendor.id             usb 0x0531
-+vendor.name           Wacom Technology Corp.
-
- vendor.id             usb 0x0532
-+vendor.name           Systech Corp.
-
- vendor.id             usb 0x0533
-+vendor.name           Alcatel Mobile Phones
-
- vendor.id             usb 0x0534
-+vendor.name           Motorola
-
- vendor.id             usb 0x0535
-+vendor.name           LIH TZU Electric Co., Ltd.
-
- vendor.id             usb 0x0536
-+vendor.name           Welch Allyn Inc.
-
- vendor.id             usb 0x0537
-+vendor.name           Inventec Corp.
-
- vendor.id             usb 0x0538
-+vendor.name           Santa Cruz Operation
-
- vendor.id             usb 0x0539
-+vendor.name           Shyh Shiun Terminals Co. Ltd.
-
- vendor.id             usb 0x053a
-+vendor.name           Preh Werke GmbH & Co. KG
-
- vendor.id             usb 0x053b
-+vendor.name           Global Village Communication
-
- vendor.id             usb 0x053c
-+vendor.name           Institut of Microelectronic & Mechatronic Systems
-
- vendor.id             usb 0x053d
-+vendor.name           Silicon Architect
-
- vendor.id             usb 0x053e
-+vendor.name           Mobility Electronics
-
- vendor.id             usb 0x053f
-+vendor.name           Synopsys, Inc.
-
- vendor.id             usb 0x0540
-+vendor.name           UniAccess AB
-
- vendor.id             usb 0x0540
-&device.id             usb 0x0101
-+device.name           Panache Surf ISDN TA
-
- vendor.id             usb 0x0541
-+vendor.name           Sirf Technology, Inc.
-
- vendor.id             usb 0x0543
-+vendor.name           ViewSonic Corp.
-
- vendor.id             usb 0x0543
-&device.id             usb 0x00fe
-+device.name           G773 Monitor Hub
-
- vendor.id             usb 0x0543
-&device.id             usb 0x00ff
-+device.name           P815 Monitor Hub
-
- vendor.id             usb 0x0543
-&device.id             usb 0x4153
-+device.name           ViewSonic G773 Control (?)
-
- vendor.id             usb 0x0544
-+vendor.name           Cristie Electronics Ltd.
-
- vendor.id             usb 0x0545
-+vendor.name           Xirlink, Inc.
-
- vendor.id             usb 0x0545
-&device.id             usb 0x8002
-+device.name           IBM NetCamera
-
- vendor.id             usb 0x0545
-&device.id             usb 0x800c
-+device.name           Veo StingRay
-
- vendor.id             usb 0x0545
-&device.id             usb 0x8080
-+device.name           IBM C-It WebCam
-
- vendor.id             usb 0x0546
-+vendor.name           Polaroid Corp.
-
- vendor.id             usb 0x0547
-+vendor.name           Anchor Chips Inc.
-
- vendor.id             usb 0x0547
-&device.id             usb 0x2131
-+device.name           AN2131 EZUSB Microcontroller
-
- vendor.id             usb 0x0547
-&device.id             usb 0x2235
-+device.name           AN2235 EZUSB-FX Microcontroller
-
- vendor.id             usb 0x0547
-&device.id             usb 0x2720
-+device.name           AN2720 USB-USB Bridge
-
- vendor.id             usb 0x0547
-&device.id             usb 0x2727
-+device.name           Xircom PGUNET USB-USB Bridge
-
- vendor.id             usb 0x0547
-&device.id             usb 0x2810
-+device.name           Cypress USB ATAPI Bridge
-
- vendor.id             usb 0x0547
-&device.id             usb 0x9999
-+device.name           AN2131 uninitialized (?)
-
- vendor.id             usb 0x0548
-+vendor.name           Tyan Computer Corp.
-
- vendor.id             usb 0x0549
-+vendor.name           Pixera Corp.
-
- vendor.id             usb 0x054a
-+vendor.name           Fujitsu Microelectronics, Inc.
-
- vendor.id             usb 0x054b
-+vendor.name           New Media Corp.
-
- vendor.id             usb 0x054c
-+vendor.name           Sony Corp.
-
- vendor.id             usb 0x054c
-&device.id             usb 0x0010
-+device.name           DSC-S30/S70/S75/F505V/F505/FD92 Cybershot/Mavica Digital Camera
-
- vendor.id             usb 0x054c
-&device.id             usb 0x0023
-+device.name           CD Writer
-
- vendor.id             usb 0x054c
-&device.id             usb 0x0024
-+device.name           Mavica CD-1000 Camera
-
- vendor.id             usb 0x054c
-&device.id             usb 0x0025
-+device.name           NW-MS7 Walkman MemoryStick Reader
-
- vendor.id             usb 0x054c
-&device.id             usb 0x002d
-+device.name           MSAC-US1 MemoryStick Reader
-
- vendor.id             usb 0x054c
-&device.id             usb 0x002e
-+device.name           Sony HandyCam MemoryStick Reader
-
- vendor.id             usb 0x054c
-&device.id             usb 0x0032
-+device.name           MemoryStick MSC-U01 Reader
-
- vendor.id             usb 0x054c
-&device.id             usb 0x0038
-+device.name           Clie PEG-S300/D PalmOS PDA
-
- vendor.id             usb 0x054c
-&device.id             usb 0x0058
-+device.name           Clie PEG-N7x0C PalmOS PDA Mass Storage
-
- vendor.id             usb 0x054c
-&device.id             usb 0x0066
-+device.name           Clie PEG-N7x0C PalmOS PDA Serial
-
- vendor.id             usb 0x054c
-&device.id             usb 0x0069
-+device.name           Memorystick MSC-U03 Reader
-
- vendor.id             usb 0x054c
-&device.id             usb 0x0099
-+device.name           Clie NR70 PDA Mass Storage
-
- vendor.id             usb 0x054c
-&device.id             usb 0x009a
-+device.name           Clie NR70 PDA Serial
-
- vendor.id             usb 0x054d
-+vendor.name           Try Corp.
-
- vendor.id             usb 0x054e
-+vendor.name           Proside Corp.
-
- vendor.id             usb 0x054f
-+vendor.name           WYSE Technology Taiwan
-
- vendor.id             usb 0x0550
-+vendor.name           Fuji Xerox Co., Ltd.
-
- vendor.id             usb 0x0551
-+vendor.name           CompuTrend Systems, Inc.
-
- vendor.id             usb 0x0552
-+vendor.name           Philips Monitors
-
- vendor.id             usb 0x0553
-+vendor.name           VLSI Vision Ltd.
-
- vendor.id             usb 0x0553
-&device.id             usb 0x0002
-+device.name           CPiA WebCam
-
- vendor.id             usb 0x0553
-&device.id             usb 0x0202
-+device.name           Aiptek PenCam 1
-
- vendor.id             usb 0x0554
-+vendor.name           Dictaphone Corp.
-
- vendor.id             usb 0x0555
-+vendor.name           ANAM S&T Co., Ltd.
-
- vendor.id             usb 0x0556
-+vendor.name           Asahi Kasei Microsystems Co., Ltd.
-
- vendor.id             usb 0x0557
-+vendor.name           ATEN International Co. Ltd.
-
- vendor.id             usb 0x0557
-&device.id             usb 0x2001
-+device.name           UC-1284 Printer Port
-
- vendor.id             usb 0x0557
-&device.id             usb 0x2002
-+device.name           10Mbps Ethernet [klsi]
-
- vendor.id             usb 0x0557
-&device.id             usb 0x2004
-+device.name           UC-100KM PS/2 Mouse and Keyboard adapter
-
- vendor.id             usb 0x0557
-&device.id             usb 0x2006
-+device.name           UC-1284B Printer Port
-
- vendor.id             usb 0x0557
-&device.id             usb 0x2007
-+device.name           UC-110T 100Mbps Ethernet [pegasus]
-
- vendor.id             usb 0x0557
-&device.id             usb 0x2008
-+device.name           UC-232A Serial Port [pl2303]
-
- vendor.id             usb 0x0557
-&device.id             usb 0x2202
-+device.name           CS124U Miniview II KVM Switch
-
- vendor.id             usb 0x0557
-&device.id             usb 0x2600
-+device.name           IDE Bridge
-
- vendor.id             usb 0x0557
-&device.id             usb 0x4000
-+device.name           DSB-650 10Mbps Ethernet [klsi]
-
- vendor.id             usb 0x0558
-+vendor.name           Truevision, Inc.
-
- vendor.id             usb 0x0559
-+vendor.name           Cadence Design Systems, Inc.
-
- vendor.id             usb 0x055a
-+vendor.name           Kenwood USA
-
- vendor.id             usb 0x055b
-+vendor.name           KnowledgeTek, Inc.
-
- vendor.id             usb 0x055c
-+vendor.name           Proton Electronic Ind.
-
- vendor.id             usb 0x055d
-+vendor.name           Samsung Electro-Mechanics Co.
-
- vendor.id             usb 0x055d
-&device.id             usb 0x9000
-+device.name           AnyCam [pwc]
-
- vendor.id             usb 0x055d
-&device.id             usb 0x9001
-+device.name           MPC-C30 AnyCam Premium for Notebooks [pwc]
-
- vendor.id             usb 0x055e
-+vendor.name           CTX Opto-Electronics Corp.
-
- vendor.id             usb 0x055f
-+vendor.name           Mustek Systems Inc.
-
- vendor.id             usb 0x055f
-&device.id             usb 0x0001
-+device.name           ScanExpress 1200 CU
-
- vendor.id             usb 0x055f
-&device.id             usb 0x0002
-+device.name           ScanExpress 600 CU
-
- vendor.id             usb 0x055f
-&device.id             usb 0x0003
-+device.name           ScanExpress 1200 USB
-
- vendor.id             usb 0x055f
-&device.id             usb 0x0006
-+device.name           ScanExpress 1200 UB
-
- vendor.id             usb 0x055f
-&device.id             usb 0x0008
-+device.name           ScanExpress 1200 CU Plus
-
- vendor.id             usb 0x055f
-&device.id             usb 0x0218
-+device.name           BearPaw 2400 TA
-
- vendor.id             usb 0x055f
-&device.id             usb 0xa800
-+device.name           MDC 800 Camera
-
- vendor.id             usb 0x0560
-+vendor.name           Interface Co., Ltd.
-
- vendor.id             usb 0x0561
-+vendor.name           Oasis Design, Inc.
-
- vendor.id             usb 0x0562
-+vendor.name           Telex Communications Inc.
-
- vendor.id             usb 0x0562
-&device.id             usb 0x0001
-+device.name           Enhanced Microphone
-
- vendor.id             usb 0x0563
-+vendor.name           Immersion Corp.
-
- vendor.id             usb 0x0564
-+vendor.name           Chinon Industries, Inc.
-
- vendor.id             usb 0x0565
-+vendor.name           Peracom Networks, Inc.
-
- vendor.id             usb 0x0565
-&device.id             usb 0x0001
-+device.name           Serial Port [etek]
-
- vendor.id             usb 0x0565
-&device.id             usb 0x0002
-+device.name           Enet Ethernet [klsi]
-
- vendor.id             usb 0x0565
-&device.id             usb 0x0003
-+device.name           @Home Networks Ethernet [klsi]
-
- vendor.id             usb 0x0565
-&device.id             usb 0x0005
-+device.name           Enet2 Ethernet [klsi]
-
- vendor.id             usb 0x0567
-+vendor.name           Xyratex Int'l Ltd.
-
- vendor.id             usb 0x0568
-+vendor.name           Quartz Ingenierie
-
- vendor.id             usb 0x0569
-+vendor.name           SegaSoft
-
- vendor.id             usb 0x056a
-+vendor.name           Wacom Co., Ltd.
-
- vendor.id             usb 0x056a
-&device.id             usb 0x0000
-+device.name           PenPartner
-
- vendor.id             usb 0x056a
-&device.id             usb 0x0010
-+device.name           Graphire
-
- vendor.id             usb 0x056a
-&device.id             usb 0x0011
-+device.name           Graphire 2
-
- vendor.id             usb 0x056a
-&device.id             usb 0x0020
-+device.name           Intuos 4x5
-
- vendor.id             usb 0x056a
-&device.id             usb 0x0021
-+device.name           Intuos 6x8
-
- vendor.id             usb 0x056a
-&device.id             usb 0x0022
-+device.name           Intuos 9x12
-
- vendor.id             usb 0x056a
-&device.id             usb 0x0023
-+device.name           Intuos 12x12
-
- vendor.id             usb 0x056a
-&device.id             usb 0x0024
-+device.name           Intuos 12x18
-
- vendor.id             usb 0x056a
-&device.id             usb 0x0031
-+device.name           PL500
-
- vendor.id             usb 0x056a
-&device.id             usb 0x0043
-+device.name           Intuos 2
-
- vendor.id             usb 0x056b
-+vendor.name           Decicon Incorporated
-
- vendor.id             usb 0x056c
-+vendor.name           eTEK Labs
-
- vendor.id             usb 0x056c
-&device.id             usb 0x8007
-+device.name           Kwik232 Serial Port
-
- vendor.id             usb 0x056c
-&device.id             usb 0x8101
-+device.name           KwikLink USB-USB Bridge
-
- vendor.id             usb 0x056d
-+vendor.name           EIZO Corp.
-
- vendor.id             usb 0x056d
-&device.id             usb 0x0000
-+device.name           Hub
-
- vendor.id             usb 0x056d
-&device.id             usb 0x0001
-+device.name           Monitor
-
- vendor.id             usb 0x056e
-+vendor.name           Elecom Co., Ltd.
-
- vendor.id             usb 0x056e
-&device.id             usb 0x0002
-+device.name           29UO Mouse
-
- vendor.id             usb 0x056e
-&device.id             usb 0x4002
-+device.name           Laneed 100Mbps Ethernet LD-USB/TX [pegasus]
-
- vendor.id             usb 0x056f
-+vendor.name           Korea Data Systems Co., Ltd.
-
- vendor.id             usb 0x0570
-+vendor.name           Epson America
-
- vendor.id             usb 0x0571
-+vendor.name           Interex, Inc.
-
- vendor.id             usb 0x0572
-+vendor.name           Conexant Systems (Rockwell), Inc.
-
- vendor.id             usb 0x0572
-&device.id             usb 0x0001
-+device.name           Ezcam II WebCam
-
- vendor.id             usb 0x0572
-&device.id             usb 0x0002
-+device.name           Ezcam II WebCam
-
- vendor.id             usb 0x0572
-&device.id             usb 0x1232
-+device.name           V.90 modem
-
- vendor.id             usb 0x0573
-+vendor.name           Nogatech Ltd.
-
- vendor.id             usb 0x0573
-&device.id             usb 0x2000
-+device.name           X10 va10a Wireless Camera
-
- vendor.id             usb 0x0573
-&device.id             usb 0x4d01
-+device.name           Hauppauge USB TV
-
- vendor.id             usb 0x0573
-&device.id             usb 0x4d02
-+device.name           NT1003 Frame Grabber
-
- vendor.id             usb 0x0573
-&device.id             usb 0x4d11
-+device.name           NT1003 Frame Grabber
-
- vendor.id             usb 0x0574
-+vendor.name           City University of Hong Kong
-
- vendor.id             usb 0x0575
-+vendor.name           Philips Creative Display Solutions
-
- vendor.id             usb 0x0576
-+vendor.name           BAFO/Quality Computer Accessories
-
- vendor.id             usb 0x0577
-+vendor.name           ELSA
-
- vendor.id             usb 0x0578
-+vendor.name           Intrinsix Corp.
-
- vendor.id             usb 0x0579
-+vendor.name           GVC Corp.
-
- vendor.id             usb 0x057a
-+vendor.name           Samsung Electronics America
-
- vendor.id             usb 0x057b
-+vendor.name           Y-E Data, Inc.
-
- vendor.id             usb 0x057b
-&device.id             usb 0x0000
-+device.name           FlashBuster-U Floppy
-
- vendor.id             usb 0x057c
-+vendor.name           AVM GmbH
-
- vendor.id             usb 0x057c
-&device.id             usb 0x2800
-+device.name           ISDN-Connector TA
-
- vendor.id             usb 0x057d
-+vendor.name           Shark Multimedia Inc.
-
- vendor.id             usb 0x057e
-+vendor.name           Nintendo Co., Ltd.
-
- vendor.id             usb 0x057f
-+vendor.name           QuickShot Limited
-
- vendor.id             usb 0x0580
-+vendor.name           Denron Inc.
-
- vendor.id             usb 0x0581
-+vendor.name           Racal Data Group
-
- vendor.id             usb 0x0582
-+vendor.name           Roland Corp.
-
- vendor.id             usb 0x0582
-&device.id             usb 0x0002
-+device.name           MPU64 Midi Interface
-
- vendor.id             usb 0x0582
-&device.id             usb 0x0003
-+device.name           Sound Canvas SC-8850
-
- vendor.id             usb 0x0582
-&device.id             usb 0x0005
-+device.name           Edirol UM-2 MIDI Adapter
-
- vendor.id             usb 0x0583
-+vendor.name           Padix (Rockfire) Co. Ltd.
-
- vendor.id             usb 0x0583
-&device.id             usb 0x2030
-+device.name           RM-203 USB Nest [mode 1]
-
- vendor.id             usb 0x0583
-&device.id             usb 0x2031
-+device.name           RM-203 USB Nest [mode 2]
-
- vendor.id             usb 0x0583
-&device.id             usb 0x2032
-+device.name           RM-203 USB Nest [mode 3]
-
- vendor.id             usb 0x0583
-&device.id             usb 0x2033
-+device.name           RM-203 USB Nest [mode 4]
-
- vendor.id             usb 0x0583
-&device.id             usb 0x3050
-+device.name           QF-305u Gamepad
-
- vendor.id             usb 0x0583
-&device.id             usb 0x7070
-+device.name           QF-707u Joystick [Bazooka]
-
- vendor.id             usb 0x0584
-+vendor.name           RATOC System Inc.
-
- vendor.id             usb 0x0585
-+vendor.name           FlashPoint Technology, Inc.
-
- vendor.id             usb 0x0586
-+vendor.name           ZyXEL Communications Corp.
-
- vendor.id             usb 0x0586
-&device.id             usb 0x1000
-+device.name           Omni NET Modem / ISDN TA
-
- vendor.id             usb 0x0587
-+vendor.name           America Kotobuki Electronics Ind.
-
- vendor.id             usb 0x0588
-+vendor.name           Sapien Design
-
- vendor.id             usb 0x0589
-+vendor.name           Victron
-
- vendor.id             usb 0x058a
-+vendor.name           Nohau Corp.
-
- vendor.id             usb 0x058b
-+vendor.name           Infineon Technologies
-
- vendor.id             usb 0x058c
-+vendor.name           In Focus Systems
-
- vendor.id             usb 0x058d
-+vendor.name           Micrel Semiconductor
-
- vendor.id             usb 0x058e
-+vendor.name           Tripath Technology Inc.
-
- vendor.id             usb 0x058f
-+vendor.name           Alcor Micro, Inc.
-
- vendor.id             usb 0x058f
-&device.id             usb 0x2802
-+device.name           Monterey Keyboard
-
- vendor.id             usb 0x058f
-&device.id             usb 0x9213
-+device.name           MacAlly Kbd Hub
-
- vendor.id             usb 0x058f
-&device.id             usb 0x9215
-+device.name           AU9814 Hub
-
- vendor.id             usb 0x058f
-&device.id             usb 0x9254
-+device.name           Hub
-
- vendor.id             usb 0x058f
-&device.id             usb 0x9410
-+device.name           MicroConnectors/StrongMan Keyboard
-
- vendor.id             usb 0x058f
-&device.id             usb 0x9472
-+device.name           Monterey/NEC Kbd Hub
-
- vendor.id             usb 0x0590
-+vendor.name           Omron Corp.
-
- vendor.id             usb 0x0590
-&device.id             usb 0x0004
-+device.name           Cable Modem
-
- vendor.id             usb 0x0591
-+vendor.name           Questra Consulting
-
- vendor.id             usb 0x0592
-+vendor.name           Powerware Corp.
-
- vendor.id             usb 0x0593
-+vendor.name           Incite
-
- vendor.id             usb 0x0594
-+vendor.name           Princeton Graphic Systems
-
- vendor.id             usb 0x0595
-+vendor.name           Zoran Microelectronics Ltd.
-
- vendor.id             usb 0x0596
-+vendor.name           MicroTouch Systems Inc.
-
- vendor.id             usb 0x0596
-&device.id             usb 0x0001
-+device.name           Touchscreen
-
- vendor.id             usb 0x0597
-+vendor.name           Trisignal Communications
-
- vendor.id             usb 0x0598
-+vendor.name           Niigata Canotec Co., Inc.
-
- vendor.id             usb 0x0599
-+vendor.name           Brilliance Semiconductor Inc.
-
- vendor.id             usb 0x059a
-+vendor.name           Spectrum Signal Processing Inc.
-
- vendor.id             usb 0x059b
-+vendor.name           Iomega Corp.
-
- vendor.id             usb 0x059b
-&device.id             usb 0x0001
-+device.name           Zip 100 (Type 1)
-
- vendor.id             usb 0x059b
-&device.id             usb 0x000b
-+device.name           Zip 100 (Type 2)
-
- vendor.id             usb 0x059b
-&device.id             usb 0x0030
-+device.name           Zip 250 (Ver 1)
-
- vendor.id             usb 0x059b
-&device.id             usb 0x0031
-+device.name           Zip 100 (Type 3)
-
- vendor.id             usb 0x059b
-&device.id             usb 0x0032
-+device.name           Zip 250 (Ver 2)
-
- vendor.id             usb 0x059b
-&device.id             usb 0x0040
-+device.name           SCSI Bridge
-
- vendor.id             usb 0x059b
-&device.id             usb 0x0050
-+device.name           Zip CD 650 Writer
-
- vendor.id             usb 0x059b
-&device.id             usb 0x006d
-+device.name           HipZip MP3 Player
-
- vendor.id             usb 0x059c
-+vendor.name           A-Trend Technology Co., Ltd.
-
- vendor.id             usb 0x059d
-+vendor.name           Advanced Input Devices
-
- vendor.id             usb 0x059e
-+vendor.name           Intelligent Instrumentation
-
- vendor.id             usb 0x059f
-+vendor.name           LaCie
-
- vendor.id             usb 0x059f
-&device.id             usb 0xa601
-+device.name           HardDrive
-
- vendor.id             usb 0x05a0
-+vendor.name           Vetronix Corp.
-
- vendor.id             usb 0x05a1
-+vendor.name           USC Corp.
-
- vendor.id             usb 0x05a2
-+vendor.name           Fuji Film Microdevices Co. Ltd.
-
- vendor.id             usb 0x05a3
-+vendor.name           V Automation Inc.
-
- vendor.id             usb 0x05a4
-+vendor.name           Ortek Technology, Inc.
-
- vendor.id             usb 0x05a4
-&device.id             usb 0x9731
-+device.name           MCK-600W Keyboard
-
- vendor.id             usb 0x05a5
-+vendor.name           Sampo Technology Corp.
-
- vendor.id             usb 0x05a6
-+vendor.name           Cisco Systems
-
- vendor.id             usb 0x05a7
-+vendor.name           Bose Corp.
-
- vendor.id             usb 0x05a8
-+vendor.name           Spacetec IMC Corp.
-
- vendor.id             usb 0x05a9
-+vendor.name           OmniVision Technologies, Inc.
-
- vendor.id             usb 0x05a9
-&device.id             usb 0x0511
-+device.name           OV511 WebCam
-
- vendor.id             usb 0x05a9
-&device.id             usb 0x0518
-+device.name           OV518 WebCam
-
- vendor.id             usb 0x05a9
-&device.id             usb 0xa511
-+device.name           OV511+ WebCam
-
- vendor.id             usb 0x05aa
-+vendor.name           Utilux South China Ltd.
-
- vendor.id             usb 0x05ab
-+vendor.name           In-System Design
-
- vendor.id             usb 0x05ab
-&device.id             usb 0x0002
-+device.name           Parallel Port
-
- vendor.id             usb 0x05ab
-&device.id             usb 0x0031
-+device.name           ATA Bridge
-
- vendor.id             usb 0x05ab
-&device.id             usb 0x0060
-+device.name           USB 2.0 Bridge
-
- vendor.id             usb 0x05ab
-&device.id             usb 0x0200
-+device.name           USS725 ATA Bridge
-
- vendor.id             usb 0x05ab
-&device.id             usb 0x0202
-+device.name           ATA Bridge
-
- vendor.id             usb 0x05ab
-&device.id             usb 0x081a
-+device.name           ATA Bridge
-
- vendor.id             usb 0x05ac
-+vendor.name           Apple Computer
-
- vendor.id             usb 0x05ac
-&device.id             usb 0x0201
-+device.name           iMac Keyboard [ALPS M2452]
-
- vendor.id             usb 0x05ac
-&device.id             usb 0x0202
-+device.name           Apple Keyboard [ALPS]
-
- vendor.id             usb 0x05ac
-&device.id             usb 0x0206
-+device.name           Apple Extended Keyboard [Mitsumi]
-
- vendor.id             usb 0x05ac
-&device.id             usb 0x0301
-+device.name           iMac Mouse [Mitsumi/Logitech]
-
- vendor.id             usb 0x05ac
-&device.id             usb 0x0302
-+device.name           Apple Optical Mouse [Fujitsu]
-
- vendor.id             usb 0x05ac
-&device.id             usb 0x1001
-+device.name           Apple Keyboard Hub [ALPS]
-
- vendor.id             usb 0x05ac
-&device.id             usb 0x1002
-+device.name           Apple Extended Keyboard Hub [Mitsumi]
-
- vendor.id             usb 0x05ad
-+vendor.name           Y.C.Cable U.S.A., Inc.
-
- vendor.id             usb 0x05ae
-+vendor.name           Synopsys, Inc.
-
- vendor.id             usb 0x05af
-+vendor.name           Jing-Mold Enterprise Co., Ltd.
-
- vendor.id             usb 0x05b0
-+vendor.name           Fountain Technologies, Inc.
-
- vendor.id             usb 0x05b1
-+vendor.name           First International Computer, Inc.
-
- vendor.id             usb 0x05b4
-+vendor.name           LG Semicon Co., Ltd.
-
- vendor.id             usb 0x05b5
-+vendor.name           Dialogic Corp
-
- vendor.id             usb 0x05b6
-+vendor.name           Proxima Corp.
-
- vendor.id             usb 0x05b7
-+vendor.name           Medianix Semiconductor, Inc.
-
- vendor.id             usb 0x05b8
-+vendor.name           Agiler, Inc.
-
- vendor.id             usb 0x05b8
-&device.id             usb 0x3002
-+device.name           Scroll Mouse
-
- vendor.id             usb 0x05b9
-+vendor.name           Philips Research Laboratories
-
- vendor.id             usb 0x05ba
-+vendor.name           DigitalPersona, Inc.
-
- vendor.id             usb 0x05bd
-+vendor.name           RAFI GmbH & Co. KG
-
- vendor.id             usb 0x05be
-+vendor.name           Raychem Corp.
-
- vendor.id             usb 0x05bf
-+vendor.name           S & S Research
-
- vendor.id             usb 0x05c0
-+vendor.name           Keil Software
-
- vendor.id             usb 0x05c1
-+vendor.name           Kawasaki Steel
-
- vendor.id             usb 0x05c2
-+vendor.name           Media Phonics (Suisse) S.A.
-
- vendor.id             usb 0x05c5
-+vendor.name           Digi International Inc.
-
- vendor.id             usb 0x05c6
-+vendor.name           Qualcomm, Inc.
-
- vendor.id             usb 0x05c6
-&device.id             usb 0x3100
-+device.name           CDMA Wireless Modem/Phone
-
- vendor.id             usb 0x05c6
-&device.id             usb 0x3196
-+device.name           CDMA Wireless Modem
-
- vendor.id             usb 0x05c6
-&device.id             usb 0x3197
-+device.name           CDMA Wireless Modem/Phone
-
- vendor.id             usb 0x05c7
-+vendor.name           Qtronix Corp
-
- vendor.id             usb 0x05c7
-&device.id             usb 0x1001
-+device.name           Lynx Mouse
-
- vendor.id             usb 0x05c7
-&device.id             usb 0x2011
-+device.name           Scorpius Keyboard
-
- vendor.id             usb 0x05c8
-+vendor.name           Cheng Uei Precision Industry Co., Ltd.
-
- vendor.id             usb 0x05c9
-+vendor.name           Semtech Corp.
-
- vendor.id             usb 0x05ca
-+vendor.name           Ricoh Company Ltd.
-
- vendor.id             usb 0x05ca
-&device.id             usb 0x0101
-+device.name           RDC-5300 Digital Camera
-
- vendor.id             usb 0x05ca
-&device.id             usb 0x2201
-+device.name           RDC-7 Digital Camera
-
- vendor.id             usb 0x05cb
-+vendor.name           PowerVision Technologies Inc.
-
- vendor.id             usb 0x05cb
-&device.id             usb 0x1483
-+device.name           Trust CombiScan 19200
-
- vendor.id             usb 0x05cc
-+vendor.name           ELSA AG
-
- vendor.id             usb 0x05cc
-&device.id             usb 0x2100
-+device.name           MicroLink ISDN Office
-
- vendor.id             usb 0x05cc
-&device.id             usb 0x2219
-+device.name           MicroLink ISDN
-
- vendor.id             usb 0x05cc
-&device.id             usb 0x2265
-+device.name           MicroLink 56k
-
- vendor.id             usb 0x05cc
-&device.id             usb 0x2280
-+device.name           MicroLink 56k Fun
-
- vendor.id             usb 0x05cc
-&device.id             usb 0x3000
-+device.name           Micolink USB2Ethernet [pegasus]
-
- vendor.id             usb 0x05cd
-+vendor.name           Silicom Ltd.
-
- vendor.id             usb 0x05ce
-+vendor.name           SICAN GmbH
-
- vendor.id             usb 0x05cf
-+vendor.name           Sung Forn Co. Ltd.
-
- vendor.id             usb 0x05d0
-+vendor.name           Lunar Corp.
-
- vendor.id             usb 0x05d1
-+vendor.name           Brainboxes Limited
-
- vendor.id             usb 0x05d2
-+vendor.name           Wave Systems Corp.
-
- vendor.id             usb 0x05d6
-+vendor.name           Philips Semiconductors, CICT
-
- vendor.id             usb 0x05d7
-+vendor.name           Thomas & Betts Corp.
-
- vendor.id             usb 0x05d7
-&device.id             usb 0x0099
-+device.name           10Mbps Ethernet [klsi]
-
- vendor.id             usb 0x05d8
-+vendor.name           Ultima Electronics Corp.
-
- vendor.id             usb 0x05d8
-&device.id             usb 0x4002
-+device.name           Lifetec LT9385 Scanner
-
- vendor.id             usb 0x05d9
-+vendor.name           Axiohm Transaction Solutions
-
- vendor.id             usb 0x05da
-+vendor.name           Microtek International Inc.
-
- vendor.id             usb 0x05da
-&device.id             usb 0x0093
-+device.name           ScanMaker V6USL
-
- vendor.id             usb 0x05da
-&device.id             usb 0x0094
-+device.name           Phantom 336CX/C3
-
- vendor.id             usb 0x05da
-&device.id             usb 0x0099
-+device.name           ScanMaker X6/X6U
-
- vendor.id             usb 0x05da
-&device.id             usb 0x009a
-+device.name           Phantom C6
-
- vendor.id             usb 0x05da
-&device.id             usb 0x00a0
-+device.name           Phantom 336CX/C3 (#2)
-
- vendor.id             usb 0x05da
-&device.id             usb 0x00b6
-+device.name           ScanMaker V6UPL
-
- vendor.id             usb 0x05da
-&device.id             usb 0x30cf
-+device.name           ScanMaker 4800
-
- vendor.id             usb 0x05da
-&device.id             usb 0x40ca
-+device.name           ScanMaker 3600
-
- vendor.id             usb 0x05da
-&device.id             usb 0x80a3
-+device.name           ScanMaker V6USL (#2)
-
- vendor.id             usb 0x05da
-&device.id             usb 0x80ac
-+device.name           ScanMaker V6UL/SpicyU
-
- vendor.id             usb 0x05dc
-+vendor.name           Lexar Media, Inc.
-
- vendor.id             usb 0x05dd
-+vendor.name           Delta Electronics Inc.
-
- vendor.id             usb 0x05e0
-+vendor.name           Symbol Technologies
-
- vendor.id             usb 0x05e3
-+vendor.name           Genesys Logic, Inc.
-
- vendor.id             usb 0x05e3
-&device.id             usb 0x000a
-+device.name           Keyboard with PS/2 Port
-
- vendor.id             usb 0x05e3
-&device.id             usb 0x000b
-+device.name           Karna Razor BoomSlang 2000 Mouse
-
- vendor.id             usb 0x05e3
-&device.id             usb 0x0120
-+device.name           Pacific Image Electronics PrimeFilm 1800u slide/negative scanner
-
- vendor.id             usb 0x05e3
-&device.id             usb 0x0300
-+device.name           GLUSB98PT Parallel Port
-
- vendor.id             usb 0x05e3
-&device.id             usb 0x0502
-+device.name           GL620USB GeneLink USB-USB Bridge
-
- vendor.id             usb 0x05e3
-&device.id             usb 0x0700
-+device.name           SIIG US2256 CompactFlash Card Reader
-
- vendor.id             usb 0x05e3
-&device.id             usb 0x1205
-+device.name           Afilias Optical Mouse H3003
-
- vendor.id             usb 0x05e5
-+vendor.name           Fuji Electric Co., Ltd.
-
- vendor.id             usb 0x05e6
-+vendor.name           Keithley Instruments
-
- vendor.id             usb 0x05e9
-+vendor.name           Kawasaki LSI
-
- vendor.id             usb 0x05e9
-&device.id             usb 0x0008
-+device.name           KL5KUSB101B Ethernet [klsi]
-
- vendor.id             usb 0x05e9
-&device.id             usb 0x0009
-+device.name           Sony 10Mbps Ethernet [pegasus]
-
- vendor.id             usb 0x05eb
-+vendor.name           FFC Limited
-
- vendor.id             usb 0x05ef
-+vendor.name           AVB, Inc. [anko?]
-
- vendor.id             usb 0x05ef
-&device.id             usb 0x020a
-+device.name           Top Shot Pegasus Joystick
-
- vendor.id             usb 0x05ef
-&device.id             usb 0x8884
-+device.name           Mag Turbo Force Wheel
-
- vendor.id             usb 0x05ef
-&device.id             usb 0x8888
-+device.name           Top Shot Force Feedback Racing Wheel
-
- vendor.id             usb 0x05f0
-+vendor.name           Canopus Co., Ltd.
-
- vendor.id             usb 0x05f0
-&device.id             usb 0x0101
-+device.name           DA-Port DAC
-
- vendor.id             usb 0x05f2
-+vendor.name           Dexin Corp., Ltd.
-
- vendor.id             usb 0x05f3
-+vendor.name           PI Engineering, Inc.
-
- vendor.id             usb 0x05f3
-&device.id             usb 0x020b
-+device.name           PS2 Adapter
-
- vendor.id             usb 0x05f5
-+vendor.name           Unixtar Technology Inc.
-
- vendor.id             usb 0x05f6
-+vendor.name           AOC International
-
- vendor.id             usb 0x05f7
-+vendor.name           RFC Distribution(s) PTE Ltd.
-
- vendor.id             usb 0x05f9
-+vendor.name           PSC Scanning, Inc.
-
- vendor.id             usb 0x05fa
-+vendor.name           Siemens Telecommunications Systems Limited
-
- vendor.id             usb 0x05fc
-+vendor.name           Harman Multimedia
-
- vendor.id             usb 0x05fd
-+vendor.name           InterAct, Inc.
-
- vendor.id             usb 0x05fd
-&device.id             usb 0x0251
-+device.name           Raider Pro
-
- vendor.id             usb 0x05fd
-&device.id             usb 0x0253
-+device.name           ProPad 8 Digital
-
- vendor.id             usb 0x05fd
-&device.id             usb 0x262a
-+device.name           3dfx HammerHead FX
-
- vendor.id             usb 0x05fd
-&device.id             usb 0xdaae
-+device.name           Game Shark
-
- vendor.id             usb 0x05fe
-+vendor.name           Chic Technology Corp.
-
- vendor.id             usb 0x05fe
-&device.id             usb 0x0001
-+device.name           Mouse
-
- vendor.id             usb 0x05fe
-&device.id             usb 0x0007
-+device.name           Twinhead Mouse
-
- vendor.id             usb 0x05fe
-&device.id             usb 0x0009
-+device.name           Inland Pro 4500/5000 Mouse
-
- vendor.id             usb 0x05fe
-&device.id             usb 0x0011
-+device.name           Browser Mouse
-
- vendor.id             usb 0x05ff
-+vendor.name           LeCroy Corp.
-
- vendor.id             usb 0x0600
-+vendor.name           Barco Display Systems
-
- vendor.id             usb 0x0601
-+vendor.name           Jazz Hipster Corp.
-
- vendor.id             usb 0x0602
-+vendor.name           Vista Imaging Inc.
-
- vendor.id             usb 0x0602
-&device.id             usb 0x1001
-+device.name           ViCam WebCam
-
- vendor.id             usb 0x0603
-+vendor.name           Novatek Microelectronics Corp.
-
- vendor.id             usb 0x0603
-&device.id             usb 0x6871
-+device.name           Mouse
-
- vendor.id             usb 0x0604
-+vendor.name           Jean Co, Ltd.
-
- vendor.id             usb 0x0606
-+vendor.name           Royal Information Electronics Co., Ltd.
-
- vendor.id             usb 0x0607
-+vendor.name           Bridge Information Co., Ltd.
-
- vendor.id             usb 0x0609
-+vendor.name           SMK Manufacturing Inc.
-
- vendor.id             usb 0x060a
-+vendor.name           Worthington Data Solutions, Inc.
-
- vendor.id             usb 0x060b
-+vendor.name           Solid Year (?)
-
- vendor.id             usb 0x060b
-&device.id             usb 0x0001
-+device.name           MacAlly Keyboard
-
- vendor.id             usb 0x060b
-&device.id             usb 0x2101
-+device.name           Solid Year Keyboard
-
- vendor.id             usb 0x060c
-+vendor.name           EEH Datalink GmbH
-
- vendor.id             usb 0x060f
-+vendor.name           Joinsoon Electronics Mfg. Co., Ltd.
-
- vendor.id             usb 0x0611
-+vendor.name           Totoku Electric Co., Ltd.
-
- vendor.id             usb 0x0613
-+vendor.name           Ithaca Peripherals
-
- vendor.id             usb 0x0614
-+vendor.name           Bio-Rad Laboratories
-
- vendor.id             usb 0x0616
-+vendor.name           Future Techno Designs PVT. Ltd.
-
- vendor.id             usb 0x0618
-+vendor.name           MacAlly
-
- vendor.id             usb 0x0618
-&device.id             usb 0x0101
-+device.name           Mouse
-
- vendor.id             usb 0x0619
-+vendor.name           Seiko Instruments Inc.
-
- vendor.id             usb 0x061c
-+vendor.name           Act Labs, Ltd.
-
- vendor.id             usb 0x061d
-+vendor.name           Quatech, Inc.
-
- vendor.id             usb 0x061e
-+vendor.name           Nissei Electric Co.
-
- vendor.id             usb 0x0620
-+vendor.name           Alaris, Inc.
-
- vendor.id             usb 0x0621
-+vendor.name           ODU-Steckverbindungssysteme GmbH & Co. KG
-
- vendor.id             usb 0x0624
-+vendor.name           Apex, Inc.
-
- vendor.id             usb 0x0626
-+vendor.name           Nippon Systems Development Co., Ltd.
-
- vendor.id             usb 0x0629
-+vendor.name           Zida Technologies Limited
-
- vendor.id             usb 0x062b
-+vendor.name           Greatlink Electronics Taiwan  Ltd.
-
- vendor.id             usb 0x062d
-+vendor.name           Taiwan Tai-Hao Enterprises Co. Ltd.
-
- vendor.id             usb 0x062e
-+vendor.name           Mainsuper Enterprises Co., Ltd.
-
- vendor.id             usb 0x062f
-+vendor.name           Sin Sheng Terminal & Machine Inc.
-
- vendor.id             usb 0x0634
-+vendor.name           Micron Technology, Inc.
-
- vendor.id             usb 0x0636
-+vendor.name           Sierra Imaging, Inc.
-
- vendor.id             usb 0x0638
-+vendor.name           Avision, Inc.
-
- vendor.id             usb 0x0638
-&device.id             usb 0x0268
-+device.name           iVina 1200U Scanner
-
- vendor.id             usb 0x0638
-&device.id             usb 0x026a
-+device.name           Minolta Dimage Scan Dual II
-
- vendor.id             usb 0x0638
-&device.id             usb 0x4004
-+device.name           Minolta Dimage Scan Elite II
-
- vendor.id             usb 0x063d
-+vendor.name           Fong Kai Industrial Co., Ltd.
-
- vendor.id             usb 0x063f
-+vendor.name           New Technology Cable Ltd.
-
- vendor.id             usb 0x0640
-+vendor.name           Hitex Development Tools
-
- vendor.id             usb 0x0641
-+vendor.name           Woods Industries, Inc.
-
- vendor.id             usb 0x0642
-+vendor.name           VIA Medical Corp.
-
- vendor.id             usb 0x0644
-+vendor.name           TEAC Corp.
-
- vendor.id             usb 0x0644
-&device.id             usb 0x0000
-+device.name           Floppy
-
- vendor.id             usb 0x0645
-+vendor.name           Who? Vision Systems, Inc.
-
- vendor.id             usb 0x0646
-+vendor.name           UMAX
-
- vendor.id             usb 0x0648
-+vendor.name           Inside Out Networks
-
- vendor.id             usb 0x064b
-+vendor.name           White Mountain DSP, Inc.
-
- vendor.id             usb 0x064c
-+vendor.name           Ji-Haw Industrial Co., Ltd.
-
- vendor.id             usb 0x064f
-+vendor.name           WIBU-Systems AG
-
- vendor.id             usb 0x0651
-+vendor.name           Likom Technology Sdn. Bhd.
-
- vendor.id             usb 0x0652
-+vendor.name           Stargate Solutions, Inc.
-
- vendor.id             usb 0x0654
-+vendor.name           Granite Microsystems, Inc.
-
- vendor.id             usb 0x0655
-+vendor.name           Space Shuttle Hi-Fi Wire & Cable Industry Co, Ltd.
-
- vendor.id             usb 0x0656
-+vendor.name           Glory Mark Electronic Ltd.
-
- vendor.id             usb 0x0657
-+vendor.name           Tekcon American Corp.
-
- vendor.id             usb 0x065a
-+vendor.name           Optoelectronics Co., Ltd.
-
- vendor.id             usb 0x065e
-+vendor.name           Silicon Graphics
-
- vendor.id             usb 0x065f
-+vendor.name           Good Way Industrial Co, Ltd & GWC Technology Inc.
-
- vendor.id             usb 0x0661
-+vendor.name           Hamamatsu Photonics K.K.
-
- vendor.id             usb 0x0663
-+vendor.name           Topmax Electronic Co., Ltd.
-
- vendor.id             usb 0x0663
-&device.id             usb 0x0103
-+device.name           CobraPad
-
- vendor.id             usb 0x0667
-+vendor.name           Aiwa Co., Ltd.
-
- vendor.id             usb 0x0667
-&device.id             usb 0x0fa1
-+device.name           TD-U8000 Tape Drive
-
- vendor.id             usb 0x0668
-+vendor.name           WordWand
-
- vendor.id             usb 0x0669
-+vendor.name           Oce' Printing Systems GmbH
-
- vendor.id             usb 0x066a
-+vendor.name           Total Technologies, Ltd.
-
- vendor.id             usb 0x066b
-+vendor.name           Linksys Inc.
-
- vendor.id             usb 0x066b
-&device.id             usb 0x0105
-+device.name           SCM eUSB SmartMedia Card Reader
-
- vendor.id             usb 0x066b
-&device.id             usb 0x010a
-+device.name           Melco MCR-U2 SmartMedia / CompactFlash Reader
-
- vendor.id             usb 0x066b
-&device.id             usb 0x2202
-+device.name           USB10TX Ethernet [pegasus]
-
- vendor.id             usb 0x066b
-&device.id             usb 0x2203
-+device.name           USB100TX Ethernet [pegasus]
-
- vendor.id             usb 0x066b
-&device.id             usb 0x2204
-+device.name           USB100TX HomePNA Ethernet [pegasus]
-
- vendor.id             usb 0x066b
-&device.id             usb 0x2206
-+device.name           USB Ethernet [pegasus]
-
- vendor.id             usb 0x066b
-&device.id             usb 0x2211
-+device.name           WUSB11 Wireless Ethernet
-
- vendor.id             usb 0x066d
-+vendor.name           Entrega Inc.
-
- vendor.id             usb 0x066e
-+vendor.name           Acer Semiconductor America, Inc.
-
- vendor.id             usb 0x066f
-+vendor.name           SigmaTel, Inc.
-
- vendor.id             usb 0x066f
-&device.id             usb 0x4200
-+device.name           STIr4200 IrDA Bridge
-
- vendor.id             usb 0x0672
-+vendor.name           Labtec Inc.
-
- vendor.id             usb 0x0672
-&device.id             usb 0x1041
-+device.name           LCS1040 Speaker System
-
- vendor.id             usb 0x0672
-&device.id             usb 0x5000
-+device.name           SpaceBall 4000 FLX
-
- vendor.id             usb 0x0673
-+vendor.name           HCL
-
- vendor.id             usb 0x0673
-&device.id             usb 0x5000
-+device.name           Keyboard
-
- vendor.id             usb 0x0675
-+vendor.name           Draytech
-
- vendor.id             usb 0x0675
-&device.id             usb 0x0110
-+device.name           Vigor 128 ISDN TA
-
- vendor.id             usb 0x0676
-+vendor.name           Teles AG
-
- vendor.id             usb 0x0677
-+vendor.name           Aiwa Co., Ltd.
-
- vendor.id             usb 0x0677
-&device.id             usb 0x0fa1
-+device.name           TD-U8000 Tape Drive
-
- vendor.id             usb 0x0678
-+vendor.name           ACard Technology Corp.
-
- vendor.id             usb 0x067b
-+vendor.name           Prolific Technology, Inc.
-
- vendor.id             usb 0x067b
-&device.id             usb 0x0000
-+device.name           PL2301 USB-USB Bridge
-
- vendor.id             usb 0x067b
-&device.id             usb 0x0001
-+device.name           PL2302 USB-USB Bridge
-
- vendor.id             usb 0x067b
-&device.id             usb 0x2307
-+device.name           PL2307 USB-ATAPI4 Bridge
-
- vendor.id             usb 0x067b
-&device.id             usb 0x2303
-+device.name           PL2303 Serial Port
-
- vendor.id             usb 0x067c
-+vendor.name           Efficient Networks, Inc.
-
- vendor.id             usb 0x067c
-&device.id             usb 0x1001
-+device.name           Siemens SpeedStream 100MBps Ethernet
-
- vendor.id             usb 0x067c
-&device.id             usb 0x1022
-+device.name           Siemens 802.11b Wireless Ethernet
-
- vendor.id             usb 0x067c
-&device.id             usb 0x4060
-+device.name           Alcatel Speedstream 4060 ADSL Modem
-
- vendor.id             usb 0x067d
-+vendor.name           Hohner Corp.
-
- vendor.id             usb 0x067e
-+vendor.name           Intermec
-
- vendor.id             usb 0x067f
-+vendor.name           Virata Ltd.
-
- vendor.id             usb 0x0680
-+vendor.name           Avance Logic, Inc.
-
- vendor.id             usb 0x0681
-+vendor.name           Siemens Information and Communication Products
-
- vendor.id             usb 0x0681
-&device.id             usb 0x0002
-+device.name           Gigaset 3075 Passive ISDN
-
- vendor.id             usb 0x0681
-&device.id             usb 0x0005
-+device.name           Mouse with Fingerprint Reader
-
- vendor.id             usb 0x0684
-+vendor.name           Actiontec Electronics, Inc.
-
- vendor.id             usb 0x0686
-+vendor.name           Minolta Co., Ltd.
-
- vendor.id             usb 0x0686
-&device.id             usb 0x4006
-+device.name           Dimage 7 digital still camera
-
- vendor.id             usb 0x0686
-&device.id             usb 0x4007
-+device.name           Dimage S304 digital still camera
-
- vendor.id             usb 0x0686
-&device.id             usb 0x4009
-+device.name           Dimage X digital still camera
-
- vendor.id             usb 0x0686
-&device.id             usb 0x400a
-+device.name           Dimage S404 digital still camera
-
- vendor.id             usb 0x0686
-&device.id             usb 0x400b
-+device.name           Dimage 7i digital still camera
-
- vendor.id             usb 0x068a
-+vendor.name           Pertech Inc.
-
- vendor.id             usb 0x068e
-+vendor.name           CH Products, Inc.
-
- vendor.id             usb 0x068e
-&device.id             usb 0x00ff
-+device.name           Flight Sim Yoke
-
- vendor.id             usb 0x068e
-&device.id             usb 0x0500
-+device.name           GameStick 3D
-
- vendor.id             usb 0x068e
-&device.id             usb 0x0501
-+device.name           CH Pro Pedals
-
- vendor.id             usb 0x068e
-&device.id             usb 0x0504
-+device.name           F-16 Combat Stick
-
- vendor.id             usb 0x0690
-+vendor.name           Golden Bridge Electric Co., Ltd.
-
- vendor.id             usb 0x0693
-+vendor.name           Hagiwara Sys-Com
-
- vendor.id             usb 0x0693
-&device.id             usb 0x0002
-+device.name           FlashGate SmartMedia Card Reader
-
- vendor.id             usb 0x0693
-&device.id             usb 0x0003
-+device.name           FlasgGate CompactFlash Card Reader
-
- vendor.id             usb 0x0693
-&device.id             usb 0x0005
-+device.name           FlashGate
-
- vendor.id             usb 0x0694
-+vendor.name           Lego Group
-
- vendor.id             usb 0x0694
-&device.id             usb 0x0001
-+device.name           Mindstorms Tower
-
- vendor.id             usb 0x0698
-+vendor.name           Chuntex (CTX)
-
- vendor.id             usb 0x0698
-&device.id             usb 0x1786
-+device.name           1300ex Monitor
-
- vendor.id             usb 0x0698
-&device.id             usb 0x9999
-+device.name           VLxxxx Monitor+Hub
-
- vendor.id             usb 0x069a
-+vendor.name           Askey Computer Corp.
-
- vendor.id             usb 0x069a
-&device.id             usb 0x0001
-+device.name           VC010 WebCam [pwc]
-
- vendor.id             usb 0x069b
-+vendor.name           Thomson Consumer Electronics
-
- vendor.id             usb 0x069d
-+vendor.name           Hughes Network Systems (HNS)
-
- vendor.id             usb 0x069d
-&device.id             usb 0x0002
-+device.name           Satellite Device
-
- vendor.id             usb 0x069e
-+vendor.name           Marx
-
- vendor.id             usb 0x069e
-&device.id             usb 0x0005
-+device.name           CryptoBox v1.2
-
- vendor.id             usb 0x06a3
-+vendor.name           Saitek PLC
-
- vendor.id             usb 0x06a3
-&device.id             usb 0x0006
-+device.name           Cyborg Gold Joystick
-
- vendor.id             usb 0x06a3
-&device.id             usb 0x052d
-+device.name           P750 Gamepad
-
- vendor.id             usb 0x06a3
-&device.id             usb 0x053f
-+device.name           X36F Flightstick
-
- vendor.id             usb 0x06a3
-&device.id             usb 0x100a
-+device.name           SP550 Pad and Joystick Combo
-
- vendor.id             usb 0x06a3
-&device.id             usb 0x100b
-+device.name           SP550 Pad
-
- vendor.id             usb 0x06a5
-+vendor.name           Divio
-
- vendor.id             usb 0x06a5
-&device.id             usb 0xd001
-+device.name           ProLink DS3303u WebCam
-
- vendor.id             usb 0x06aa
-+vendor.name           Sysgration Ltd.
-
- vendor.id             usb 0x06ac
-+vendor.name           Fujitsu PC Corp.
-
- vendor.id             usb 0x06ad
-+vendor.name           Greatland Electronics Taiwan Ltd.
-
- vendor.id             usb 0x06ae
-+vendor.name           Professional Multimedia Testing Centre
-
- vendor.id             usb 0x06b8
-+vendor.name           Pixela Corproation
-
- vendor.id             usb 0x06b9
-+vendor.name           Alcatel Telecom
-
- vendor.id             usb 0x06b9
-&device.id             usb 0x4061
-+device.name           Speed Touch ISDN
-
- vendor.id             usb 0x06ba
-+vendor.name           Smooth Cord & Connector Co., Ltd.
-
- vendor.id             usb 0x06bb
-+vendor.name           EDA Inc.
-
- vendor.id             usb 0x06bc
-+vendor.name           Oki Data Corp.
-
- vendor.id             usb 0x06bd
-+vendor.name           AGFA-Gevaert NV
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x0001
-+device.name           SnapScan 1212U
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x0002
-+device.name           SnapScan 1236U
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x0100
-+device.name           SnapScan Touch
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x0403
-+device.name           ePhoto CL18 Camera
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x0404
-+device.name           ePhoto CL20 Camera
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x2061
-+device.name           SnapScan 1212U (?)
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x208f
-+device.name           SnapScan e50
-
- vendor.id             usb 0x06bd
-&device.id             usb 0x20fd
-+device.name           SnapScan e52
-
- vendor.id             usb 0x06be
-+vendor.name           Asia Microelectronic Development, Inc.
-
- vendor.id             usb 0x06bf
-+vendor.name           Leoco Corp.
-
- vendor.id             usb 0x06c4
-+vendor.name           Bizlink International Corp.
-
- vendor.id             usb 0x06c5
-+vendor.name           Hagenuk, GmbH
-
- vendor.id             usb 0x06c6
-+vendor.name           Infowave Software Inc.
-
- vendor.id             usb 0x06c8
-+vendor.name           SIIG, Inc.
-
- vendor.id             usb 0x06c9
-+vendor.name           Taxan (Europe) Ltd.
-
- vendor.id             usb 0x06ca
-+vendor.name           Newer Technology, Inc.
-
- vendor.id             usb 0x06cb
-+vendor.name           Synaptics
-
- vendor.id             usb 0x06cc
-+vendor.name           Terayon Communication Systems
-
- vendor.id             usb 0x06cd
-+vendor.name           Keyspan
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x0101
-+device.name           USA-28 PDA [preenum]
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x0102
-+device.name           USA-28X PDA [preenum]
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x0103
-+device.name           USA-19 PDA [preenum]
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x0104
-+device.name           PDA [prerenum]
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x0105
-+device.name           USA-18X PDA [preenum]
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x0106
-+device.name           USA-19W PDA [preenum]
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x0107
-+device.name           USA-19 PDA
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x0108
-+device.name           USA-19W PDA
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x010b
-+device.name           USA-19Q PDA
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x010f
-+device.name           USA-28 PDA
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x0110
-+device.name           USA-28X PDA
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x0112
-+device.name           USA-18X PDA
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x0114
-+device.name           USA-28X PDA
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x0118
-+device.name           USA-19QW PDA
-
- vendor.id             usb 0x06cd
-&device.id             usb 0x0201
-+device.name           Digital Media Remote
-
- vendor.id             usb 0x06cf
-+vendor.name           SpheronVR AG
-
- vendor.id             usb 0x06cf
-&device.id             usb 0x1010
-+device.name           PanoCam 10
-
- vendor.id             usb 0x06cf
-&device.id             usb 0x1012
-+device.name           PanoCam 12/12X
-
- vendor.id             usb 0x06d0
-+vendor.name           LapLink, Inc.
-
- vendor.id             usb 0x06d0
-&device.id             usb 0x0622
-+device.name           LapLink Gold USB-USB Bridge [net1080]
-
- vendor.id             usb 0x06d1
-+vendor.name           Daewoo Electronics Co Ltd.
-
- vendor.id             usb 0x06d3
-+vendor.name           Mitsubishi Electric Corp.
-
- vendor.id             usb 0x06d5
-+vendor.name           Toshiba
-
- vendor.id             usb 0x06d5
-&device.id             usb 0x4000
-+device.name           Japanese Keyboard
-
- vendor.id             usb 0x06d6
-+vendor.name           Aashima Technology B.V.
-
- vendor.id             usb 0x06d7
-+vendor.name           Network Computing Devices (NCD)
-
- vendor.id             usb 0x06d8
-+vendor.name           Technical Marketing Research, Inc.
-
- vendor.id             usb 0x06da
-+vendor.name           Phoenixtec Power Co., Ltd.
-
- vendor.id             usb 0x06db
-+vendor.name           Paradyne
-
- vendor.id             usb 0x06dc
-+vendor.name           Compeye Corp.
-
- vendor.id             usb 0x06de
-+vendor.name           Heisei Electronics Co. Ltd.
-
- vendor.id             usb 0x06e0
-+vendor.name           Multi-Tech Systems, Inc.
-
- vendor.id             usb 0x06e0
-&device.id             usb 0xf101
-+device.name           MT5634ZBA MultiModem 56k Intl.
-
- vendor.id             usb 0x06e0
-&device.id             usb 0xf104
-+device.name           MT5634ZBA MultiModem 56k
-
- vendor.id             usb 0x06e1
-+vendor.name           ADS Technologies, Inc.
-
- vendor.id             usb 0x06e1
-&device.id             usb 0x0008
-+device.name           UBS-10BT Ethernet [klsi]
-
- vendor.id             usb 0x06e4
-+vendor.name           Alcatel Microelectronics
-
- vendor.id             usb 0x06e6
-+vendor.name           Tiger Jet Network, Inc.
-
- vendor.id             usb 0x06ea
-+vendor.name           Sirius Technologies
-
- vendor.id             usb 0x06ea
-&device.id             usb 0x0001
-+device.name           NetCom Roadster II 56k
-
- vendor.id             usb 0x06ea
-&device.id             usb 0x0002
-+device.name           Roadster II 56k
-
- vendor.id             usb 0x06ef
-+vendor.name           I.A.C. Geometrische Ingenieurs B.V.
-
- vendor.id             usb 0x06f0
-+vendor.name           T.N.C Industrial Co., Ltd.
-
- vendor.id             usb 0x06f1
-+vendor.name           Opcode Systems Inc.
-
- vendor.id             usb 0x06f2
-+vendor.name           Machkey  International (USA)
-
- vendor.id             usb 0x06f6
-+vendor.name           Wintrend Technology Co., Ltd.
-
- vendor.id             usb 0x06fa
-+vendor.name           HSD S.r.L
-
- vendor.id             usb 0x06fd
-+vendor.name           Boston Acoustics
-
- vendor.id             usb 0x06fe
-+vendor.name           Gallant Computer, Inc.
-
- vendor.id             usb 0x0701
-+vendor.name           Supercomal Wire & Cable SDN. BHD.
-
- vendor.id             usb 0x0703
-+vendor.name           Bencent Tzeng Industry Co., Ltd.
-
- vendor.id             usb 0x0707
-+vendor.name           Standard Microsystems Corp
-
- vendor.id             usb 0x0707
-&device.id             usb 0x0100
-+device.name           2202 Ethernet [klsi]
-
- vendor.id             usb 0x0707
-&device.id             usb 0x0200
-+device.name           2202 Ethernet [pegasus]
-
- vendor.id             usb 0x0709
-+vendor.name           Silicon Systems Ltd. (SSL)
-
- vendor.id             usb 0x070a
-+vendor.name           Oki Electric Industry Co., Ltd.
-
- vendor.id             usb 0x070d
-+vendor.name           Comoss Electronic Co., Ltd.
-
- vendor.id             usb 0x0710
-+vendor.name           Connect Tech Inc.
-
- vendor.id             usb 0x0710
-&device.id             usb 0x0001
-+device.name           WhiteHeat (fake ID)
-
- vendor.id             usb 0x0710
-&device.id             usb 0x8001
-+device.name           WhiteHeat
-
- vendor.id             usb 0x0711
-+vendor.name           Magic Control Technology Corp.
-
- vendor.id             usb 0x0711
-&device.id             usb 0x0100
-+device.name           Hub
-
- vendor.id             usb 0x0711
-&device.id             usb 0x0200
-+device.name           BAY-3U1S1P Serial Port
-
- vendor.id             usb 0x0711
-&device.id             usb 0x0210
-+device.name           MCT1S Serial Port
-
- vendor.id             usb 0x0711
-&device.id             usb 0x0230
-+device.name           MCT-232 Serial Port
-
- vendor.id             usb 0x0711
-&device.id             usb 0x0231
-+device.name           PS/2 Mouse Port
-
- vendor.id             usb 0x0711
-&device.id             usb 0x0240
-+device.name           PS/2 to USB Converter
-
- vendor.id             usb 0x0711
-&device.id             usb 0x0300
-+device.name           BAY-3U1S1P Parallel Port
-
- vendor.id             usb 0x0711
-&device.id             usb 0x0302
-+device.name           Parallel Port
-
- vendor.id             usb 0x0714
-+vendor.name           NewMotion, Inc.
-
- vendor.id             usb 0x0714
-&device.id             usb 0x0003
-+device.name           ADB to USB convertor
-
- vendor.id             usb 0x0718
-+vendor.name           Imation Corp.
-
- vendor.id             usb 0x0719
-+vendor.name           Tremon Enterprises Co., Ltd.
-
- vendor.id             usb 0x071b
-+vendor.name           Domain Technologies, Inc.
-
- vendor.id             usb 0x071b
-&device.id             usb 0x0002
-+device.name           DTI-56362-USB Digital Interface Unit
-
- vendor.id             usb 0x071b
-&device.id             usb 0x0101
-+device.name           Audio4-USB DSP Data Acquisition Unit
-
- vendor.id             usb 0x071b
-&device.id             usb 0x0201
-+device.name           Audio4-5410 DSP Data Acquisition Unit
-
- vendor.id             usb 0x071b
-&device.id             usb 0x0301
-+device.name           SB-USB JTAG Emulator
-
- vendor.id             usb 0x071c
-+vendor.name           Xionics Document Technologies, Inc.
-
- vendor.id             usb 0x071d
-+vendor.name           Eicon Technology Corp.
-
- vendor.id             usb 0x071d
-&device.id             usb 0x1000
-+device.name           Diva ISDN TA
-
- vendor.id             usb 0x0723
-+vendor.name           Centillium Communications Corp.
-
- vendor.id             usb 0x0726
-+vendor.name           Vanguard International Semiconductor-America
-
- vendor.id             usb 0x0729
-+vendor.name           Amitm
-
- vendor.id             usb 0x0729
-&device.id             usb 0x1000
-+device.name           USC-1000 Serial Port
-
- vendor.id             usb 0x072f
-+vendor.name           ACS, Ltd.
-
- vendor.id             usb 0x072f
-&device.id             usb 0x0001
-+device.name           ACR20U SmartCard Reader
-
- vendor.id             usb 0x0733
-+vendor.name           ViewQuest Technologies, Inc.
-
- vendor.id             usb 0x0733
-&device.id             usb 0x0401
-+device.name           CS330 WebCam
-
- vendor.id             usb 0x0733
-&device.id             usb 0x0402
-+device.name           M-318B WebCam
-
- vendor.id             usb 0x0733
-&device.id             usb 0x0430
-+device.name           Intel Pro Share WebCam
-
- vendor.id             usb 0x0734
-+vendor.name           Lasat Communications A/S
-
- vendor.id             usb 0x0734
-&device.id             usb 0x0001
-+device.name           560V Modem
-
- vendor.id             usb 0x0735
-+vendor.name           Asuscom Network
-
- vendor.id             usb 0x0735
-&device.id             usb 0xc541
-+device.name           ISDN TA 280
-
- vendor.id             usb 0x0738
-+vendor.name           Mad Catz, Inc.
-
- vendor.id             usb 0x073e
-+vendor.name           NEC, Inc.
-
- vendor.id             usb 0x073e
-&device.id             usb 0x0301
-+device.name           Game Pad
-
- vendor.id             usb 0x073b
-+vendor.name           Suncom Technologies
-
- vendor.id             usb 0x0745
-+vendor.name           Syntech Information Co., Ltd.
-
- vendor.id             usb 0x0746
-+vendor.name           Onkyo Corp.
-
- vendor.id             usb 0x0747
-+vendor.name           Labway Corp.
-
- vendor.id             usb 0x0748
-+vendor.name           Strong Man Enterprise Co., Ltd.
-
- vendor.id             usb 0x0749
-+vendor.name           EVer Electronics Corp.
-
- vendor.id             usb 0x074a
-+vendor.name           Ming Fortune Industry Co., Ltd.
-
- vendor.id             usb 0x074b
-+vendor.name           Polestar Tech. Corp.
-
- vendor.id             usb 0x074c
-+vendor.name           C-C-C Group PLC
-
- vendor.id             usb 0x074d
-+vendor.name           Micronas Intermetall GmbH
-
- vendor.id             usb 0x074e
-+vendor.name           Digital Stream Corp.
-
- vendor.id             usb 0x074e
-&device.id             usb 0x0001
-+device.name           PS/2 Adapter
-
- vendor.id             usb 0x074e
-&device.id             usb 0x0002
-+device.name           PS/2 Adapter
-
- vendor.id             usb 0x0755
-+vendor.name           Aureal Semiconductor
-
- vendor.id             usb 0x0763
-+vendor.name           Midiman
-
- vendor.id             usb 0x0763
-&device.id             usb 0x1001
-+device.name           Midisport 2x2
-
- vendor.id             usb 0x0763
-&device.id             usb 0x1010
-+device.name           Midisport 1x1
-
- vendor.id             usb 0x0763
-&device.id             usb 0x1020
-+device.name           Midisport 4x4
-
- vendor.id             usb 0x0763
-&device.id             usb 0x1030
-+device.name           Midisport 8x8
-
- vendor.id             usb 0x0757
-+vendor.name           Network Technologies, Inc.
-
- vendor.id             usb 0x0764
-+vendor.name           Cyber Power System, Inc.
-
- vendor.id             usb 0x0765
-+vendor.name           X-Rite Incorporated
-
- vendor.id             usb 0x0766
-+vendor.name           Destech Solutions, Inc.
-
- vendor.id             usb 0x0768
-+vendor.name           Camtel Technology Corp.
-
- vendor.id             usb 0x0769
-+vendor.name           Surecom Technology Corp.
-
- vendor.id             usb 0x076a
-+vendor.name           Smart Technology Enablers, Inc.
-
- vendor.id             usb 0x076b
-+vendor.name           Utimaco Safeware AG
-
- vendor.id             usb 0x076d
-+vendor.name           Denso Corp.
-
- vendor.id             usb 0x076e
-+vendor.name           Kuan Tech Enterprise Co., Ltd.
-
- vendor.id             usb 0x076f
-+vendor.name           Jhen Vei Enterprise Co., Ltd.
-
- vendor.id             usb 0x0774
-+vendor.name           AmTRAN Technology Co., Ltd.
-
- vendor.id             usb 0x0775
-+vendor.name           Longshine Electronics Corp.
-
- vendor.id             usb 0x0776
-+vendor.name           Inalways Corp.
-
- vendor.id             usb 0x0777
-+vendor.name           Comda Enterprise Corp.
-
- vendor.id             usb 0x0779
-+vendor.name           Fairchild Semiconductor
-
- vendor.id             usb 0x077a
-+vendor.name           Sankyo Seiki Mfg. Co., Ltd.
-
- vendor.id             usb 0x077b
-+vendor.name           Linksys
-
- vendor.id             usb 0x077c
-+vendor.name           Forward Electronics Co., Ltd.
-
- vendor.id             usb 0x077c
-&device.id             usb 0x0005
-+device.name           NEC Keyboard
-
- vendor.id             usb 0x077d
-+vendor.name           Griffin Technology
-
- vendor.id             usb 0x077d
-&device.id             usb 0x0223
-+device.name           IMic Audio In/Out
-
- vendor.id             usb 0x077f
-+vendor.name           Well Excellent & Most Corp.
-
- vendor.id             usb 0x0781
-+vendor.name           SanDisk Corp.
-
- vendor.id             usb 0x0781
-&device.id             usb 0x0001
-+device.name           SDDR-05a ImageMate CompactFlash Reader
-
- vendor.id             usb 0x0781
-&device.id             usb 0x0002
-+device.name           SDDR-31 ImageMate II CompactFlash Reader
-
- vendor.id             usb 0x0781
-&device.id             usb 0x0005
-+device.name           SDDR-05b (CF II) ImageMate CompactFlash Reader
-
- vendor.id             usb 0x0781
-&device.id             usb 0x0200
-+device.name           SDDR-09 (SSFDC) ImageMate SmartMedia Reader [eusb]
-
- vendor.id             usb 0x0782
-+vendor.name           Trackerball
-
- vendor.id             usb 0x0784
-+vendor.name           Vivitar Inc.
-
- vendor.id             usb 0x0784
-&device.id             usb 0x0100
-+device.name           ViviCam 2655
-
- vendor.id             usb 0x0784
-&device.id             usb 0x1310
-+device.name           Vivicam 3305
-
- vendor.id             usb 0x0784
-&device.id             usb 0x5260
-+device.name           Werlisa Sport PX 100
-
- vendor.id             usb 0x0785
-+vendor.name           NTT-ME
-
- vendor.id             usb 0x0785
-&device.id             usb 0x0001
-+device.name           MN128mini-V ISDN TA
-
- vendor.id             usb 0x0785
-&device.id             usb 0x0003
-+device.name           MN128mini-J ISDN TA
-
- vendor.id             usb 0x078b
-+vendor.name           Happ Controls, Inc.
-
- vendor.id             usb 0x078b
-&device.id             usb 0x0010
-+device.name           Driving UGCI
-
- vendor.id             usb 0x078b
-&device.id             usb 0x0020
-+device.name           Flying UGCI
-
- vendor.id             usb 0x078b
-&device.id             usb 0x0030
-+device.name           Fighting UGCI
-
- vendor.id             usb 0x078e
-+vendor.name           Brimax Inc.
-
- vendor.id             usb 0x0790
-+vendor.name           Pro-Image Manufacturing Co., Ltd.
-
- vendor.id             usb 0x0791
-+vendor.name           Copartner Wire and Cable Mfg. Corp.
-
- vendor.id             usb 0x0792
-+vendor.name           Axis Communications AB
-
- vendor.id             usb 0x0793
-+vendor.name           Wha Yu Industrial Co., Ltd.
-
- vendor.id             usb 0x0794
-+vendor.name           ABL Electronics Corp.
-
- vendor.id             usb 0x0795
-+vendor.name           RealChip Inc.
-
- vendor.id             usb 0x0796
-+vendor.name           Certicom Corp.
-
- vendor.id             usb 0x0797
-+vendor.name           Grandtech Semiconductor Corp.
-
- vendor.id             usb 0x0797
-&device.id             usb 0x8001
-+device.name           SmartCam
-
- vendor.id             usb 0x079b
-+vendor.name           Sagem
-
- vendor.id             usb 0x079d
-+vendor.name           Alfadata Computer Corp.
-
- vendor.id             usb 0x079d
-&device.id             usb 0x0201
-+device.name           GamePort Adapter
-
- vendor.id             usb 0x07a1
-+vendor.name           Digicom S.p.A.
-
- vendor.id             usb 0x07a1
-&device.id             usb 0xd952
-+device.name           Palladio USB V.92 Modem
-
- vendor.id             usb 0x07a2
-+vendor.name           National Technical Systems
-
- vendor.id             usb 0x07a3
-+vendor.name           Onnto Corp.
-
- vendor.id             usb 0x07a4
-+vendor.name           Be Incorporated
-
- vendor.id             usb 0x07a6
-+vendor.name           ADMtek Incorporated
-
- vendor.id             usb 0x07a6
-&device.id             usb 0x0986
-+device.name           AN986 Pegasus Ethernet
-
- vendor.id             usb 0x07a6
-&device.id             usb 0x8511
-+device.name           ADM8511 Pegasus II Ethernet
-
- vendor.id             usb 0x07aa
-+vendor.name           Correga K.K.
-
- vendor.id             usb 0x07aa
-&device.id             usb 0x0001
-+device.name           Ether USB-T Ethernet [klsi]
-
- vendor.id             usb 0x07aa
-&device.id             usb 0x0004
-+device.name           FEther USB-TX Ethernet [pegasus]
-
- vendor.id             usb 0x07ab
-+vendor.name           Freecom
-
- vendor.id             usb 0x07ab
-&device.id             usb 0xfc01
-+device.name           IDE bridge
-
- vendor.id             usb 0x07af
-+vendor.name           Microtech
-
- vendor.id             usb 0x07af
-&device.id             usb 0x0004
-+device.name           SCSI-DB25 SCSI Bridge [shuttle]
-
- vendor.id             usb 0x07af
-&device.id             usb 0x0005
-+device.name           SCSI-HD50 SCSI Bridge [shuttle]
-
- vendor.id             usb 0x07af
-&device.id             usb 0x0006
-+device.name           CameraMate SmartMedia and CompactFlash Card Reader [eusb/shuttle]
-
- vendor.id             usb 0x07b0
-+vendor.name           Trust Technologies
-
- vendor.id             usb 0x07b0
-&device.id             usb 0x0001
-+device.name           ISDN TA
-
- vendor.id             usb 0x07b1
-+vendor.name           IMP, Inc.
-
- vendor.id             usb 0x07b2
-+vendor.name           Motorola ING
-
- vendor.id             usb 0x07b2
-&device.id             usb 0x4100
-+device.name           SB4100 Cable Modem
-
- vendor.id             usb 0x07b3
-+vendor.name           Plustek, Inc.
-
- vendor.id             usb 0x07b3
-&device.id             usb 0x0001
-+device.name           OpticPro 1212U Scanner
-
- vendor.id             usb 0x07b4
-+vendor.name           Olympus Optical Co., Ltd.
-
- vendor.id             usb 0x07b4
-&device.id             usb 0x0100
-+device.name           Camedia C-2100/C-3000 Ultra Zoom Camera
-
- vendor.id             usb 0x07b4
-&device.id             usb 0x0102
-+device.name           Camedia E-10/C-220 Camera
-
- vendor.id             usb 0x07b4
-&device.id             usb 0x0105
-+device.name           Camedia C-700/C-3040 Zoom Camera
-
- vendor.id             usb 0x07b5
-+vendor.name           Mega World International Ltd.
-
- vendor.id             usb 0x07b5
-&device.id             usb 0x9902
-+device.name           GamePad
-
- vendor.id             usb 0x07b6
-+vendor.name           Marubun Corp.
-
- vendor.id             usb 0x07b7
-+vendor.name           TIME Interconect Ltd.
-
- vendor.id             usb 0x07b8
-+vendor.name           D-Link, Inc.
-
- vendor.id             usb 0x07b8
-&device.id             usb 0xabc1
-+device.name           DU-E10 Ethernet [pegasus]
-
- vendor.id             usb 0x07b8
-&device.id             usb 0x4000
-+device.name           DU-E10 Ethernet [klsi]
-
- vendor.id             usb 0x07b8
-&device.id             usb 0x4002
-+device.name           DU-E100 Ethernet [pegasus]
-
- vendor.id             usb 0x07b8
-&device.id             usb 0xf101
-+device.name           DSB-560 Modem [atlas]
-
- vendor.id             usb 0x07bc
-+vendor.name           Canon Computer Sytems, Inc.
-
- vendor.id             usb 0x07bd
-+vendor.name           Webgear Inc.
-
- vendor.id             usb 0x07be
-+vendor.name           Veridicom
-
- vendor.id             usb 0x07c0
-+vendor.name           Code Mercenaries Hard- und Software GmbH
-
- vendor.id             usb 0x07c4
-+vendor.name           DataFab Systems, Inc.
-
- vendor.id             usb 0x07c4
-&device.id             usb 0xa000
-+device.name           CompactFlash Card Reader
-
- vendor.id             usb 0x07c4
-&device.id             usb 0xa001
-+device.name           CompactFlash & SmartMedia Card Reader [eusb]
-
- vendor.id             usb 0x07c4
-&device.id             usb 0xa002
-+device.name           Disk Drive
-
- vendor.id             usb 0x07c4
-&device.id             usb 0xa005
-+device.name           CompactFlash & SmartMedia Card Reader
-
- vendor.id             usb 0x07c4
-&device.id             usb 0xa006
-+device.name           SmartMedia Card Reader
-
- vendor.id             usb 0x07c4
-&device.id             usb 0xa109
-+device.name           LC1 CompactFlash & SmartMedia Card Reader
-
- vendor.id             usb 0x07c4
-&device.id             usb 0xa400
-+device.name           CompactFlash & Microdrive Reader
-
- vendor.id             usb 0x07c5
-+vendor.name           APG Cash Drawer
-
- vendor.id             usb 0x07c6
-+vendor.name           Share Wave, Inc.
-
- vendor.id             usb 0x07c7
-+vendor.name           Powertech Industrial Co., Ltd.
-
- vendor.id             usb 0x07c8
-+vendor.name           B.U.G., Inc.
-
- vendor.id             usb 0x07c9
-+vendor.name           Allied Telesyn International
-
- vendor.id             usb 0x07ca
-+vendor.name           AVerMedia Technologies, Inc.
-
- vendor.id             usb 0x07cb
-+vendor.name           Kingmax Technology Inc.
-
- vendor.id             usb 0x07cc
-+vendor.name           Carry Inc.
-
- vendor.id             usb 0x07cc
-&device.id             usb 0x0000
-+device.name           CF Card Reader
-
- vendor.id             usb 0x07cc
-&device.id             usb 0x0003
-+device.name           SM Card Reader
-
- vendor.id             usb 0x07cc
-&device.id             usb 0x0004
-+device.name           SM/CF/PCMCIA Card Reader
-
- vendor.id             usb 0x07cc
-&device.id             usb 0x0006
-+device.name           SM/CF/PCMCIA Card Reader
-
- vendor.id             usb 0x07cc
-&device.id             usb 0x000c
-+device.name           SM/CF Card Reader
-
- vendor.id             usb 0x07cc
-&device.id             usb 0x000d
-+device.name           SM/CF Card Reader
-
- vendor.id             usb 0x07cd
-+vendor.name           Elektor
-
- vendor.id             usb 0x07cd
-&device.id             usb 0x0001
-+device.name           USBuart Serial Port
-
- vendor.id             usb 0x07cf
-+vendor.name           Casio Computer Co., Ltd.
-
- vendor.id             usb 0x07cf
-&device.id             usb 0x1001
-+device.name           QV-8000SX/3000EX Digicam
-
- vendor.id             usb 0x07cf
-&device.id             usb 0x2002
-+device.name           E-125 Cassiopeia Pocket PC
-
- vendor.id             usb 0x07cf
-&device.id             usb 0x3801
-+device.name           Casio WMP-1 MP3-Watch
-
- vendor.id             usb 0x07d1
-+vendor.name           D-Link System
-
- vendor.id             usb 0x07d2
-+vendor.name           Aptio Products Inc.
-
- vendor.id             usb 0x07d3
-+vendor.name           Cyberdata Corp.
-
- vendor.id             usb 0x07d7
-+vendor.name           GCC Technologies, Inc.
-
- vendor.id             usb 0x07da
-+vendor.name           Arasan Chip Systems
-
- vendor.id             usb 0x07e1
-+vendor.name           Ambient Technologies, Inc.
-
- vendor.id             usb 0x07e1
-&device.id             usb 0x5201
-+device.name           V.90 Modem
-
- vendor.id             usb 0x07e2
-+vendor.name           Elmeg GmbH & Co., Ltd.
-
- vendor.id             usb 0x07e3
-+vendor.name           Planex Communications, Inc.
-
- vendor.id             usb 0x07e4
-+vendor.name           Movado Enterprise Co., Ltd.
-
- vendor.id             usb 0x07e5
-+vendor.name           QPS, Inc.
-
- vendor.id             usb 0x07e5
-&device.id             usb 0x5c01
-+device.name           Que! CDRW
-
- vendor.id             usb 0x07e6
-+vendor.name           Allied Cable Corp.
-
- vendor.id             usb 0x07e7
-+vendor.name           Mirvo Toys, Inc.
-
- vendor.id             usb 0x07e8
-+vendor.name           Labsystems
-
- vendor.id             usb 0x07eb
-+vendor.name           Double-H Technology Co., Ltd.
-
- vendor.id             usb 0x07ec
-+vendor.name           Taiyo Electrical Wire & Cable Co., Ltd.
-
- vendor.id             usb 0x07fa
-+vendor.name           Draytek
-
- vendor.id             usb 0x07fa
-&device.id             usb 0x0778
-+device.name           miniVigor 128 ISDN TA
-
- vendor.id             usb 0x07f6
-+vendor.name           Circuit Assembly Corp
-
- vendor.id             usb 0x07f7
-+vendor.name           Century Corp.
-
- vendor.id             usb 0x07fd
-+vendor.name           Mark of the Unicorn
-
- vendor.id             usb 0x07fd
-&device.id             usb 0x0000
-+device.name           FastLane MIDI Interface
-
- vendor.id             usb 0x0801
-+vendor.name           Mag-Tek
-
- vendor.id             usb 0x0802
-+vendor.name           Tritheim Technologies, Inc.
-
- vendor.id             usb 0x0803
-+vendor.name           Zoom Telephonics, Inc.
-
- vendor.id             usb 0x0803
-&device.id             usb 0x9700
-+device.name           2986L FaxModem
-
- vendor.id             usb 0x0809
-+vendor.name           Genicom Corp.
-
- vendor.id             usb 0x080a
-+vendor.name           Evermuch Technology Co., Ltd.
-
- vendor.id             usb 0x080d
-+vendor.name           Teco Image Systems Co., Ltd.
-
- vendor.id             usb 0x0813
-+vendor.name           Mattel, Inc.
-
- vendor.id             usb 0x081a
-+vendor.name           MG Logic
-
- vendor.id             usb 0x081a
-&device.id             usb 0x1000
-+device.name           Duo Pen Tablet
-
- vendor.id             usb 0x081c
-+vendor.name           Mipsys
-
- vendor.id             usb 0x081e
-+vendor.name           Intelligent Peripheral Devices, Inc.
-
- vendor.id             usb 0x0822
-+vendor.name           Reudo Corp.
-
- vendor.id             usb 0x0825
-+vendor.name           GC Protronics
-
- vendor.id             usb 0x0826
-+vendor.name           Data Transit
-
- vendor.id             usb 0x0827
-+vendor.name           BroadLogic, Inc.
-
- vendor.id             usb 0x0828
-+vendor.name           Sato Corp.
-
- vendor.id             usb 0x0829
-+vendor.name           Telocity, Inc.
-
- vendor.id             usb 0x082d
-+vendor.name           Handspring
-
- vendor.id             usb 0x082d
-&device.id             usb 0x0100
-+device.name           Visor
-
- vendor.id             usb 0x0830
-+vendor.name           Palm Computing, Inc.
-
- vendor.id             usb 0x0830
-&device.id             usb 0x0002
-+device.name           Palm M505
-
- vendor.id             usb 0x0830
-&device.id             usb 0x0003
-+device.name           Palm M515
-
- vendor.id             usb 0x0830
-&device.id             usb 0x0020
-+device.name           Palm I705
-
- vendor.id             usb 0x0830
-&device.id             usb 0x0040
-+device.name           Palm M125
-
- vendor.id             usb 0x0830
-&device.id             usb 0x0050
-+device.name           Palm M130
-
- vendor.id             usb 0x0830
-&device.id             usb 0x0080
-+device.name           Palm
-
- vendor.id             usb 0x0832
-+vendor.name           Kouwell Electronics Corp.
-
- vendor.id             usb 0x0833
-+vendor.name           Sourcenext Corp.
-
- vendor.id             usb 0x0835
-+vendor.name           Action Star Enterprise Co., Ltd.
-
- vendor.id             usb 0x0839
-+vendor.name           Samsung Aerospace Industries Ltd.
-
- vendor.id             usb 0x0839
-&device.id             usb 0x0005
-+device.name           Digimax Camera
-
- vendor.id             usb 0x083a
-+vendor.name           Accton Technology Corp.
-
- vendor.id             usb 0x083a
-&device.id             usb 0x1046
-+device.name           10/100 Ethernet [pegasus]
-
- vendor.id             usb 0x083a
-&device.id             usb 0x5046
-+device.name           SpeedStream 10/100 Ethernet [pegasus]
-
- vendor.id             usb 0x083f
-+vendor.name           Global Village
-
- vendor.id             usb 0x083f
-&device.id             usb 0xb100
-+device.name           TelePort V.90 Fax/Modem
-
- vendor.id             usb 0x0841
-+vendor.name           Rioport.com Inc.
-
- vendor.id             usb 0x0841
-&device.id             usb 0x0001
-+device.name           Rio 500
-
- vendor.id             usb 0x0846
-+vendor.name           NetGear, Inc.
-
- vendor.id             usb 0x0846
-&device.id             usb 0x1001
-+device.name           EA101 Ethernet [klsi]
-
- vendor.id             usb 0x084d
-+vendor.name           Minton Optic Industry Co., Inc.
-
- vendor.id             usb 0x084d
-&device.id             usb 0x0003
-+device.name           S-Cam F5 Digital Camera
-
- vendor.id             usb 0x084e
-+vendor.name           KB Gear
-
- vendor.id             usb 0x084e
-&device.id             usb 0x1002
-+device.name           Pablo Tablet
-
- vendor.id             usb 0x084f
-+vendor.name           Empeg
-
- vendor.id             usb 0x084f
-&device.id             usb 0x0001
-+device.name           Empeg-Car Mark I/II Player
-
- vendor.id             usb 0x0850
-+vendor.name           Fast Point Technologies, Inc.
-
- vendor.id             usb 0x0851
-+vendor.name           Macronix International Co., Ltd.
-
- vendor.id             usb 0x0852
-+vendor.name           CSEM
-
- vendor.id             usb 0x0854
-+vendor.name           ActiveWire Inc.
-
- vendor.id             usb 0x0854
-&device.id             usb 0x0100
-+device.name           I/O Board
-
- vendor.id             usb 0x0854
-&device.id             usb 0x0101
-+device.name           I/O Board, rev1
-
- vendor.id             usb 0x0858
-+vendor.name           Hitachi Maxell Ltd.
-
- vendor.id             usb 0x0859
-+vendor.name           Minolta Systems Laboratory, Inc.
-
- vendor.id             usb 0x085a
-+vendor.name           Xircom
-
- vendor.id             usb 0x085a
-&device.id             usb 0x0001
-+device.name           Portstation Dual Serial Port
-
- vendor.id             usb 0x085a
-&device.id             usb 0x8027
-+device.name           PGSDB9 Serial Port
-
- vendor.id             usb 0x0862
-+vendor.name           Teletrol Systems, Inc.
-
- vendor.id             usb 0x0863
-+vendor.name           Filanet Corp.
-
- vendor.id             usb 0x0864
-+vendor.name           NetGear, Inc.
-
- vendor.id             usb 0x0864
-&device.id             usb 0x4100
-+device.name           MA101 Wireless Adapter
-
- vendor.id             usb 0x086a
-+vendor.name           Emagic Soft-und Hardware GmbH
-
- vendor.id             usb 0x086c
-+vendor.name           DeTeWe - Deutsche Telephonwerke AG & Co.
-
- vendor.id             usb 0x086c
-&device.id             usb 0x1001
-+device.name           Eumex 504PC ISDN TA
-
- vendor.id             usb 0x086e
-+vendor.name           System TALKS Inc.
-
- vendor.id             usb 0x086f
-+vendor.name           MEC IMEX Inc/HPT
-
- vendor.id             usb 0x0870
-+vendor.name           Metricom
-
- vendor.id             usb 0x0871
-+vendor.name           SanDisk, Inc.
-
- vendor.id             usb 0x0871
-&device.id             usb 0x0001
-+device.name           SDDR-01 Compact Flash Reader
-
- vendor.id             usb 0x0871
-&device.id             usb 0x0002
-+device.name           SDDR-31 Compact Flash Reader
-
- vendor.id             usb 0x0871
-&device.id             usb 0x0005
-+device.name           SDDR-05 Compact Flash Reader
-
- vendor.id             usb 0x0873
-+vendor.name           Xpeed Inc.
-
- vendor.id             usb 0x0879
-+vendor.name           Comtrol Corp.
-
- vendor.id             usb 0x087c
-+vendor.name           Adesso/Kbtek America Inc.
-
- vendor.id             usb 0x087d
-+vendor.name           Jaton Corp.
-
- vendor.id             usb 0x087e
-+vendor.name           Fujitsu Computer Products of America
-
- vendor.id             usb 0x087f
-+vendor.name           Virtual IP Group, Inc.
-
- vendor.id             usb 0x0880
-+vendor.name           APT Technologies Inc.
-
- vendor.id             usb 0x0883
-+vendor.name           Recording Industry Association of America (RIAA)
-
- vendor.id             usb 0x0885
-+vendor.name           Boca Research, Inc.
-
- vendor.id             usb 0x0886
-+vendor.name           XAC Automation Corp.
-
- vendor.id             usb 0x0887
-+vendor.name           Hannstar Electronics Corp.
-
- vendor.id             usb 0x088b
-+vendor.name           MassWorks, Inc.
-
- vendor.id             usb 0x088b
-&device.id             usb 0x4944
-+device.name           MassWorks ID-75 TouchScreen
-
- vendor.id             usb 0x0892
-+vendor.name           DioGraphy Inc.
-
- vendor.id             usb 0x089c
-+vendor.name           United Technologies Research Cntr.
-
- vendor.id             usb 0x089d
-+vendor.name           Icron Systems Inc.
-
- vendor.id             usb 0x089e
-+vendor.name           NST Co., Ltd.
-
- vendor.id             usb 0x08a5
-+vendor.name           e9 Inc.
-
- vendor.id             usb 0x08a8
-+vendor.name           Andrea Electronics
-
- vendor.id             usb 0x08b8
-+vendor.name           J. Gordon Electronic Design, Inc.
-
- vendor.id             usb 0x08b8
-&device.id             usb 0x01f4
-+device.name           USBSIMM1
-
- vendor.id             usb 0x08b9
-+vendor.name           Tandy Corp./Radio Shack
-
- vendor.id             usb 0x08bb
-+vendor.name           Burr-Brown Japan, Ltd.
-
- vendor.id             usb 0x08bd
-+vendor.name           Citizen Watch Co., Ltd.
-
- vendor.id             usb 0x08c3
-+vendor.name           Precise Biometrics
-
- vendor.id             usb 0x08c3
-&device.id             usb 0x0101
-+device.name           Precise 100 MC FingerPrint and SmartCard Reader
-
- vendor.id             usb 0x08c4
-+vendor.name           Proxim, Inc.
-
- vendor.id             usb 0x08c7
-+vendor.name           Key Nice Enterprise Co., Ltd.
-
- vendor.id             usb 0x08c8
-+vendor.name           2Wire, Inc.
-
- vendor.id             usb 0x08c9
-+vendor.name           Nippon Telegraph and Telephone Corp.
-
- vendor.id             usb 0x08ca
-+vendor.name           AIPTEK International Inc.
-
- vendor.id             usb 0x08ca
-&device.id             usb 0x0020
-+device.name           APT-6000U Tablet
-
- vendor.id             usb 0x08ca
-&device.id             usb 0x0103
-+device.name           Pocket DV Digital Camera
-
- vendor.id             usb 0x08cd
-+vendor.name           Jue Hsun Ind. Corp.
-
- vendor.id             usb 0x08ce
-+vendor.name           Long Well Electronics Corp.
-
- vendor.id             usb 0x08cf
-+vendor.name           Productivity Enhancement Products
-
- vendor.id             usb 0x08d1
-+vendor.name           smartBridges, Inc.
-
- vendor.id             usb 0x08d1
-&device.id             usb 0x0001
-+device.name           smartNIC Ethernet [catc]
-
- vendor.id             usb 0x08d3
-+vendor.name           Virtual Ink
-
- vendor.id             usb 0x08d4
-+vendor.name           Siemens PC Systems
-
- vendor.id             usb 0x08dd
-+vendor.name           Billionton Systems, Inc.
-
- vendor.id             usb 0x08dd
-&device.id             usb 0x0986
-+device.name           USB-100N Ethernet [pegasus]
-
- vendor.id             usb 0x08dd
-&device.id             usb 0x0987
-+device.name           USBLP-100 HomePNA Ethernet [pegasus]
-
- vendor.id             usb 0x08dd
-&device.id             usb 0x0988
-+device.name           USBEL-100 Ethernet [pegasus]
-
- vendor.id             usb 0x08dd
-&device.id             usb 0x8511
-+device.name           USBE-100 Ethernet [pegasus2]
-
- vendor.id             usb 0x08e3
-+vendor.name           Olitec, Inc.
-
- vendor.id             usb 0x08e3
-&device.id             usb 0x0002
-+device.name           USB-RS232 Bridge
-
- vendor.id             usb 0x08e5
-+vendor.name           Litronic
-
- vendor.id             usb 0x08e6
-+vendor.name           GemPlus
-
- vendor.id             usb 0x08e7
-+vendor.name           Pan-International Wire & Cable
-
- vendor.id             usb 0x08e8
-+vendor.name           Integrated Memory Logic
-
- vendor.id             usb 0x08e9
-+vendor.name           Extended Systems, Inc.
-
- vendor.id             usb 0x08e9
-&device.id             usb 0x0100
-+device.name           XTNDAccess IrDA Dongle
-
- vendor.id             usb 0x08ea
-+vendor.name           Ericsson Inc., Blue Ridge Labs
-
- vendor.id             usb 0x08ec
-+vendor.name           M-Systems
-
- vendor.id             usb 0x08ec
-&device.id             usb 0x0010
-+device.name           DiskOnKey
-
- vendor.id             usb 0x08f1
-+vendor.name           CTI Electronics Corp.
-
- vendor.id             usb 0x08f5
-+vendor.name           SYSTEC Co., Ltd.
-
- vendor.id             usb 0x08f6
-+vendor.name           Logic 3 International Limited
-
- vendor.id             usb 0x08f8
-+vendor.name           Keen Top International Enterprise Co., Ltd.
-
- vendor.id             usb 0x08f9
-+vendor.name           EnThink, Inc.
-
- vendor.id             usb 0x08fa
-+vendor.name           Caere
-
- vendor.id             usb 0x08fb
-+vendor.name           Socket Communications
-
- vendor.id             usb 0x08fc
-+vendor.name           Sicon Cable Technology Co. Ltd.
-
- vendor.id             usb 0x08fd
-+vendor.name           Digianswer A/S
-
- vendor.id             usb 0x08ff
-+vendor.name           AuthenTec, Inc.
-
- vendor.id             usb 0x0900
-+vendor.name           Pinnacle Systems, Inc.
-
- vendor.id             usb 0x0901
-+vendor.name           VST Technologies
-
- vendor.id             usb 0x0906
-+vendor.name           Faraday Technology Corp.
-
- vendor.id             usb 0x090a
-+vendor.name           Trumpion Microelectronics Inc.
-
- vendor.id             usb 0x090b
-+vendor.name           Neurosmith
-
- vendor.id             usb 0x090c
-+vendor.name           Feiya Technology Corp.
-
- vendor.id             usb 0x090d
-+vendor.name           Multiport Computer Vertriebs GmbH
-
- vendor.id             usb 0x090e
-+vendor.name           Shining Technology, Inc.
-
- vendor.id             usb 0x090f
-+vendor.name           Fujitsu Devices Inc.
-
- vendor.id             usb 0x0910
-+vendor.name           Alation Systems, Inc.
-
- vendor.id             usb 0x0911
-+vendor.name           Philips Speech Processing
-
- vendor.id             usb 0x0912
-+vendor.name           Voquette, Inc.
-
- vendor.id             usb 0x0915
-+vendor.name           GlobeSpan, Inc.
-
- vendor.id             usb 0x0917
-+vendor.name           SmartDisk Corp.
-
- vendor.id             usb 0x0919
-+vendor.name           Tiger Electronics
-
- vendor.id             usb 0x0919
-&device.id             usb 0x0100
-+device.name           Fast Flicks Digital Camera
-
- vendor.id             usb 0x0920
-+vendor.name           Echelon Co.
-
- vendor.id             usb 0x0921
-+vendor.name           GoHubs, Inc.
-
- vendor.id             usb 0x0922
-+vendor.name           Dymo-CoStar Corp.
-
- vendor.id             usb 0x0923
-+vendor.name           IC Media Corp.
-
- vendor.id             usb 0x0924
-+vendor.name           Xerox
-
- vendor.id             usb 0x0927
-+vendor.name           Summus, Ltd.
-
- vendor.id             usb 0x0928
-+vendor.name           Oxford Semiconductor Ltd.
-
- vendor.id             usb 0x0929
-+vendor.name           American Biometric Company
-
- vendor.id             usb 0x0930
-+vendor.name           Toshiba Corp.
-
- vendor.id             usb 0x0931
-+vendor.name           Harmonic Data Systems Ltd.
-
- vendor.id             usb 0x0932
-+vendor.name           Crescentec Corp.
-
- vendor.id             usb 0x0933
-+vendor.name           Quantum Corp.
-
- vendor.id             usb 0x0934
-+vendor.name           Netcom Systems
-
- vendor.id             usb 0x0939
-+vendor.name           Lumberg, Inc.
-
- vendor.id             usb 0x093a
-+vendor.name           Pixart Imaging, Inc.
-
- vendor.id             usb 0x093b
-+vendor.name           Plextor
-
- vendor.id             usb 0x093e
-+vendor.name           J.S.T. Mfg. Co., Ltd.
-
- vendor.id             usb 0x093f
-+vendor.name           Olympia Telecom Vertriebs GmbH
-
- vendor.id             usb 0x0940
-+vendor.name           Japan Storage Battery Co., Ltd.
-
- vendor.id             usb 0x0941
-+vendor.name           Photobit Corp.
-
- vendor.id             usb 0x0942
-+vendor.name           i2Go.com, LLC
-
- vendor.id             usb 0x0943
-+vendor.name           HCL Technologies India Private Limited
-
- vendor.id             usb 0x0944
-+vendor.name           KORG, Inc.
-
- vendor.id             usb 0x0945
-+vendor.name           Pasco Scientific
-
- vendor.id             usb 0x0948
-+vendor.name           Kronauer music in digital
-
- vendor.id             usb 0x0948
-&device.id             usb 0x1105
-+device.name           USB One
-
- vendor.id             usb 0x0948
-&device.id             usb 0x0301
-+device.name           USB Pro (24/48)
-
- vendor.id             usb 0x0948
-&device.id             usb 0x0302
-+device.name           USB Pro (24/96 playback)
-
- vendor.id             usb 0x0948
-&device.id             usb 0x0303
-+device.name           USB Pro (24/96 record)
-
- vendor.id             usb 0x0948
-&device.id             usb 0x0304
-+device.name           USB Pro (16/48)
-
- vendor.id             usb 0x094d
-+vendor.name           Cable Television Laboratories
-
- vendor.id             usb 0x0951
-+vendor.name           Kingston Technology
-
- vendor.id             usb 0x0951
-&device.id             usb 0x000a
-+device.name           KNU101TX 100baseTX Ethernet
-
- vendor.id             usb 0x0954
-+vendor.name           RPM Systems Corp.
-
- vendor.id             usb 0x0955
-+vendor.name           NVidia
-
- vendor.id             usb 0x0956
-+vendor.name           BlueWater Systems, Inc.
-
- vendor.id             usb 0x0957
-+vendor.name           Agilent Technologies, Inc.
-
- vendor.id             usb 0x0958
-+vendor.name           CompuLink Research, Inc.
-
- vendor.id             usb 0x0959
-+vendor.name           Cologne Chip Designs GmbH
-
- vendor.id             usb 0x095a
-+vendor.name           Portsmith
-
- vendor.id             usb 0x095b
-+vendor.name           Medialogic Corp.
-
- vendor.id             usb 0x095c
-+vendor.name           K-Tec Electronics
-
- vendor.id             usb 0x095d
-+vendor.name           Polycom, Inc.
-
- vendor.id             usb 0x0968
-+vendor.name           Catalyst Enterprises, Inc.
-
- vendor.id             usb 0x0971
-+vendor.name           Gretag-Macbeth AG
-
- vendor.id             usb 0x0973
-+vendor.name           Schlumberger
-
- vendor.id             usb 0x0974
-+vendor.name           Datagraphix, a business unit of Anacomp
-
- vendor.id             usb 0x0975
-+vendor.name           OL'E Communications, Inc.
-
- vendor.id             usb 0x0976
-+vendor.name           Adirondack Wire & Cable
-
- vendor.id             usb 0x0977
-+vendor.name           Lightsurf Technologies
-
- vendor.id             usb 0x0978
-+vendor.name           Beckhoff GmbH
-
- vendor.id             usb 0x0979
-+vendor.name           Teracom International Inc.
-
- vendor.id             usb 0x097a
-+vendor.name           Minds At Work LLC
-
- vendor.id             usb 0x097b
-+vendor.name           Knudsen Engineering Limited
-
- vendor.id             usb 0x097c
-+vendor.name           Marunix Co., Ltd.
-
- vendor.id             usb 0x097d
-+vendor.name           Rosun Technologies, Inc.
-
- vendor.id             usb 0x0981
-+vendor.name           Oak Technology Ltd.
-
- vendor.id             usb 0x0985
-+vendor.name           cab Produkttechnik GmbH & Co KG
-
- vendor.id             usb 0x0985
-&device.id             usb 0x00a3
-+device.name           A3/200 or A3/300 Label Printer
-
- vendor.id             usb 0x098c
-+vendor.name           Vitana Corp.
-
- vendor.id             usb 0x098d
-+vendor.name           INDesign
-
- vendor.id             usb 0x098e
-+vendor.name           Integrated Intellectual Property Inc.
-
- vendor.id             usb 0x098f
-+vendor.name           Kenwood TMI Corp.
-
- vendor.id             usb 0x0993
-+vendor.name           Gemstar eBook Group, Ltd.
-
- vendor.id             usb 0x0993
-&device.id             usb 0x0001
-+device.name           REB1100 eBook Reader
-
- vendor.id             usb 0x0996
-+vendor.name           Integrated Telecom Express, Inc.
-
- vendor.id             usb 0x09a3
-+vendor.name           PairGain Technologies
-
- vendor.id             usb 0x09a4
-+vendor.name           Contech Research, Inc.
-
- vendor.id             usb 0x09a5
-+vendor.name           VCON Telecommunications
-
- vendor.id             usb 0x09a6
-+vendor.name           Poinchips
-
- vendor.id             usb 0x09a7
-+vendor.name           Data Transmission Network Corp.
-
- vendor.id             usb 0x09a8
-+vendor.name           Shinestar Enterprise Co., Ltd.
-
- vendor.id             usb 0x09a9
-+vendor.name           Smart Card Technologies Co., Ltd.
-
- vendor.id             usb 0x09aa
-+vendor.name           Intersil Corp.
-
- vendor.id             usb 0x09b2
-+vendor.name           Franklin Electronic Publishers
-
- vendor.id             usb 0x09b2
-&device.id             usb 0x0001
-+device.name           eBookman Palm Computer
-
- vendor.id             usb 0x09b3
-+vendor.name           Altius Solutions, Inc.
-
- vendor.id             usb 0x09b4
-+vendor.name           MDS Telephone Systems
-
- vendor.id             usb 0x09b5
-+vendor.name           Celltrix Technology Co., Ltd.
-
- vendor.id             usb 0x09be
-+vendor.name           MySmart.Com
-
- vendor.id             usb 0x09be
-&device.id             usb 0x0001
-+device.name           MySmartPad
-
- vendor.id             usb 0x09bf
-+vendor.name           Auerswald GmbH & Co. KG
-
- vendor.id             usb 0x09bf
-&device.id             usb 0x00c0
-+device.name           COMpact 2104 ISDN PBX
-
- vendor.id             usb 0x09bf
-&device.id             usb 0x00db
-+device.name           COMpact 4410/2206 ISDN ISDN
-
- vendor.id             usb 0x09bf
-&device.id             usb 0x00f1
-+device.name           COMfort System Telephones
-
- vendor.id             usb 0x09c1
-+vendor.name           Arris Interactive LLC
-
- vendor.id             usb 0x09c3
-+vendor.name           ActivCard, INC.
-
- vendor.id             usb 0x09c4
-+vendor.name           ACTiSYS Corp.
-
- vendor.id             usb 0x09c4
-&device.id             usb 0x0011
-+device.name           ACT-IR2000U IrDA Dongle
-
- vendor.id             usb 0x09c5
-+vendor.name           Memory Corp.
-
- vendor.id             usb 0x09cc
-+vendor.name           Workbit Corp.
-
- vendor.id             usb 0x09cd
-+vendor.name           Psion Dacom Home Networks Ltd.
-
- vendor.id             usb 0x09ce
-+vendor.name           City Electronics Ltd.
-
- vendor.id             usb 0x09cf
-+vendor.name           Electronics Testing Center, Taiwan
-
- vendor.id             usb 0x09d1
-+vendor.name           NeoMagic Inc.
-
- vendor.id             usb 0x09d2
-+vendor.name           Vreelin Engineering Inc.
-
- vendor.id             usb 0x09d3
-+vendor.name           Com One
-
- vendor.id             usb 0x09d9
-+vendor.name           KRF Tech Ltd.
-
- vendor.id             usb 0x09da
-+vendor.name           A4 Tech Co., Ltd.
-
- vendor.id             usb 0x09db
-+vendor.name           ComputerBoards Inc.
-
- vendor.id             usb 0x09dc
-+vendor.name           Aimex Corp.
-
- vendor.id             usb 0x09dd
-+vendor.name           Fellowes Manufacturing Co.
-
- vendor.id             usb 0x09df
-+vendor.name           Addonics Technologies Corp.
-
- vendor.id             usb 0x09e5
-+vendor.name           Jo-Dan International, Inc.
-
- vendor.id             usb 0x09e6
-+vendor.name           Silutia, Inc.
-
- vendor.id             usb 0x09e7
-+vendor.name           Real 3D, Inc.
-
- vendor.id             usb 0x09e8
-+vendor.name           AKAI Professional M.I. Corp.
-
- vendor.id             usb 0x09e9
-+vendor.name           Chen-Source Inc.
-
- vendor.id             usb 0x09ef
-+vendor.name           Xitel
-
- vendor.id             usb 0x09ef
-&device.id             usb 0x0101
-+device.name           MD-Port DG2 MiniDisc Interface
-
- vendor.id             usb 0x09f5
-+vendor.name           AresCom
-
- vendor.id             usb 0x09f6
-+vendor.name           RocketChips, Inc.
-
- vendor.id             usb 0x09f7
-+vendor.name           Edu-Science (H.K.) Ltd.
-
- vendor.id             usb 0x09f8
-+vendor.name           SoftConnex
-
- vendor.id             usb 0x09f9
-+vendor.name           Bay Associates
-
- vendor.id             usb 0x09fa
-+vendor.name           Mtek Vision
-
- vendor.id             usb 0x09fb
-+vendor.name           Altera
-
- vendor.id             usb 0x09ff
-+vendor.name           Gain Technology Corp.
-
- vendor.id             usb 0x0a00
-+vendor.name           Liquid Audio
-
- vendor.id             usb 0x0a01
-+vendor.name           ViA, Inc.
-
- vendor.id             usb 0x0a11
-+vendor.name           Xentec Incorporated
-
- vendor.id             usb 0x0a12
-+vendor.name           Cambridge Silicon Radio Ltd.
-
- vendor.id             usb 0x0a13
-+vendor.name           Telebyte Inc.
-
- vendor.id             usb 0x0a14
-+vendor.name           Spacelabs Medical Inc.
-
- vendor.id             usb 0x0a15
-+vendor.name           Scalar Corp.
-
- vendor.id             usb 0x0a16
-+vendor.name           Trek Technology (S) PTE Ltd.
-
- vendor.id             usb 0x0a16
-&device.id             usb 0x9988
-+device.name           Trek2000 TD-G2
-
- vendor.id             usb 0x0a17
-+vendor.name           Asahi Optical Co., Ltd.
-
- vendor.id             usb 0x0a17
-&device.id             usb 0x0004
-+device.name           Pentax Optio 330
-
- vendor.id             usb 0x0a18
-+vendor.name           Heidelberger Druckmaschinen AG
-
- vendor.id             usb 0x0a19
-+vendor.name           Hua Geng Technologies Inc.
-
- vendor.id             usb 0x0a43
-+vendor.name           Boca Systems Inc.
-
- vendor.id             usb 0x0a4d
-+vendor.name           Evolution Electronics Ltd.
-
- vendor.id             usb 0x0a4d
-&device.id             usb 0x008e
-+device.name           MK-249C MIDI Keyboard
-
- vendor.id             usb 0x0a5c
-+vendor.name           Broadcom Corp.
-
- vendor.id             usb 0x0a5f
-+vendor.name           Zebra
-
- vendor.id             usb 0x0a5f
-&device.id             usb 0x0009
-+device.name           LP2844 Printer
-
- vendor.id             usb 0x0a6b
-+vendor.name           Green House
-
- vendor.id             usb 0x0a6b
-&device.id             usb 0x0001
-+device.name           Compact Flash R/W with MP3 player
-
- vendor.id             usb 0x0abe
-+vendor.name           Stereo-Link
-
- vendor.id             usb 0x0abe
-&device.id             usb 0x0101
-+device.name           SL1200 DAC
-
- vendor.id             usb 0x0aec
-+vendor.name           Neodio
-
- vendor.id             usb 0x0aec
-&device.id             usb 0x5010
-+device.name           ND5010 Card Reader
-
- vendor.id             usb 0x0af9
-+vendor.name           Hama, Inc.
-
- vendor.id             usb 0x0af9
-&device.id             usb 0x0010
-+device.name           USB SightCam 100
-
- vendor.id             usb 0x0b30
-+vendor.name           PNY Technologies, Inc.
-
- vendor.id             usb 0x0b30
-&device.id             usb 0x0006
-+device.name           SM Media-Shuttle Card Reader
-
- vendor.id             usb 0x0b3b
-+vendor.name           Tekram Technology, Co., Ltd.
-
- vendor.id             usb 0x0b3b
-&device.id             usb 0x1612
-+device.name           AIR.Mate 2@net
-
- vendor.id             usb 0x0c12
-+vendor.name           Zeroplus
-
- vendor.id             usb 0x0c12
-&device.id             usb 0x0005
-+device.name           PSX Vibration Feedback Converter
-
- vendor.id             usb 0x0c70
-+vendor.name           MCT Elektronikladen
-
- vendor.id             usb 0x0c70
-&device.id             usb 0x0000
-+device.name           USB08 Development board
-
- vendor.id             usb 0x0c76
-+vendor.name           JMTek, LLC.
-
- vendor.id             usb 0x0c76
-&device.id             usb 0x0003
-+device.name           USBdisk
-
- vendor.id             usb 0x0c76
-&device.id             usb 0x0005
-+device.name           USBdisk
-
- vendor.id             usb 0x0bda
-+vendor.name           RealTek Semiconductor Corp.
-
- vendor.id             usb 0x0bda
-&device.id             usb 0x8150
-+device.name           RTL8150 Fast Ethernet Adapter
-
- vendor.id             usb 0x0bda
-&device.id             usb 0x8151
-+device.name           RTL8151 HomePNA Adapter
-
- vendor.id             usb 0x0bf6
-+vendor.name           Addonics Technologies, Inc.
-
- vendor.id             usb 0x0bf6
-&device.id             usb 0xa002
-+device.name           IDE Bridge
-
- vendor.id             usb 0x0c08
-+vendor.name           Agate
-
- vendor.id             usb 0x0c08
-&device.id             usb 0x0378
-+device.name           Q 16MB Storage Device
-
- vendor.id             usb 0x0c0b
-+vendor.name           Acomdata
-
- vendor.id             usb 0x0c0b
-&device.id             usb 0xb004
-+device.name           MMC/SD Reader and Writer
-
- vendor.id             usb 0x0c0b
-&device.id             usb 0xa109
-+device.name           CF/SM Reader and Writer
-
- vendor.id             usb 0x0c0b
-&device.id             usb 0xa10c
-+device.name           SD/MS Reader and Writer
-
- vendor.id             usb 0x0c5e
-+vendor.name           Xytronix Research & Design
-
- vendor.id             usb 0x0c86
-+vendor.name           NDA Technologies, Inc.
-
- vendor.id             usb 0x0d06
-+vendor.name           telos EDV Systementwicklung GmbH
-
- vendor.id             usb 0x0d7d
-+vendor.name           Apacer
-
- vendor.id             usb 0x0d7d
-&device.id             usb 0x0100
-+device.name           HandyDrive 64MB
-
- vendor.id             usb 0x0d8e
-+vendor.name           Repotec
-
- vendor.id             usb 0x0d8e
-&device.id             usb 0x7100
-+device.name           Wireless 802.11b Ethernet
-
- vendor.id             usb 0x0d96
-+vendor.name           Traveler
-
- vendor.id             usb 0x0d96
-&device.id             usb 0x3300
-+device.name           SX330z Digital Camera
-
- vendor.id             usb 0x0d96
-&device.id             usb 0x4100
-+device.name           SX410z Digital Camera
-
- vendor.id             usb 0x0dbf
-+vendor.name           Pocketec
-
- vendor.id             usb 0x0dcd
-+vendor.name           NetworkFab Corporation
-
- vendor.id             usb 0x0dcd
-&device.id             usb 0x0001
-+device.name           Remote Interface Adapter
-
- vendor.id             usb 0x0dcd
-&device.id             usb 0x0002
-+device.name           High Bandwidth Codec
-
- vendor.id             usb 0x0e0c
-+vendor.name           Gesytec
-
- vendor.id             usb 0x0e0c
-&device.id             usb 0x0101
-+device.name           LonUSB LonTalk Network Adapter
-
- vendor.id             usb 0x0e1b
-+vendor.name           Crewave
-
- vendor.id             usb 0x0e1b
-&device.id             usb 0x1100
-+device.name           CW-1100 Wireless Network Adapter
-
- vendor.id             usb 0x0e48
-+vendor.name           Julia Corp., Ltd.
-
- vendor.id             usb 0x0e48
-&device.id             usb 0x0100
-+device.name           CardPro SmartCard Reader
-
- vendor.id             usb 0x0e66
-+vendor.name           Hawking
-
- vendor.id             usb 0x0e66
-&device.id             usb 0x400c
-+device.name           UF100 Ethernet [pegasus2]
-
- vendor.id             usb 0x0e75
-+vendor.name           TVS Electronics, Ltd.
-
- vendor.id             usb 0x0ef7
-+vendor.name           Tulip Computers International
-
- vendor.id             usb 0x1046
-+vendor.name           Winbond Electronics Corp. [hex]
-
- vendor.id             usb 0x1046
-&device.id             usb 0x9967
-+device.name           W9967CF/W9968CF WebCam IC
-
- vendor.id             usb 0x1063
-+vendor.name           Motorola Electronics Taiwan Ltd. [hex]
-
- vendor.id             usb 0x1063
-&device.id             usb 0x1555
-+device.name           MC141555 Hub
-
- vendor.id             usb 0x1065
-+vendor.name           CCYU Technology
-
- vendor.id             usb 0x1065
-&device.id             usb 0x2136
-+device.name           EasyDisk ED1064
-
- vendor.id             usb 0x10ac
-+vendor.name           Honeywell, Inc.
-
- vendor.id             usb 0x10b5
-+vendor.name           PLX
-
- vendor.id             usb 0x10b5
-&device.id             usb 0x9060
-+device.name           Test Board
-
- vendor.id             usb 0x1132
-+vendor.name           Toshiba Corp., Digital Media Equipment [hex]
-
- vendor.id             usb 0x1132
-&device.id             usb 0x4331
-+device.name           PDR-M4/M5/M70 Digital Camera
-
- vendor.id             usb 0x1132
-&device.id             usb 0x4432
-+device.name           PDR-M60 Digital Camera
-
- vendor.id             usb 0x1183
-+vendor.name           Compaq Computer Corp. [hex]
-
- vendor.id             usb 0x1183
-&device.id             usb 0x4008
-+device.name           56k FaxModem
-
- vendor.id             usb 0x1183
-&device.id             usb 0x19c7
-+device.name           ISDN TA
-
- vendor.id             usb 0x1183
-&device.id             usb 0x504a
-+device.name           PJB-100 Personal Jukebox
-
- vendor.id             usb 0x1190
-+vendor.name           Tripace
-
- vendor.id             usb 0x120e
-+vendor.name           Hudson Soft Co., Ltd.
-
- vendor.id             usb 0x1292
-+vendor.name           Innomedia
-
- vendor.id             usb 0x1292
-&device.id             usb 0x0258
-+device.name           Creative Labs VoIP Blaster
-
- vendor.id             usb 0x1293
-+vendor.name           Belkin Components [hex]
-
- vendor.id             usb 0x1293
-&device.id             usb 0x0002
-+device.name           F5U002 Parallel Port [uss720]
-
- vendor.id             usb 0x1293
-&device.id             usb 0x2101
-+device.name           104-key keyboard
-
- vendor.id             usb 0x1342
-+vendor.name           Mobility
-
- vendor.id             usb 0x1342
-&device.id             usb 0x0200
-+device.name           EasiDock 200 Hub
-
- vendor.id             usb 0x1342
-&device.id             usb 0x0201
-+device.name           EasiDock 200 Keyboard and Mouse Port
-
- vendor.id             usb 0x1342
-&device.id             usb 0x0202
-+device.name           EasiDock 200 Serial Port
-
- vendor.id             usb 0x1342
-&device.id             usb 0x0203
-+device.name           EasiDock 200 Printer Port
-
- vendor.id             usb 0x13d2
-+vendor.name           Shark Multimedia
-
- vendor.id             usb 0x13d2
-&device.id             usb 0x0400
-+device.name           Pocket Ethernet [klsi]
-
- vendor.id             usb 0x1484
-+vendor.name           Elsa AG [hex]
-
- vendor.id             usb 0x1484
-&device.id             usb 0x1746
-+device.name           Ecomo 19H99 Monitor
-
- vendor.id             usb 0x1484
-&device.id             usb 0x7616
-+device.name           Elsa Hub
-
- vendor.id             usb 0x15e8
-+vendor.name           SohoWare
-
- vendor.id             usb 0x15e8
-&device.id             usb 0x9100
-+device.name           NUB100 Ethernet [pegasus]
-
- vendor.id             usb 0x1604
-+vendor.name           Tascam
-
- vendor.id             usb 0x1604
-&device.id             usb 0x8000
-+device.name           US-428 Audio/Midi Controller (without fw)
-
- vendor.id             usb 0x1604
-&device.id             usb 0x8001
-+device.name           US-428 Audio/Midi Controller
-
- vendor.id             usb 0x1606
-+vendor.name           Umax [hex]
-
- vendor.id             usb 0x1606
-&device.id             usb 0x0010
-+device.name           Astra 1220U
-
- vendor.id             usb 0x1606
-&device.id             usb 0x0030
-+device.name           Astra 2000U
-
- vendor.id             usb 0x1606
-&device.id             usb 0x0060
-+device.name           Astra 3400U
-
- vendor.id             usb 0x1606
-&device.id             usb 0x0230
-+device.name           Astra 2200/2200SU
-
- vendor.id             usb 0x1606
-&device.id             usb 0x2020
-+device.name           AstraCam 1000
-
- vendor.id             usb 0x1608
-+vendor.name           Inside Out Networks [hex]
-
- vendor.id             usb 0x1608
-&device.id             usb 0x0001
-+device.name           EdgePort/4 Serial Port
-
- vendor.id             usb 0x1608
-&device.id             usb 0x1403
-+device.name           MultiTech Systems MT4X56 Modem
-
- vendor.id             usb 0x1645
-+vendor.name           Entrega [hex]
-
- vendor.id             usb 0x1645
-&device.id             usb 0x0001
-+device.name           1S Serial Port
-
- vendor.id             usb 0x1645
-&device.id             usb 0x0002
-+device.name           2S Serial Port
-
- vendor.id             usb 0x1645
-&device.id             usb 0x0003
-+device.name           1S25 Serial Port
-
- vendor.id             usb 0x1645
-&device.id             usb 0x0004
-+device.name           4S Serial Port
-
- vendor.id             usb 0x1645
-&device.id             usb 0x0005
-+device.name           E45 Ethernet [klsi]
-
- vendor.id             usb 0x1645
-&device.id             usb 0x0006
-+device.name           Parallel Port
-
- vendor.id             usb 0x1645
-&device.id             usb 0x0007
-+device.name           U1-SC25 SCSI
-
- vendor.id             usb 0x1645
-&device.id             usb 0x0093
-+device.name           1S9 Serial Port
-
- vendor.id             usb 0x1645
-&device.id             usb 0x8000
-+device.name           EZ-USB
-
- vendor.id             usb 0x1645
-&device.id             usb 0x8002
-+device.name           2x Serial Port
-
- vendor.id             usb 0x1645
-&device.id             usb 0x8093
-+device.name           PortGear Serial Port
-
- vendor.id             usb 0x1668
-+vendor.name           Actiontec Electronics, Inc. [hex]
-
- vendor.id             usb 0x1668
-&device.id             usb 0x0333
-+device.name           Modem
-
- vendor.id             usb 0x1668
-&device.id             usb 0x0421
-+device.name           802.11b Wireless Adapter
-
- vendor.id             usb 0x1690
-+vendor.name           Askey Computer Corp. [hex]
-
- vendor.id             usb 0x1690
-&device.id             usb 0x0101
-+device.name           Creative Modem Blaster DE5670
-
- vendor.id             usb 0x1690
-&device.id             usb 0x0103
-+device.name           Askey 1456 VQE-R3 Modem [conexant]
-
- vendor.id             usb 0x1690
-&device.id             usb 0x0109
-+device.name           Askey MagicXpress V.90 Pocket Modem [conexant]
-
- vendor.id             usb 0x2001
-+vendor.name           D-Link Corp [hex]
-
- vendor.id             usb 0x2001
-&device.id             usb 0x4000
-+device.name           DSB-650C Ethernet [klsi]
-
- vendor.id             usb 0x2001
-&device.id             usb 0x4001
-+device.name           DSB-650TX Ethernet [pegasus]
-
- vendor.id             usb 0x2001
-&device.id             usb 0x4002
-+device.name           DSB-650TX Ethernet [pegasus]
-
- vendor.id             usb 0x2001
-&device.id             usb 0x4003
-+device.name           DSB-650TX-PNA Ethernet [pegasus]
-
- vendor.id             usb 0x2001
-&device.id             usb 0xabc1
-+device.name           DSB-650 Ethernet [pegasus]
-
- vendor.id             usb 0x2222
-+vendor.name           MacAlly
-
- vendor.id             usb 0x2222
-&device.id             usb 0x0004
-+device.name           iWebKey Keyboard
-
- vendor.id             usb 0x22b8
-+vendor.name           Motorola PCS
-
- vendor.id             usb 0x22b8
-&device.id             usb 0x1005
-+device.name           Ti280e GSM/GPRS Phone
-
- vendor.id             usb 0x2304
-+vendor.name           Pinnacle Systems, Inc. [hex]
-
- vendor.id             usb 0x2304
-&device.id             usb 0x0111
-+device.name           Studio PCTV (PAL) Frame Grabber
-
- vendor.id             usb 0x2304
-&device.id             usb 0x0112
-+device.name           Studio PCTV (NTSC) Frame Grabber
-
- vendor.id             usb 0x2304
-&device.id             usb 0x0210
-+device.name           Studio PCTV (PAL) Frame Grabber
-
- vendor.id             usb 0x2304
-&device.id             usb 0x0212
-+device.name           Studio PCTV (NTSC) Frame Grabber
-
- vendor.id             usb 0x2318
-+vendor.name           Shining Technologies Inc. [hex]
-
- vendor.id             usb 0x2318
-&device.id             usb 0x0011
-+device.name           CitiDISK Jr. IDE Enclosure
-
- vendor.id             usb 0x2375
-+vendor.name           Digit@lway, Inc.
-
- vendor.id             usb 0x2375
-&device.id             usb 0x0001
-+device.name           Digital Audio Player
-
- vendor.id             usb 0x3125
-+vendor.name           Eagletron
-
- vendor.id             usb 0x3125
-&device.id             usb 0x0001
-+device.name           TrackerPod Camera Stand
-
- vendor.id             usb 0x3504
-+vendor.name           Micro Star
-
- vendor.id             usb 0x3504
-&device.id             usb 0xf110
-+device.name           Security Key
-
- vendor.id             usb 0x3538
-+vendor.name           PQI
-
- vendor.id             usb 0x3538
-&device.id             usb 0x0001
-+device.name           Travel Flash
-
- vendor.id             usb 0x4242
-+vendor.name           USB Design by Example
-
- vendor.id             usb 0x4242
-&device.id             usb 0x4201
-+device.name           Buttons and Lights HID device
-
- vendor.id             usb 0x4242
-&device.id             usb 0x4220
-+device.name           Echo 1 Camera
-
- vendor.id             usb 0x544d
-+vendor.name           Transmeta Corp.
-
- vendor.id             usb 0x55aa
-+vendor.name           OnSpec Electronic Inc.
-
- vendor.id             usb 0x55aa
-&device.id             usb 0x1234
-+device.name           ATAPI Bridge
-
- vendor.id             usb 0x55aa
-&device.id             usb 0xa103
-+device.name           Sandisk SDDR-55 SmartMedia Card Reader
-
- vendor.id             usb 0x5543
-+vendor.name           UC-Logic Technology, Corp.
-
- vendor.id             usb 0x5543
-&device.id             usb 0x0002
-+device.name           SuperPen WP3325U Tablet
-
- vendor.id             usb 0x636c
-+vendor.name           CoreLogic, Inc.
-
- vendor.id             usb 0x6666
-+vendor.name           Prototype product Vendor ID
-
- vendor.id             usb 0x6666
-&device.id             usb 0x0667
-+device.name           Smart Joy PSX, PS-PC Smart JoyPad
-
- vendor.id             usb 0x6a75
-+vendor.name           Shanghai Jujo Electronics Co., Ltd.
-
- vendor.id             usb 0x8086
-+vendor.name           Intel Corp.
-
- vendor.id             usb 0x8086
-&device.id             usb 0x0110
-+device.name           Easy PC Camera
-
- vendor.id             usb 0x8086
-&device.id             usb 0x0431
-+device.name           Intel Pro Video PC Camera
-
- vendor.id             usb 0x8086
-&device.id             usb 0x0510
-+device.name           Digital Movie Creator
-
- vendor.id             usb 0x8086
-&device.id             usb 0x0630
-+device.name           Pocket PC Camera
-
- vendor.id             usb 0x8086
-&device.id             usb 0x9890
-+device.name           82930 Test Board
-
- vendor.id             usb 0x8086
-&device.id             usb 0xc013
-+device.name           Wireless HID Station
-
- vendor.id             usb 0xc251
-+vendor.name           Keil Software
-
diff --git a/src/hwinfo/src/ids/src/usb2 b/src/hwinfo/src/ids/src/usb2
deleted file mode 100644 (file)
index adbcf0e..0000000
+++ /dev/null
@@ -1,1427 +0,0 @@
-# some more usb info
-
-
- vendor.id             usb 0x03e8
-+vendor.name           AOX Inc.
-
- vendor.id             usb 0x03e9
-+vendor.name           Thesys Microelectronics
-
- vendor.id             usb 0x03ea
-+vendor.name           Data Broadcasting Corp.
-
- vendor.id             usb 0x03eb
-+vendor.name           Atmel Corporation
-
- vendor.id             usb 0x03ec
-+vendor.name           Iwatsu America Inc.
-
- vendor.id             usb 0x03ed
-+vendor.name           Mitel Corporation
-
- vendor.id             usb 0x03ee
-+vendor.name           Mitsumi
-
- vendor.id             usb 0x03f0
-+vendor.name           Hewlett Packard
-
- vendor.id             usb 0x03f1
-+vendor.name           Genoa Technology
-
- vendor.id             usb 0x03f2
-+vendor.name           Oak Technology, Inc
-
- vendor.id             usb 0x03f3
-+vendor.name           Adaptec, Inc.
-
- vendor.id             usb 0x03f4
-+vendor.name           Diebold, Inc.
-
- vendor.id             usb 0x03f5
-+vendor.name           Siemens Electromechanical
-
- vendor.id             usb 0x03f8
-+vendor.name           Epson Research Center
-
- vendor.id             usb 0x03f9
-+vendor.name           KeyTronic Corp.
-
- vendor.id             usb 0x03fb
-+vendor.name           OPTi Inc.
-
- vendor.id             usb 0x03fc
-+vendor.name           Elitegroup Computer Systems
-
- vendor.id             usb 0x03fd
-+vendor.name           Xilinx Inc.
-
- vendor.id             usb 0x03fe
-+vendor.name           Farallon
-
- vendor.id             usb 0x0400
-+vendor.name           National Semiconductor
-
- vendor.id             usb 0x0401
-+vendor.name           National Registry Inc.
-
- vendor.id             usb 0x0402
-+vendor.name           Acer Labs Inc.
-
- vendor.id             usb 0x0403
-+vendor.name           Future Technology Devices
-
- vendor.id             usb 0x0404
-+vendor.name           NCR Corporation
-
- vendor.id             usb 0x0405
-+vendor.name           Sand Microelectronics Inc.
-
- vendor.id             usb 0x0406
-+vendor.name           Fujitsu-ICL Computers
-
- vendor.id             usb 0x0407
-+vendor.name           Fujitsu Personal Systems, Inc.
-
- vendor.id             usb 0x0408
-+vendor.name           Quanta Computer Inc.
-
- vendor.id             usb 0x0409
-+vendor.name           NEC
-
- vendor.id             usb 0x040a
-+vendor.name           Eastman Kodak Co.
-
- vendor.id             usb 0x040b
-+vendor.name           Weltrend Semiconductor
-
- vendor.id             usb 0x040c
-+vendor.name           VTech Computers Ltd
-
- vendor.id             usb 0x040d
-+vendor.name           VIA Technologies, Inc.
-
- vendor.id             usb 0x040e
-+vendor.name           MCCI
-
- vendor.id             usb 0x040f
-+vendor.name           Echo Speech Corporation
-
- vendor.id             usb 0x0411
-+vendor.name           Melco, Inc.
-
- vendor.id             usb 0x0412
-+vendor.name           Award Software International
-
- vendor.id             usb 0x0413
-+vendor.name           Leadtek Research Inc.
-
- vendor.id             usb 0x0414
-+vendor.name           Giga-Byte Technology Co., Ltd.
-
- vendor.id             usb 0x0416
-+vendor.name           Winbond Electronics Corp.
-
- vendor.id             usb 0x0417
-+vendor.name           Symbios Logic
-
- vendor.id             usb 0x0418
-+vendor.name           AST Research
-
- vendor.id             usb 0x0419
-+vendor.name           Samsung Info. Systems America Inc.
-
- vendor.id             usb 0x041a
-+vendor.name           Phoenix Technologies, Ltd.
-
- vendor.id             usb 0x041b
-+vendor.name           d'TV
-
- vendor.id             usb 0x041d
-+vendor.name           S3, Inc.
-
- vendor.id             usb 0x041e
-+vendor.name           Creative Labs
-
- vendor.id             usb 0x041f
-+vendor.name           LCS Telegraphics
-
- vendor.id             usb 0x0420
-+vendor.name           Chips and Technologies
-
- vendor.id             usb 0x0421
-+vendor.name           Nokia Mobile Phones
-
- vendor.id             usb 0x0422
-+vendor.name           ADI Systems
-
- vendor.id             usb 0x0423
-+vendor.name           Computer Access Technology Corp.
-
- vendor.id             usb 0x0424
-+vendor.name           Standard Microsystems Corp.
-
- vendor.id             usb 0x0425
-+vendor.name           Motorola Semiconductors HK, Ltd.
-
- vendor.id             usb 0x0426
-+vendor.name           Integrated Device Technology
-
- vendor.id             usb 0x0427
-+vendor.name           Motorola Electronics Taiwan Ltd.
-
- vendor.id             usb 0x0428
-+vendor.name           Gravis
-
- vendor.id             usb 0x0428
-&device.id             usb 0x4001
-+baseclass.id          0x10d
-+subclass.id           0x01
-
- vendor.id             usb 0x0429
-+vendor.name           Cirrus Logic
-
- vendor.id             usb 0x042a
-+vendor.name           Ericsson Austrian, AG
-
- vendor.id             usb 0x042b
-+vendor.name           Intel Corporation
-
- vendor.id             usb 0x042c
-+vendor.name           Innovative Semiconductors, Inc.
-
- vendor.id             usb 0x042d
-+vendor.name           Micronics
-
- vendor.id             usb 0x042e
-+vendor.name           Acer, Inc.
-
- vendor.id             usb 0x042f
-+vendor.name           Molex, Inc.
-
- vendor.id             usb 0x0430
-+vendor.name           Fujitsu Takamisawa America
-
- vendor.id             usb 0x0431
-+vendor.name           Itac Systems, Inc.
-
- vendor.id             usb 0x0432
-+vendor.name           Unisys Corp.
-
- vendor.id             usb 0x0433
-+vendor.name           Alps Electric Inc.
-
- vendor.id             usb 0x0434
-+vendor.name           Samsung Info. Systems America Inc.
-
- vendor.id             usb 0x0435
-+vendor.name           Hyundai Electronics America
-
- vendor.id             usb 0x0436
-+vendor.name           Taugagreining HF
-
- vendor.id             usb 0x0437
-+vendor.name           Framatome Connectors USA
-
- vendor.id             usb 0x0438
-+vendor.name           Advanced Micro Devices
-
- vendor.id             usb 0x0439
-+vendor.name           Voice Technologies Group
-
- vendor.id             usb 0x043d
-+vendor.name           Lexmark International Inc.
-
- vendor.id             usb 0x043e
-+vendor.name           LG Electronics USA Inc.
-
- vendor.id             usb 0x043f
-+vendor.name           RadiSys Corporation
-
- vendor.id             usb 0x0440
-+vendor.name           NANAO Corporation
-
- vendor.id             usb 0x0441
-+vendor.name           Winbond Systems Lab.
-
- vendor.id             usb 0x0442
-+vendor.name           Ericsson Inc.
-
- vendor.id             usb 0x0443
-+vendor.name           Gateway 2000
-
- vendor.id             usb 0x0445
-+vendor.name           Lucent Technologies
-
- vendor.id             usb 0x0446
-+vendor.name           NMB Technologies, Inc.
-
- vendor.id             usb 0x0447
-+vendor.name           Momentum Microsystems
-
- vendor.id             usb 0x044a
-+vendor.name           Shamrock Tech. Co., Ltd
-
- vendor.id             usb 0x044b
-+vendor.name           WSI
-
- vendor.id             usb 0x044c
-+vendor.name           CCL/ITRI
-
- vendor.id             usb 0x044d
-+vendor.name           Siemens Nixdorf
-
- vendor.id             usb 0x044e
-+vendor.name           Alps Electric Co.
-
- vendor.id             usb 0x044f
-+vendor.name           ThrustMaster, Inc.
-
- vendor.id             usb 0x0450
-+vendor.name           DFI Inc.
-
- vendor.id             usb 0x0451
-+vendor.name           Texas Instruments
-
- vendor.id             usb 0x0452
-+vendor.name           Mitsubishi Electronics America, Inc.
-
- vendor.id             usb 0x0453
-+vendor.name           CMD Technology
-
- vendor.id             usb 0x0454
-+vendor.name           Vobis Microcomputer AG
-
- vendor.id             usb 0x0455
-+vendor.name           Telematics International, Inc.
-
- vendor.id             usb 0x0456
-+vendor.name           Analog Devices, Inc.
-
- vendor.id             usb 0x0457
-+vendor.name           Silicon Integrated Systems Corp.
-
- vendor.id             usb 0x0458
-+vendor.name           KYE Systems Corp.
-
- vendor.id             usb 0x0458
-&device.id             usb 0x0002
-+device.name           Genius NetMouse Pro
-
- vendor.id             usb 0x0459
-+vendor.name           Adobe Systems, Inc.
-
- vendor.id             usb 0x045a
-+vendor.name           Diamond Multimedia Systems
-
- vendor.id             usb 0x045b
-+vendor.name           Hitachi, Ltd
-
- vendor.id             usb 0x045d
-+vendor.name           Northern Telecom
-
- vendor.id             usb 0x045e
-+vendor.name           Microsoft
-
- vendor.id             usb 0x0460
-+vendor.name           Ace Cad Enterprise Co., Ltd.
-
- vendor.id             usb 0x0461
-+vendor.name           Primax Electronics
-
- vendor.id             usb 0x0463
-+vendor.name           MGE UPS Systems
-
- vendor.id             usb 0x0464
-+vendor.name           AMP Incorporated
-
- vendor.id             usb 0x0467
-+vendor.name           AT&T Paradyne
-
- vendor.id             usb 0x0468
-+vendor.name           Wieson Electronic Co., Ltd.
-
- vendor.id             usb 0x046a
-+vendor.name           Cherry Mikroschalter GmbH
-
- vendor.id             usb 0x046a
-&device.id             usb 0x0001
-+device.name           RS 6000 M
-
- vendor.id             usb 0x046b
-+vendor.name           American Megatrends
-
- vendor.id             usb 0x046c
-+vendor.name           Toshiba
-
- vendor.id             usb 0x046d
-+vendor.name           Logitech Inc.
-
- vendor.id             usb 0x046d
-&device.id             usb 0x0840
-+baseclass.id          0x10f
-+subclass.id           0x01
-+device.name           Webcam USB
-
- vendor.id             usb 0x046d
-&device.id             usb 0xc001
-+device.name           Wheelmouse Model M-BB48
-
- vendor.id             usb 0x046e
-+vendor.name           Behavior Tech. Computer
-
- vendor.id             usb 0x046f
-+vendor.name           Crystal Semiconductor
-
- vendor.id             usb 0x0471
-+vendor.name           Philips
-
- vendor.id             usb 0x0472
-+vendor.name           Sun Microsystems
-
- vendor.id             usb 0x0473
-+vendor.name           Sanyo Information Business Co., Ltd.
-
- vendor.id             usb 0x0474
-+vendor.name           Sanyo Electric Co. Ltd.
-
- vendor.id             usb 0x0475
-+vendor.name           Relisys/TECO Information System
-
- vendor.id             usb 0x0476
-+vendor.name           AESP
-
- vendor.id             usb 0x0477
-+vendor.name           Seagate Technology
-
- vendor.id             usb 0x0478
-+vendor.name           Connectix Corp.
-
- vendor.id             usb 0x0479
-+vendor.name           Advanced Peripheral Laboratories
-
- vendor.id             usb 0x047a
-+vendor.name           USAR Systems
-
- vendor.id             usb 0x047b
-+vendor.name           Silitek Corp.
-
- vendor.id             usb 0x047c
-+vendor.name           Dell Computer Corp.
-
- vendor.id             usb 0x047d
-+vendor.name           Kensington
-
- vendor.id             usb 0x047d
-&device.id             usb 0x4008
-+baseclass.id          0x10d
-+subclass.id           0x01
-
- vendor.id             usb 0x047e
-+vendor.name           Lucent Microelectronics Technologies
-
- vendor.id             usb 0x047f
-+vendor.name           Plantronics, Inc.
-
- vendor.id             usb 0x0480
-+vendor.name           Toshiba America Info. Systems, Inc.
-
- vendor.id             usb 0x0481
-+vendor.name           Zenith Data Systems
-
- vendor.id             usb 0x0482
-+vendor.name           Kyocera Electronics, Inc.
-
- vendor.id             usb 0x0483
-+vendor.name           SGS Thomson Microelectronics
-
- vendor.id             usb 0x0484
-+vendor.name           Specialix
-
- vendor.id             usb 0x0485
-+vendor.name           Nokia Monitors
-
- vendor.id             usb 0x0486
-+vendor.name           ASUS Computers Inc.
-
- vendor.id             usb 0x0487
-+vendor.name           Stewart Connector
-
- vendor.id             usb 0x0488
-+vendor.name           Cirque Corp.
-
- vendor.id             usb 0x0489
-+vendor.name           Foxconn / Hon Hai
-
- vendor.id             usb 0x048a
-+vendor.name           S-MOS Systems, Inc.
-
- vendor.id             usb 0x048c
-+vendor.name           Alps Electric Ireland Ltd.
-
- vendor.id             usb 0x048d
-+vendor.name           Integrated Technology Express
-
- vendor.id             usb 0x048f
-+vendor.name           Eicon Tech.
-
- vendor.id             usb 0x0490
-+vendor.name           United Microelectronics Corp.
-
- vendor.id             usb 0x0491
-+vendor.name           Capetronic
-
- vendor.id             usb 0x0492
-+vendor.name           Samsung SemiConductor, Inc.
-
- vendor.id             usb 0x0493
-+vendor.name           MAG Technology Co., Ltd.
-
- vendor.id             usb 0x0495
-+vendor.name           ESS Technology, Inc.
-
- vendor.id             usb 0x0496
-+vendor.name           Micron Electronics
-
- vendor.id             usb 0x0497
-+vendor.name           Smile International
-
- vendor.id             usb 0x0498
-+vendor.name           Capetronic (Kaohsiung) Corp.
-
- vendor.id             usb 0x0499
-+vendor.name           Yamaha Corporation
-
- vendor.id             usb 0x049a
-+vendor.name           Gandalf Technologies Ltd.
-
- vendor.id             usb 0x049b
-+vendor.name           System Connection
-
- vendor.id             usb 0x049c
-+vendor.name           Acer Advanced Labs, Inc.
-
- vendor.id             usb 0x049d
-+vendor.name           VLSI Technology
-
- vendor.id             usb 0x049f
-+vendor.name           Compaq Computers
-
- vendor.id             usb 0x04a0
-+vendor.name           Digital Equipment Corp.
-
- vendor.id             usb 0x04a1
-+vendor.name           SystemSoft Corporation
-
- vendor.id             usb 0x04a2
-+vendor.name           FirePower Systems
-
- vendor.id             usb 0x04a3
-+vendor.name           Trident Microsystems Inc.
-
- vendor.id             usb 0x04a4
-+vendor.name           Hitachi, Ltd.
-
- vendor.id             usb 0x04a5
-+vendor.name           Acer Peripheral Inc.
-
- vendor.id             usb 0x04a6
-+vendor.name           Nokia Display Products (Salcomp Oy)
-
- vendor.id             usb 0x04a7
-+vendor.name           Visioneer
-
- vendor.id             usb 0x04a8
-+vendor.name           Multivideo Labs, Inc.
-
- vendor.id             usb 0x04a9
-+vendor.name           Canon Inc.
-
- vendor.id             usb 0x04aa
-+vendor.name           DaeWoo Telecom, Ltd.
-
- vendor.id             usb 0x04ab
-+vendor.name           Chromatic Research
-
- vendor.id             usb 0x04ac
-+vendor.name           Micro Audiometrics Corp.
-
- vendor.id             usb 0x04ad
-+vendor.name           Dooin Electronics
-
- vendor.id             usb 0x04af
-+vendor.name           Winnov L.P.
-
- vendor.id             usb 0x04b0
-+vendor.name           Nikon Corporation
-
- vendor.id             usb 0x04b1
-+vendor.name           Pan International
-
- vendor.id             usb 0x04b3
-+vendor.name           IBM Corp.
-
- vendor.id             usb 0x04b4
-+vendor.name           Cypress Semiconductor
-
- vendor.id             usb 0x04b5
-+vendor.name           ROHM LSI Systems, Inc.
-
- vendor.id             usb 0x04b6
-+vendor.name           Hint Corporation
-
- vendor.id             usb 0x04b7
-+vendor.name           Compal Electronics, Inc.
-
- vendor.id             usb 0x04b8
-+vendor.name           Seiko Epson Corp.
-
- vendor.id             usb 0x04b9
-+vendor.name           Rainbow Technologies, Inc.
-
- vendor.id             usb 0x04ba
-+vendor.name           Toucan Systems Ltd.
-
- vendor.id             usb 0x04bb
-+vendor.name           I-O Data Device, Inc.
-
- vendor.id             usb 0x04bd
-+vendor.name           Toshiba Electronics Taiwan Corp.
-
- vendor.id             usb 0x04be
-+vendor.name           Telia Research AB
-
- vendor.id             usb 0x04bf
-+vendor.name           TDK USA Corporation
-
- vendor.id             usb 0x04c1
-+vendor.name           U.S. Robotics
-
- vendor.id             usb 0x04c2
-+vendor.name           Methode Electronics Far East Pte Ltd.
-
- vendor.id             usb 0x04c3
-+vendor.name           Maxi Switch, Inc.
-
- vendor.id             usb 0x04c4
-+vendor.name           Lockheed Martin Energy Research
-
- vendor.id             usb 0x04c5
-+vendor.name           Fujitsu Limited
-
- vendor.id             usb 0x04c6
-+vendor.name           Toshiba America Electronic Components
-
- vendor.id             usb 0x04c7
-+vendor.name           Micro Macro Technologies
-
- vendor.id             usb 0x04c8
-+vendor.name           Konica Corporation
-
- vendor.id             usb 0x04ca
-+vendor.name           Lite-On Technology Corp.
-
- vendor.id             usb 0x04cb
-+vendor.name           Fuji Photo Film Co., Ltd.
-
- vendor.id             usb 0x04cc
-+vendor.name           Philips Semiconductors
-
- vendor.id             usb 0x04cd
-+vendor.name           Tatung Co. Of America
-
- vendor.id             usb 0x04ce
-+vendor.name           ScanLogic Corporation
-
- vendor.id             usb 0x04cf
-+vendor.name           Myson Technology Inc.
-
- vendor.id             usb 0x04d0
-+vendor.name           Digi International
-
- vendor.id             usb 0x04d1
-+vendor.name           ITT Canon
-
- vendor.id             usb 0x04d2
-+vendor.name           Altec Lansing Technologies
-
- vendor.id             usb 0x04d3
-+vendor.name           VidUS, Inc.
-
- vendor.id             usb 0x04d4
-+vendor.name           LSI Logic Corporation
-
- vendor.id             usb 0x04d5
-+vendor.name           Forte Technologies, Inc.
-
- vendor.id             usb 0x04d6
-+vendor.name           CAE Technology
-
- vendor.id             usb 0x04d7
-+vendor.name           Oki Semiconductor
-
- vendor.id             usb 0x04d8
-+vendor.name           Micro Chip Technology, Inc.
-
- vendor.id             usb 0x04d9
-+vendor.name           Holtek Microelectronics Inc.
-
- vendor.id             usb 0x04da
-+vendor.name           Panasonic (Matsushita)
-
- vendor.id             usb 0x04db
-+vendor.name           Hypertec Pty Ltd.
-
- vendor.id             usb 0x04dc
-+vendor.name           Huan Hsin C., SDN.BHD
-
- vendor.id             usb 0x04dd
-+vendor.name           Sharp Corporation
-
- vendor.id             usb 0x04de
-+vendor.name           MindShare, Inc.
-
- vendor.id             usb 0x04df
-+vendor.name           Interlink Electronics
-
- vendor.id             usb 0x04e1
-+vendor.name           Iiyama North America Inc.
-
- vendor.id             usb 0x04e2
-+vendor.name           Exar Corporation
-
- vendor.id             usb 0x04e3
-+vendor.name           Zilog
-
- vendor.id             usb 0x04e4
-+vendor.name           ACC Microelectronics
-
- vendor.id             usb 0x04e5
-+vendor.name           Promise Technology
-
- vendor.id             usb 0x04e6
-+vendor.name           Shuttle Technology
-
- vendor.id             usb 0x04e7
-+vendor.name           ELO TouchSystems
-
- vendor.id             usb 0x04e8
-+vendor.name           Samsung Electronics Co., Ltd.
-
- vendor.id             usb 0x04e9
-+vendor.name           PC-Tel Inc.
-
- vendor.id             usb 0x04ea
-+vendor.name           Brooktree Corporation
-
- vendor.id             usb 0x04eb
-+vendor.name           Northstar Systems, Inc
-
- vendor.id             usb 0x04ec
-+vendor.name           Tokyo Electron Limited
-
- vendor.id             usb 0x04ed
-+vendor.name           Annabooks
-
- vendor.id             usb 0x04ef
-+vendor.name           Pacific Electronic International, Inc.
-
- vendor.id             usb 0x04f0
-+vendor.name           Daewoo Electronics Co., Ltd.
-
- vendor.id             usb 0x04f1
-+vendor.name           Victor Company of Japan
-
- vendor.id             usb 0x04f2
-+vendor.name           Chicony Electronics Co., Ltd.
-
- vendor.id             usb 0x04f3
-+vendor.name           Elan Microelectronics Corportation
-
- vendor.id             usb 0x04f4
-+vendor.name           Harting Elektronik Inc.
-
- vendor.id             usb 0x04f5
-+vendor.name           Fujitsu-ICL Systems, Inc.
-
- vendor.id             usb 0x04f6
-+vendor.name           Norand Corporation
-
- vendor.id             usb 0x04f7
-+vendor.name           Newnex Technology Corp.
-
- vendor.id             usb 0x04f8
-+vendor.name           FuturePlus Systems
-
- vendor.id             usb 0x04f9
-+vendor.name           Brother International Corp.
-
- vendor.id             usb 0x04fa
-+vendor.name           Dallas Semiconductor
-
- vendor.id             usb 0x04fb
-+vendor.name           Biostar Microtech Int'l Corp.
-
- vendor.id             usb 0x04fc
-+vendor.name           Sunplus Technology Co.
-
- vendor.id             usb 0x04fd
-+vendor.name           Soliton Systems, K.K.
-
- vendor.id             usb 0x04fe
-+vendor.name           PFU Limited
-
- vendor.id             usb 0x04ff
-+vendor.name           E-CMOS Corp.
-
- vendor.id             usb 0x0500
-+vendor.name           Siam United Hi-Tech
-
- vendor.id             usb 0x0501
-+vendor.name           DDK Electronics, Inc.
-
- vendor.id             usb 0x0502
-+vendor.name           Acer, Inc.
-
- vendor.id             usb 0x0503
-+vendor.name           Hitachi America Ltd.
-
- vendor.id             usb 0x0504
-+vendor.name           Hayes Microcomputer Products
-
- vendor.id             usb 0x0506
-+vendor.name           3Com Corporation
-
- vendor.id             usb 0x0507
-+vendor.name           Hosiden Corporation
-
- vendor.id             usb 0x0508
-+vendor.name           Clarion Co., Ltd.
-
- vendor.id             usb 0x0509
-+vendor.name           Aztech Systems Ltd
-
- vendor.id             usb 0x050a
-+vendor.name           Cinch Connectors
-
- vendor.id             usb 0x050b
-+vendor.name           Cable System International
-
- vendor.id             usb 0x050c
-+vendor.name           InnoMedia, Inc.
-
- vendor.id             usb 0x050d
-+vendor.name           Belkin Components
-
- vendor.id             usb 0x050e
-+vendor.name           Neon Technology, Inc.
-
- vendor.id             usb 0x050f
-+vendor.name           Kawatsu Semiconductor, Inc.
-
- vendor.id             usb 0x0510
-+vendor.name           Sejin Electron Inc.
-
- vendor.id             usb 0x0511
-+vendor.name           N'ABLE Technologies, Inc (Data Book)
-
- vendor.id             usb 0x0512
-+vendor.name           Hualon Microelectronics Corp.
-
- vendor.id             usb 0x0513
-+vendor.name           digital-X, Inc.
-
- vendor.id             usb 0x0514
-+vendor.name           Berg Electronics, Inc.
-
- vendor.id             usb 0x0515
-+vendor.name           ACTC
-
- vendor.id             usb 0x0516
-+vendor.name           Longwell Electronics
-
- vendor.id             usb 0x0517
-+vendor.name           Butterfly Communications
-
- vendor.id             usb 0x0518
-+vendor.name           EzKEY Corp.
-
- vendor.id             usb 0x0519
-+vendor.name           Star Micronics America, Inc.
-
- vendor.id             usb 0x051a
-+vendor.name           WYSE Technology
-
- vendor.id             usb 0x051b
-+vendor.name           Silicon Graphics
-
- vendor.id             usb 0x051c
-+vendor.name           Holco Enterprise Co., Ltd./Shuttle Computer
-
- vendor.id             usb 0x051d
-+vendor.name           American Power Conversion
-
- vendor.id             usb 0x051e
-+vendor.name           Scientific Atlanta
-
- vendor.id             usb 0x051f
-+vendor.name           Elite Electronics, Inc.
-
- vendor.id             usb 0x0520
-+vendor.name           Taiwan Semiconductor Manufacturing Co.
-
- vendor.id             usb 0x0521
-+vendor.name           Airborn Connectors
-
- vendor.id             usb 0x0522
-+vendor.name           Advanced Connectek USA Inc.
-
- vendor.id             usb 0x0523
-+vendor.name           ATEN GMBH
-
- vendor.id             usb 0x0524
-+vendor.name           Micro Devices Technology
-
- vendor.id             usb 0x0525
-+vendor.name           Net Chip Technology, Inc.
-
- vendor.id             usb 0x0526
-+vendor.name           Temic Matra.mhs
-
- vendor.id             usb 0x0527
-+vendor.name           ALTRA
-
- vendor.id             usb 0x0528
-+vendor.name           ATI Technologies, Inc.
-
- vendor.id             usb 0x0529
-+vendor.name           Fast Security AG
-
- vendor.id             usb 0x052a
-+vendor.name           Crescent Heart Software
-
- vendor.id             usb 0x052b
-+vendor.name           Tekom Development
-
- vendor.id             usb 0x052c
-+vendor.name           Canon Information System
-
- vendor.id             usb 0x052d
-+vendor.name           Avid Electronics Corp.
-
- vendor.id             usb 0x052e
-+vendor.name           Standard Microsystems Corp.
-
- vendor.id             usb 0x052f
-+vendor.name           Unicore Software, Inc.
-
- vendor.id             usb 0x0530
-+vendor.name           American Microsystems Inc.
-
- vendor.id             usb 0x0531
-+vendor.name           Wacom Technology Corp.
-
- vendor.id             usb 0x0532
-+vendor.name           Systech Corporation
-
- vendor.id             usb 0x0533
-+vendor.name           Alcatel Mobile Phones
-
- vendor.id             usb 0x0534
-+vendor.name           Motorola
-
- vendor.id             usb 0x0535
-+vendor.name           LIH TZU Electric Co., Ltd.
-
- vendor.id             usb 0x0536
-+vendor.name           Welch Allyn Inc.
-
- vendor.id             usb 0x0537
-+vendor.name           Inventec Corporation
-
- vendor.id             usb 0x0538
-+vendor.name           Santa Cruz Operation
-
- vendor.id             usb 0x0539
-+vendor.name           Shyh Shiun Terminals Co. LTD
-
- vendor.id             usb 0x053a
-+vendor.name           Preh Werke Gmbh & Co. KG
-
- vendor.id             usb 0x053b
-+vendor.name           Global Village Communication
-
- vendor.id             usb 0x053c
-+vendor.name           Institut of Microelectronic & Mechatronic Systems
-
- vendor.id             usb 0x053d
-+vendor.name           Silicon Architect
-
- vendor.id             usb 0x053e
-+vendor.name           Electronic Accessory Specialists Int.
-
- vendor.id             usb 0x053f
-+vendor.name           Synopsys
-
- vendor.id             usb 0x0540
-+vendor.name           Universal Access
-
- vendor.id             usb 0x0541
-+vendor.name           Sirf Technology, Inc
-
- vendor.id             usb 0x0543
-+vendor.name           View Sonic Corporation
-
- vendor.id             usb 0x0544
-+vendor.name           Cristie Electronics Ltd.
-
- vendor.id             usb 0x0545
-+vendor.name           Xirlink, Inc.
-
- vendor.id             usb 0x0546
-+vendor.name           Polaroid Corporation
-
- vendor.id             usb 0x0547
-+vendor.name           Anchor Chips Inc.
-
- vendor.id             usb 0x0548
-+vendor.name           Tyan Computer Corp.
-
- vendor.id             usb 0x0549
-+vendor.name           Pixera Corporation
-
- vendor.id             usb 0x054a
-+vendor.name           Fujitsu Microelectronics, Inc.,
-
- vendor.id             usb 0x054b
-+vendor.name           New Media Corporation
-
- vendor.id             usb 0x054c
-+vendor.name           Sony Corporation
-
- vendor.id             usb 0x054d
-+vendor.name           Try Corporation
-
- vendor.id             usb 0x054e
-+vendor.name           Proside Corporation
-
- vendor.id             usb 0x054f
-+vendor.name           WYSE Technology Taiwan
-
- vendor.id             usb 0x0550
-+vendor.name           Fuji Xerox Co., Ltd.
-
- vendor.id             usb 0x0551
-+vendor.name           CompuTrend Systems, Inc.
-
- vendor.id             usb 0x0552
-+vendor.name           Philips Monitors
-
- vendor.id             usb 0x0553
-+vendor.name           VLSI Vision Ltd.
-
- vendor.id             usb 0x0554
-+vendor.name           Dictaphone Corp.
-
- vendor.id             usb 0x0555
-+vendor.name           ANAM S&T Co., Ltd.
-
- vendor.id             usb 0x0556
-+vendor.name           Asahi Kasei Microsystems Co., Ltd
-
- vendor.id             usb 0x0557
-+vendor.name           ATEN International Co. ltd.
-
- vendor.id             usb 0x0558
-+vendor.name           Truevision, Inc.
-
- vendor.id             usb 0x0559
-+vendor.name           Cadence Design Systems
-
- vendor.id             usb 0x055a
-+vendor.name           Kenwood USA
-
- vendor.id             usb 0x055b
-+vendor.name           KnowledgeTek, Inc.
-
- vendor.id             usb 0x055c
-+vendor.name           Proton Electronic Ind.
-
- vendor.id             usb 0x055d
-+vendor.name           Samsung Electro-Mechanics Co.
-
- vendor.id             usb 0x055e
-+vendor.name           CTX Opto-Electronics Corp.
-
- vendor.id             usb 0x055f
-+vendor.name           Mustek Systems Inc.
-
- vendor.id             usb 0x0560
-+vendor.name           Interface Co., Ltd.
-
- vendor.id             usb 0x0561
-+vendor.name           Oasis Design, Inc.
-
- vendor.id             usb 0x0562
-+vendor.name           Telex Communications Inc.
-
- vendor.id             usb 0x0563
-+vendor.name           Immersion Corporation
-
- vendor.id             usb 0x0564
-+vendor.name           Chinon Industries, Inc.
-
- vendor.id             usb 0x0565
-+vendor.name           Peracom Networks, Inc.
-
- vendor.id             usb 0x0567
-+vendor.name           Xyratex Int'l Ltd.
-
- vendor.id             usb 0x0568
-+vendor.name           Quartz Ingenierie
-
- vendor.id             usb 0x0569
-+vendor.name           SegaSoft
-
- vendor.id             usb 0x056a
-+vendor.name           WACOM Co., Ltd.
-
- vendor.id             usb 0x056b
-+vendor.name           Decicon Incorporated
-
- vendor.id             usb 0x056c
-+vendor.name           e-TEK Labs
-
- vendor.id             usb 0x056e
-+vendor.name           Elecom Co., Ltd.
-
- vendor.id             usb 0x056f
-+vendor.name           Korea Data Systems Co., Ltd.
-
- vendor.id             usb 0x0570
-+vendor.name           Epson America
-
- vendor.id             usb 0x0571
-+vendor.name           Interex, Inc.
-
- vendor.id             usb 0x0572
-+vendor.name           EEH Datalink Gmbh
-
- vendor.id             usb 0x0573
-+vendor.name           Nogatech Ltd.
-
- vendor.id             usb 0x0574
-+vendor.name           City University of Hong Kong
-
- vendor.id             usb 0x0575
-+vendor.name           Swets & Zeitlinger BV
-
- vendor.id             usb 0x0576
-+vendor.name           BAFO/Quality Computer Accessories
-
- vendor.id             usb 0x0577
-+vendor.name           ELSA
-
- vendor.id             usb 0x0578
-+vendor.name           Intrinsix Corp.
-
- vendor.id             usb 0x0579
-+vendor.name           GVC Corporation
-
- vendor.id             usb 0x057a
-+vendor.name           Samsung Electronics America
-
- vendor.id             usb 0x057b
-+vendor.name           Y-E Data, Inc.
-
- vendor.id             usb 0x057c
-+vendor.name           AVM Gmbh
-
- vendor.id             usb 0x057d
-+vendor.name           Shark Multimedia Inc.
-
- vendor.id             usb 0x057e
-+vendor.name           Nintendo Co.,
-
- vendor.id             usb 0x057f
-+vendor.name           Quickshot Technology Inc.
-
- vendor.id             usb 0x0580
-+vendor.name           Denron Inc.
-
- vendor.id             usb 0x0581
-+vendor.name           Racal Data Group
-
- vendor.id             usb 0x0582
-+vendor.name           Roland Corporation
-
- vendor.id             usb 0x0583
-+vendor.name           Padix Co. Ltd.
-
- vendor.id             usb 0x0584
-+vendor.name           RATOC System Inc.
-
- vendor.id             usb 0x0585
-+vendor.name           FlashPoint Technology, Inc.
-
- vendor.id             usb 0x0586
-+vendor.name           ZyXEL Communications Corp.
-
- vendor.id             usb 0x0587
-+vendor.name           America Kotobuki Electronics Ind.
-
- vendor.id             usb 0x0588
-+vendor.name           Sapien Design
-
- vendor.id             usb 0x0589
-+vendor.name           Victron
-
- vendor.id             usb 0x058a
-+vendor.name           Nohau Corporation
-
- vendor.id             usb 0x058b
-+vendor.name           Siemens Semiconductor
-
- vendor.id             usb 0x058c
-+vendor.name           In Focus Systems
-
- vendor.id             usb 0x058d
-+vendor.name           Micrel Semiconductor
-
- vendor.id             usb 0x058e
-+vendor.name           Tripath Technology Inc.
-
- vendor.id             usb 0x058f
-+vendor.name           Alcor Micro, Inc.
-
- vendor.id             usb 0x0590
-+vendor.name           OMRON Corporation
-
- vendor.id             usb 0x0591
-+vendor.name           Questra Consulting
-
- vendor.id             usb 0x0592
-+vendor.name           Exide Electronics
-
- vendor.id             usb 0x0593
-+vendor.name           Incite
-
- vendor.id             usb 0x0594
-+vendor.name           Princeton Graphic Systems
-
- vendor.id             usb 0x0595
-+vendor.name           Zoran Microelectronics Ltd.
-
- vendor.id             usb 0x0596
-+vendor.name           Microtouch Systems
-
- vendor.id             usb 0x0597
-+vendor.name           Trisignal Communications
-
- vendor.id             usb 0x0598
-+vendor.name           Nigata Canotec Co., Inc.
-
- vendor.id             usb 0x0599
-+vendor.name           Brilliance Semiconductor Inc.
-
- vendor.id             usb 0x059a
-+vendor.name           Spectrum Signal Processing Inc.
-
- vendor.id             usb 0x059b
-+vendor.name           Iomega Corporation
-
- vendor.id             usb 0x059b
-&device.id             usb 0x0030
-+device.name           USB Zip 250
-
- vendor.id             usb 0x059c
-+vendor.name           A-Trend Technology Co., Ltd.
-
- vendor.id             usb 0x059d
-+vendor.name           Advanced Input Devices
-
- vendor.id             usb 0x059e
-+vendor.name           Intelligent Instrumentation
-
- vendor.id             usb 0x059f
-+vendor.name           Electronique D2
-
- vendor.id             usb 0x05a0
-+vendor.name           Vetronix Corporation
-
- vendor.id             usb 0x05a1
-+vendor.name           USC Corporation
-
- vendor.id             usb 0x05a2
-+vendor.name           Fuji Film Microdevices Co. Ltd.
-
- vendor.id             usb 0x05a3
-+vendor.name           VAutomation Inc.
-
- vendor.id             usb 0x05a4
-+vendor.name           Ortek Technology, Inc.
-
- vendor.id             usb 0x05a5
-+vendor.name           Sampo Technology Corp.
-
- vendor.id             usb 0x05a6
-+vendor.name           Cisco Systems
-
- vendor.id             usb 0x05a7
-+vendor.name           Bose Corporation
-
- vendor.id             usb 0x05a8
-+vendor.name           Spacetec IMC Corporation
-
- vendor.id             usb 0x05a9
-+vendor.name           OmniVision Technologies, Inc.
-
- vendor.id             usb 0x05aa
-+vendor.name           Utilux South China Ltd.
-
- vendor.id             usb 0x05ab
-+vendor.name           In-System Design
-
- vendor.id             usb 0x05ac
-+vendor.name           Apple Computer, Inc.
-
- vendor.id             usb 0x05ac
-&device.id             usb 0x0202
-+device.name           Apple USB Keyboard
-
- vendor.id             usb 0x05ac
-&device.id             usb 0x0301
-+device.name           Apple USB Mouse
-
- vendor.id             usb 0x05ac
-&device.id             usb 0x1001
-+device.name           Apple USB Hub
-
- vendor.id             usb 0x05ad
-+vendor.name           Y.C.Cable U.S.A., Inc
-
- vendor.id             usb 0x05ae
-+vendor.name           Synopsys, Inc.
-
- vendor.id             usb 0x05af
-+vendor.name           Jing-Mold Enterprise Co., Ltd.
-
- vendor.id             usb 0x05b0
-+vendor.name           Fountain Technologies, Inc
-
- vendor.id             usb 0x05b1
-+vendor.name           First International Computer, Inc
-
- vendor.id             usb 0x05b4
-+vendor.name           LG Semicon Co., Ltd.
-
- vendor.id             usb 0x05b5
-+vendor.name           Dialogic Corp
-
- vendor.id             usb 0x05b6
-+vendor.name           Proxima Corporation
-
- vendor.id             usb 0x05b7
-+vendor.name           Medianix Semiconductor, Inc.
-
- vendor.id             usb 0x05b9
-+vendor.name           Philips Research Laboratories
-
- vendor.id             usb 0x05ba
-+vendor.name           Digital Persona
-
- vendor.id             usb 0x05be
-+vendor.name           Raychem Corporation
-
- vendor.id             usb 0x05bf
-+vendor.name           S & S Research
-
- vendor.id             usb 0x05c1
-+vendor.name           Kawasaki Steel
-
- vendor.id             usb 0x05c2
-+vendor.name           Mediaphonics S.A.
-
- vendor.id             usb 0x05c5
-+vendor.name           Central Data Corporation
-
- vendor.id             usb 0x05c6
-+vendor.name           Qualcomm, Inc
-
- vendor.id             usb 0x05c7
-+vendor.name           Qtronix Corp
-
- vendor.id             usb 0x05c8
-+vendor.name           Cheng Uei Precision Industry Co., Ltd
-
- vendor.id             usb 0x05c9
-+vendor.name           Semtech Corporation
-
- vendor.id             usb 0x05ca
-+vendor.name           Ricoh Company Ltd.
-
- vendor.id             usb 0x05cb
-+vendor.name           Powerchip Semiconductor Co.
-
- vendor.id             usb 0x05cc
-+vendor.name           ELSA Gmbh
-
- vendor.id             usb 0x05cd
-+vendor.name           Silicom LTD.
-
- vendor.id             usb 0x05ce
-+vendor.name           SICAN Gmbh
-
- vendor.id             usb 0x05cf
-+vendor.name           Sung Forn Co. LTD.
-
- vendor.id             usb 0x05d0
-+vendor.name           Lunar Corporation
-
- vendor.id             usb 0x05e3
-&device.id             usb 0x000b
-+device.name           Razer Boomslang USB Mouse
-
- vendor.id             usb 0x0698
-+vendor.name           Chuntex (CTX)
-
- vendor.id             usb 0x0c4b
-+vendor.name           Reiner SCT
-
- vendor.id             usb 0x0c4b
-&device.id             usb 0x0100
-+baseclass.id          0x10e
-+subclass.id           0x00
-+device.name           Cyberjack USB
-
- vendor.id             usb 0x0ef7
-+vendor.name           Tulip Computers International
-
- vendor.id             usb 0x1606
-+vendor.name           UMAX Data Systems, Inc.
-
- vendor.id             usb 0x1606
-&device.id             usb 0x0010
-+device.name           Astra 1220U
-
- vendor.id             usb 0x1606
-&device.id             usb 0x0030
-+device.name           Astra 2000U
-
- vendor.id             usb 0x1606
-&device.id             usb 0x0130
-+device.name           Astra 2100U
-
- vendor.id             usb 0x1606
-&device.id             usb 0x0230
-+device.name           Astra 2200 (USB)
-
- vendor.id             usb 0x1606
-&device.id             usb 0x1030
-+device.name           Astra 4000U
-
- vendor.id             usb 0x8086
-+vendor.name           Intel Corporation
-
- vendor.id             usb 0xc251
-+vendor.name           Keil Software
-
diff --git a/src/hwinfo/src/ids/src/x11.amd64 b/src/hwinfo/src/ids/src/x11.amd64
deleted file mode 100644 (file)
index 30bb3e8..0000000
+++ /dev/null
@@ -1,3355 +0,0 @@
- vendor.id             pci 0x1002
-+vendor.name           ATI Technologies Inc
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3150
-+device.name           Radeon Mobility X600 (M24) 3150 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3154
-+device.name           FireGL M24 GL 3154 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3e50
-+device.name           Radeon X600 (RV380) 3E50 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3e50
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x0450
-+subdevice.name                Radeon X600 Pro
-+driver.xfree          4|radeon
-+driver.xfree          4|fglrx|3d||dri
-+driver.xfree.config   Option "UseInternalAGPGART" "no"
-+driver.xfree.config   Option "mtrr" "off"
-+driver.xfree.config   Option "VideoOverlay" "on"
-+driver.xfree.config   Option "OpenGLOverlay" "off"
-+requires              fglrx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3e54
-+device.name           FireGL V3200 (RV380) 3E54 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4136
-+device.name           RS100 4136
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4137
-+device.name           RS100 4137
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4144
-+device.name           R300 AD
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4145
-+device.name           E300 AE
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4146
-+device.name           R300 AF
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4147
-+device.name           R300 AG
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4148
-+device.name           R350 AH
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4149
-+device.name           R350 AI
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x414a
-+device.name           R350 AJ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x414b
-+device.name           R350 AK
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-+device.name           RV350 AP
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4151
-+device.name           RV350 AQ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4152
-+device.name           RV350 AR
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4153
-+device.name           RV350 AS
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4154
-+device.name           RV350 AT
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4155
-+device.name           RV350 AU
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x4154
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4156
-+device.name           RV350 AV
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4157
-+device.name           RV350 AW
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x4154
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4237
-+device.name           RS250 4237
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4242
-+device.name           R200 BB
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4243
-+device.name           R200 BC
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4336
-+device.name           RS100 4336
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4337
-+device.name           RS200 4337
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4354
-+device.name           215CT [Mach64 CT]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4358
-+device.name           210888CX [Mach64 CX]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4437
-+device.name           RS250 4437
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4554
-+device.name           210888ET [Mach64 ET]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-+device.name           3D Rage Pro AGP 1X/2X
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4744
-+device.name           3D Rage Pro AGP 1X
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4749
-+device.name           Mach64 GI
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474c
-+device.name           Rage XC
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474d
-+device.name           Rage XL AGP
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474e
-+device.name           Rage XC AGP
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474f
-+device.name           Rage XL
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4750
-+device.name           3D Rage Pro 215GP
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4751
-+device.name           3D Rage Pro 215GQ
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4752
-+device.name           Mach64 GR
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4753
-+device.name           Mach64 GS
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4754
-+device.name           3D Rage I/II 215GT [Mach64 GT]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4755
-+device.name           3D Rage II+ 215GTB [Mach64 GTB]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4756
-+device.name           3D Rage IIC 215IIC [Mach64 GT IIC]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4757
-+device.name           3D Rage IIC AGP
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4758
-+device.name           210888GX [Mach64 GX]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4759
-+device.name           3D Rage IIC
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x475a
-+device.name           Mach64 GZ
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-+device.name           RV250 If
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0002
-+subdevice.name                Radeon 9000
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4967
-+device.name           RV250 Ig
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a48
-+device.name           R420 JH
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a49
-+device.name           R420 JI
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4a
-+device.name           R420 JJ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4b
-+device.name           R420 JK
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4c
-+device.name           R420 JL
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4d
-+device.name           R420 JM
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4e
-+device.name           R420 JN
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a50
-+device.name           R420 JP
-+driver.xfree          4|radeon
-+driver.xfree          4|fglrx|3d||dri
-+driver.xfree.config   Option "UseInternalAGPGART" "no"
-+driver.xfree.config   Option "mtrr" "off"
-+driver.xfree.config   Option "VideoOverlay" "on"
-+driver.xfree.config   Option "OpenGLOverlay" "off"
-+requires              fglrx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-+device.name           Mach64 LB
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0044
-+subdevice.name                3D Rage LT Pro AGP-133
-+driver.xfree          4|ati
-+driver.xfree.config   Option "dpms" "off"
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c44
-+device.name           3D Rage LT Pro AGP-66
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c45
-+device.name           Rage 128 Mobility LE
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c46
-+device.name           Mobility M3 AGP 2x
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c47
-+device.name           3D Rage LT-G 215LG
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c49
-+device.name           Mach64 LI
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-+device.name           3D Rage P/M Mobility AGP 2x
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00bb
-+subdevice.name                Mach64LM/Dell
-+driver.xfree          4|fbdev
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4e
-+device.name           3D Rage L Mobility AGP 2x
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c50
-+device.name           3D Rage LT Pro
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c51
-+device.name           Mach64 LQ
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c52
-+device.name           3D Rage P/M Mobility
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c53
-+device.name           3D Rage L Mobility
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c57
-+device.name           Radeon LW
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c58
-+device.name           Radeon LX
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c59
-+device.name           Radeon LY
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c5a
-+device.name           Radeon LZ
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c64
-+device.name           RV250 Ld
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c66
-+device.name           RV250 Lf
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c67
-+device.name           RV250 Lg
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4d46
-+device.name           Rage 128 Mobility MF
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4d4c
-+device.name           Rage 128 Mobility ML
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e44
-+device.name           R300 ND
-+driver.xfree          4|radeon
-+driver.xfree          4|fglrx|3d||dri
-+driver.xfree.config   Option "UseInternalAGPGART" "no"
-+driver.xfree.config   Option "mtrr" "off"
-+driver.xfree.config   Option "VideoOverlay" "on"
-+driver.xfree.config   Option "OpenGLOverlay" "off"
-+requires              fglrx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e44
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0002
-+subdevice.name                Radeon 9700
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e45
-+device.name           R300 NE
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e46
-+device.name           R300 NF
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e47
-+device.name           R300 NG
-+driver.xfree          4|radeon
-+driver.xfree          4|fglrx|3d||dri
-+driver.xfree.config   Option "UseInternalAGPGART" "no"
-+driver.xfree.config   Option "mtrr" "off"
-+driver.xfree.config   Option "VideoOverlay" "on"
-+driver.xfree.config   Option "OpenGLOverlay" "off"
-+requires              fglrx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e47
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0172
-+subdevice.name                FireGL X1
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e48
-+device.name           R350 NH
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e49
-+device.name           R350 NI
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e4a
-+device.name           R360 NJ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e4b
-+device.name           R350 NK
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e50
-+device.name           RV350 NP
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e51
-+device.name           RV350 NQ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e52
-+device.name           RV350 NR
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e53
-+device.name           RV350 NS
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e54
-+device.name           RV350 NT
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e56
-+device.name           RV350 NV
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5041
-+device.name           Rage 128 PA
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5042
-+device.name           Rage 128 PB
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5043
-+device.name           Rage 128 PC
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5044
-+device.name           Rage 128 PD
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5045
-+device.name           Rage 128 PE
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-+device.name           Rage 128 PF
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5047
-+device.name           Rage 128 PG
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5048
-+device.name           Rage 128 PH
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5049
-+device.name           Rage 128 PI
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504a
-+device.name           Rage 128 PJ
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504b
-+device.name           Rage 128 PK
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504c
-+device.name           Rage 128 PL
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504d
-+device.name           Rage 128 PM
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504e
-+device.name           Rage 128 PN
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504f
-+device.name           Rage 128 PO
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5050
-+device.name           Rage 128 PP
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5051
-+device.name           Rage 128 PQ
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5052
-+device.name           Rage 128 PR
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5053
-+device.name           Rage 128 PS
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5054
-+device.name           Rage 128 PT
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5055
-+device.name           Rage 128 PU
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5056
-+device.name           Rage 128 PV
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5057
-+device.name           Rage 128 PW
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5058
-+device.name           Rage 128 PX
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-+device.name           Radeon QD
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5145
-+device.name           Radeon QE
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5146
-+device.name           Radeon QF
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5147
-+device.name           Radeon QG
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-+device.name           fgl8x00
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0152
-+subdevice.name                FireGL 8800
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0172
-+subdevice.name                FireGL 8700
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514c
-+device.name           R200 QL
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514d
-+device.name           Radeon 9100 QM
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-+device.name           RV200 QW
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x013a
-+subdevice.name                Radeon 7500
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7146
-+subdevice.name                Radeon 7500-7146
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7161
-+subdevice.name                Radeon 7500 LE
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5158
-+device.name           RV200 QX
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-+device.name           Radeon VE
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x515a
-+device.name           Radeon QZ
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x515e
-+device.name           ES1000 (1002:515E)
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x5969
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5245
-+device.name           Rage 128 RE
-+driver.xfree          4|r128|||||8,15,16,24
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5246
-+device.name           Rage 128 RF
-+driver.xfree          4|r128|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5247
-+device.name           Rage 128 RG
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524b
-+device.name           Rage 128 RK
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524c
-+device.name           Rage 128 RL
-+driver.xfree          4|r128|||||8,15,16,24
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5345
-+device.name           Rage 128 SE
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5346
-+device.name           Rage 128 SF
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5347
-+device.name           Rage 128 SG
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5348
-+device.name           Rage 128 4x
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534b
-+device.name           Rage 128 SK
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534c
-+device.name           Rage 128 SL
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534d
-+device.name           Rage 128 SM
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534e
-+device.name           Rage 128 SN
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5446
-+device.name           Rage 128 Ultra TF
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x544c
-+device.name           Rage128 TL
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5452
-+device.name           Rage 128 Pro TR (AGP)
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5453
-+device.name           Rage 128 TS
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5454
-+device.name           Rage 128 TT
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5455
-+device.name           Rage 128 TU
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5460
-+device.name           Radeon Mobility M300 (M22) 5460 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5464
-+device.name           FireGL M22 GL 5464 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5548
-+device.name           Radeon X800 (R423) UH (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5549
-+device.name           Radeon X800PRO (R423) UI (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x554a
-+device.name           Radeon X800LE (R423) UJ (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x554b
-+device.name           Radeon X800SE (R423) UK (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x554d
-+device.name           Radeon X800 XL
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x554b
-
- vendor.id             pci 0x1002
-&device.id             pci 0x554d
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x0600
-+subdevice.name                Radeon X800 XL
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5551
-+device.name           FireGL V7200 (R423) UQ (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5552
-+device.name           FireGL V5100 (R423) UR (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5554
-+device.name           FireGL V7100 (R423) UT (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5654
-+device.name           Mach64 VT
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5655
-+device.name           264VT3 [Mach64 VT3]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5656
-+device.name           264VT4 [Mach64 VT4]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5834
-+device.name           RS300 5834
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5835
-+device.name           RS300 5835
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5960
-+device.name           RV280 5960
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5961
-+device.name           RV280 5961
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5962
-+device.name           RV280 5962
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-+device.name           RV280 5964
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-&subvendor.id          pci 0x17af
-&subdevice.id          pci 0x2012
-+subdevice.name                Radeon 9200 SE (DH)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5969
-+device.name           ES1000 (PCI)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b60
-+device.name           Radeon X300 (RV370) 5B60 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b60
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x0440
-+subdevice.name                Radeon X300 SE
-+driver.xfree          4|radeon
-+driver.xfree          4|fglrx|3d||dri
-+driver.xfree.config   Option "UseInternalAGPGART" "no"
-+driver.xfree.config   Option "mtrr" "off"
-+driver.xfree.config   Option "VideoOverlay" "on"
-+driver.xfree.config   Option "OpenGLOverlay" "off"
-+requires              fglrx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b62
-+device.name           Radeon X600 (RV370) 5B62 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b64
-+device.name           FireGL V3100 (RV370) 5B64 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b65
-+device.name           FireGL D1100 (RV370) 5B65 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5c61
-+device.name           RV280 5c61
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5c63
-+device.name           RV280 5c63
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5d57
-+device.name           Radeon X800XT (R423) 5D57 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5e4a
-+device.name           Radeon X700 XT
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x5D57
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5e4b
-+device.name           Radeon X700 Pro
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x5549
-+driver.xfree          4|fglrx|3d||dri
-+requires              fglrx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5e4c
-+device.name           Radeon X700 SE
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x554B
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5e4d
-+device.name           Radeon X700 (5E4D)
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x5548
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5e4f
-+device.name           Radeon X700 (5E4F)
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x5548
-
- vendor.id             pci 0x1002
-&device.id             pci 0x7834
-+device.name           Radeon 9100 PRO IGP 7834
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x7835
-+device.name           Radeon Mobility 9200 IGP 7835
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x100b
-+vendor.name           National Semiconductor Corporation
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0030
-+device.name           REDCLOUD
-+driver.xfree          4|nsc
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0104
-+device.name           SC1400
-+driver.xfree          4|nsc
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0504
-+device.name           SC1200
-+driver.xfree          4|nsc
-
- vendor.id             pci 0x100c
-+vendor.name           Tseng Labs Inc
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3202
-+device.name           ET4000/W32p rev A
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3205
-+device.name           ET4000/W32p rev B
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3206
-+device.name           ET4000/W32p rev C
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3207
-+device.name           ET4000/W32p rev D
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3208
-+device.name           ET6000
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x1013
-+vendor.name           Cirrus Logic
-
- vendor.id             pci 0x1013
-&device.id             pci 0x0038
-+device.name           GD 7548
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00a0
-+device.name           GD 5430/40 [Alpine]
-+driver.xfree          4|cirrus||||Noaccel
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00a4
-+device.name           GD 5434-4 [Alpine]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00a8
-+device.name           GD 5434-8 [Alpine]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00ac
-+device.name           GD 5436 [Alpine]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00b8
-+device.name           GD 5446
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00bc
-+device.name           GD 5480
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d0
-+device.name           GD 5462
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d4
-+device.name           GD 5464 [Laguna]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d5
-+device.name           GD5464BD
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d6
-+device.name           GD 5465 [Laguna]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1023
-+vendor.name           Trident Microsystems Inc.
-
- vendor.id             pci 0x1023
-&device.id             pci 0x2100
-+device.name           CyberBlade/xp4
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8400
-+device.name           CyberBlade/i7
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8420
-+device.name           CyberBlade/i7d
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8500
-+device.name           CyberBlade/i1
-+driver.xfree          4|trident||||CyberStretch,sw_cursor
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8520
-+device.name           8520
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8600
-+device.name           8600
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8620
-+device.name           CyberBlade/DSTN/Ai1
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8820
-+device.name           8820
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9320
-+device.name           9320
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9388
-+device.name           Cyber 9388
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9397
-+device.name           Cyber 9397
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x939a
-+device.name           Cyber 9397DVD
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9420
-+device.name           TGUI 9420
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9440
-+device.name           TGUI 9440
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9520
-+device.name           Cyber 9520
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9525
-+device.name           Cyber 9525
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9540
-+device.name           Cyber 9540
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9660
-+device.name           TGUI 9660/968x/968x
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9750
-+device.name           3DIm`age 975
-+driver.xfree          4|trident|||||8,15,16,24
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9850
-+device.name           3DImage 9850
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9880
-+device.name           9880
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9910
-+device.name           9910
-+driver.xfree          4|trident
-
- vendor.id             pci 0x102b
-+vendor.name           Matrox Graphics, Inc.
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0519
-+device.name           MGA 2064W [Millennium]
-+driver.xfree          4|mga||||NoHal|8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051a
-+device.name           MGA 1064SG [Mystique]
-+driver.xfree          4|mga||||NoHal|8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051b
-+device.name           MGA 2164W [Millennium II]
-+driver.xfree          4|mga||||NoHal|8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051f
-+device.name           MGA 2164W [Millennium II] AGP
-+driver.xfree          4|mga||||NoHal
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0520
-+device.name           MGA G200
-+driver.xfree          4|mga|||||8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-+device.name           MGA G200 AGP
-+driver.xfree          4|mga|||||8,16,24
-+driver.xfree.config   VideoRam 8192
-+driver.xfree          4|mga|3d||dri||16
-+driver.xfree.config   VideoRam 8192
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-+device.name           MGA G400 AGP
-+driver.xfree          4|mga
-+driver.xfree          4|mga|3d||dri
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0540
-+subdevice.name                G450-0540
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0541
-+subdevice.name                G450
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0641
-+subdevice.name                Matrox G400 DH-0641
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x07c0
-+subdevice.name                G450 LE
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0d41
-+subdevice.name                G450 DH G450
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0d43
-+subdevice.name                G450 PCI
-+driver.xfree          4|mga
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x2179
-+subdevice.name                G400 DH
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x23c3
-+subdevice.name                G450-23c3
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1000
-+device.name           MGA G100 [Productiva]
-+driver.xfree          4|mga||||NoHal
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1001
-+device.name           MGA G100 [Productiva] AGP
-+driver.xfree          4|mga||||NoHal|8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x2527
-+device.name           G550
-+driver.xfree          4|mga
-+driver.xfree          4|mga|3d||dri
-
- vendor.id             pci 0x102c
-+vendor.name           Chips and Technologies
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00c0
-+device.name           F69000 HiQVideo
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00d8
-+device.name           F65545
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00dc
-+device.name           F65548
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e0
-+device.name           65550
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e4
-+device.name           F65554
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e5
-+device.name           F65555 HiQVPro
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00f4
-+device.name           F68554 HiQVision
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x0c30
-+device.name           69030
-+driver.xfree          4|chips
-
- vendor.id             pci 0x1039
-+vendor.name           Silicon Integrated Systems Corp.
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0200
-+device.name           5597/5598 VGA
-+driver.xfree          4|sis|||||16,24
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0300
-+device.name           SIS300
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0310
-+device.name           SiS315H
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0325
-+device.name           SiS315PRO
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0330
-+device.name           SiS330
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0340
-+device.name           SiS340
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5300
-+device.name           SiS540 PCI Display Adapter
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5315
-+device.name           SiS550
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6300
-+device.name           SiS630 GUI Accelerator+3D
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6306
-+device.name           6306 3D-AGP
-+driver.xfree          4|sis|||||16
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6325
-+device.name           SiS650
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6326
-+device.name           86C326
-+driver.xfree          4|sis|||||8,16,24
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6330
-+device.name           SiS 660
-+driver.xfree          4|sis
-
- vendor.id             pci 0x104c
-+vendor.name           Texas Instruments
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d04
-+device.name           TVP4010 [Permedia]
-+driver.xfree          4|glint
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-+device.name           TVP4020 [Permedia 2]
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x105d
-+vendor.name           Number 9 Computer Company
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2309
-+device.name           Imagine 128
-+driver.xfree          4|i128
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-+device.name           Imagine 128-II
-+driver.xfree          4|i128
-
- vendor.id             pci 0x105d
-&device.id             pci 0x493d
-+device.name           Imagine 128 T2R [Ticket to Ride]
-+driver.xfree          4|i128
-
- vendor.id             pci 0x105d
-&device.id             pci 0x5348
-+device.name           Revolution 4
-+driver.xfree          4|i128
-
- vendor.id             pci 0x1078
-+vendor.name           Cyrix Corporation
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0000
-+device.name           5510
-+driver.xfree          4|cyrix
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0002
-+device.name           5520 [Cognac]
-+driver.xfree          4|cyrix
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0104
-+device.name           5530 Video [Kahlua]
-+driver.xfree          4|cyrix
-
- vendor.id             pci 0x10c8
-+vendor.name           Neomagic Corporation
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0001
-+device.name           NM2070 [MagicGraph NM2070]
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0002
-+device.name           NM2090 [MagicGraph 128V]
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0003
-+device.name           NM2093 [MagicGraph 128ZV]
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-+device.name           NM2160 [MagicGraph 128XD]
-+driver.xfree          4|neomagic|||||8,16
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0005
-+device.name           MagicMedia 256AV
-+driver.xfree          4|neomagic|||||8,16,24
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0006
-+device.name           NM2360 [MagicMedia 256ZX]
-+driver.xfree          4|neomagic|||||16
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0016
-+device.name           256XL(2380)
-+driver.xfree          4|neomagic|||||8,16,24
-+driver.xfree.config   VideoRam 4096
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0025
-+device.name           NM2230
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0083
-+device.name           MagicGraph 128ZV Plus
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10de
-+vendor.name           nVidia Corporation
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-+device.name           RIVA TNT
-+driver.xfree          4|nv|||||8,15,16,24
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-+device.name           RIVA TNT2/TNT2 Pro
-+driver.xfree          4|nv|||||8,15,16,24
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0029
-+device.name           RIVA TNT2 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002a
-+device.name           Unknown TNT2
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002c
-+device.name           Vanta/Vanta LT
-+driver.xfree          4|nv|||||8,16,24
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-+device.name           RIVA TNT2 Model 64/Model 64 Pro
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0040
-+device.name           GeForce 6800 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0041
-+device.name           GeForce 6800
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0042
-+device.name           GeForce 6800 LE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0043
-+device.name           0x0043
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0045
-+device.name           GeForce 6800 GT
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0049
-+device.name           0x0049
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x004e
-+device.name           Quadro FX 4000
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00a0
-+device.name           Aladdin TNT2
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c0
-+device.name           0x00c0
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c1
-+device.name           GeForce 6800 (0x00C1)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c2
-+device.name           0x00c2
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c8
-+device.name           GeForce Go 6800
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c9
-+device.name           GeForce Go 6800 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00cc
-+device.name           Quadro FX Go1400
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00cd
-+device.name           0x00CD
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00ce
-+device.name           Quadro FX 1400
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f0
-+device.name           GeForce 6800/GeForce 6800 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f1
-+device.name           GeForce 6600/GeForce 6600 GT
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f2
-+device.name           GeForce 6600 GT (0x00F2)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f3
-+device.name           GeForce 6200 (AGP)
-+driver.xfree          4|nv
-+driver.xfree.config   Option "noaccel"
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f8
-+device.name           Quadro FX 3400
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f9
-+device.name           GeForce 6800 Ultra (0x00F9)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fa
-+device.name           GeForce PCX 5750
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fb
-+device.name           GeForce PCX 5900
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fc
-+device.name           Quadro FX 330/GeForce PCX 5300
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fd
-+device.name           Quadro NVS 280 PCI-E/Quadro FX 330
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fe
-+device.name           Quadro FX 1300
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00ff
-+device.name           GeForce PCX 4300
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0100
-+device.name           GeForce 256
-+driver.xfree          4|nv|||||8,15,16,24
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0101
-+device.name           GeForce DDR
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0103
-+device.name           Quadro
-+driver.xfree          4|nv|||||8,15,16,24
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0110
-+device.name           GeForce2 MX/MX 400
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0111
-+device.name           GeForce2 MX 100/200
-+driver.xfree          4|nv||||sw_cursor
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0112
-+device.name           GeForce2 Go
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree          4|nvidia|3d||||16
-+driver.xfree.config   #Option "CrtcNumber" "0"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0113
-+device.name           Quadro2 MXR/EX/Go
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0140
-+device.name           GeForce 6600 GT
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0141
-+device.name           GeForce 6600
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0141
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x3124
-+subdevice.name                GeForce 6600 (Gigabyte)
-+driver.xfree          4|nv
-+driver.xfree.config   Option "XaaNoScreenToScreenCopy"
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0142
-+device.name           0x0142
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0143
-+device.name           0x0143
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0144
-+device.name           GeForce Go 6600
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0145
-+device.name           GeForce 6610 XL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0146
-+device.name           GeForce Go 6600 TE/6200 TE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0147
-+device.name           0x0147
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0148
-+device.name           GeForce Go 6600 (0x0148)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0149
-+device.name           0x0149
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x014b
-+device.name           0x014b
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x014c
-+device.name           0x014c
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x014d
-+device.name           0x014d
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x014e
-+device.name           Quadro FX 540
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x014f
-+device.name           GeForce 6200
-+driver.xfree          4|nv
-+driver.xfree.config   Option "XaaNoScreenToScreenCopy"
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0150
-+device.name           GeForce2 GTS/GeForce2 Pro
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0151
-+device.name           GeForce2 Ti
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0152
-+device.name           GeForce2 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0153
-+device.name           Quadro2 Pro
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0160
-+device.name           0x0160
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0161
-+device.name           GeForce 6200 TurboCache(TM)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0161
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x025c
-+subdevice.name                GeForce 6200 TurboCache(TM) (10de:025c)
-+driver.xfree          4|nv
-+driver.xfree.config   Option "XaaNoScreenToScreenCopy"
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0162
-+device.name           0x0162
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0163
-+device.name           0x0163
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0164
-+device.name           GeForce Go 6200
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0165
-+device.name           0x0165
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0166
-+device.name           GeForce Go 6250
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0167
-+device.name           GeForce Go 6200 (0x0167)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0168
-+device.name           GeForce Go 6250 (0x0168)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0169
-+device.name           0x0169
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x016b
-+device.name           0x016B
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x016c
-+device.name           0x016C
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x016d
-+device.name           0x016D
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x016e
-+device.name           0x016E
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0170
-+device.name           GeForce4 MX 460
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0171
-+device.name           GeForce4 MX 440
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0172
-+device.name           GeForce4 MX 420
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0173
-+device.name           GeForce4 MX 440-SE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0174
-+device.name           GeForce4 440 Go
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-+driver.xfree          4|nvidia|3d||||16
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0175
-+device.name           GeForce4 420 Go
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-+driver.xfree          4|nvidia|3d||||16
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0176
-+device.name           GeForce4 420 Go 32M
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-+driver.xfree          4|nvidia|3d||||16
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0176
-&subvendor.id          pci 0x1584
-&subdevice.id          pci 0x2241
-+subdevice.name                GeForce4 Go DH
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0177
-+device.name           GeForce4 460 Go
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0178
-+device.name           Quadro4 550 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0178
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0151
-+subdevice.name                Quadro4 550 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0179
-+device.name           GeForce4 440 Go 64M
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-+driver.xfree          4|nvidia|3d||||16
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017a
-+device.name           Quadro4 NVS
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017c
-+device.name           Quadro4 500 GoGL
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-+driver.xfree          4|nvidia|3d||||16
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017d
-+device.name           GeForce4 410 Go 16M
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0181
-+device.name           GeForce4 MX 440 with AGP8X
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0182
-+device.name           GeForce4 MX 440SE with AGP8X
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0183
-+device.name           GeForce4 MX 420 with AGP8X
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0185
-+device.name           GeForce4 MX 4000
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0186
-+device.name           GeForce4 448 Go
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0187
-+device.name           GeForce4 488 Go
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0188
-+device.name           Quadro4 580 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0189
-+device.name           GeForce4 MX with AGP8X (Mac)
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018a
-+device.name           Quadro NVS with AGP8X
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018b
-+device.name           Quadro4 380 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018c
-+device.name           Quadro NVS 50 PCI
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018d
-+device.name           GeForce4 448 Go (0x018D)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01a0
-+device.name           GeForce2 Integrated GPU
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01f0
-+device.name           GeForce4 MX Integrated GPU
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0200
-+device.name           GeForce3
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0201
-+device.name           GeForce3 Ti 200
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0202
-+device.name           GeForce3 Ti 500
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0203
-+device.name           Quadro DCC
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0210
-+device.name           0x0210
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0211
-+device.name           GeForce 6800 (0x0211)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0212
-+device.name           GeForce 6800 LE (0x0212)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0215
-+device.name           GeForce 6800 GT (0x0215)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0220
-+device.name           0x0220
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0221
-+device.name           0x0221
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0222
-+device.name           0x0222
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0228
-+device.name           0x0228
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0250
-+device.name           GeForce4 Ti 4600
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0250
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x8725
-+subdevice.name                GeForce4 Ti 4600 DH
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0251
-+device.name           GeForce4 Ti 4400
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0252
-+device.name           NV25
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0253
-+device.name           GeForce4 Ti 4200
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0258
-+device.name           Quadro4 900 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0258
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0138
-+subdevice.name                Quadro4 900 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0259
-+device.name           Quadro4 750 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0259
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0139
-+subdevice.name                Quadro4 750 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x025b
-+device.name           Quadro4 700 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x025b
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x013b
-+subdevice.name                Quadro4 700 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0280
-+device.name           GeForce4 Ti 4800
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0281
-+device.name           GeForce4 Ti 4200 with AGP8X
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0282
-+device.name           GeForce4 Ti 4800 SE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0286
-+device.name           GeForce4 4200 Go
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0288
-+device.name           Quadro4 980 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0288
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0174
-+subdevice.name                Quadro4 980 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0289
-+device.name           Quadro4 780 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x028c
-+device.name           Quadro4 700 GoGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0301
-+device.name           GeForce FX 5800 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0302
-+device.name           GeForce FX 5800
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0308
-+device.name           Quadro FX 2000
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0308
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0183
-+subdevice.name                Quadro FX2000 DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0309
-+device.name           Quadro FX 1000
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0309
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0182
-+subdevice.name                Quadro FX1000 DH
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0311
-+device.name           GeForce FX 5600 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0312
-+device.name           GeForce FX 5600
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0313
-+device.name           0x0313
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0314
-+device.name           GeForce FX 5600XT
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0316
-+device.name           0x0316
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0317
-+device.name           0x0317
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031a
-+device.name           GeForce FX Go5600
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031b
-+device.name           GeForce FX Go5650
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031c
-+device.name           Quadro FX Go700
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031d
-+device.name           0x031d
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031e
-+device.name           0x031e
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031f
-+device.name           0x031f
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0320
-+device.name           GeForce FX 5200
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0321
-+device.name           GeForce FX 5200 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0322
-+device.name           GeForce FX 5200 (0x0322)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0322
-&subvendor.id          pci 0x10b0
-&subdevice.id          pci 0x0431
-+subdevice.name                GeForce FX 5200 DH
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0323
-+device.name           GeForce FX 5200LE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0324
-+device.name           GeForce FX Go5200
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0325
-+device.name           GeForce FX Go5250
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0326
-+device.name           GeForce FX 5500
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0327
-+device.name           GeForce FX 5100
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0328
-+device.name           GeForce FX Go5200 32M/64M
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0329
-+device.name           GeForce FX 5200 (Mac)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032a
-+device.name           Quadro NVS 280 PCI
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032b
-+device.name           Quadro FX 500/600 PCI
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032c
-+device.name           GeForce FX Go53xx
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032d
-+device.name           GeForce FX Go5100
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032f
-+device.name           0x032F
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0330
-+device.name           GeForce FX 5900 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0331
-+device.name           GeForce FX 5900
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0332
-+device.name           GeForce FX 5900XT
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0333
-+device.name           GeForce FX 5950 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0333
-&subvendor.id          pci 0x10b0
-&subdevice.id          pci 0x0602
-+subdevice.name                GeForce FX 5950
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0334
-+device.name           GeForce FX 5900ZT
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0338
-+device.name           Quadro FX 3000
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0338
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x01c2
-+subdevice.name                Quadro FX 3000 DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x033f
-+device.name           Quadro FX 700
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0341
-+device.name           GeForce FX 5700 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0341
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x194c
-+subdevice.name                GeForce FX 5700 Ultra DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0342
-+device.name           GeForce FX 5700
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0343
-+device.name           GeForce FX 5700LE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0344
-+device.name           GeForce FX 5700VE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0345
-+device.name           0x0345
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0347
-+device.name           GeForce FX Go5700
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0348
-+device.name           GeForce FX Go5700 (0x0348)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0349
-+device.name           0x0349
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034b
-+device.name           0x034b
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034c
-+device.name           Quadro FX Go1000
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034e
-+device.name           Quadro FX 1100
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034f
-+device.name           0x034f
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10e0
-+vendor.name           Imstt
-
- vendor.id             pci 0x10e0
-&device.id             pci 0x9128
-+device.name           Imstt128
-+driver.xfree          4|imstt
-
- vendor.id             pci 0x10e0
-&device.id             pci 0x9135
-+device.name           Imstt3D
-+driver.xfree          4|imstt
-
- vendor.id             pci 0x1106
-+vendor.name           VIA Technologies, Inc.
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3122
-+device.name           VIA CLE 3122
-+driver.xfree          4|via
-
- vendor.id             pci 0x1106
-&device.id             pci 0x7205
-+device.name           VIA VT 7205
-+driver.xfree          4|via
-
- vendor.id             pci 0x1106
-&device.id             pci 0x7205
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x0033
-+subdevice.name                Acer Incorporated VIA VT 7205
-
- vendor.id             pci 0x1106
-&device.id             pci 0x7205
-&subvendor.id          pci 0x1584
-&subdevice.id          pci 0x800a
-+subdevice.name                Uniwill VIA VT 7205
-
- vendor.id             pci 0x1142
-+vendor.name           Alliance Semiconductor Corporation
-
- vendor.id             pci 0x1142
-&device.id             pci 0x6422
-+device.name           ProVideo 6422
-+driver.xfree          4|apm
-
- vendor.id             pci 0x1142
-&device.id             pci 0x6424
-+device.name           ProVideo 6424
-+driver.xfree          4|apm
-
- vendor.id             pci 0x1163
-+vendor.name           Rendition
-
- vendor.id             pci 0x1163
-&device.id             pci 0x0001
-+device.name           Verite 1000
-+driver.xfree          4|rendition
-
- vendor.id             pci 0x1163
-&device.id             pci 0x2000
-+device.name           Verite V2000/V2100/V2200
-+driver.xfree          4|rendition
-
- vendor.id             pci 0x121a
-+vendor.name           3Dfx Interactive, Inc.
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-+device.name           Voodoo Banshee
-+driver.xfree          4|tdfx|||||8,16,24
-+driver.xfree          4|tdfx|3d||dri||16
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-+device.name           Voodoo 3
-+driver.xfree          4|tdfx|||||8,16,24
-+driver.xfree          4|tdfx|3d||dri||16
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0009
-+device.name           Voodoo5 5500
-+driver.xfree          4|tdfx|||||8,16,24
-+driver.xfree          4|tdfx|3d||dri||16
-
- vendor.id             pci 0x126f
-+vendor.name           Silicon Motion, Inc.
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0710
-+device.name           SM710 LynxEM
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0712
-+device.name           SM712 LynxEM+
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0720
-+device.name           SM720 Lynx3DM
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0730
-+device.name           SMI 731
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0810
-+device.name           SM810 LynxE
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0820
-+device.name           820
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0910
-+device.name           SM910
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x12d2
-+vendor.name           NVidia / SGS Thomson (Joint Venture)
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-+device.name           Riva128
-+driver.xfree          4|nv|||||15,24
-
- vendor.id             pci 0x15ad
-+vendor.name           VMWare Inc
-
- vendor.id             pci 0x15ad
-&device.id             pci 0x0405
-+device.name           VMWARE0405
-+driver.xfree          4|vmware
-
- vendor.id             pci 0x15ad
-&device.id             pci 0x0710
-+device.name           VMWARE0710
-+driver.xfree          4|vmware
-
- vendor.id             pci 0x18ca
-+vendor.name           XGI Technology Inc.
-
- vendor.id             pci 0x18ca
-&device.id             pci 0x0020
-+device.name           Volari Z7
-+driver.xfree          4|xgi
-
- vendor.id             pci 0x18ca
-&device.id             pci 0x0040
-+device.name           Volari V8_V5_V3XT
-+driver.xfree          4|xgi
-
- vendor.id             pci 0x3d3d
-+vendor.name           3DLabs
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0002
-+device.name           GLINT 500TX
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0004
-+device.name           Permedia
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0006
-+device.name           GLINT MX
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0007
-+device.name           3D Extreme
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-+device.name           Permedia II 2D+3D
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000a
-+device.name           GLINT R3
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000c
-+device.name           Permedia 4
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000d
-+device.name           R4
-+driver.xfree          4|glint
-
- vendor.id             pci 0x5333
-+vendor.name           S3 Inc.
-
- vendor.id             pci 0x5333
-&device.id             pci 0x5631
-+device.name           86c325 [ViRGE]
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8811
-+device.name           86c764/765 [Trio32/64/64V+]
-+driver.xfree          4|s3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8812
-+device.name           86cM65 [Aurora64V+]
-+driver.xfree          4|s3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8814
-+device.name           86c767 [Trio 64UV+]
-+driver.xfree          4|s3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x883d
-+device.name           86c988 [ViRGE/VX]
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8901
-+device.name           Trio 64V2/DX or /GX
-+driver.xfree          4|s3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8904
-+device.name           Integrated Trio3D
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a01
-+device.name           ViRGE/DX
-+driver.xfree          4|s3virge||||noVBE
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a10
-+device.name           ViRGE/GX2
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a13
-+device.name           86c368 [Trio 3D/2X]
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a20
-+device.name           86c794 [Savage 3D]
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a21
-+device.name           86c795 [Savage 3D/MV]
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-+device.name           Savage 4
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a25
-+device.name           ProSavage PM 133
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a26
-+device.name           ProSavage KM 133
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c01
-+device.name           ViRGE/MX
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c03
-+device.name           ViRGE/MX+MV
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c10
-+device.name           86C270-294 Savage/MX-/IX
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c11
-+device.name           Savage MX
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c12
-+device.name           Savage IX/MV
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c12
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x017f
-+subdevice.name                Savage IX/MV IBM
-+driver.xfree          4|savage||||ShadowStatus
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c13
-+device.name           Savage IX
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c22
-+device.name           SuperSavage/MX 128
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c24
-+device.name           SuperSavage/MX 64
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c26
-+device.name           SuperSavage/MX 64C
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2a
-+device.name           SuperSavage/IX 128 SDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2b
-+device.name           SuperSavage/IX 128 DDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2c
-+device.name           SuperSavage/IX 64 SDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2d
-+device.name           SuperSavage/IX 64 DDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2e
-+device.name           SuperSavage/IXC 64 SDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2f
-+device.name           SuperSavage/IXC 64 DDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d01
-+device.name           S3Twister_P
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d02
-+device.name           Twister_K
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d03
-+device.name           ProSavage DDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d04
-+device.name           ProSavage DDR-K
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x9102
-+device.name           86C410 Savage 2000
-+driver.xfree          4|savage
-
- vendor.id             pci 0x8086
-+vendor.name           Intel Corporation
-
- vendor.id             pci 0x8086
-&device.id             pci 0x00d1
-+device.name           i740_PCI
-+driver.xfree          4|i740
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1132
-+device.name           I815
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2562
-+device.name           i845
-+driver.xfree          4|i810
-+driver.xfree.config   Option "NoDDC"
-+driver.xfree          4|i810|3d||dri
-+driver.xfree.config   Option "NoDDC"
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2572
-+device.name           865 G
-+driver.xfree          4|i810
-+driver.xfree.config   Option "NoDDC"
-+driver.xfree          4|i810|3d||dri
-+driver.xfree.config   Option "NoDDC"
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2582
-+device.name           915 G
-+driver.xfree          4|i810
-+driver.xfree.config   Option "NoDDC"
-+driver.xfree          4|i810|3d||dri
-+driver.xfree.config   Option "NoDDC"
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2592
-+device.name           915 GM
-+driver.xfree          4|i810
-+driver.xfree.config   Option "NoDDC"
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3577
-+device.name           i830
-+driver.xfree          4|i810
-+driver.xfree.config   Option "NoDDC"
-+driver.xfree          4|i810|3d||dri
-+driver.xfree.config   Option "NoDDC"
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3582
-+device.name           855 GM
-+driver.xfree          4|i810
-+driver.xfree.config   Option "NoDDC"
-+driver.xfree          4|i810|3d||dri
-+driver.xfree.config   Option "NoDDC"
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7121
-+device.name           82810 CGC [Chipset Graphics Controller]
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7123
-+device.name           82810-DC100 CGC [Chipset Graphics Controller]
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7125
-+device.name           82810E CGC [Chipset Graphics Controller]
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7800
-+device.name           i740
-+driver.xfree          4|i740
-
- vendor.id             pci 0xedd8
-+vendor.name           ARK Logic Inc
-
- vendor.id             pci 0xedd8
-&device.id             pci 0xa091
-+device.name           1000PV [Stingray]
-+driver.xfree          4|ark
-
- vendor.id             pci 0xedd8
-&device.id             pci 0xa099
-+device.name           2000PV [Stingray]
-+driver.xfree          4|ark
-
- vendor.id             pci 0xedd8
-&device.id             pci 0xa0a1
-+device.name           2000MT
-+driver.xfree          4|ark
-
diff --git a/src/hwinfo/src/ids/src/x11.axp b/src/hwinfo/src/ids/src/x11.axp
deleted file mode 100644 (file)
index ef79c31..0000000
+++ /dev/null
@@ -1,841 +0,0 @@
- vendor.id             pci 0x1002
-+vendor.name           ATI Technologies Inc
-
- vendor.id             pci 0x1002
-&device.id             pci 0x0084
-+device.name           RageIIC
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x0088
-+device.name           Mach64
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4354
-+device.name           215CT [Mach64 CT]
-+driver.xfree          4|ati|||||8,16,24,32
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4358
-+device.name           210888CX [Mach64 CX]
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4554
-+device.name           210888ET [Mach64 ET]
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4654
-+device.name           Mach64 VT
-+driver.xfree          4|ati|||||8,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474d
-+device.name           Rage XL AGP
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474e
-+device.name           Rage XC AGP
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4754
-+device.name           3D Rage I/II 215GT [Mach64 GT]
-+driver.xfree          4|ati||||dpms|8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4756
-+device.name           3D Rage IIC 215IIC [Mach64 GT IIC]
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4757
-+device.name           3D Rage IIC AGP
-+driver.xfree          4|ati|||||8,15,16,24,32
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0044
-+subdevice.name                3D Rage LT Pro AGP-133
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c44
-+device.name           3D Rage LT Pro AGP-66
-+driver.xfree          4|ati|||||8,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c45
-+device.name           Rage 128 Mobility LE
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c46
-+device.name           Mobility M3 AGP 2x
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-+device.name           3D Rage P/M Mobility AGP 2x
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c52
-+device.name           3D Rage P/M Mobility
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c54
-+device.name           264LT [Mach64 LT]
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4d46
-+device.name           Rage 128 Mobility MF
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4d4c
-+device.name           Rage 128 Mobility ML
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5041
-+device.name           Rage 128 PA
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5042
-+device.name           Rage 128 PB
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5043
-+device.name           Rage 128 PC
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5044
-+device.name           Rage 128 PD
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5045
-+device.name           Rage 128 PE
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-+device.name           Rage 128 PF
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5047
-+device.name           Rage 128 PG
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5048
-+device.name           Rage 128 PH
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5049
-+device.name           Rage 128 PI
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504a
-+device.name           Rage 128 PJ
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504b
-+device.name           Rage 128 PK
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504c
-+device.name           Rage 128 PL
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504d
-+device.name           Rage 128 PM
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504e
-+device.name           Rage 128 PN
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504f
-+device.name           Rage 128 PO
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5050
-+device.name           Rage 128 PP
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5051
-+device.name           Rage 128 PQ
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5052
-+device.name           Rage 128 PR
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5053
-+device.name           Rage 128 PS
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5054
-+device.name           Rage 128 PT
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5055
-+device.name           Rage 128 PU
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5056
-+device.name           Rage 128 PV
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5057
-+device.name           Rage 128 PW
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5058
-+device.name           Rage 128 PX
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-+device.name           Radeon QD
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5145
-+device.name           Radeon QE
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5146
-+device.name           Radeon QF
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5147
-+device.name           Radeon QG
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5245
-+device.name           Rage 128 RE
-+driver.xfree          4|r128|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5246
-+device.name           Rage 128 RF
-+driver.xfree          4|r128|||||8,15,16,24
-+driver.xfree          4|r128|3d||dri||16||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5247
-+device.name           Rage 128 RG
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524b
-+device.name           Rage 128 RK
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524c
-+device.name           Rage 128 RL
-+driver.xfree          4|r128|||||8,15,16,24
-+driver.xfree          4|r128|3d||dri||16||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5345
-+device.name           Rage 128 SE
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5346
-+device.name           Rage 128 SF
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5347
-+device.name           Rage 128 SG
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5348
-+device.name           Rage 128 4x
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534b
-+device.name           Rage 128 SK
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534c
-+device.name           Rage 128 SL
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534d
-+device.name           Rage 128 SM
-+driver.xfree          4|r128|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5354
-+device.name           Mach 64 VT
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5354
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x5654
-+subdevice.name                Mach 64 reference
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5452
-+device.name           Rage 128 Pro TR (AGP)
-+driver.xfree          4||||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5655
-+device.name           264VT3 [Mach64 VT3]
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5656
-+device.name           264VT4 [Mach64 VT4]
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x100c
-+vendor.name           Tseng Labs Inc
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3206
-+device.name           ET4000/W32p rev C
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x1011
-+vendor.name           Digital Equipment Corporation
-
- vendor.id             pci 0x1011
-&device.id             pci 0x0004
-+device.name           DECchip 21030 [TGA]
-+driver.xfree          4|tga|||||8
-
- vendor.id             pci 0x1013
-+vendor.name           Cirrus Logic
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00bc
-+device.name           GD 5480
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1014
-+vendor.name           IBM
-
- vendor.id             pci 0x1014
-&device.id             pci 0x00b7
-+device.name           fgl1
-+driver.xfree          4|firegl1|||||24
-+driver.xfree.config   Option "no_accel" "no"
-+driver.xfree.config   Option "NumDMABuffers2D" "4"
-+driver.xfree.config   Option "NumDMABuffers" "24"
-+driver.xfree.config   Option "NumTMBuffers" "4"
-+driver.xfree.config   Option "Capabilities" "0x00000000"
-+driver.xfree.config   Option "Capabilities2" "0x00000000"
-+driver.xfree          4|firegl1|3d||dri,fgl1|DDCInfo,accel|24||switch2xf86_glx
-+driver.xfree.config   Option "no_accel" "no"
-+driver.xfree.config   Option "NumDMABuffers2D" "4"
-+driver.xfree.config   Option "NumDMABuffers" "24"
-+driver.xfree.config   Option "NumTMBuffers" "4"
-+driver.xfree.config   Option "Capabilities" "0x00000000"
-+driver.xfree.config   Option "Capabilities2" "0x00000000"
-+requires              xf86_glx|xfiregl1
-
- vendor.id             pci 0x1014
-&device.id             pci 0x0170
-+device.name           fgl2
-+driver.xfree          4|firegl23|||||24
-+driver.xfree.config   Option "no_accel" "no"
-+driver.xfree.config   Option "enable DVI" "on"
-+driver.xfree.config   Option "NumDMABuffers" "24"
-+driver.xfree.config   Option "NumTMBuffers" "4"
-+driver.xfree.config   Option "Capabilities" "0x00000000"
-+driver.xfree.config   Option "Capabilities2" "0x00000000"
-+driver.xfree          4|firegl23|3d||dri,fgl23||24||switch2xf86_glx
-+driver.xfree.config   Option "no_accel" "no"
-+driver.xfree.config   Option "enable DVI" "on"
-+driver.xfree.config   Option "NumDMABuffers" "24"
-+driver.xfree.config   Option "NumTMBuffers" "4"
-+driver.xfree.config   Option "Capabilities" "0x00000000"
-+driver.xfree.config   Option "Capabilities2" "0x00000000"
-+requires              xf86_glx|xfiregl1
-
- vendor.id             pci 0x1023
-+vendor.name           Trident Microsystems Inc.
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8400
-+device.name           CyberBlade/i7
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8620
-+device.name           CyberBlade/DSTN/Ai1
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9385
-+device.name           Cyber 9385 [Reference design]
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9525
-+device.name           Cyber 9525
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9540
-+device.name           Cyber 9540
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9750
-+device.name           3DIm`age 975
-+driver.xfree          4|trident|||||8,15,16,24
-
- vendor.id             pci 0x102b
-+vendor.name           Matrox Graphics, Inc.
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0100
-+device.name           Millennium II
-+driver.xfree          4|mga|||||8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0518
-+device.name           MGA-II [Athena]
-+driver.xfree          4|mga|||||8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0519
-+device.name           MGA 2064W [Millennium]
-+driver.xfree          4|mga|||||8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051a
-+device.name           MGA 1064SG [Mystique]
-+driver.xfree          4|mga|||||8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051a
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x1100
-+subdevice.name                MGA-1084SG Mystique
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051b
-+device.name           MGA 2164W [Millennium II]
-+driver.xfree          4|mga|||||8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051e
-+device.name           MGA 1064SG [Mystique] AGP
-+driver.xfree          4|mga|||||8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051f
-+device.name           MGA 2164W [Millennium II] AGP
-+driver.xfree          4|mga|||||8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0520
-+device.name           MGA G200
-+driver.xfree          4|mga||||NoHal|8,16,24
-+driver.xfree          4|mga|3d||dri|NoHal|16||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-+device.name           MGA G200 AGP
-+driver.xfree          4|mga||||NoHal|8,16,24
-+driver.xfree.config   VideoRam 8192
-+driver.xfree          4|mga|3d||dri|NoHal|16||switch2xf86_glx
-+driver.xfree.config   VideoRam 8192
-+requires              xf86_glx
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-+device.name           MGA G400 AGP
-+driver.xfree          4|mga||||NoHal|8,15,16,24
-+driver.xfree          4|mga|3d||dri|NoHal|16||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0d10
-+device.name           MGA Ultima/Impression
-+driver.xfree          4|mga|||||8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1000
-+device.name           MGA G100 [Productiva]
-+driver.xfree          4|mga|||||8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1001
-+device.name           MGA G100 [Productiva] AGP
-+driver.xfree          4|mga|||||8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x2007
-+device.name           MGA Mistral
-+driver.xfree          4|mga|||||8
-
- vendor.id             pci 0x102b
-&device.id             pci 0xff03
-+device.name           Millennium G200 SD
-+driver.xfree          4|mga||||sw_cursor|8,16,24
-
- vendor.id             pci 0x102c
-+vendor.name           Chips and Technologies
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e5
-+device.name           F65555 HiQVPro
-+driver.xfree          4|chips
-
- vendor.id             pci 0x1039
-+vendor.name           Silicon Integrated Systems Corp.
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6306
-+device.name           6306 3D-AGP
-+driver.xfree          4|sis||||FastVRam,Noaccel|8
-
- vendor.id             pci 0x104c
-+vendor.name           Texas Instruments
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-+device.name           TVP4020 [Permedia 2]
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x105d
-+vendor.name           Number 9 Computer Company
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2309
-+device.name           Imagine 128
-+driver.xfree          4
-
- vendor.id             pci 0x1092
-+vendor.name           Diamond Multimedia Systems
-
- vendor.id             pci 0x1092
-&device.id             pci 0x4820
-+device.name           Viper V550 with TV out
-+driver.xfree          4|nv|||||8,15,16,24
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10c8
-+vendor.name           Neomagic Corporation
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-+device.name           NM2160 [MagicGraph 128XD]
-+driver.xfree          4|neomagic|||||8,16
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0005
-+device.name           MagicMedia 256AV
-+driver.xfree          4|neomagic|||||8,16,24
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0006
-+device.name           NM2360 [MagicMedia 256ZX]
-+driver.xfree          4|neomagic|||||16
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0016
-+device.name           256XL(2380)
-+driver.xfree          4|neomagic|||||8,16,24
-+driver.xfree.config   VideoRam 4096
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x8005
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x00dd
-+subdevice.name                MagicMedia 256AV Audio Device on BlackTip Thinkpad
-+driver.xfree          4|neomagic|||||8,16
-
- vendor.id             pci 0x10de
-+vendor.name           nVidia Corporation
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-+device.name           RIVA TNT
-+driver.xfree          4|nv|||||8,15,16,24
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-+device.name           RIVA TNT2/TNT2 Pro
-+driver.xfree          4|nv|||||8,15,16,24
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0029
-+device.name           RIVA TNT2 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002c
-+device.name           Vanta/Vanta LT
-+driver.xfree          4|nv|||||8,16,24
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-+device.name           RIVA TNT2 Model 64/Model 64 Pro
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00a0
-+device.name           Aladdin TNT2
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0100
-+device.name           GeForce 256
-+driver.xfree          4|nv|||||8,15,16,24
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0101
-+device.name           GeForce DDR
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0103
-+device.name           Quadro
-+driver.xfree          4|nv|||||8,15,16,24
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0110
-+device.name           GeForce2 MX/MX 400
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0111
-+device.name           GeForce2 MX 100/200
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0112
-+device.name           GeForce2 Go
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0113
-+device.name           Quadro2 MXR/EX/Go
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0150
-+device.name           GeForce2 GTS/GeForce2 Pro
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0151
-+device.name           GeForce2 Ti
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0152
-+device.name           GeForce2 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0153
-+device.name           Quadro2 Pro
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16||switch2nvidia_glx
-+requires              NVIDIA_GLX|NVIDIA_kernel
-
- vendor.id             pci 0x1163
-+vendor.name           Rendition
-
- vendor.id             pci 0x1163
-&device.id             pci 0x2000
-+device.name           Verite V2000/V2100/V2200
-+driver.xfree          4|rendition
-
- vendor.id             pci 0x121a
-+vendor.name           3Dfx Interactive, Inc.
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0001
-+device.name           Voodoo
-+driver.xfree          4|glide|||||16
-+driver.xfree          4||3d||||16||switch2mesa3dfx
-+requires              dev3dfx|glide_vg|mesa3dfx
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-+device.name           Voodoo Banshee
-+driver.xfree          4|tdfx|||||8,16,24
-+driver.xfree          4|tdfx|3d||dri||16||switch2xf86_glx
-+requires              glidedri|xf86_glx
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-+device.name           Voodoo 3
-+driver.xfree          4|tdfx|||||8,16
-+driver.xfree          4|tdfx|3d||dri||16||switch2xf86_glx
-+requires              glidedri|xf86_glx
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0009
-+device.name           Voodoo5 5500
-+driver.xfree          4|tdfx|||||8,16,24
-+driver.xfree          4|tdfx|3d||dri||16||switch2xf86_glx
-+requires              gldri_v5|xf86_glx
-
- vendor.id             pci 0x126f
-+vendor.name           Silicon Motion, Inc.
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0710
-+device.name           SM710 LynxEM
-+driver.xfree          4|siliconmotion|||||8,15,16,24
-
- vendor.id             pci 0x12d2
-+vendor.name           NVidia / SGS Thomson (Joint Venture)
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-+device.name           Riva128
-+driver.xfree          4|nv|||||8,15,16,24
-
- vendor.id             pci 0x3d3d
-+vendor.name           3DLabs
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0007
-+device.name           3D Extreme
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-+device.name           Permedia II 2D+3D
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000a
-+device.name           GLINT R3
-+driver.xfree          4|glint|||||8,32
-
- vendor.id             pci 0x5333
-+vendor.name           S3 Inc.
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a01
-+device.name           ViRGE/DX or /GX
-+driver.xfree          4|s3virge|||||8,15,16,24
-
- vendor.id             pci 0x8086
-+vendor.name           Intel Corporation
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1132
-+device.name           I815
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16||switch2xf86_glx
-+driver.xfree.config   VideoRam 16384
-+requires              xf86_glx
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7121
-+device.name           82810 CGC [Chipset Graphics Controller]
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16||switch2xf86_glx
-+driver.xfree.config   VideoRam 16384
-+requires              xf86_glx
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7123
-+device.name           82810-DC100 CGC [Chipset Graphics Controller]
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16||switch2xf86_glx
-+driver.xfree.config   VideoRam 16384
-+requires              xf86_glx
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7125
-+device.name           82810E CGC [Chipset Graphics Controller]
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16||switch2xf86_glx
-+driver.xfree.config   VideoRam 16384
-+requires              xf86_glx
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7800
-+device.name           i740
-+driver.xfree          4|i740
-
diff --git a/src/hwinfo/src/ids/src/x11.i386 b/src/hwinfo/src/ids/src/x11.i386
deleted file mode 100644 (file)
index 30bb3e8..0000000
+++ /dev/null
@@ -1,3355 +0,0 @@
- vendor.id             pci 0x1002
-+vendor.name           ATI Technologies Inc
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3150
-+device.name           Radeon Mobility X600 (M24) 3150 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3154
-+device.name           FireGL M24 GL 3154 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3e50
-+device.name           Radeon X600 (RV380) 3E50 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3e50
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x0450
-+subdevice.name                Radeon X600 Pro
-+driver.xfree          4|radeon
-+driver.xfree          4|fglrx|3d||dri
-+driver.xfree.config   Option "UseInternalAGPGART" "no"
-+driver.xfree.config   Option "mtrr" "off"
-+driver.xfree.config   Option "VideoOverlay" "on"
-+driver.xfree.config   Option "OpenGLOverlay" "off"
-+requires              fglrx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x3e54
-+device.name           FireGL V3200 (RV380) 3E54 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4136
-+device.name           RS100 4136
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4137
-+device.name           RS100 4137
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4144
-+device.name           R300 AD
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4145
-+device.name           E300 AE
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4146
-+device.name           R300 AF
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4147
-+device.name           R300 AG
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4148
-+device.name           R350 AH
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4149
-+device.name           R350 AI
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x414a
-+device.name           R350 AJ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x414b
-+device.name           R350 AK
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-+device.name           RV350 AP
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4151
-+device.name           RV350 AQ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4152
-+device.name           RV350 AR
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4153
-+device.name           RV350 AS
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4154
-+device.name           RV350 AT
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4155
-+device.name           RV350 AU
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x4154
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4156
-+device.name           RV350 AV
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4157
-+device.name           RV350 AW
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x4154
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4237
-+device.name           RS250 4237
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4242
-+device.name           R200 BB
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4243
-+device.name           R200 BC
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4336
-+device.name           RS100 4336
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4337
-+device.name           RS200 4337
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4354
-+device.name           215CT [Mach64 CT]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4358
-+device.name           210888CX [Mach64 CX]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4437
-+device.name           RS250 4437
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4554
-+device.name           210888ET [Mach64 ET]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-+device.name           3D Rage Pro AGP 1X/2X
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4744
-+device.name           3D Rage Pro AGP 1X
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4749
-+device.name           Mach64 GI
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474c
-+device.name           Rage XC
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474d
-+device.name           Rage XL AGP
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474e
-+device.name           Rage XC AGP
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474f
-+device.name           Rage XL
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4750
-+device.name           3D Rage Pro 215GP
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4751
-+device.name           3D Rage Pro 215GQ
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4752
-+device.name           Mach64 GR
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4753
-+device.name           Mach64 GS
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4754
-+device.name           3D Rage I/II 215GT [Mach64 GT]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4755
-+device.name           3D Rage II+ 215GTB [Mach64 GTB]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4756
-+device.name           3D Rage IIC 215IIC [Mach64 GT IIC]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4757
-+device.name           3D Rage IIC AGP
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4758
-+device.name           210888GX [Mach64 GX]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4759
-+device.name           3D Rage IIC
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x475a
-+device.name           Mach64 GZ
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-+device.name           RV250 If
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0002
-+subdevice.name                Radeon 9000
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4967
-+device.name           RV250 Ig
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a48
-+device.name           R420 JH
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a49
-+device.name           R420 JI
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4a
-+device.name           R420 JJ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4b
-+device.name           R420 JK
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4c
-+device.name           R420 JL
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4d
-+device.name           R420 JM
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a4e
-+device.name           R420 JN
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4a50
-+device.name           R420 JP
-+driver.xfree          4|radeon
-+driver.xfree          4|fglrx|3d||dri
-+driver.xfree.config   Option "UseInternalAGPGART" "no"
-+driver.xfree.config   Option "mtrr" "off"
-+driver.xfree.config   Option "VideoOverlay" "on"
-+driver.xfree.config   Option "OpenGLOverlay" "off"
-+requires              fglrx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-+device.name           Mach64 LB
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0044
-+subdevice.name                3D Rage LT Pro AGP-133
-+driver.xfree          4|ati
-+driver.xfree.config   Option "dpms" "off"
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c44
-+device.name           3D Rage LT Pro AGP-66
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c45
-+device.name           Rage 128 Mobility LE
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c46
-+device.name           Mobility M3 AGP 2x
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c47
-+device.name           3D Rage LT-G 215LG
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c49
-+device.name           Mach64 LI
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-+device.name           3D Rage P/M Mobility AGP 2x
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00bb
-+subdevice.name                Mach64LM/Dell
-+driver.xfree          4|fbdev
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4e
-+device.name           3D Rage L Mobility AGP 2x
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c50
-+device.name           3D Rage LT Pro
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c51
-+device.name           Mach64 LQ
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c52
-+device.name           3D Rage P/M Mobility
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c53
-+device.name           3D Rage L Mobility
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c57
-+device.name           Radeon LW
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c58
-+device.name           Radeon LX
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c59
-+device.name           Radeon LY
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c5a
-+device.name           Radeon LZ
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c64
-+device.name           RV250 Ld
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c66
-+device.name           RV250 Lf
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c67
-+device.name           RV250 Lg
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4d46
-+device.name           Rage 128 Mobility MF
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4d4c
-+device.name           Rage 128 Mobility ML
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e44
-+device.name           R300 ND
-+driver.xfree          4|radeon
-+driver.xfree          4|fglrx|3d||dri
-+driver.xfree.config   Option "UseInternalAGPGART" "no"
-+driver.xfree.config   Option "mtrr" "off"
-+driver.xfree.config   Option "VideoOverlay" "on"
-+driver.xfree.config   Option "OpenGLOverlay" "off"
-+requires              fglrx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e44
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0002
-+subdevice.name                Radeon 9700
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e45
-+device.name           R300 NE
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e46
-+device.name           R300 NF
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e47
-+device.name           R300 NG
-+driver.xfree          4|radeon
-+driver.xfree          4|fglrx|3d||dri
-+driver.xfree.config   Option "UseInternalAGPGART" "no"
-+driver.xfree.config   Option "mtrr" "off"
-+driver.xfree.config   Option "VideoOverlay" "on"
-+driver.xfree.config   Option "OpenGLOverlay" "off"
-+requires              fglrx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e47
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0172
-+subdevice.name                FireGL X1
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e48
-+device.name           R350 NH
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e49
-+device.name           R350 NI
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e4a
-+device.name           R360 NJ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e4b
-+device.name           R350 NK
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e50
-+device.name           RV350 NP
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e51
-+device.name           RV350 NQ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e52
-+device.name           RV350 NR
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e53
-+device.name           RV350 NS
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e54
-+device.name           RV350 NT
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e56
-+device.name           RV350 NV
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5041
-+device.name           Rage 128 PA
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5042
-+device.name           Rage 128 PB
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5043
-+device.name           Rage 128 PC
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5044
-+device.name           Rage 128 PD
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5045
-+device.name           Rage 128 PE
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-+device.name           Rage 128 PF
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5047
-+device.name           Rage 128 PG
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5048
-+device.name           Rage 128 PH
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5049
-+device.name           Rage 128 PI
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504a
-+device.name           Rage 128 PJ
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504b
-+device.name           Rage 128 PK
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504c
-+device.name           Rage 128 PL
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504d
-+device.name           Rage 128 PM
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504e
-+device.name           Rage 128 PN
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504f
-+device.name           Rage 128 PO
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5050
-+device.name           Rage 128 PP
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5051
-+device.name           Rage 128 PQ
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5052
-+device.name           Rage 128 PR
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5053
-+device.name           Rage 128 PS
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5054
-+device.name           Rage 128 PT
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5055
-+device.name           Rage 128 PU
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5056
-+device.name           Rage 128 PV
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5057
-+device.name           Rage 128 PW
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5058
-+device.name           Rage 128 PX
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-+device.name           Radeon QD
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5145
-+device.name           Radeon QE
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5146
-+device.name           Radeon QF
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5147
-+device.name           Radeon QG
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-+device.name           fgl8x00
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0152
-+subdevice.name                FireGL 8800
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0172
-+subdevice.name                FireGL 8700
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514c
-+device.name           R200 QL
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514d
-+device.name           Radeon 9100 QM
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-+device.name           RV200 QW
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x013a
-+subdevice.name                Radeon 7500
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7146
-+subdevice.name                Radeon 7500-7146
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7161
-+subdevice.name                Radeon 7500 LE
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5158
-+device.name           RV200 QX
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-+device.name           Radeon VE
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x515a
-+device.name           Radeon QZ
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x515e
-+device.name           ES1000 (1002:515E)
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x5969
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5245
-+device.name           Rage 128 RE
-+driver.xfree          4|r128|||||8,15,16,24
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5246
-+device.name           Rage 128 RF
-+driver.xfree          4|r128|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5247
-+device.name           Rage 128 RG
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524b
-+device.name           Rage 128 RK
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524c
-+device.name           Rage 128 RL
-+driver.xfree          4|r128|||||8,15,16,24
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5345
-+device.name           Rage 128 SE
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5346
-+device.name           Rage 128 SF
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5347
-+device.name           Rage 128 SG
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5348
-+device.name           Rage 128 4x
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534b
-+device.name           Rage 128 SK
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534c
-+device.name           Rage 128 SL
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534d
-+device.name           Rage 128 SM
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534e
-+device.name           Rage 128 SN
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5446
-+device.name           Rage 128 Ultra TF
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x544c
-+device.name           Rage128 TL
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5452
-+device.name           Rage 128 Pro TR (AGP)
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5453
-+device.name           Rage 128 TS
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5454
-+device.name           Rage 128 TT
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5455
-+device.name           Rage 128 TU
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5460
-+device.name           Radeon Mobility M300 (M22) 5460 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5464
-+device.name           FireGL M22 GL 5464 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5548
-+device.name           Radeon X800 (R423) UH (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5549
-+device.name           Radeon X800PRO (R423) UI (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x554a
-+device.name           Radeon X800LE (R423) UJ (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x554b
-+device.name           Radeon X800SE (R423) UK (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x554d
-+device.name           Radeon X800 XL
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x554b
-
- vendor.id             pci 0x1002
-&device.id             pci 0x554d
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x0600
-+subdevice.name                Radeon X800 XL
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5551
-+device.name           FireGL V7200 (R423) UQ (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5552
-+device.name           FireGL V5100 (R423) UR (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5554
-+device.name           FireGL V7100 (R423) UT (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5654
-+device.name           Mach64 VT
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5655
-+device.name           264VT3 [Mach64 VT3]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5656
-+device.name           264VT4 [Mach64 VT4]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5834
-+device.name           RS300 5834
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5835
-+device.name           RS300 5835
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5960
-+device.name           RV280 5960
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5961
-+device.name           RV280 5961
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5962
-+device.name           RV280 5962
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-+device.name           RV280 5964
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-&subvendor.id          pci 0x17af
-&subdevice.id          pci 0x2012
-+subdevice.name                Radeon 9200 SE (DH)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5969
-+device.name           ES1000 (PCI)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b60
-+device.name           Radeon X300 (RV370) 5B60 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b60
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x0440
-+subdevice.name                Radeon X300 SE
-+driver.xfree          4|radeon
-+driver.xfree          4|fglrx|3d||dri
-+driver.xfree.config   Option "UseInternalAGPGART" "no"
-+driver.xfree.config   Option "mtrr" "off"
-+driver.xfree.config   Option "VideoOverlay" "on"
-+driver.xfree.config   Option "OpenGLOverlay" "off"
-+requires              fglrx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b62
-+device.name           Radeon X600 (RV370) 5B62 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b64
-+device.name           FireGL V3100 (RV370) 5B64 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5b65
-+device.name           FireGL D1100 (RV370) 5B65 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5c61
-+device.name           RV280 5c61
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5c63
-+device.name           RV280 5c63
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5d57
-+device.name           Radeon X800XT (R423) 5D57 (PCIE)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5e4a
-+device.name           Radeon X700 XT
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x5D57
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5e4b
-+device.name           Radeon X700 Pro
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x5549
-+driver.xfree          4|fglrx|3d||dri
-+requires              fglrx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5e4c
-+device.name           Radeon X700 SE
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x554B
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5e4d
-+device.name           Radeon X700 (5E4D)
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x5548
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5e4f
-+device.name           Radeon X700 (5E4F)
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x5548
-
- vendor.id             pci 0x1002
-&device.id             pci 0x7834
-+device.name           Radeon 9100 PRO IGP 7834
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x7835
-+device.name           Radeon Mobility 9200 IGP 7835
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x100b
-+vendor.name           National Semiconductor Corporation
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0030
-+device.name           REDCLOUD
-+driver.xfree          4|nsc
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0104
-+device.name           SC1400
-+driver.xfree          4|nsc
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0504
-+device.name           SC1200
-+driver.xfree          4|nsc
-
- vendor.id             pci 0x100c
-+vendor.name           Tseng Labs Inc
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3202
-+device.name           ET4000/W32p rev A
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3205
-+device.name           ET4000/W32p rev B
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3206
-+device.name           ET4000/W32p rev C
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3207
-+device.name           ET4000/W32p rev D
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3208
-+device.name           ET6000
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x1013
-+vendor.name           Cirrus Logic
-
- vendor.id             pci 0x1013
-&device.id             pci 0x0038
-+device.name           GD 7548
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00a0
-+device.name           GD 5430/40 [Alpine]
-+driver.xfree          4|cirrus||||Noaccel
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00a4
-+device.name           GD 5434-4 [Alpine]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00a8
-+device.name           GD 5434-8 [Alpine]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00ac
-+device.name           GD 5436 [Alpine]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00b8
-+device.name           GD 5446
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00bc
-+device.name           GD 5480
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d0
-+device.name           GD 5462
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d4
-+device.name           GD 5464 [Laguna]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d5
-+device.name           GD5464BD
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d6
-+device.name           GD 5465 [Laguna]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1023
-+vendor.name           Trident Microsystems Inc.
-
- vendor.id             pci 0x1023
-&device.id             pci 0x2100
-+device.name           CyberBlade/xp4
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8400
-+device.name           CyberBlade/i7
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8420
-+device.name           CyberBlade/i7d
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8500
-+device.name           CyberBlade/i1
-+driver.xfree          4|trident||||CyberStretch,sw_cursor
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8520
-+device.name           8520
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8600
-+device.name           8600
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8620
-+device.name           CyberBlade/DSTN/Ai1
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8820
-+device.name           8820
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9320
-+device.name           9320
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9388
-+device.name           Cyber 9388
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9397
-+device.name           Cyber 9397
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x939a
-+device.name           Cyber 9397DVD
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9420
-+device.name           TGUI 9420
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9440
-+device.name           TGUI 9440
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9520
-+device.name           Cyber 9520
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9525
-+device.name           Cyber 9525
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9540
-+device.name           Cyber 9540
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9660
-+device.name           TGUI 9660/968x/968x
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9750
-+device.name           3DIm`age 975
-+driver.xfree          4|trident|||||8,15,16,24
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9850
-+device.name           3DImage 9850
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9880
-+device.name           9880
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9910
-+device.name           9910
-+driver.xfree          4|trident
-
- vendor.id             pci 0x102b
-+vendor.name           Matrox Graphics, Inc.
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0519
-+device.name           MGA 2064W [Millennium]
-+driver.xfree          4|mga||||NoHal|8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051a
-+device.name           MGA 1064SG [Mystique]
-+driver.xfree          4|mga||||NoHal|8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051b
-+device.name           MGA 2164W [Millennium II]
-+driver.xfree          4|mga||||NoHal|8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051f
-+device.name           MGA 2164W [Millennium II] AGP
-+driver.xfree          4|mga||||NoHal
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0520
-+device.name           MGA G200
-+driver.xfree          4|mga|||||8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-+device.name           MGA G200 AGP
-+driver.xfree          4|mga|||||8,16,24
-+driver.xfree.config   VideoRam 8192
-+driver.xfree          4|mga|3d||dri||16
-+driver.xfree.config   VideoRam 8192
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-+device.name           MGA G400 AGP
-+driver.xfree          4|mga
-+driver.xfree          4|mga|3d||dri
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0540
-+subdevice.name                G450-0540
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0541
-+subdevice.name                G450
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0641
-+subdevice.name                Matrox G400 DH-0641
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x07c0
-+subdevice.name                G450 LE
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0d41
-+subdevice.name                G450 DH G450
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0d43
-+subdevice.name                G450 PCI
-+driver.xfree          4|mga
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x2179
-+subdevice.name                G400 DH
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x23c3
-+subdevice.name                G450-23c3
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1000
-+device.name           MGA G100 [Productiva]
-+driver.xfree          4|mga||||NoHal
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1001
-+device.name           MGA G100 [Productiva] AGP
-+driver.xfree          4|mga||||NoHal|8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x2527
-+device.name           G550
-+driver.xfree          4|mga
-+driver.xfree          4|mga|3d||dri
-
- vendor.id             pci 0x102c
-+vendor.name           Chips and Technologies
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00c0
-+device.name           F69000 HiQVideo
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00d8
-+device.name           F65545
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00dc
-+device.name           F65548
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e0
-+device.name           65550
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e4
-+device.name           F65554
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e5
-+device.name           F65555 HiQVPro
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00f4
-+device.name           F68554 HiQVision
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x0c30
-+device.name           69030
-+driver.xfree          4|chips
-
- vendor.id             pci 0x1039
-+vendor.name           Silicon Integrated Systems Corp.
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0200
-+device.name           5597/5598 VGA
-+driver.xfree          4|sis|||||16,24
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0300
-+device.name           SIS300
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0310
-+device.name           SiS315H
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0325
-+device.name           SiS315PRO
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0330
-+device.name           SiS330
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0340
-+device.name           SiS340
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5300
-+device.name           SiS540 PCI Display Adapter
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5315
-+device.name           SiS550
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6300
-+device.name           SiS630 GUI Accelerator+3D
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6306
-+device.name           6306 3D-AGP
-+driver.xfree          4|sis|||||16
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6325
-+device.name           SiS650
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6326
-+device.name           86C326
-+driver.xfree          4|sis|||||8,16,24
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6330
-+device.name           SiS 660
-+driver.xfree          4|sis
-
- vendor.id             pci 0x104c
-+vendor.name           Texas Instruments
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d04
-+device.name           TVP4010 [Permedia]
-+driver.xfree          4|glint
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-+device.name           TVP4020 [Permedia 2]
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x105d
-+vendor.name           Number 9 Computer Company
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2309
-+device.name           Imagine 128
-+driver.xfree          4|i128
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-+device.name           Imagine 128-II
-+driver.xfree          4|i128
-
- vendor.id             pci 0x105d
-&device.id             pci 0x493d
-+device.name           Imagine 128 T2R [Ticket to Ride]
-+driver.xfree          4|i128
-
- vendor.id             pci 0x105d
-&device.id             pci 0x5348
-+device.name           Revolution 4
-+driver.xfree          4|i128
-
- vendor.id             pci 0x1078
-+vendor.name           Cyrix Corporation
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0000
-+device.name           5510
-+driver.xfree          4|cyrix
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0002
-+device.name           5520 [Cognac]
-+driver.xfree          4|cyrix
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0104
-+device.name           5530 Video [Kahlua]
-+driver.xfree          4|cyrix
-
- vendor.id             pci 0x10c8
-+vendor.name           Neomagic Corporation
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0001
-+device.name           NM2070 [MagicGraph NM2070]
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0002
-+device.name           NM2090 [MagicGraph 128V]
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0003
-+device.name           NM2093 [MagicGraph 128ZV]
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-+device.name           NM2160 [MagicGraph 128XD]
-+driver.xfree          4|neomagic|||||8,16
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0005
-+device.name           MagicMedia 256AV
-+driver.xfree          4|neomagic|||||8,16,24
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0006
-+device.name           NM2360 [MagicMedia 256ZX]
-+driver.xfree          4|neomagic|||||16
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0016
-+device.name           256XL(2380)
-+driver.xfree          4|neomagic|||||8,16,24
-+driver.xfree.config   VideoRam 4096
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0025
-+device.name           NM2230
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0083
-+device.name           MagicGraph 128ZV Plus
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10de
-+vendor.name           nVidia Corporation
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-+device.name           RIVA TNT
-+driver.xfree          4|nv|||||8,15,16,24
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-+device.name           RIVA TNT2/TNT2 Pro
-+driver.xfree          4|nv|||||8,15,16,24
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0029
-+device.name           RIVA TNT2 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002a
-+device.name           Unknown TNT2
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002c
-+device.name           Vanta/Vanta LT
-+driver.xfree          4|nv|||||8,16,24
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-+device.name           RIVA TNT2 Model 64/Model 64 Pro
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0040
-+device.name           GeForce 6800 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0041
-+device.name           GeForce 6800
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0042
-+device.name           GeForce 6800 LE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0043
-+device.name           0x0043
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0045
-+device.name           GeForce 6800 GT
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0049
-+device.name           0x0049
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x004e
-+device.name           Quadro FX 4000
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00a0
-+device.name           Aladdin TNT2
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c0
-+device.name           0x00c0
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c1
-+device.name           GeForce 6800 (0x00C1)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c2
-+device.name           0x00c2
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c8
-+device.name           GeForce Go 6800
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00c9
-+device.name           GeForce Go 6800 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00cc
-+device.name           Quadro FX Go1400
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00cd
-+device.name           0x00CD
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00ce
-+device.name           Quadro FX 1400
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f0
-+device.name           GeForce 6800/GeForce 6800 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f1
-+device.name           GeForce 6600/GeForce 6600 GT
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f2
-+device.name           GeForce 6600 GT (0x00F2)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f3
-+device.name           GeForce 6200 (AGP)
-+driver.xfree          4|nv
-+driver.xfree.config   Option "noaccel"
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f8
-+device.name           Quadro FX 3400
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00f9
-+device.name           GeForce 6800 Ultra (0x00F9)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fa
-+device.name           GeForce PCX 5750
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fb
-+device.name           GeForce PCX 5900
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fc
-+device.name           Quadro FX 330/GeForce PCX 5300
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fd
-+device.name           Quadro NVS 280 PCI-E/Quadro FX 330
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00fe
-+device.name           Quadro FX 1300
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00ff
-+device.name           GeForce PCX 4300
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0100
-+device.name           GeForce 256
-+driver.xfree          4|nv|||||8,15,16,24
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0101
-+device.name           GeForce DDR
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0103
-+device.name           Quadro
-+driver.xfree          4|nv|||||8,15,16,24
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0110
-+device.name           GeForce2 MX/MX 400
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0111
-+device.name           GeForce2 MX 100/200
-+driver.xfree          4|nv||||sw_cursor
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0112
-+device.name           GeForce2 Go
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree          4|nvidia|3d||||16
-+driver.xfree.config   #Option "CrtcNumber" "0"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0113
-+device.name           Quadro2 MXR/EX/Go
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0140
-+device.name           GeForce 6600 GT
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0141
-+device.name           GeForce 6600
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0141
-&subvendor.id          pci 0x1458
-&subdevice.id          pci 0x3124
-+subdevice.name                GeForce 6600 (Gigabyte)
-+driver.xfree          4|nv
-+driver.xfree.config   Option "XaaNoScreenToScreenCopy"
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0142
-+device.name           0x0142
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0143
-+device.name           0x0143
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0144
-+device.name           GeForce Go 6600
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0145
-+device.name           GeForce 6610 XL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0146
-+device.name           GeForce Go 6600 TE/6200 TE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0147
-+device.name           0x0147
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0148
-+device.name           GeForce Go 6600 (0x0148)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0149
-+device.name           0x0149
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x014b
-+device.name           0x014b
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x014c
-+device.name           0x014c
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x014d
-+device.name           0x014d
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x014e
-+device.name           Quadro FX 540
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x014f
-+device.name           GeForce 6200
-+driver.xfree          4|nv
-+driver.xfree.config   Option "XaaNoScreenToScreenCopy"
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0150
-+device.name           GeForce2 GTS/GeForce2 Pro
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0151
-+device.name           GeForce2 Ti
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0152
-+device.name           GeForce2 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0153
-+device.name           Quadro2 Pro
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0160
-+device.name           0x0160
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0161
-+device.name           GeForce 6200 TurboCache(TM)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0161
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x025c
-+subdevice.name                GeForce 6200 TurboCache(TM) (10de:025c)
-+driver.xfree          4|nv
-+driver.xfree.config   Option "XaaNoScreenToScreenCopy"
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0162
-+device.name           0x0162
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0163
-+device.name           0x0163
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0164
-+device.name           GeForce Go 6200
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0165
-+device.name           0x0165
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0166
-+device.name           GeForce Go 6250
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0167
-+device.name           GeForce Go 6200 (0x0167)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0168
-+device.name           GeForce Go 6250 (0x0168)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0169
-+device.name           0x0169
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x016b
-+device.name           0x016B
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x016c
-+device.name           0x016C
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x016d
-+device.name           0x016D
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x016e
-+device.name           0x016E
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0170
-+device.name           GeForce4 MX 460
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0171
-+device.name           GeForce4 MX 440
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0172
-+device.name           GeForce4 MX 420
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0173
-+device.name           GeForce4 MX 440-SE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0174
-+device.name           GeForce4 440 Go
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-+driver.xfree          4|nvidia|3d||||16
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0175
-+device.name           GeForce4 420 Go
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-+driver.xfree          4|nvidia|3d||||16
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0176
-+device.name           GeForce4 420 Go 32M
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-+driver.xfree          4|nvidia|3d||||16
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0176
-&subvendor.id          pci 0x1584
-&subdevice.id          pci 0x2241
-+subdevice.name                GeForce4 Go DH
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0177
-+device.name           GeForce4 460 Go
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0178
-+device.name           Quadro4 550 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0178
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0151
-+subdevice.name                Quadro4 550 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0179
-+device.name           GeForce4 440 Go 64M
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-+driver.xfree          4|nvidia|3d||||16
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017a
-+device.name           Quadro4 NVS
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017c
-+device.name           Quadro4 500 GoGL
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-+driver.xfree          4|nvidia|3d||||16
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017d
-+device.name           GeForce4 410 Go 16M
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0181
-+device.name           GeForce4 MX 440 with AGP8X
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0182
-+device.name           GeForce4 MX 440SE with AGP8X
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0183
-+device.name           GeForce4 MX 420 with AGP8X
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0185
-+device.name           GeForce4 MX 4000
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0186
-+device.name           GeForce4 448 Go
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0187
-+device.name           GeForce4 488 Go
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0188
-+device.name           Quadro4 580 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0189
-+device.name           GeForce4 MX with AGP8X (Mac)
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018a
-+device.name           Quadro NVS with AGP8X
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018b
-+device.name           Quadro4 380 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018c
-+device.name           Quadro NVS 50 PCI
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018d
-+device.name           GeForce4 448 Go (0x018D)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01a0
-+device.name           GeForce2 Integrated GPU
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01f0
-+device.name           GeForce4 MX Integrated GPU
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0200
-+device.name           GeForce3
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0201
-+device.name           GeForce3 Ti 200
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0202
-+device.name           GeForce3 Ti 500
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0203
-+device.name           Quadro DCC
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0210
-+device.name           0x0210
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0211
-+device.name           GeForce 6800 (0x0211)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0212
-+device.name           GeForce 6800 LE (0x0212)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0215
-+device.name           GeForce 6800 GT (0x0215)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0220
-+device.name           0x0220
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0221
-+device.name           0x0221
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0222
-+device.name           0x0222
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0228
-+device.name           0x0228
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0250
-+device.name           GeForce4 Ti 4600
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0250
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x8725
-+subdevice.name                GeForce4 Ti 4600 DH
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0251
-+device.name           GeForce4 Ti 4400
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0252
-+device.name           NV25
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0253
-+device.name           GeForce4 Ti 4200
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0258
-+device.name           Quadro4 900 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0258
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0138
-+subdevice.name                Quadro4 900 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0259
-+device.name           Quadro4 750 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0259
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0139
-+subdevice.name                Quadro4 750 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x025b
-+device.name           Quadro4 700 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x025b
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x013b
-+subdevice.name                Quadro4 700 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0280
-+device.name           GeForce4 Ti 4800
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0281
-+device.name           GeForce4 Ti 4200 with AGP8X
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0282
-+device.name           GeForce4 Ti 4800 SE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0286
-+device.name           GeForce4 4200 Go
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0288
-+device.name           Quadro4 980 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0288
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0174
-+subdevice.name                Quadro4 980 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0289
-+device.name           Quadro4 780 XGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x028c
-+device.name           Quadro4 700 GoGL
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0301
-+device.name           GeForce FX 5800 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0302
-+device.name           GeForce FX 5800
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0308
-+device.name           Quadro FX 2000
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0308
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0183
-+subdevice.name                Quadro FX2000 DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0309
-+device.name           Quadro FX 1000
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0309
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0182
-+subdevice.name                Quadro FX1000 DH
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0311
-+device.name           GeForce FX 5600 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0312
-+device.name           GeForce FX 5600
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0313
-+device.name           0x0313
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0314
-+device.name           GeForce FX 5600XT
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0316
-+device.name           0x0316
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0317
-+device.name           0x0317
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031a
-+device.name           GeForce FX Go5600
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031b
-+device.name           GeForce FX Go5650
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031c
-+device.name           Quadro FX Go700
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031d
-+device.name           0x031d
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031e
-+device.name           0x031e
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031f
-+device.name           0x031f
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0320
-+device.name           GeForce FX 5200
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0321
-+device.name           GeForce FX 5200 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0322
-+device.name           GeForce FX 5200 (0x0322)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0322
-&subvendor.id          pci 0x10b0
-&subdevice.id          pci 0x0431
-+subdevice.name                GeForce FX 5200 DH
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0323
-+device.name           GeForce FX 5200LE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0324
-+device.name           GeForce FX Go5200
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0325
-+device.name           GeForce FX Go5250
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0326
-+device.name           GeForce FX 5500
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0327
-+device.name           GeForce FX 5100
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0328
-+device.name           GeForce FX Go5200 32M/64M
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0329
-+device.name           GeForce FX 5200 (Mac)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032a
-+device.name           Quadro NVS 280 PCI
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032b
-+device.name           Quadro FX 500/600 PCI
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032c
-+device.name           GeForce FX Go53xx
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032d
-+device.name           GeForce FX Go5100
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032f
-+device.name           0x032F
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0330
-+device.name           GeForce FX 5900 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0331
-+device.name           GeForce FX 5900
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0332
-+device.name           GeForce FX 5900XT
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0333
-+device.name           GeForce FX 5950 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0333
-&subvendor.id          pci 0x10b0
-&subdevice.id          pci 0x0602
-+subdevice.name                GeForce FX 5950
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0334
-+device.name           GeForce FX 5900ZT
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0338
-+device.name           Quadro FX 3000
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0338
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x01c2
-+subdevice.name                Quadro FX 3000 DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x033f
-+device.name           Quadro FX 700
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0341
-+device.name           GeForce FX 5700 Ultra
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0341
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x194c
-+subdevice.name                GeForce FX 5700 Ultra DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0342
-+device.name           GeForce FX 5700
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0343
-+device.name           GeForce FX 5700LE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0344
-+device.name           GeForce FX 5700VE
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0345
-+device.name           0x0345
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0347
-+device.name           GeForce FX Go5700
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0348
-+device.name           GeForce FX Go5700 (0x0348)
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0349
-+device.name           0x0349
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034b
-+device.name           0x034b
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034c
-+device.name           Quadro FX Go1000
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034e
-+device.name           Quadro FX 1100
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034f
-+device.name           0x034f
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10e0
-+vendor.name           Imstt
-
- vendor.id             pci 0x10e0
-&device.id             pci 0x9128
-+device.name           Imstt128
-+driver.xfree          4|imstt
-
- vendor.id             pci 0x10e0
-&device.id             pci 0x9135
-+device.name           Imstt3D
-+driver.xfree          4|imstt
-
- vendor.id             pci 0x1106
-+vendor.name           VIA Technologies, Inc.
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3122
-+device.name           VIA CLE 3122
-+driver.xfree          4|via
-
- vendor.id             pci 0x1106
-&device.id             pci 0x7205
-+device.name           VIA VT 7205
-+driver.xfree          4|via
-
- vendor.id             pci 0x1106
-&device.id             pci 0x7205
-&subvendor.id          pci 0x1025
-&subdevice.id          pci 0x0033
-+subdevice.name                Acer Incorporated VIA VT 7205
-
- vendor.id             pci 0x1106
-&device.id             pci 0x7205
-&subvendor.id          pci 0x1584
-&subdevice.id          pci 0x800a
-+subdevice.name                Uniwill VIA VT 7205
-
- vendor.id             pci 0x1142
-+vendor.name           Alliance Semiconductor Corporation
-
- vendor.id             pci 0x1142
-&device.id             pci 0x6422
-+device.name           ProVideo 6422
-+driver.xfree          4|apm
-
- vendor.id             pci 0x1142
-&device.id             pci 0x6424
-+device.name           ProVideo 6424
-+driver.xfree          4|apm
-
- vendor.id             pci 0x1163
-+vendor.name           Rendition
-
- vendor.id             pci 0x1163
-&device.id             pci 0x0001
-+device.name           Verite 1000
-+driver.xfree          4|rendition
-
- vendor.id             pci 0x1163
-&device.id             pci 0x2000
-+device.name           Verite V2000/V2100/V2200
-+driver.xfree          4|rendition
-
- vendor.id             pci 0x121a
-+vendor.name           3Dfx Interactive, Inc.
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-+device.name           Voodoo Banshee
-+driver.xfree          4|tdfx|||||8,16,24
-+driver.xfree          4|tdfx|3d||dri||16
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-+device.name           Voodoo 3
-+driver.xfree          4|tdfx|||||8,16,24
-+driver.xfree          4|tdfx|3d||dri||16
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0009
-+device.name           Voodoo5 5500
-+driver.xfree          4|tdfx|||||8,16,24
-+driver.xfree          4|tdfx|3d||dri||16
-
- vendor.id             pci 0x126f
-+vendor.name           Silicon Motion, Inc.
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0710
-+device.name           SM710 LynxEM
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0712
-+device.name           SM712 LynxEM+
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0720
-+device.name           SM720 Lynx3DM
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0730
-+device.name           SMI 731
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0810
-+device.name           SM810 LynxE
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0820
-+device.name           820
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0910
-+device.name           SM910
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x12d2
-+vendor.name           NVidia / SGS Thomson (Joint Venture)
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-+device.name           Riva128
-+driver.xfree          4|nv|||||15,24
-
- vendor.id             pci 0x15ad
-+vendor.name           VMWare Inc
-
- vendor.id             pci 0x15ad
-&device.id             pci 0x0405
-+device.name           VMWARE0405
-+driver.xfree          4|vmware
-
- vendor.id             pci 0x15ad
-&device.id             pci 0x0710
-+device.name           VMWARE0710
-+driver.xfree          4|vmware
-
- vendor.id             pci 0x18ca
-+vendor.name           XGI Technology Inc.
-
- vendor.id             pci 0x18ca
-&device.id             pci 0x0020
-+device.name           Volari Z7
-+driver.xfree          4|xgi
-
- vendor.id             pci 0x18ca
-&device.id             pci 0x0040
-+device.name           Volari V8_V5_V3XT
-+driver.xfree          4|xgi
-
- vendor.id             pci 0x3d3d
-+vendor.name           3DLabs
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0002
-+device.name           GLINT 500TX
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0004
-+device.name           Permedia
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0006
-+device.name           GLINT MX
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0007
-+device.name           3D Extreme
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-+device.name           Permedia II 2D+3D
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000a
-+device.name           GLINT R3
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000c
-+device.name           Permedia 4
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000d
-+device.name           R4
-+driver.xfree          4|glint
-
- vendor.id             pci 0x5333
-+vendor.name           S3 Inc.
-
- vendor.id             pci 0x5333
-&device.id             pci 0x5631
-+device.name           86c325 [ViRGE]
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8811
-+device.name           86c764/765 [Trio32/64/64V+]
-+driver.xfree          4|s3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8812
-+device.name           86cM65 [Aurora64V+]
-+driver.xfree          4|s3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8814
-+device.name           86c767 [Trio 64UV+]
-+driver.xfree          4|s3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x883d
-+device.name           86c988 [ViRGE/VX]
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8901
-+device.name           Trio 64V2/DX or /GX
-+driver.xfree          4|s3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8904
-+device.name           Integrated Trio3D
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a01
-+device.name           ViRGE/DX
-+driver.xfree          4|s3virge||||noVBE
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a10
-+device.name           ViRGE/GX2
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a13
-+device.name           86c368 [Trio 3D/2X]
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a20
-+device.name           86c794 [Savage 3D]
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a21
-+device.name           86c795 [Savage 3D/MV]
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-+device.name           Savage 4
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a25
-+device.name           ProSavage PM 133
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a26
-+device.name           ProSavage KM 133
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c01
-+device.name           ViRGE/MX
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c03
-+device.name           ViRGE/MX+MV
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c10
-+device.name           86C270-294 Savage/MX-/IX
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c11
-+device.name           Savage MX
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c12
-+device.name           Savage IX/MV
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c12
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x017f
-+subdevice.name                Savage IX/MV IBM
-+driver.xfree          4|savage||||ShadowStatus
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c13
-+device.name           Savage IX
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c22
-+device.name           SuperSavage/MX 128
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c24
-+device.name           SuperSavage/MX 64
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c26
-+device.name           SuperSavage/MX 64C
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2a
-+device.name           SuperSavage/IX 128 SDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2b
-+device.name           SuperSavage/IX 128 DDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2c
-+device.name           SuperSavage/IX 64 SDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2d
-+device.name           SuperSavage/IX 64 DDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2e
-+device.name           SuperSavage/IXC 64 SDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2f
-+device.name           SuperSavage/IXC 64 DDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d01
-+device.name           S3Twister_P
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d02
-+device.name           Twister_K
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d03
-+device.name           ProSavage DDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d04
-+device.name           ProSavage DDR-K
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x9102
-+device.name           86C410 Savage 2000
-+driver.xfree          4|savage
-
- vendor.id             pci 0x8086
-+vendor.name           Intel Corporation
-
- vendor.id             pci 0x8086
-&device.id             pci 0x00d1
-+device.name           i740_PCI
-+driver.xfree          4|i740
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1132
-+device.name           I815
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2562
-+device.name           i845
-+driver.xfree          4|i810
-+driver.xfree.config   Option "NoDDC"
-+driver.xfree          4|i810|3d||dri
-+driver.xfree.config   Option "NoDDC"
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2572
-+device.name           865 G
-+driver.xfree          4|i810
-+driver.xfree.config   Option "NoDDC"
-+driver.xfree          4|i810|3d||dri
-+driver.xfree.config   Option "NoDDC"
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2582
-+device.name           915 G
-+driver.xfree          4|i810
-+driver.xfree.config   Option "NoDDC"
-+driver.xfree          4|i810|3d||dri
-+driver.xfree.config   Option "NoDDC"
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2592
-+device.name           915 GM
-+driver.xfree          4|i810
-+driver.xfree.config   Option "NoDDC"
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3577
-+device.name           i830
-+driver.xfree          4|i810
-+driver.xfree.config   Option "NoDDC"
-+driver.xfree          4|i810|3d||dri
-+driver.xfree.config   Option "NoDDC"
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3582
-+device.name           855 GM
-+driver.xfree          4|i810
-+driver.xfree.config   Option "NoDDC"
-+driver.xfree          4|i810|3d||dri
-+driver.xfree.config   Option "NoDDC"
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7121
-+device.name           82810 CGC [Chipset Graphics Controller]
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7123
-+device.name           82810-DC100 CGC [Chipset Graphics Controller]
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7125
-+device.name           82810E CGC [Chipset Graphics Controller]
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7800
-+device.name           i740
-+driver.xfree          4|i740
-
- vendor.id             pci 0xedd8
-+vendor.name           ARK Logic Inc
-
- vendor.id             pci 0xedd8
-&device.id             pci 0xa091
-+device.name           1000PV [Stingray]
-+driver.xfree          4|ark
-
- vendor.id             pci 0xedd8
-&device.id             pci 0xa099
-+device.name           2000PV [Stingray]
-+driver.xfree          4|ark
-
- vendor.id             pci 0xedd8
-&device.id             pci 0xa0a1
-+device.name           2000MT
-+driver.xfree          4|ark
-
diff --git a/src/hwinfo/src/ids/src/x11.ia64 b/src/hwinfo/src/ids/src/x11.ia64
deleted file mode 100644 (file)
index 27c7861..0000000
+++ /dev/null
@@ -1,2514 +0,0 @@
- vendor.id             pci 0x1002
-+vendor.name           ATI Technologies Inc
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4136
-+device.name           RS100 4136
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4137
-+device.name           RS100 4137
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4144
-+device.name           R300 AD
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4145
-+device.name           E300 AE
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4146
-+device.name           R300 AF
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4147
-+device.name           R300 AG
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4148
-+device.name           R350 AH
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4149
-+device.name           R350 AI
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x414a
-+device.name           R350 AJ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x414b
-+device.name           R350 AK
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-+device.name           RV350 AP
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4151
-+device.name           RV350 AQ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4152
-+device.name           RV350 AR
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4153
-+device.name           RV350 AS
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4154
-+device.name           RV350 AT
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4155
-+device.name           RV350 AU
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x4154
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4156
-+device.name           RV350 AV
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4157
-+device.name           RV350 AW
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x4154
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4237
-+device.name           RS250 4237
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4242
-+device.name           R200 BB
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4243
-+device.name           R200 BC
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4336
-+device.name           RS100 4336
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4337
-+device.name           RS200 4337
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4354
-+device.name           215CT [Mach64 CT]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4358
-+device.name           210888CX [Mach64 CX]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4437
-+device.name           RS250 4437
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4554
-+device.name           210888ET [Mach64 ET]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-+device.name           3D Rage Pro AGP 1X/2X
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4744
-+device.name           3D Rage Pro AGP 1X
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4749
-+device.name           Mach64 GI
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474c
-+device.name           Rage XC
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474d
-+device.name           Rage XL AGP
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474e
-+device.name           Rage XC AGP
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474f
-+device.name           Rage XL
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4750
-+device.name           3D Rage Pro 215GP
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4751
-+device.name           3D Rage Pro 215GQ
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4752
-+device.name           Mach64 GR
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4753
-+device.name           Mach64 GS
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4754
-+device.name           3D Rage I/II 215GT [Mach64 GT]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4755
-+device.name           3D Rage II+ 215GTB [Mach64 GTB]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4756
-+device.name           3D Rage IIC 215IIC [Mach64 GT IIC]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4757
-+device.name           3D Rage IIC AGP
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4758
-+device.name           210888GX [Mach64 GX]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4759
-+device.name           3D Rage IIC
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x475a
-+device.name           Mach64 GZ
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-+device.name           RV250 If
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0002
-+subdevice.name                Radeon 9000
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4967
-+device.name           RV250 Ig
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-+device.name           Mach64 LB
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0044
-+subdevice.name                3D Rage LT Pro AGP-133
-+driver.xfree          4|ati
-+driver.xfree.config   Option "dpms" "off"
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c44
-+device.name           3D Rage LT Pro AGP-66
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c45
-+device.name           Rage 128 Mobility LE
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c46
-+device.name           Mobility M3 AGP 2x
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c47
-+device.name           3D Rage LT-G 215LG
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c49
-+device.name           Mach64 LI
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-+device.name           3D Rage P/M Mobility AGP 2x
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-&subvendor.id          pci 0x1028
-&subdevice.id          pci 0x00bb
-+subdevice.name                Mach64LM/Dell
-+driver.xfree          4|fbdev
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4e
-+device.name           3D Rage L Mobility AGP 2x
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c50
-+device.name           3D Rage LT Pro
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c51
-+device.name           Mach64 LQ
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c52
-+device.name           3D Rage P/M Mobility
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c53
-+device.name           3D Rage L Mobility
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c57
-+device.name           Radeon LW
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c58
-+device.name           Radeon LX
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c59
-+device.name           Radeon LY
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c5a
-+device.name           Radeon LZ
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c64
-+device.name           RV250 Ld
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c66
-+device.name           RV250 Lf
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c67
-+device.name           RV250 Lg
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4d46
-+device.name           Rage 128 Mobility MF
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4d4c
-+device.name           Rage 128 Mobility ML
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e44
-+device.name           R300 ND
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e44
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0002
-+subdevice.name                Radeon 9700
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e45
-+device.name           R300 NE
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e46
-+device.name           R300 NF
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e47
-+device.name           R300 NG
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e47
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0172
-+subdevice.name                FireGL X1
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e48
-+device.name           R350 NH
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e49
-+device.name           R350 NI
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e4a
-+device.name           R360 NJ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e4b
-+device.name           R350 NK
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e50
-+device.name           RV350 NP
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e51
-+device.name           RV350 NQ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e52
-+device.name           RV350 NR
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e53
-+device.name           RV350 NS
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e54
-+device.name           RV350 NT
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e56
-+device.name           RV350 NV
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5041
-+device.name           Rage 128 PA
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5042
-+device.name           Rage 128 PB
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5043
-+device.name           Rage 128 PC
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5044
-+device.name           Rage 128 PD
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5045
-+device.name           Rage 128 PE
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-+device.name           Rage 128 PF
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5047
-+device.name           Rage 128 PG
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5048
-+device.name           Rage 128 PH
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5049
-+device.name           Rage 128 PI
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504a
-+device.name           Rage 128 PJ
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504b
-+device.name           Rage 128 PK
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504c
-+device.name           Rage 128 PL
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504d
-+device.name           Rage 128 PM
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504e
-+device.name           Rage 128 PN
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504f
-+device.name           Rage 128 PO
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5050
-+device.name           Rage 128 PP
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5051
-+device.name           Rage 128 PQ
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5052
-+device.name           Rage 128 PR
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5053
-+device.name           Rage 128 PS
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5054
-+device.name           Rage 128 PT
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5055
-+device.name           Rage 128 PU
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5056
-+device.name           Rage 128 PV
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5057
-+device.name           Rage 128 PW
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5058
-+device.name           Rage 128 PX
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-+device.name           Radeon QD
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5145
-+device.name           Radeon QE
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5146
-+device.name           Radeon QF
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5147
-+device.name           Radeon QG
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-+device.name           fgl8x00
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0152
-+subdevice.name                FireGL 8800
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0172
-+subdevice.name                FireGL 8700
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514c
-+device.name           R200 QL
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514d
-+device.name           Radeon 9100 QM
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-+device.name           RV200 QW
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x013a
-+subdevice.name                Radeon 7500
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7146
-+subdevice.name                Radeon 7500-7146
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7161
-+subdevice.name                Radeon 7500 LE
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5158
-+device.name           RV200 QX
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-+device.name           Radeon VE
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x010a
-+subdevice.name                Radeon VE (0x010a)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x013a
-+subdevice.name                Radeon VE (0x013a)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x515a
-+device.name           Radeon QZ
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5245
-+device.name           Rage 128 RE
-+driver.xfree          4|r128|||||8,15,16,24
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5246
-+device.name           Rage 128 RF
-+driver.xfree          4|r128|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5247
-+device.name           Rage 128 RG
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524b
-+device.name           Rage 128 RK
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524c
-+device.name           Rage 128 RL
-+driver.xfree          4|r128|||||8,15,16,24
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5345
-+device.name           Rage 128 SE
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5346
-+device.name           Rage 128 SF
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5347
-+device.name           Rage 128 SG
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5348
-+device.name           Rage 128 4x
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534b
-+device.name           Rage 128 SK
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534c
-+device.name           Rage 128 SL
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534d
-+device.name           Rage 128 SM
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534e
-+device.name           Rage 128 SN
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5446
-+device.name           Rage 128 Ultra TF
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x544c
-+device.name           Rage128 TL
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5452
-+device.name           Rage 128 Pro TR (AGP)
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5453
-+device.name           Rage 128 TS
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5454
-+device.name           Rage 128 TT
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5455
-+device.name           Rage 128 TU
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5654
-+device.name           Mach64 VT
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5655
-+device.name           264VT3 [Mach64 VT3]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5656
-+device.name           264VT4 [Mach64 VT4]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5834
-+device.name           RS300 5834
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5835
-+device.name           RS300 5835
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5960
-+device.name           RV280 5960
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5961
-+device.name           RV280 5961
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5962
-+device.name           RV280 5962
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri||16
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-+device.name           RV280 5964
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-&subvendor.id          pci 0x17af
-&subdevice.id          pci 0x2012
-+subdevice.name                Radeon 9200 SE (DH)
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5c61
-+device.name           RV280 5c61
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5c63
-+device.name           RV280 5c63
-+driver.xfree          4|radeon
-+driver.xfree          4|radeon|3d||dri
-
- vendor.id             pci 0x100b
-+vendor.name           National Semiconductor Corporation
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0030
-+device.name           REDCLOUD
-+driver.xfree          4|nsc
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0104
-+device.name           SC1400
-+driver.xfree          4|nsc
-
- vendor.id             pci 0x100b
-&device.id             pci 0x0504
-+device.name           SC1200
-+driver.xfree          4|nsc
-
- vendor.id             pci 0x100c
-+vendor.name           Tseng Labs Inc
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3202
-+device.name           ET4000/W32p rev A
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3205
-+device.name           ET4000/W32p rev B
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3206
-+device.name           ET4000/W32p rev C
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3207
-+device.name           ET4000/W32p rev D
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x100c
-&device.id             pci 0x3208
-+device.name           ET6000
-+driver.xfree          4|tseng
-
- vendor.id             pci 0x1013
-+vendor.name           Cirrus Logic
-
- vendor.id             pci 0x1013
-&device.id             pci 0x0038
-+device.name           GD 7548
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00a0
-+device.name           GD 5430/40 [Alpine]
-+driver.xfree          4|cirrus||||Noaccel
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00a4
-+device.name           GD 5434-4 [Alpine]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00a8
-+device.name           GD 5434-8 [Alpine]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00ac
-+device.name           GD 5436 [Alpine]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00b8
-+device.name           GD 5446
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00bc
-+device.name           GD 5480
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d0
-+device.name           GD 5462
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d4
-+device.name           GD 5464 [Laguna]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d5
-+device.name           GD5464BD
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00d6
-+device.name           GD 5465 [Laguna]
-+driver.xfree          4|cirrus
-
- vendor.id             pci 0x1023
-+vendor.name           Trident Microsystems Inc.
-
- vendor.id             pci 0x1023
-&device.id             pci 0x2100
-+device.name           CyberBlade/xp4
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8400
-+device.name           CyberBlade/i7
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8420
-+device.name           CyberBlade/i7d
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8500
-+device.name           CyberBlade/i1
-+driver.xfree          4|trident||||CyberStretch,sw_cursor
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8520
-+device.name           8520
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8600
-+device.name           8600
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8620
-+device.name           CyberBlade/DSTN/Ai1
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x8820
-+device.name           8820
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9320
-+device.name           9320
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9388
-+device.name           Cyber 9388
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9397
-+device.name           Cyber 9397
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x939a
-+device.name           Cyber 9397DVD
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9420
-+device.name           TGUI 9420
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9440
-+device.name           TGUI 9440
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9520
-+device.name           Cyber 9520
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9525
-+device.name           Cyber 9525
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9540
-+device.name           Cyber 9540
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9660
-+device.name           TGUI 9660/968x/968x
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9750
-+device.name           3DIm`age 975
-+driver.xfree          4|trident|||||8,15,16,24
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9850
-+device.name           3DImage 9850
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9880
-+device.name           9880
-+driver.xfree          4|trident
-
- vendor.id             pci 0x1023
-&device.id             pci 0x9910
-+device.name           9910
-+driver.xfree          4|trident
-
- vendor.id             pci 0x102b
-+vendor.name           Matrox Graphics, Inc.
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0519
-+device.name           MGA 2064W [Millennium]
-+driver.xfree          4|mga||||NoHal|8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051a
-+device.name           MGA 1064SG [Mystique]
-+driver.xfree          4|mga||||NoHal|8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051b
-+device.name           MGA 2164W [Millennium II]
-+driver.xfree          4|mga||||NoHal|8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051f
-+device.name           MGA 2164W [Millennium II] AGP
-+driver.xfree          4|mga||||NoHal
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0520
-+device.name           MGA G200
-+driver.xfree          4|mga|||||8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0521
-+device.name           MGA G200 AGP
-+driver.xfree          4|mga|||||8,16,24
-+driver.xfree.config   VideoRam 8192
-+driver.xfree          4|mga|3d||dri||16
-+driver.xfree.config   VideoRam 8192
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-+device.name           MGA G400 AGP
-+driver.xfree          4|mga
-+driver.xfree          4|mga|3d||dri
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0540
-+subdevice.name                G450-0540
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0541
-+subdevice.name                G450
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0641
-+subdevice.name                Matrox G400 DH-0641
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x07c0
-+subdevice.name                G450 LE
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0d41
-+subdevice.name                G450 DH G450
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x0d43
-+subdevice.name                G450 PCI
-+driver.xfree          4|mga
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x2179
-+subdevice.name                G400 DH
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0525
-&subvendor.id          pci 0x102b
-&subdevice.id          pci 0x23c3
-+subdevice.name                G450-23c3
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1000
-+device.name           MGA G100 [Productiva]
-+driver.xfree          4|mga||||NoHal
-
- vendor.id             pci 0x102b
-&device.id             pci 0x1001
-+device.name           MGA G100 [Productiva] AGP
-+driver.xfree          4|mga||||NoHal|8,16,24
-
- vendor.id             pci 0x102b
-&device.id             pci 0x2527
-+device.name           G550
-+driver.xfree          4|mga
-+driver.xfree          4|mga|3d||dri
-
- vendor.id             pci 0x102c
-+vendor.name           Chips and Technologies
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00c0
-+device.name           F69000 HiQVideo
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00d8
-+device.name           F65545
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00dc
-+device.name           F65548
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e0
-+device.name           65550
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e4
-+device.name           F65554
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00e5
-+device.name           F65555 HiQVPro
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x00f4
-+device.name           F68554 HiQVision
-+driver.xfree          4|chips
-
- vendor.id             pci 0x102c
-&device.id             pci 0x0c30
-+device.name           69030
-+driver.xfree          4|chips
-
- vendor.id             pci 0x1039
-+vendor.name           Silicon Integrated Systems Corp.
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0200
-+device.name           5597/5598 VGA
-+driver.xfree          4|sis|||||16,24
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0300
-+device.name           SIS300
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0310
-+device.name           SiS315H
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0325
-+device.name           SiS315PRO
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x0330
-+device.name           SiS330
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5300
-+device.name           SiS540 PCI Display Adapter
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x5315
-+device.name           SiS550
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6300
-+device.name           SiS630 GUI Accelerator+3D
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6306
-+device.name           6306 3D-AGP
-+driver.xfree          4|sis|||||16
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6325
-+device.name           SiS650
-+driver.xfree          4|sis
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6326
-+device.name           86C326
-+driver.xfree          4|sis|||||8,16,24
-
- vendor.id             pci 0x1039
-&device.id             pci 0x6330
-+device.name           SiS 660
-+driver.xfree          4|sis
-
- vendor.id             pci 0x104c
-+vendor.name           Texas Instruments
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d04
-+device.name           TVP4010 [Permedia]
-+driver.xfree          4|glint
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-+device.name           TVP4020 [Permedia 2]
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x105d
-+vendor.name           Number 9 Computer Company
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2309
-+device.name           Imagine 128
-+driver.xfree          4|i128
-
- vendor.id             pci 0x105d
-&device.id             pci 0x2339
-+device.name           Imagine 128-II
-+driver.xfree          4|i128
-
- vendor.id             pci 0x105d
-&device.id             pci 0x493d
-+device.name           Imagine 128 T2R [Ticket to Ride]
-+driver.xfree          4|i128
-
- vendor.id             pci 0x105d
-&device.id             pci 0x5348
-+device.name           Revolution 4
-+driver.xfree          4|i128
-
- vendor.id             pci 0x1078
-+vendor.name           Cyrix Corporation
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0000
-+device.name           5510
-+driver.xfree          4|cyrix
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0002
-+device.name           5520 [Cognac]
-+driver.xfree          4|cyrix
-
- vendor.id             pci 0x1078
-&device.id             pci 0x0104
-+device.name           5530 Video [Kahlua]
-+driver.xfree          4|cyrix
-
- vendor.id             pci 0x10c8
-+vendor.name           Neomagic Corporation
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0001
-+device.name           NM2070 [MagicGraph NM2070]
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0002
-+device.name           NM2090 [MagicGraph 128V]
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0003
-+device.name           NM2093 [MagicGraph 128ZV]
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0004
-+device.name           NM2160 [MagicGraph 128XD]
-+driver.xfree          4|neomagic|||||8,16
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0005
-+device.name           MagicMedia 256AV
-+driver.xfree          4|neomagic|||||8,16,24
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0006
-+device.name           NM2360 [MagicMedia 256ZX]
-+driver.xfree          4|neomagic|||||16
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0016
-+device.name           256XL(2380)
-+driver.xfree          4|neomagic|||||8,16,24
-+driver.xfree.config   VideoRam 4096
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0025
-+device.name           NM2230
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10c8
-&device.id             pci 0x0083
-+device.name           MagicGraph 128ZV Plus
-+driver.xfree          4|neomagic
-
- vendor.id             pci 0x10de
-+vendor.name           nVidia Corporation
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-+device.name           RIVA TNT
-+driver.xfree          4|nv|||||8,15,16,24
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-+device.name           RIVA TNT2/TNT2 Pro
-+driver.xfree          4|nv|||||8,15,16,24
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0029
-+device.name           RIVA TNT2 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002a
-+device.name           Unknown TNT2
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002c
-+device.name           Vanta/Vanta LT
-+driver.xfree          4|nv|||||8,16,24
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-+device.name           RIVA TNT2 Model 64/Model 64 Pro
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00a0
-+device.name           Aladdin TNT2
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0100
-+device.name           GeForce 256
-+driver.xfree          4|nv|||||8,15,16,24
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0101
-+device.name           GeForce DDR
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0103
-+device.name           Quadro
-+driver.xfree          4|nv|||||8,15,16,24
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0110
-+device.name           GeForce2 MX/MX 400
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0111
-+device.name           GeForce2 MX 100/200
-+driver.xfree          4|nv||||sw_cursor
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0112
-+device.name           GeForce2 Go
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0113
-+device.name           Quadro2 MXR/EX/Go
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0150
-+device.name           GeForce2 GTS/GeForce2 Pro
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0151
-+device.name           GeForce2 Ti
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0152
-+device.name           GeForce2 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0153
-+device.name           Quadro2 Pro
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0170
-+device.name           GeForce4 MX 460
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0171
-+device.name           GeForce4 MX 440
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0172
-+device.name           GeForce4 MX 420
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0173
-+device.name           GeForce4 MX 440-SE
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0174
-+device.name           GeForce4 440 Go
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0175
-+device.name           GeForce4 420 Go
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0176
-+device.name           GeForce4 420 Go 32M
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0176
-&subvendor.id          pci 0x1584
-&subdevice.id          pci 0x2241
-+subdevice.name                GeForce4 Go DH
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d||||16
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0177
-+device.name           GeForce4 460 Go
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0178
-+device.name           Quadro4 550 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0178
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0151
-+subdevice.name                Quadro4 550 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0179
-+device.name           GeForce4 440 Go 64M
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017a
-+device.name           Quadro4 NVS
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017c
-+device.name           Quadro4 500 GoGL
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017d
-+device.name           GeForce4 410 Go 16M
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0181
-+device.name           GeForce4 MX 440 with AGP8X
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0182
-+device.name           GeForce4 MX 440SE with AGP8X
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0183
-+device.name           GeForce4 MX 420 with AGP8X
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0186
-+device.name           GeForce4 448 Go
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0187
-+device.name           GeForce4 488 Go
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0188
-+device.name           Quadro4 580 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0189
-+device.name           GeForce4 MX with AGP8X (Mac)
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018a
-+device.name           Quadro NVS with AGP8X
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018b
-+device.name           Quadro4 380 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01a0
-+device.name           GeForce2 Integrated GPU
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01f0
-+device.name           GeForce4 MX Integrated GPU
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0200
-+device.name           GeForce3
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0201
-+device.name           GeForce3 Ti 200
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0202
-+device.name           GeForce3 Ti 500
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0203
-+device.name           Quadro DCC
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0250
-+device.name           GeForce4 Ti 4600
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0250
-&subvendor.id          pci 0x1462
-&subdevice.id          pci 0x8725
-+subdevice.name                GeForce4 Ti 4600 DH
-+driver.xfree          4|nv
-+driver.xfree          4|nvidia|3d
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0251
-+device.name           GeForce4 Ti 4400
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0252
-+device.name           NV25
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0253
-+device.name           GeForce4 Ti 4200
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0258
-+device.name           Quadro4 900 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0258
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0138
-+subdevice.name                Quadro4 900 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0259
-+device.name           Quadro4 750 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0259
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0139
-+subdevice.name                Quadro4 750 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x025b
-+device.name           Quadro4 700 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x025b
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x013b
-+subdevice.name                Quadro4 700 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0280
-+device.name           GeForce4 Ti 4800
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0281
-+device.name           GeForce4 Ti 4200 with AGP8X
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0282
-+device.name           GeForce4 Ti 4800 SE
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0286
-+device.name           GeForce4 4200 Go
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0288
-+device.name           Quadro4 980 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0288
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0174
-+subdevice.name                Quadro4 980 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0289
-+device.name           Quadro4 780 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x028c
-+device.name           Quadro4 700 GoGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0301
-+device.name           GeForce FX 5800 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0302
-+device.name           GeForce FX 5800
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0308
-+device.name           Quadro FX 2000
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0308
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0183
-+subdevice.name                Quadro FX2000 DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0309
-+device.name           Quadro FX 1000
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0309
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0182
-+subdevice.name                Quadro FX1000 DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0311
-+device.name           GeForce FX 5600 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0312
-+device.name           GeForce FX 5600
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0313
-+device.name           0x0313
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0314
-+device.name           GeForce FX 5600XT
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0316
-+device.name           0x0316
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0317
-+device.name           0x0317
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031a
-+device.name           GeForce FX Go5600
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031b
-+device.name           GeForce FX Go5650
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031c
-+device.name           Quadro FX Go700
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031d
-+device.name           0x031d
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031e
-+device.name           0x031e
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031f
-+device.name           0x031f
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0320
-+device.name           GeForce FX 5200
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0321
-+device.name           GeForce FX 5200 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0322
-+device.name           GeForce FX 5200 (0x0322)
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0323
-+device.name           GeForce FX 5200LE
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0324
-+device.name           GeForce FX Go5200
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0325
-+device.name           GeForce FX Go5250
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0328
-+device.name           GeForce FX Go5200 32M/64M
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0329
-+device.name           GeForce FX 5200 (Mac)
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032a
-+device.name           Quadro NVS 280 PCI
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032b
-+device.name           Quadro FX 500/600 PCI
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032c
-+device.name           GeForce FX Go53xx
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032d
-+device.name           GeForce FX Go5100
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032f
-+device.name           0x032F
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0330
-+device.name           GeForce FX 5900 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0331
-+device.name           GeForce FX 5900
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0332
-+device.name           GeForce FX 5900XT
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0333
-+device.name           GeForce FX 5950 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0333
-&subvendor.id          pci 0x10b0
-&subdevice.id          pci 0x0602
-+subdevice.name                GeForce FX 5950
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0334
-+device.name           GeForce FX 5900ZT
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0338
-+device.name           Quadro FX 3000
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0338
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x01c2
-+subdevice.name                Quadro FX 3000 DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0341
-+device.name           GeForce FX 5700 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0341
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x194c
-+subdevice.name                GeForce FX 5700 Ultra DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0342
-+device.name           GeForce FX 5700
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0343
-+device.name           GeForce FX 5700LE
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0344
-+device.name           GeForce FX 5700VE
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0345
-+device.name           0x0345
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0347
-+device.name           GeForce FX Go5700
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0348
-+device.name           GeForce FX Go5700 (0x0348)
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0349
-+device.name           0x0349
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034b
-+device.name           0x034b
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034c
-+device.name           Quadro FX Go1000
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034e
-+device.name           Quadro FX 1100
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034f
-+device.name           0x034f
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10e0
-+vendor.name           Imstt
-
- vendor.id             pci 0x10e0
-&device.id             pci 0x9128
-+device.name           Imstt128
-+driver.xfree          4|imstt
-
- vendor.id             pci 0x10e0
-&device.id             pci 0x9135
-+device.name           Imstt3D
-+driver.xfree          4|imstt
-
- vendor.id             pci 0x1106
-+vendor.name           VIA Technologies, Inc.
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3022
-+device.name           VIA CLE 3022
-+driver.xfree          4|via
-
- vendor.id             pci 0x1106
-&device.id             pci 0x3122
-+device.name           VIA CLE 3122
-+driver.xfree          4|via
-
- vendor.id             pci 0x1106
-&device.id             pci 0x7205
-+device.name           VIA VT 7205
-+driver.xfree          4|via
-
- vendor.id             pci 0x1142
-+vendor.name           Alliance Semiconductor Corporation
-
- vendor.id             pci 0x1142
-&device.id             pci 0x6422
-+device.name           ProVideo 6422
-+driver.xfree          4|apm
-
- vendor.id             pci 0x1142
-&device.id             pci 0x6424
-+device.name           ProVideo 6424
-+driver.xfree          4|apm
-
- vendor.id             pci 0x1163
-+vendor.name           Rendition
-
- vendor.id             pci 0x1163
-&device.id             pci 0x0001
-+device.name           Verite 1000
-+driver.xfree          4|rendition
-
- vendor.id             pci 0x1163
-&device.id             pci 0x2000
-+device.name           Verite V2000/V2100/V2200
-+driver.xfree          4|rendition
-
- vendor.id             pci 0x121a
-+vendor.name           3Dfx Interactive, Inc.
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-+device.name           Voodoo Banshee
-+driver.xfree          4|tdfx|||||8,16,24
-+driver.xfree          4|tdfx|3d||dri||16
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0005
-+device.name           Voodoo 3
-+driver.xfree          4|tdfx|||||8,16,24
-+driver.xfree          4|tdfx|3d||dri||16
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0009
-+device.name           Voodoo5 5500
-+driver.xfree          4|tdfx|||||8,16,24
-+driver.xfree          4|tdfx|3d||dri||16
-
- vendor.id             pci 0x126f
-+vendor.name           Silicon Motion, Inc.
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0710
-+device.name           SM710 LynxEM
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0712
-+device.name           SM712 LynxEM+
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0720
-+device.name           SM720 Lynx3DM
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0730
-+device.name           SMI 731
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0810
-+device.name           SM810 LynxE
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0820
-+device.name           820
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x126f
-&device.id             pci 0x0910
-+device.name           SM910
-+driver.xfree          4|siliconmotion
-
- vendor.id             pci 0x12d2
-+vendor.name           NVidia / SGS Thomson (Joint Venture)
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-+device.name           Riva128
-+driver.xfree          4|nv|||||15,24
-
- vendor.id             pci 0x15ad
-+vendor.name           VMWare Inc
-
- vendor.id             pci 0x15ad
-&device.id             pci 0x0405
-+device.name           VMWARE0405
-+driver.xfree          4|vmware
-
- vendor.id             pci 0x15ad
-&device.id             pci 0x0710
-+device.name           VMWARE0710
-+driver.xfree          4|vmware
-
- vendor.id             pci 0x3d3d
-+vendor.name           3DLabs
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0002
-+device.name           GLINT 500TX
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0004
-+device.name           Permedia
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0006
-+device.name           GLINT MX
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0007
-+device.name           3D Extreme
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-+device.name           Permedia II 2D+3D
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000a
-+device.name           GLINT R3
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000c
-+device.name           Permedia 4
-+driver.xfree          4|glint
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x000d
-+device.name           R4
-+driver.xfree          4|glint
-
- vendor.id             pci 0x5333
-+vendor.name           S3 Inc.
-
- vendor.id             pci 0x5333
-&device.id             pci 0x5631
-+device.name           86c325 [ViRGE]
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8811
-+device.name           86c764/765 [Trio32/64/64V+]
-+driver.xfree          4|s3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8812
-+device.name           86cM65 [Aurora64V+]
-+driver.xfree          4|s3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8814
-+device.name           86c767 [Trio 64UV+]
-+driver.xfree          4|s3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x883d
-+device.name           86c988 [ViRGE/VX]
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8901
-+device.name           Trio 64V2/DX or /GX
-+driver.xfree          4|s3
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8904
-+device.name           Integrated Trio3D
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a01
-+device.name           ViRGE/DX
-+driver.xfree          4|s3virge||||noVBE
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a10
-+device.name           ViRGE/GX2
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a13
-+device.name           86c368 [Trio 3D/2X]
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a20
-+device.name           86c794 [Savage 3D]
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a21
-+device.name           86c795 [Savage 3D/MV]
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a22
-+device.name           Savage 4
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a25
-+device.name           ProSavage PM 133
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8a26
-+device.name           ProSavage KM 133
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c01
-+device.name           ViRGE/MX
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c03
-+device.name           ViRGE/MX+MV
-+driver.xfree          4|s3virge
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c10
-+device.name           86C270-294 Savage/MX-/IX
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c11
-+device.name           Savage MX
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c12
-+device.name           Savage IX/MV
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c12
-&subvendor.id          pci 0x1014
-&subdevice.id          pci 0x017f
-+subdevice.name                Savage IX/MV IBM
-+driver.xfree          4|savage||||ShadowStatus
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c13
-+device.name           Savage IX
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c22
-+device.name           SuperSavage/MX 128
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c24
-+device.name           SuperSavage/MX 64
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c26
-+device.name           SuperSavage/MX 64C
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2a
-+device.name           SuperSavage/IX 128 SDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2b
-+device.name           SuperSavage/IX 128 DDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2c
-+device.name           SuperSavage/IX 64 SDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2d
-+device.name           SuperSavage/IX 64 DDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2e
-+device.name           SuperSavage/IXC 64 SDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8c2f
-+device.name           SuperSavage/IXC 64 DDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d01
-+device.name           S3Twister_P
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d02
-+device.name           Twister_K
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d03
-+device.name           ProSavage DDR
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x8d04
-+device.name           ProSavage DDR-K
-+driver.xfree          4|savage
-
- vendor.id             pci 0x5333
-&device.id             pci 0x9102
-+device.name           86C410 Savage 2000
-+driver.xfree          4|savage
-
- vendor.id             pci 0x8086
-+vendor.name           Intel Corporation
-
- vendor.id             pci 0x8086
-&device.id             pci 0x00d1
-+device.name           i740_PCI
-+driver.xfree          4|i740
-
- vendor.id             pci 0x8086
-&device.id             pci 0x1132
-+device.name           I815
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16
-+driver.xfree.config   VideoRam 16384
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2562
-+device.name           i845
-+driver.xfree          4|i810
-+driver.xfree          4|i810|3d||dri||16
-+driver.xfree.config   VideoRam 16384
-
- vendor.id             pci 0x8086
-&device.id             pci 0x2572
-+device.name           865 G
-+driver.xfree          4|i810
-+driver.xfree          4|i810|3d||dri||16
-+driver.xfree.config   VideoRam 16384
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3577
-+device.name           i830
-+driver.xfree          4|i810
-+driver.xfree          4|i810|3d||dri||16
-+driver.xfree.config   VideoRam 16384
-
- vendor.id             pci 0x8086
-&device.id             pci 0x3582
-+device.name           855 GM
-+driver.xfree          4|i810
-+driver.xfree          4|i810|3d||dri||16
-+driver.xfree.config   VideoRam 16384
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7121
-+device.name           82810 CGC [Chipset Graphics Controller]
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16
-+driver.xfree.config   VideoRam 16384
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7123
-+device.name           82810-DC100 CGC [Chipset Graphics Controller]
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16
-+driver.xfree.config   VideoRam 16384
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7125
-+device.name           82810E CGC [Chipset Graphics Controller]
-+driver.xfree          4|i810|||||8,16,24
-+driver.xfree          4|i810|3d||dri||16
-+driver.xfree.config   VideoRam 16384
-
- vendor.id             pci 0x8086
-&device.id             pci 0x7800
-+device.name           i740
-+driver.xfree          4|i740
-
- vendor.id             pci 0xedd8
-+vendor.name           ARK Logic Inc
-
- vendor.id             pci 0xedd8
-&device.id             pci 0xa091
-+device.name           1000PV [Stingray]
-+driver.xfree          4|ark
-
- vendor.id             pci 0xedd8
-&device.id             pci 0xa099
-+device.name           2000PV [Stingray]
-+driver.xfree          4|ark
-
- vendor.id             pci 0xedd8
-&device.id             pci 0xa0a1
-+device.name           2000MT
-+driver.xfree          4|ark
-
diff --git a/src/hwinfo/src/ids/src/x11.ppc b/src/hwinfo/src/ids/src/x11.ppc
deleted file mode 100644 (file)
index 0dc17c4..0000000
+++ /dev/null
@@ -1,1464 +0,0 @@
- vendor.id             pci 0x1002
-+vendor.name           ATI Technologies Inc
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4136
-+device.name           RS100 4136
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4137
-+device.name           RS100 4137
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4144
-+device.name           R300 AD
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4145
-+device.name           E300 AE
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4146
-+device.name           R300 AF
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4147
-+device.name           R300 AG
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4148
-+device.name           R350 AH
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4149
-+device.name           R350 AI
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x414a
-+device.name           R350 AJ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x414b
-+device.name           R350 AK
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4150
-+device.name           RV350 AP
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4151
-+device.name           RV350 AQ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4152
-+device.name           RV350 AR
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4153
-+device.name           RV350 AS
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4154
-+device.name           RV350 AT
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4155
-+device.name           RV350 AU
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x4154
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4156
-+device.name           RV350 AV
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4157
-+device.name           RV350 AW
-+driver.xfree          4|radeon
-+driver.xfree.config   ChipID 0x4154
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4237
-+device.name           RS250 4237
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4242
-+device.name           R200 BB
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4243
-+device.name           R200 BC
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4336
-+device.name           RS100 4336
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4337
-+device.name           RS200 4337
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4354
-+device.name           215CT [Mach64 CT]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4358
-+device.name           210888CX [Mach64 CX]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4437
-+device.name           RS250 4437
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4554
-+device.name           210888ET [Mach64 ET]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4742
-+device.name           3D Rage Pro AGP 1X/2X
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4744
-+device.name           3D Rage Pro AGP 1X
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4749
-+device.name           Mach64 GI
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474c
-+device.name           Rage XC
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474d
-+device.name           Rage XL AGP
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474e
-+device.name           Rage XC AGP
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474f
-+device.name           Rage XL
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4750
-+device.name           3D Rage Pro 215GP
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4751
-+device.name           3D Rage Pro 215GQ
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4752
-+device.name           Mach64 GR
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4753
-+device.name           Mach64 GS
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4754
-+device.name           3D Rage I/II 215GT [Mach64 GT]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4755
-+device.name           3D Rage II+ 215GTB [Mach64 GTB]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4756
-+device.name           3D Rage IIC 215IIC [Mach64 GT IIC]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4757
-+device.name           3D Rage IIC AGP
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4758
-+device.name           210888GX [Mach64 GX]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4759
-+device.name           3D Rage IIC
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x475a
-+device.name           Mach64 GZ
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-+device.name           RV250 If
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4966
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0002
-+subdevice.name                Radeon 9000
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4967
-+device.name           RV250 Ig
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-+device.name           Mach64 LB
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c42
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0044
-+subdevice.name                3D Rage LT Pro AGP-133
-+driver.xfree          4|ati
-+driver.xfree.config   Option "dpms" "off"
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c44
-+device.name           3D Rage LT Pro AGP-66
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c45
-+device.name           Rage 128 Mobility LE
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c46
-+device.name           Mobility M3 AGP 2x
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri|dpms,usefbdev|16||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c47
-+device.name           3D Rage LT-G 215LG
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c49
-+device.name           Mach64 LI
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4d
-+device.name           3D Rage P/M Mobility AGP 2x
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c4e
-+device.name           3D Rage L Mobility AGP 2x
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c50
-+device.name           3D Rage LT Pro
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c51
-+device.name           Mach64 LQ
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c52
-+device.name           3D Rage P/M Mobility
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c53
-+device.name           3D Rage L Mobility
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c57
-+device.name           Radeon LW
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c58
-+device.name           Radeon LX
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c59
-+device.name           Radeon LY
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c5a
-+device.name           Radeon LZ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c64
-+device.name           RV250 Ld
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c66
-+device.name           RV250 Lf
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c67
-+device.name           RV250 Lg
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4d46
-+device.name           Rage 128 Mobility MF
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4d4c
-+device.name           Rage 128 Mobility ML
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e44
-+device.name           R300 ND
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e44
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0002
-+subdevice.name                Radeon 9700
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e45
-+device.name           R300 NE
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e46
-+device.name           R300 NF
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e47
-+device.name           R300 NG
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e47
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0172
-+subdevice.name                FireGL X1
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e48
-+device.name           R350 NH
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e49
-+device.name           R350 NI
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e4a
-+device.name           R360 NJ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e4b
-+device.name           R350 NK
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e50
-+device.name           RV350 NP
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e51
-+device.name           RV350 NQ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e52
-+device.name           RV350 NR
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e53
-+device.name           RV350 NS
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e54
-+device.name           RV350 NT
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4e56
-+device.name           RV350 NV
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5041
-+device.name           Rage 128 PA
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5042
-+device.name           Rage 128 PB
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5043
-+device.name           Rage 128 PC
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5044
-+device.name           Rage 128 PD
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5045
-+device.name           Rage 128 PE
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5046
-+device.name           Rage 128 PF
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri|dpms,usefbdev|16,24||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5047
-+device.name           Rage 128 PG
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5048
-+device.name           Rage 128 PH
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5049
-+device.name           Rage 128 PI
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504a
-+device.name           Rage 128 PJ
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504b
-+device.name           Rage 128 PK
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504c
-+device.name           Rage 128 PL
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504d
-+device.name           Rage 128 PM
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504e
-+device.name           Rage 128 PN
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x504f
-+device.name           Rage 128 PO
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5050
-+device.name           Rage 128 PP
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5051
-+device.name           Rage 128 PQ
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5052
-+device.name           Rage 128 PR
-+driver.xfree          4|r128
-+driver.xfree          4|r128|3d||dri|dpms,usefbdev|16||switch2xf86_glx
-+driver.xfree.config   ati_r128_rl
-+requires              xf86_glx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5053
-+device.name           Rage 128 PS
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5054
-+device.name           Rage 128 PT
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5055
-+device.name           Rage 128 PU
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5056
-+device.name           Rage 128 PV
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5057
-+device.name           Rage 128 PW
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5058
-+device.name           Rage 128 PX
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5144
-+device.name           Radeon QD
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5145
-+device.name           Radeon QE
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5146
-+device.name           Radeon QF
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5147
-+device.name           Radeon QG
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-+device.name           fgl8x00
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0152
-+subdevice.name                FireGL 8800
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5148
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x0172
-+subdevice.name                FireGL 8700
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514c
-+device.name           R200 QL
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x514d
-+device.name           Radeon 9100 QM
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-+device.name           RV200 QW
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x013a
-+subdevice.name                Radeon 7500
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7146
-+subdevice.name                Radeon 7500-7146
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5157
-&subvendor.id          pci 0x174b
-&subdevice.id          pci 0x7161
-+subdevice.name                Radeon 7500 LE
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5158
-+device.name           RV200 QX
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5159
-+device.name           Radeon VE
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x515a
-+device.name           Radeon QZ
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5245
-+device.name           Rage 128 RE
-+driver.xfree          4|r128|||||8,15,16,24
-+driver.xfree          4|r128|3d||dri|dpms,usefbdev|16,24||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5246
-+device.name           Rage 128 RF
-+driver.xfree          4|r128|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5247
-+device.name           Rage 128 RG
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524b
-+device.name           Rage 128 RK
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x524c
-+device.name           Rage 128 RL
-+driver.xfree          4|r128|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5345
-+device.name           Rage 128 SE
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5346
-+device.name           Rage 128 SF
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5347
-+device.name           Rage 128 SG
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5348
-+device.name           Rage 128 4x
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534b
-+device.name           Rage 128 SK
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534c
-+device.name           Rage 128 SL
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534d
-+device.name           Rage 128 SM
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x534e
-+device.name           Rage 128 SN
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5446
-+device.name           Rage 128 Ultra TF
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x544c
-+device.name           Rage128 TL
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5452
-+device.name           Rage 128 Pro TR (AGP)
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5453
-+device.name           Rage 128 TS
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5454
-+device.name           Rage 128 TT
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5455
-+device.name           Rage 128 TU
-+driver.xfree          4|r128
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5654
-+device.name           Mach64 VT
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5655
-+device.name           264VT3 [Mach64 VT3]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5656
-+device.name           264VT4 [Mach64 VT4]
-+driver.xfree          4|ati
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5834
-+device.name           RS300 5834
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5835
-+device.name           RS300 5835
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5960
-+device.name           RV280 5960
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5961
-+device.name           RV280 5961
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5962
-+device.name           RV280 5962
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-+device.name           RV280 5964
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5964
-&subvendor.id          pci 0x17af
-&subdevice.id          pci 0x2012
-+subdevice.name                Radeon 9200 SE (DH)
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5c61
-+device.name           RV280 5c61
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5c63
-+device.name           RV280 5c63
-+driver.xfree          4|radeon
-
- vendor.id             pci 0x1013
-+vendor.name           Cirrus Logic
-
- vendor.id             pci 0x1013
-&device.id             pci 0x00b8
-+device.name           GD 5446
-+driver.xfree          4|fbdev||||dpms,usefbdev
-
- vendor.id             pci 0x102b
-+vendor.name           Matrox Graphics, Inc.
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0519
-+device.name           MGA 2064W [Millennium]
-+driver.xfree          4|mga||||DDCInfo,dpms,hw_cursor|8,15,16,24,32
-
- vendor.id             pci 0x102b
-&device.id             pci 0x051a
-+device.name           MGA 1064SG [Mystique]
-+driver.xfree          4|fbdev||||dpms,hw_cursor|16,24
-+driver.xfree.config   DacSpeed     200
-
- vendor.id             pci 0x102b
-&device.id             pci 0x0520
-+device.name           MGA G200
-+driver.xfree          4|fbdev||||dpms,hw_cursor|16,24
-+driver.xfree.config   DacSpeed 200 200 200 200
-
- vendor.id             pci 0x10de
-+vendor.name           nVidia Corporation
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0020
-+device.name           RIVA TNT
-+driver.xfree          4|nv|||||8,15,16,24
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0028
-+device.name           RIVA TNT2/TNT2 Pro
-+driver.xfree          4|nv|||||8,15,16,24
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0029
-+device.name           RIVA TNT2 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002a
-+device.name           Unknown TNT2
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002c
-+device.name           Vanta/Vanta LT
-+driver.xfree          4|nv|||||8,16,24
-
- vendor.id             pci 0x10de
-&device.id             pci 0x002d
-+device.name           RIVA TNT2 Model 64/Model 64 Pro
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x00a0
-+device.name           Aladdin TNT2
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0100
-+device.name           GeForce 256
-+driver.xfree          4|nv|||||8,15,16,24
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0101
-+device.name           GeForce DDR
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0103
-+device.name           Quadro
-+driver.xfree          4|nv|||||8,15,16,24
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0110
-+device.name           GeForce2 MX/MX 400
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0111
-+device.name           GeForce2 MX 100/200
-+driver.xfree          4|nv||||sw_cursor
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0112
-+device.name           GeForce2 Go
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0113
-+device.name           Quadro2 MXR/EX/Go
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0150
-+device.name           GeForce2 GTS/GeForce2 Pro
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0151
-+device.name           GeForce2 Ti
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0152
-+device.name           GeForce2 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0153
-+device.name           Quadro2 Pro
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0170
-+device.name           GeForce4 MX 460
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0171
-+device.name           GeForce4 MX 440
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0172
-+device.name           GeForce4 MX 420
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0173
-+device.name           GeForce4 MX 440-SE
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0174
-+device.name           GeForce4 440 Go
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0175
-+device.name           GeForce4 420 Go
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0176
-+device.name           GeForce4 420 Go 32M
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0177
-+device.name           GeForce4 460 Go
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0178
-+device.name           Quadro4 550 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0178
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0151
-+subdevice.name                Quadro4 550 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0179
-+device.name           GeForce4 440 Go 64M
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017a
-+device.name           Quadro4 NVS
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017c
-+device.name           Quadro4 500 GoGL
-+driver.xfree          4|nv
-+driver.xfree.config   #Option "CrtcNumber" "0"
-+driver.xfree.config   #Option "CrtcNumber" "1"
-
- vendor.id             pci 0x10de
-&device.id             pci 0x017d
-+device.name           GeForce4 410 Go 16M
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0181
-+device.name           GeForce4 MX 440 with AGP8X
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0182
-+device.name           GeForce4 MX 440SE with AGP8X
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0183
-+device.name           GeForce4 MX 420 with AGP8X
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0186
-+device.name           GeForce4 448 Go
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0187
-+device.name           GeForce4 488 Go
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0188
-+device.name           Quadro4 580 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0189
-+device.name           GeForce4 MX with AGP8X (Mac)
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018a
-+device.name           Quadro NVS with AGP8X
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x018b
-+device.name           Quadro4 380 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01a0
-+device.name           GeForce2 Integrated GPU
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x01f0
-+device.name           GeForce4 MX Integrated GPU
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0200
-+device.name           GeForce3
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0201
-+device.name           GeForce3 Ti 200
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0202
-+device.name           GeForce3 Ti 500
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0203
-+device.name           Quadro DCC
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0250
-+device.name           GeForce4 Ti 4600
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0251
-+device.name           GeForce4 Ti 4400
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0252
-+device.name           NV25
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0253
-+device.name           GeForce4 Ti 4200
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0258
-+device.name           Quadro4 900 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0258
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0138
-+subdevice.name                Quadro4 900 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0259
-+device.name           Quadro4 750 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0259
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0139
-+subdevice.name                Quadro4 750 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x025b
-+device.name           Quadro4 700 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x025b
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x013b
-+subdevice.name                Quadro4 700 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0280
-+device.name           GeForce4 Ti 4800
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0281
-+device.name           GeForce4 Ti 4200 with AGP8X
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0282
-+device.name           GeForce4 Ti 4800 SE
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0286
-+device.name           GeForce4 4200 Go
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0288
-+device.name           Quadro4 980 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0288
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0174
-+subdevice.name                Quadro4 980 XGL DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0289
-+device.name           Quadro4 780 XGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x028c
-+device.name           Quadro4 700 GoGL
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0301
-+device.name           GeForce FX 5800 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0302
-+device.name           GeForce FX 5800
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0308
-+device.name           Quadro FX 2000
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0308
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0183
-+subdevice.name                Quadro FX2000 DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0309
-+device.name           Quadro FX 1000
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0309
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x0182
-+subdevice.name                Quadro FX1000 DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0311
-+device.name           GeForce FX 5600 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0312
-+device.name           GeForce FX 5600
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0313
-+device.name           0x0313
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0314
-+device.name           GeForce FX 5600XT
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0316
-+device.name           0x0316
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0317
-+device.name           0x0317
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031a
-+device.name           GeForce FX Go5600
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031b
-+device.name           GeForce FX Go5650
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031c
-+device.name           Quadro FX Go700
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031d
-+device.name           0x031d
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031e
-+device.name           0x031e
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x031f
-+device.name           0x031f
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0320
-+device.name           GeForce FX 5200
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0321
-+device.name           GeForce FX 5200 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0322
-+device.name           GeForce FX 5200 (0x0322)
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0323
-+device.name           GeForce FX 5200LE
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0324
-+device.name           GeForce FX Go5200
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0325
-+device.name           GeForce FX Go5250
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0328
-+device.name           GeForce FX Go5200 32M/64M
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0329
-+device.name           GeForce FX 5200 (Mac)
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032a
-+device.name           Quadro NVS 280 PCI
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032b
-+device.name           Quadro FX 500/600 PCI
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032c
-+device.name           GeForce FX Go53xx
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032d
-+device.name           GeForce FX Go5100
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x032f
-+device.name           0x032F
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0330
-+device.name           GeForce FX 5900 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0331
-+device.name           GeForce FX 5900
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0332
-+device.name           GeForce FX 5900XT
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0333
-+device.name           GeForce FX 5950 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0333
-&subvendor.id          pci 0x10b0
-&subdevice.id          pci 0x0602
-+subdevice.name                GeForce FX 5950
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0334
-+device.name           GeForce FX 5900ZT
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0338
-+device.name           Quadro FX 3000
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0338
-&subvendor.id          pci 0x10de
-&subdevice.id          pci 0x01c2
-+subdevice.name                Quadro FX 3000 DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0341
-+device.name           GeForce FX 5700 Ultra
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0341
-&subvendor.id          pci 0x270f
-&subdevice.id          pci 0x194c
-+subdevice.name                GeForce FX 5700 Ultra DH
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0342
-+device.name           GeForce FX 5700
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0343
-+device.name           GeForce FX 5700LE
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0344
-+device.name           GeForce FX 5700VE
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0345
-+device.name           0x0345
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0347
-+device.name           GeForce FX Go5700
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0348
-+device.name           GeForce FX Go5700 (0x0348)
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x0349
-+device.name           0x0349
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034b
-+device.name           0x034b
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034c
-+device.name           Quadro FX Go1000
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034e
-+device.name           Quadro FX 1100
-+driver.xfree          4|nv
-
- vendor.id             pci 0x10de
-&device.id             pci 0x034f
-+device.name           0x034f
-+driver.xfree          4|nv
-
- vendor.id             pci 0x121a
-+vendor.name           3Dfx Interactive, Inc.
-
- vendor.id             pci 0x121a
-&device.id             pci 0x0003
-+device.name           Voodoo Banshee
-+driver.xfree          4|fbdev|||||24
-
- vendor.id             pci 0x12d2
-+vendor.name           NVidia / SGS Thomson (Joint Venture)
-
- vendor.id             pci 0x12d2
-&device.id             pci 0x0018
-+device.name           Riva128
-+driver.xfree          4|nv|||||15,24
-
diff --git a/src/hwinfo/src/ids/src/x11.ppc.special b/src/hwinfo/src/ids/src/x11.ppc.special
deleted file mode 100644 (file)
index d9112c5..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# x11 ppc data not in CDB
-
- vendor.id             pci 0x106b
-&device.id             pci 0x0003
-+driver.xfree          4|fbdev
-
- vendor.id             special 0x0401
-&device.id             special 0x3000
-+driver.xfree          4|fbdev
-
- vendor.id             special 0x0401
-&device.id             special 0x3001
-+driver.xfree          3|FBDev
-
diff --git a/src/hwinfo/src/ids/src/x11.sparc b/src/hwinfo/src/ids/src/x11.sparc
deleted file mode 100644 (file)
index 0ea811c..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
- vendor.id             pci 0x1002
-+vendor.name           ATI Technologies Inc
-
- vendor.id             pci 0x1002
-&device.id             pci 0x0084
-+device.name           RageIIC
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x0088
-+device.name           Mach64
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4158
-+device.name           68800AX [Mach32]
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4354
-+device.name           215CT [Mach64 CT]
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4358
-+device.name           210888CX [Mach64 CX]
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4554
-+device.name           210888ET [Mach64 ET]
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4654
-+device.name           Mach64 VT
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4747
-+device.name           3D Rage Pro
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474c
-+device.name           Rage XC
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x474f
-+device.name           Rage XL
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4750
-+device.name           3D Rage Pro 215GP
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4751
-+device.name           3D Rage Pro 215GQ
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4754
-+device.name           3D Rage I/II 215GT [Mach64 GT]
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4755
-+device.name           3D Rage II+ 215GTB [Mach64 GTB]
-+driver.xfree          4|ati|||||8,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4756
-+device.name           3D Rage IIC 215IIC [Mach64 GT IIC]
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4758
-+device.name           210888GX [Mach64 GX]
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4759
-+device.name           3D Rage IIC
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c47
-+device.name           3D Rage LT-G 215LG
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c50
-+device.name           3D Rage LT Pro
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c52
-+device.name           3D Rage P/M Mobility
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c53
-+device.name           3D Rage L Mobility
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x4c54
-+device.name           264LT [Mach64 LT]
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5354
-+device.name           Mach 64 VT
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5354
-&subvendor.id          pci 0x1002
-&subdevice.id          pci 0x5654
-+subdevice.name                Mach 64 reference
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5655
-+device.name           264VT3 [Mach64 VT3]
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x1002
-&device.id             pci 0x5656
-+device.name           264VT4 [Mach64 VT4]
-+driver.xfree          4|ati|||||8,15,16,24
-
- vendor.id             pci 0x104c
-+vendor.name           Texas Instruments
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d04
-+device.name           TVP4010 [Permedia]
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x104c
-&device.id             pci 0x3d07
-+device.name           TVP4020 [Permedia 2]
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x3d3d
-+vendor.name           3DLabs
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0004
-+device.name           Permedia
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0007
-+device.name           3D Extreme
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             pci 0x3d3d
-&device.id             pci 0x0009
-+device.name           Permedia II 2D+3D
-+driver.xfree          4|glint|||||8,15,16,24
-
- vendor.id             special 0x4001
-+vendor.name           Sun Microsystems
-
- vendor.id             special 0x4001
-&device.id             special 0x0001
-+device.name           Sun|Monochrome (bwtwo)
-+driver.xfree          4|sunbw2
-
- vendor.id             special 0x4001
-&device.id             special 0x0002
-+device.name           Sun|Color3 (cgthree)
-+driver.xfree          4|suncg3|||||8
-
- vendor.id             special 0x4001
-&device.id             special 0x0008
-+device.name           Sun|Double width GX (cgsix)
-+driver.xfree          4|suncg6|||||8
-
- vendor.id             special 0x4001
-&device.id             special 0x0009
-+device.name           Sun|Single width GX (cgsix)
-+driver.xfree          4|suncg6|||||8
-
- vendor.id             special 0x4001
-&device.id             special 0x000a
-+device.name           Sun|Turbo GX with 1M VSIMM (cgsix)
-+driver.xfree          4|suncg6|||||8
-
- vendor.id             special 0x4001
-&device.id             special 0x000b
-+device.name           Sun|Turbo GX Plus (cgsix)
-+driver.xfree          4|suncg6|||||8
-
- vendor.id             special 0x4001
-&device.id             special 0x000c
-+device.name           Sun|Turbo GX (cgsix)
-+driver.xfree          4|suncg6
-
- vendor.id             special 0x4001
-&device.id             special 0x000d
-+device.name           Sun|Unknown GX (cgsix)
-+driver.xfree          4|suncg6|||||8
-
- vendor.id             special 0x4001
-&device.id             special 0x000e
-+device.name           Sun|SX with 4M VSIMM (cgfourteen)
-+driver.xfree          4|suncg14|||||32
-
- vendor.id             special 0x4001
-&device.id             special 0x000f
-+device.name           Sun|SX with 8M VSIMM (cgfourteen)
-+driver.xfree          4|suncg14|||||32
-
- vendor.id             special 0x4001
-&device.id             special 0x0010
-+device.name           Sun|SX (cgfourteen)
-+driver.xfree          4|suncg14|||||32
-
- vendor.id             special 0x4001
-&device.id             special 0x0011
-+device.name           Sun|ZX or Turbo ZX (leo)
-+driver.xfree          4|sunleo|||||32
-
- vendor.id             special 0x4001
-&device.id             special 0x0012
-+device.name           Sun|Turbo ZX (leo)
-+driver.xfree          4|sunleo|||||32
-
- vendor.id             special 0x4001
-&device.id             special 0x0013
-+device.name           Sun|TCX (8bit)
-+driver.xfree          4|suntcx|||||8
-
- vendor.id             special 0x4001
-&device.id             special 0x0014
-+device.name           Sun|TCX (S24)
-+driver.xfree          4|suntcx
-
- vendor.id             special 0x4001
-&device.id             special 0x0015
-+device.name           Sun|Elite3D-M6 Horizontal (afb)
-+driver.xfree          4|sunffb|||||24
-
- vendor.id             special 0x4001
-&device.id             special 0x0016
-+device.name           Sun|Elite3D (afb)
-+driver.xfree          4|sunffb|||||24
-
- vendor.id             special 0x4001
-&device.id             special 0x0017
-+device.name           Sun|FFB 67MHz Creator (ffb)
-+driver.xfree          4|sunffb|||||8,24
-+driver.xfree          4|sunffb|3d||dri||8,24||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             special 0x4001
-&device.id             special 0x0018
-+device.name           Sun|FFB 67MHz Creator 3D (ffb)
-+driver.xfree          4|sunffb|||||8,24
-+driver.xfree          4|sunffb|3d||dri||8,24||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             special 0x4001
-&device.id             special 0x0019
-+device.name           Sun|FFB 75MHz Creator 3D (ffb)
-+driver.xfree          4|sunffb|||||8,24
-+driver.xfree          4|sunffb|3d||dri||8,24||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             special 0x4001
-&device.id             special 0x001a
-+device.name           Sun|FFB2 Vertical Creator (ffb)
-+driver.xfree          4|sunffb|||||8,24
-+driver.xfree          4|sunffb|3d||dri||8,24||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             special 0x4001
-&device.id             special 0x001b
-+device.name           Sun|FFB2 Vertical Creator 3D (ffb)
-+driver.xfree          4|sunffb|||||8,24
-+driver.xfree          4|sunffb|3d||dri||8,24||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             special 0x4001
-&device.id             special 0x001c
-+device.name           Sun|FFB2+ Vertical Creator (ffb)
-+driver.xfree          4|sunffb|||||8,24
-+driver.xfree          4|sunffb|3d||dri||8,24||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             special 0x4001
-&device.id             special 0x001d
-+device.name           Sun|FFB2+ Vertical Creator 3D (ffb)
-+driver.xfree          4|sunffb|||||8,24
-+driver.xfree          4|sunffb|3d||dri||8,24||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             special 0x4001
-&device.id             special 0x001e
-+device.name           Sun|FFB2 Horizontal Creator (ffb)
-+driver.xfree          4|sunffb|||||8,24
-+driver.xfree          4|sunffb|3d||dri||8,24||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             special 0x4001
-&device.id             special 0x001f
-+device.name           Sun|FFB2 Horizontal Creator 3D (ffb)
-+driver.xfree          4|sunffb|||||8,24
-+driver.xfree          4|sunffb|3d||dri||8,24||switch2xf86_glx
-+requires              xf86_glx
-
- vendor.id             special 0x4001
-&device.id             special 0x0020
-+device.name           Sun|FFB [unknown type] (ffb)
-+driver.xfree          4|sunffb|||||8,24
-+driver.xfree          4|sunffb|3d||dri||8,24||switch2xf86_glx
-+requires              xf86_glx
-
diff --git a/src/hwinfo/src/ids/update_x11 b/src/hwinfo/src/ids/update_x11
deleted file mode 100755 (executable)
index a3c4243..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#! /usr/bin/perl
-
-mkdir "tmp", 0755;
-
-system "./cdb_x11";
-
-unlink "tmp/x11.hwinfo.all", "tmp/x11.hwinfo.s390";
-
-chdir "tmp";
-
-for (<x11.hwinfo.*>) {
-  chomp;
-  $in = $_;
-  s/hwinfo\.//;
-  $out = $_;
-  system "../convert_hd $in";
-  system "../check_hd --sort --check --join-keys-first --split --log=$out.log --out=$out hd.ids";
-  rename $out, "../src/$out";
-}
-
-chdir "..";
-
-system "rm -rf tmp";
diff --git a/src/hwinfo/src/int10/AsmMacros.h b/src/hwinfo/src/int10/AsmMacros.h
deleted file mode 100644 (file)
index 68f9558..0000000
+++ /dev/null
@@ -1,458 +0,0 @@
-/* $XConsortium: AsmMacros.h /main/13 1996/10/25 11:33:12 kaleb $ */
-/*
- * (c) Copyright 1993,1994 by David Wexelblat <dwex@xfree86.org>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a 
- * copy of this software and associated documentation files (the "Software"), 
- * to deal in the Software without restriction, including without limitation 
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- * and/or sell copies of the Software, and to permit persons to whom the 
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL 
- * DAVID WEXELBLAT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 
- * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
- * SOFTWARE.
- * 
- * Except as contained in this notice, the name of David Wexelblat shall not be
- * used in advertising or otherwise to promote the sale, use or other dealings
- * in this Software without prior written authorization from David Wexelblat.
- *
- */
-/*
- * Copyright 1997
- * Digital Equipment Corporation. All rights reserved.
- * This software is furnished under license and may be used and copied only in 
- * accordance with the following terms and conditions.  Subject to these 
- * conditions, you may download, copy, install, use, modify and distribute 
- * this software in source and/or binary form. No title or ownership is 
- * transferred hereby.
- *
- * 1) Any source code used, modified or distributed must reproduce and retain 
- *    this copyright notice and list of conditions as they appear in the source
- *    file.
- *
- * 2) No right is granted to use any trade name, trademark, or logo of Digital 
- *    Equipment Corporation. Neither the "Digital Equipment Corporation" name 
- *    nor any trademark or logo of Digital Equipment Corporation may be used 
- *    to endorse or promote products derived from this software without the 
- *    prior written permission of Digital Equipment Corporation.
- *
- * 3) This software is provided "AS-IS" and any express or implied warranties, 
- *    including but not limited to, any implied warranties of merchantability, 
- *    fitness for a particular purpose, or non-infringement are disclaimed. In 
- *    no event shall DIGITAL be liable for any damages whatsoever, and in 
- *    particular, DIGITAL shall not be liable for special, indirect, 
- *    consequential, or incidental damages or damages for 
- *    lost profits, loss of revenue or loss of use, whether such damages arise 
- *    in contract, 
- *    negligence, tort, under statute, in equity, at law or otherwise, even if 
- *    advised of the possibility of such damage. 
- *
- */
-
-/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h,v 3.14 1999/09/25 14:36:58 dawes Exp $ */
-
-
-#if defined(__GNUC__)
-
-#if defined(linux) && (defined(__alpha__) || defined(__ia64__))
-
-#include <sys/io.h>
-
-#undef inb
-#undef inw
-#undef inl
-#undef outb
-#undef outw
-#undef outl
-
-static __inline__ unsigned int inb(unsigned long int p) { return _inb(p); };
-static __inline__ unsigned int inw(unsigned long int p) { return _inw(p); };
-static __inline__ unsigned int inl(unsigned long int p) { return _inl(p); };
-static __inline__ void outb(unsigned long int p, unsigned char v) { _outb(v,p); };
-static __inline__ void outw(unsigned long int p, unsigned short v) { _outw(v,p); };
-static __inline__ void outl(unsigned long int p, unsigned int v) { _outl(v,p); };
-
-#else
-
-#if defined(__sparc__)
-#ifndef ASI_PL
-#define ASI_PL 0x88
-#endif
-
-static __inline__ void
-outb(port, val)
-unsigned long port;
-char val;
-{
-  __asm__ __volatile__("stba %0, [%1] %2" : : "r" (val), "r" (port), "i" (ASI_PL));
-}
-
-static __inline__ void
-outw(port, val)
-unsigned long port;
-char val;
-{
-  __asm__ __volatile__("stha %0, [%1] %2" : : "r" (val), "r" (port), "i" (ASI_PL));
-}
-
-static __inline__ void
-outl(port, val)
-unsigned long port;
-char val;
-{
-  __asm__ __volatile__("sta %0, [%1] %2" : : "r" (val), "r" (port), "i" (ASI_PL));
-}
-
-static __inline__ unsigned int
-inb(port)
-unsigned long port;
-{
-   unsigned char ret;
-   __asm__ __volatile__("lduba [%1] %2, %0" : "=r" (ret) : "r" (port), "i" (ASI_PL));
-   return ret;
-}
-
-static __inline__ unsigned int
-inw(port)
-unsigned long port;
-{
-   unsigned char ret;
-   __asm__ __volatile__("lduha [%1] %2, %0" : "=r" (ret) : "r" (port), "i" (ASI_PL));
-   return ret;
-}
-
-static __inline__ unsigned int
-inl(port)
-unsigned long port;
-{
-   unsigned char ret;
-   __asm__ __volatile__("lda [%1] %2, %0" : "=r" (ret) : "r" (port), "i" (ASI_PL));
-   return ret;
-}
-#else
-#ifdef __arm32__
-unsigned int IOPortBase;  /* Memory mapped I/O port area */
-
-static __inline__ void
-outb(port, val)
-     short port;
-     char val;
-{
-        if ((unsigned short)port >= 0x400) return;
-
-       *(volatile unsigned char*)(((unsigned short)(port))+IOPortBase) = val;
-}
-
-static __inline__ void
-outw(port, val)
-     short port;
-     short val;
-{
-        if ((unsigned short)port >= 0x400) return;
-
-       *(volatile unsigned short*)(((unsigned short)(port))+IOPortBase) = val;
-}
-
-static __inline__ void
-outl(port, val)
-     short port;
-     int val;
-{
-        if ((unsigned short)port >= 0x400) return;
-
-       *(volatile unsigned long*)(((unsigned short)(port))+IOPortBase) = val;
-}
-
-static __inline__ unsigned int
-inb(port)
-     short port;
-{
-        if ((unsigned short)port >= 0x400) return((unsigned int)-1);
-
-       return(*(volatile unsigned char*)(((unsigned short)(port))+IOPortBase));
-}
-
-static __inline__ unsigned int
-inw(port)
-     short port;
-{
-        if ((unsigned short)port >= 0x400) return((unsigned int)-1);
-
-       return(*(volatile unsigned short*)(((unsigned short)(port))+IOPortBase));
-}
-
-static __inline__ unsigned int
-inl(port)
-     short port;
-{
-        if ((unsigned short)port >= 0x400) return((unsigned int)-1);
-
-       return(*(volatile unsigned long*)(((unsigned short)(port))+IOPortBase));
-}
-#else /* __arm32__ */
-#if defined(Lynx) && defined(__powerpc__)
-extern unsigned char *ioBase;
-
-static volatile void
-eieio()
-{
-       __asm__ __volatile__ ("eieio");
-}
-
-static void
-outb(port, value)
-short port;
-unsigned char value;
-{
-       *(uchar *)(ioBase + port) = value; eieio();
-}
-
-static void
-outw(port, value)
-short port;
-unsigned short value;
-{
-       *(unsigned short *)(ioBase + port) = value; eieio();
-}
-
-static void
-outl(port, value)
-short port;
-unsigned long value;
-{
-       *(unsigned long *)(ioBase + port) = value; eieio();
-}
-
-static unsigned char
-inb(port)
-short port;
-{
-       unsigned char val;
-
-       val = *((unsigned char *)(ioBase + port)); eieio();
-       return(val);
-}
-
-static unsigned short
-inw(port)
-short port;
-{
-       unsigned short val;
-
-       val = *((unsigned short *)(ioBase + port)); eieio();
-       return(val);
-}
-
-static unsigned long
-inl(port)
-short port;
-{
-       unsigned long val;
-
-       val = *((unsigned long *)(ioBase + port)); eieio();
-       return(val);
-}
-
-#else
-#if defined(__FreeBSD__) && defined(__alpha__)
-
-#include <sys/types.h>
-
-extern void outb(u_int32_t port, u_int8_t val);
-extern void outw(u_int32_t port, u_int16_t val);
-extern void outl(u_int32_t port, u_int32_t val);
-extern u_int8_t inb(u_int32_t port);
-extern u_int16_t inw(u_int32_t port);
-extern u_int32_t inl(u_int32_t port);
-
-#else
-#ifdef GCCUSESGAS
-static __inline__ void
-outb(port, val)
-short port;
-char val;
-{
-   __asm__ __volatile__("outb %0,%1" : :"a" (val), "d" (port));
-}
-
-static __inline__ void
-outw(port, val)
-short port;
-short val;
-{
-   __asm__ __volatile__("outw %0,%1" : :"a" (val), "d" (port));
-}
-
-static __inline__ void
-outl(port, val)
-short port;
-unsigned int val;
-{
-   __asm__ __volatile__("outl %0,%1" : :"a" (val), "d" (port));
-}
-
-static __inline__ unsigned int
-inb(port)
-short port;
-{
-   unsigned char ret;
-   __asm__ __volatile__("inb %1,%0" :
-       "=a" (ret) :
-       "d" (port));
-   return ret;
-}
-
-static __inline__ unsigned int
-inw(port)
-short port;
-{
-   unsigned short ret;
-   __asm__ __volatile__("inw %1,%0" :
-       "=a" (ret) :
-       "d" (port));
-   return ret;
-}
-
-static __inline__ unsigned int
-inl(port)
-short port;
-{
-   unsigned int ret;
-   __asm__ __volatile__("inl %1,%0" :
-       "=a" (ret) :
-       "d" (port));
-   return ret;
-}
-
-#else /* GCCUSESGAS */
-
-static __inline__ void
-outb(port, val)
-     short port;
-     char val;
-{
-  __asm__ __volatile__("out%B0 (%1)" : :"a" (val), "d" (port));
-}
-
-static __inline__ void
-outw(port, val)
-     short port;
-     short val;
-{
-  __asm__ __volatile__("out%W0 (%1)" : :"a" (val), "d" (port));
-}
-
-static __inline__ void
-outl(port, val)
-     short port;
-     unsigned int val;
-{
-  __asm__ __volatile__("out%L0 (%1)" : :"a" (val), "d" (port));
-}
-
-static __inline__ unsigned int
-inb(port)
-     short port;
-{
-  unsigned int ret;
-  __asm__ __volatile__("in%B0 (%1)" :
-                   "=a" (ret) :
-                   "d" (port));
-  return ret;
-}
-
-static __inline__ unsigned int
-inw(port)
-     short port;
-{
-  unsigned int ret;
-  __asm__ __volatile__("in%W0 (%1)" :
-                   "=a" (ret) :
-                   "d" (port));
-  return ret;
-}
-
-static __inline__ unsigned int
-inl(port)
-     short port;
-{
-  unsigned int ret;
-  __asm__ __volatile__("in%L0 (%1)" :
-                   "=a" (ret) :
-                   "d" (port));
-  return ret;
-}
-
-#endif /* GCCUSESGAS */
-#endif /* Lynx && __powerpc__ */
-#endif /* arm32 */
-#endif /* linux && __sparc__ */
-#endif /* linux && __alpha__ */
-#endif /* __FreeBSD__ && __alpha__ */
-
-#if defined(linux) || defined(__arm32__) || (defined(Lynx) && defined(__powerpc__))
-
-#define intr_disable()
-#define intr_enable()
-
-#else 
-
-static __inline__ void
-intr_disable()
-{
-  __asm__ __volatile__("cli");
-}
-
-static __inline__ void
-intr_enable()
-{
-  __asm__ __volatile__("sti");
-}
-
-#endif /* else !linux && !__arm32__ */
-
-#else /* __GNUC__ */
-
-#if defined(_MINIX) && defined(_ACK)
-
-/* inb, outb, inw and outw are defined in the library */
-/* ... but I've no idea if the same is true for inl & outl */
-
-u8_t inb(U16_t);
-void outb(U16_t, U8_t);
-u16_t inw(U16_t);
-void outw(U16_t, U16_t);
-u32_t inl(U16_t);
-void outl(U16_t, U32_t);
-
-#else /* not _MINIX and _ACK */
-
-# if defined(__STDC__) && (__STDC__ == 1)
-#  ifndef NCR
-#  define asm __asm
-#  endif
-# endif
-# ifdef SVR4
-#  include <sys/types.h>
-#  ifndef __USLC__
-#   define __USLC__
-#  endif
-# endif
-#ifndef SCO325
-# include <sys/inline.h>
-#else
-# include "../common/scoasm.h"
-#endif
-#define intr_disable() asm("cli")
-#define intr_enable()  asm("sti")
-
-#endif /* _MINIX and _ACK */
-#endif /* __GNUC__ */
diff --git a/src/hwinfo/src/int10/Makefile b/src/hwinfo/src/int10/Makefile
deleted file mode 100644 (file)
index bcba090..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-TOPDIR = ../..
-TARGETS        = $(LIBHD_D)
-
-include $(TOPDIR)/Makefile.common
-
-$(LIBHD_D): $(OBJS)
-       ar r $(LIBHD) $?
diff --git a/src/hwinfo/src/int10/README b/src/hwinfo/src/int10/README
deleted file mode 100644 (file)
index 4b7d0fa..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-This is a preliminary version of a VGA softbooter for LINUX.
-
-It makes use of the of the vm86() call and is therefore only
-usable on ix86 systems. 
-There are plans to port this program to use a x86 emulator
-like x86emu. Also it may be ported to other operating systems.
-
-So far it has been tested on a small number of cards. It might
-well be that it will fail on your card. 
-
-If you need to make modifications to the programs to be able
-to boot your card please let the author know.
-
-So far there is no command line interface. All options need
-to be hardcoded. You can do this by editing debug.h. You can
-turn on a bunch of debug output. Other options allow you to
-boot the primary card (CONFIG_ACTIVE_DEVICE), save the bios
-to a file (SAVE_BIOS), and map the original system bios 
-(MAP_SYS_BIOS).
-
-The author wants to thank
- Hans Lermen   (dosemu)
- and
- Kendall Bennett (x86emu)
-for their support. 
-
-Parts of the code - especially in v86.c and io.c - are based on code
-taken from dosemu. Parts of the code in int.c are based on code taken
-from x86emu
-
-Egbert Eich.  <Egbert.Eich@Physik.TU-Darmstadt.DE>
-
-
-
diff --git a/src/hwinfo/src/int10/emu_vm86.c b/src/hwinfo/src/int10/emu_vm86.c
deleted file mode 100644 (file)
index 654cff8..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-#include <stdio.h>
-#include <stdarg.h>
-#ifdef __i386__
-#include <sys/vm86.h>
-#else
-#include "vm86_struct.h"
-#endif
-
-#define INT2PTR(a)     ((a) + (unsigned char *) 0)
-
-#include "../x86emu/include/x86emu.h"
-#include "AsmMacros.h"
-
-int emu_vm86_ret;
-
-static u8 Mem_rb(u32 addr) {
-  return *(u8 *)(INT2PTR(addr));
-}
-static void Mem_wb(u32 addr, u8 val) {
-  *(u8 *)INT2PTR(addr) = val;
-}
-#ifdef __ia64__
-
-static u16 Mem_rw(u32 addr) {
-  return *(u8 *)INT2PTR(addr) | *(u8 *)INT2PTR(addr + 1) << 8;
-}
-static u32 Mem_rl(u32 addr) {
-  return *(u8 *)INT2PTR(addr)           | *(u8 *)INT2PTR(addr + 1) << 8 |
-         *(u8 *)INT2PTR(addr + 2) << 16 | *(u8 *)INT2PTR(addr + 3) << 24;
-}
-static void Mem_ww(u32 addr, u16 val) {
-  *(u8 *)INT2PTR(addr) = val;
-  *(u8 *)INT2PTR(addr + 1) = val >> 8;
-}
-static void Mem_wl(u32 addr, u32 val) {
-  *(u8 *)INT2PTR(addr) = val;
-  *(u8 *)INT2PTR(addr + 1) = val >> 8;
-  *(u8 *)INT2PTR(addr + 2) = val >> 16;
-  *(u8 *)INT2PTR(addr + 3) = val >> 24;
-}
-
-#else
-
-static u16 Mem_rw(u32 addr) {
-  return *(u16 *)INT2PTR(addr);
-}
-static u32 Mem_rl(u32 addr) {
-  return *(u32 *)INT2PTR(addr);
-}
-static void Mem_ww(u32 addr, u16 val) {
-  *(u16 *)INT2PTR(addr) = val;
-}
-static void Mem_wl(u32 addr, u32 val) {
-  *(u32 *)INT2PTR(addr) = val;
-}
-
-#endif
-
-static void do_int(int num) {
-  emu_vm86_ret = VM86_INTx | (num << 8);
-  M.x86.intr = INTR_HALTED;
-}
-
-
-static u8 deb_inb(X86EMU_pioAddr addr)
-{
-  u8 u;
-
-  u = inb(addr);
-  fprintf(stderr, "%04x:%04x  inb  %04x = %02x\n", M.x86.R_CS, (unsigned) M.x86.R_EIP, addr, u);
-
-  return u;
-}
-
-static u16 deb_inw(X86EMU_pioAddr addr)
-{
-  u16 u;
-
-  u = inw(addr);
-  fprintf(stderr, "%04x:%04x  inw  %04x = %04x\n", M.x86.R_CS, (unsigned) M.x86.R_EIP, addr, u);
-
-  return u;
-}
-
-static u32 deb_inl(X86EMU_pioAddr addr)
-{
-  u32 u;
-
-  u = inl(addr);
-  fprintf(stderr, "%04x:%04x  inl  %04x = %08x\n", M.x86.R_CS, (unsigned) M.x86.R_EIP, addr, (unsigned) u);
-
-  return u;
-}
-
-static void deb_outb(X86EMU_pioAddr addr, u8 val)
-{
-  fprintf(stderr, "%04x:%04x  outb %04x, %02x\n", M.x86.R_CS, (unsigned) M.x86.R_EIP, addr, val);
-  outb(addr, val);
-}
-
-static void deb_outw(X86EMU_pioAddr addr, u16 val)
-{
-  fprintf(stderr, "%04x:%04x  outw %04x, %04x\n", M.x86.R_CS, (unsigned) M.x86.R_EIP, addr, val);
-  outw(addr, val);
-}
-
-static void deb_outl(X86EMU_pioAddr addr, u32 val)
-{
-  fprintf(stderr, "%04x:%04x  outl %04x, %08x\n", M.x86.R_CS, (unsigned) M.x86.R_EIP, addr, (unsigned) val);
-  outl(addr, val);
-}
-
-int
-emu_vm86(struct vm86_struct *vm, unsigned debug)
-{
-  int i;
-  unsigned timeout;
-
-  X86EMU_memFuncs memFuncs;
-  X86EMU_intrFuncs intFuncs[256];
-  X86EMU_pioFuncs pioFuncs;
-
-  memFuncs.rdb = Mem_rb;
-  memFuncs.rdw = Mem_rw;
-  memFuncs.rdl = Mem_rl;
-  memFuncs.wrb = Mem_wb;
-  memFuncs.wrw = Mem_ww;
-  memFuncs.wrl = Mem_wl;
-  X86EMU_setupMemFuncs(&memFuncs);
-
-if(debug) {
-  pioFuncs.inb = deb_inb;
-  pioFuncs.inw = deb_inw;
-  pioFuncs.inl = deb_inl;
-  pioFuncs.outb = deb_outb;
-  pioFuncs.outw = deb_outw;
-  pioFuncs.outl = deb_outl;
-} else {
-  pioFuncs.inb = (u8(*)(u16))inb;
-  pioFuncs.inw = (u16(*)(u16))inw;
-  pioFuncs.inl = (u32(*)(u16))inl;
-  pioFuncs.outb = (void(*)(u16, u8))outb;
-  pioFuncs.outw = (void(*)(u16, u16))outw;
-  pioFuncs.outl = (void(*)(u16, u32))outl;
-}
-  X86EMU_setupPioFuncs(&pioFuncs);
-
-  for (i=0;i<256;i++)
-      intFuncs[i] = do_int;
-  X86EMU_setupIntrFuncs(intFuncs);
-
-  M.mem_base = 0;
-  M.mem_size = 1024*1024 + 1024;
-
-  M.x86.R_EAX = vm->regs.eax;
-  M.x86.R_EBX = vm->regs.ebx;
-  M.x86.R_ECX = vm->regs.ecx;
-  M.x86.R_EDX = vm->regs.edx;
-
-  M.x86.R_ESP = vm->regs.esp;
-  M.x86.R_EBP = vm->regs.ebp;
-  M.x86.R_ESI = vm->regs.esi;
-  M.x86.R_EDI = vm->regs.edi;
-  M.x86.R_EIP = vm->regs.eip;
-  M.x86.R_EFLG = vm->regs.eflags;
-
-  M.x86.R_CS = vm->regs.cs;
-  M.x86.R_DS = vm->regs.ds;
-  M.x86.R_SS = vm->regs.ss;
-  M.x86.R_ES = vm->regs.es;
-  M.x86.R_FS = vm->regs.fs;
-  M.x86.R_GS = vm->regs.gs;
-
-  emu_vm86_ret = 0;
-  /* set timeout, 20s normal, 60s for debugging */
-  timeout = debug ? (1 << 31) + 60 : 20;
-  X86EMU_exec(timeout);
-
-  vm->regs.eax = M.x86.R_EAX;
-  vm->regs.ebx = M.x86.R_EBX;
-  vm->regs.ecx = M.x86.R_ECX;
-  vm->regs.edx = M.x86.R_EDX;
-
-  vm->regs.esp = M.x86.R_ESP;
-  vm->regs.ebp = M.x86.R_EBP;
-  vm->regs.esi = M.x86.R_ESI;
-  vm->regs.edi = M.x86.R_EDI;
-  vm->regs.eip = M.x86.R_EIP;
-  vm->regs.eflags = M.x86.R_EFLG;
-
-  vm->regs.cs = M.x86.R_CS;
-  vm->regs.ds = M.x86.R_DS;
-  vm->regs.ss = M.x86.R_SS;
-  vm->regs.es = M.x86.R_ES;
-  vm->regs.fs = M.x86.R_FS;
-  vm->regs.gs = M.x86.R_GS;
-
-  if (emu_vm86_ret == 0 && *(unsigned char *)INT2PTR(((u32)M.x86.R_CS << 4) + (M.x86.R_IP - 1)) == 0xf4)
-    {
-      vm->regs.eip--;
-      return VM86_UNKNOWN;
-    }
-  return emu_vm86_ret ? emu_vm86_ret : -1;
-}
-
-void
-printk(const char *fmt, ...)
-{
-    va_list argptr;
-    va_start(argptr, fmt);
-    vfprintf(stderr, fmt, argptr);
-    va_end(argptr);
-}
-
diff --git a/src/hwinfo/src/int10/i10_int.c b/src/hwinfo/src/int10/i10_int.c
deleted file mode 100644 (file)
index 99a009d..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright 1999 Egbert Eich
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the authors not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  The authors makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-#if defined(__alpha__) || defined (__ia64__)
-#include <sys/io.h>
-#endif
-
-#include "v86bios.h"
-#include "AsmMacros.h"
-#include "pci.h"
-
-static int int1A_handler(struct regs86 *regs);
-static int int42_handler(int num, struct regs86 *regs);
-
-int
-int_handler(int num, struct regs86 *regs)
-{
-       switch (num) {
-       case 0x10:
-       case 0x42:
-               return (int42_handler(num,regs));
-       case 0x1A:
-               return (int1A_handler(regs));
-       default:
-               return 0;
-       }
-       return 0;
-}
-
-static int
-int42_handler(int num,struct regs86 *regs)
-{
-       unsigned char c;
-       CARD32 val;
-
-       /*
-        * video bios has modified these -
-        * leave it to the video bios to do this
-        */
-
-       val = getIntVect(num);
-       if (val != 0xF000F065) 
-         return 0;
-       
-       if ((regs->ebx & 0xff) == 0x32) {
-               switch (regs->eax & 0xFFFF) {
-               case 0x1200:
-                       c = inb(0x3cc);
-                       c |= 0x02;
-                       outb(0x3c2,c);
-                       return 1;
-               case 0x1201:
-                       c = inb(0x3cc);
-                       c &= ~0x02;
-                       outb(0x3c2,c);
-                       return 1;
-               }
-       }
-       if (num == 0x42)
-               return 1;
-       else
-               return 0;
-}
-
-#define SUCCESSFUL              0x00
-#define DEVICE_NOT_FOUND        0x86
-#define BAD_REGISTER_NUMBER     0x87
-
-static int
-int1A_handler(struct regs86 *regs)
-{
-       CARD32 Slot;
-//     PciStructPtr pPci;
-
-       if (! CurrentPci) return 0; /* oops */
-
-       switch (regs->eax & 0xFFFF) {
-       case 0xb101:
-               regs->eax  &= 0xFF00;   /* no config space/special cycle support */
-               regs->edx = 0x20494350; /* " ICP" */
-               regs->ebx  = 0x0210;    /* Version 2.10 */
-               regs->ecx  &= 0xFF00;
-               regs->ecx |= (pciMaxBus & 0xFF);   /* Max bus number in system */
-               regs->eflags &= ~((unsigned long)0x01); /* clear carry flag */
-               return 1;
-       case 0xb102:
-               if (((regs->edx & 0xFFFF) == CurrentPci->VendorID) &&
-                       ((regs->ecx & 0xFFFF) == CurrentPci->DeviceID) &&
-                       (regs->esi == 0)) {
-                       regs->eax = (regs->eax & 0x00FF) | (SUCCESSFUL << 8);
-                       regs->eflags &= ~((unsigned long)0x01); /* clear carry flag */
-                       regs->ebx = pciSlotBX(CurrentPci);
-               } else  {
-                       regs->eax = (regs->eax & 0x00FF) | (DEVICE_NOT_FOUND << 8);
-                       regs->eflags |= ((unsigned long)0x01); /* set carry flag */
-               }
-               return 1;
-       case 0xb103:
-               if (((regs->ecx & 0xFF) == CurrentPci->Interface) &&
-                       (((regs->ecx & 0xFF00) >> 8) == CurrentPci->SubClass) &&
-                       (((regs->ecx & 0xFFFF0000) >> 16) == CurrentPci->BaseClass) && 
-                       ((regs->esi & 0xff) == 0)) {
-                       regs->eax = (regs->eax & 0x00FF) | (SUCCESSFUL << 8);
-                       regs->ebx = pciSlotBX(CurrentPci);
-                       regs->eflags &= ~((unsigned long)0x01); /* clear carry flag */
-               } else {
-                       regs->eax = (regs->eax & 0x00FF) | (DEVICE_NOT_FOUND << 8);
-                       regs->eflags |= ((unsigned long)0x01); /* set carry flag */
-               }
-               return 1;
-       case 0xb108:
-               if ((Slot = findPci(regs->ebx))) {
-                       regs->ecx &= 0xFFFFFF00;
-                       regs->ecx |= PciRead8(regs->edi,Slot);
-                       regs->eax = (regs->eax & 0x00FF) | (SUCCESSFUL << 8);
-                       regs->eflags &= ~((unsigned long)0x01); /* clear carry flag */
-               } else {
-                       regs->eax = (regs->eax & 0x00FF) | (BAD_REGISTER_NUMBER << 8);
-                       regs->eflags |= ((unsigned long)0x01); /* set carry flag */
-               }
-               return 1;
-       case 0xb109:
-               if ((Slot = findPci(regs->ebx))) {
-                       regs->ecx &= 0xFFFF0000;
-                       regs->ecx |= PciRead16(regs->edi,Slot);
-                       regs->eax = (regs->eax & 0x00FF) | (SUCCESSFUL << 8);
-                       regs->eflags &= ~((unsigned long)0x01); /* clear carry flag */
-               } else {
-                       regs->eax = (regs->eax & 0x00FF) | (BAD_REGISTER_NUMBER << 8);
-                       regs->eflags |= ((unsigned long)0x01); /* set carry flag */
-               }
-               return 1;
-       case 0xb10a:
-               if ((Slot = findPci(regs->ebx))) {
-                       regs->ecx &= 0;
-                       regs->ecx |= PciRead32(regs->edi,Slot);
-                       regs->eax = (regs->eax & 0x00FF) | (SUCCESSFUL << 8);
-                       regs->eflags &= ~((unsigned long)0x01); /* clear carry flag */
-               } else {
-                       regs->eax = (regs->eax & 0x00FF) | (BAD_REGISTER_NUMBER << 8);
-                       regs->eflags |= ((unsigned long)0x01); /* set carry flag */
-               }
-               return 1;
-       case 0xb10b:
-               if ((Slot = findPci(regs->ebx))) {
-                       PciWrite8(regs->edi,(CARD8)regs->ecx,Slot);
-                       regs->eax = (regs->eax & 0x00FF) | (SUCCESSFUL << 8);
-                       regs->eflags &= ~((unsigned long)0x01); /* clear carry flag */
-               } else {
-                       regs->eax = (regs->eax & 0x00FF) | (BAD_REGISTER_NUMBER << 8);
-                       regs->eflags |= ((unsigned long)0x01); /* set carry flag */
-               }
-               return 1;
-       case 0xb10c:
-               if ((Slot = findPci(regs->ebx))) {
-                       PciWrite16(regs->edi,(CARD16)regs->ecx,Slot);
-                       regs->eax = (regs->eax & 0x00FF) | (SUCCESSFUL << 8);
-                       regs->eflags &= ~((unsigned long)0x01); /* clear carry flag */
-               } else {
-                       regs->eax = (regs->eax & 0x00FF) | (BAD_REGISTER_NUMBER << 8);
-                       regs->eflags |= ((unsigned long)0x01); /* set carry flag */
-               }
-               return 1;
-       case 0xb10d:
-               if ((Slot = findPci(regs->ebx))) {
-                       PciWrite32(regs->edi,(CARD32)regs->ecx,Slot);
-                       regs->eax = (regs->eax & 0x00FF) | (SUCCESSFUL << 8);
-                       regs->eflags &= ~((unsigned long)0x01); /* clear carry flag */
-               } else {
-                       regs->eax = (regs->eax & 0x00FF) | (BAD_REGISTER_NUMBER << 8);
-                       regs->eflags |= ((unsigned long)0x01); /* set carry flag */
-               }
-               return 1;
-       default:
-               return 0;
-       }
-}
diff --git a/src/hwinfo/src/int10/i10_io.c b/src/hwinfo/src/int10/i10_io.c
deleted file mode 100644 (file)
index 717356f..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright 1999 Egbert Eich
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the authors not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  The authors makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <stdio.h>
-#if defined(__alpha__) || defined (__ia64__)
-#include <sys/io.h>
-#endif
-#include "AsmMacros.h"
-#include "v86bios.h"
-#include "pci.h"
-
-
-int
-port_rep_inb(CARD16 port, CARD8 *base, int d_f, CARD32 count)
-{
-       register int inc = d_f ? -1 : 1;
-       CARD8 *dst = base;
-       
-       while (count--) {
-               *dst = inb(port);
-               dst += inc;
-       }
-       return (dst-base);
-}
-
-int
-port_rep_inw(CARD16 port, CARD16 *base, int d_f, CARD32 count)
-{
-       register int inc = d_f ? -1 : 1;
-       CARD16 *dst = base;
-       
-       while (count--) {
-               *dst = inw(port);
-               dst += inc;
-       }
-       return (dst-base);
-}
-
-int
-port_rep_inl(CARD16 port, CARD32 *base, int d_f, CARD32 count)
-{
-       register int inc = d_f ? -1 : 1;
-       CARD32 *dst = base;
-       
-       while (count--) {
-               *dst = inl(port);
-               dst += inc;
-       }
-       return (dst-base);
-}
-
-int
-port_rep_outb(CARD16 port, CARD8 *base, int d_f, CARD32 count)
-{
-       register int inc = d_f ? -1 : 1;
-       CARD8 *dst = base;
-       
-       while (count--) {
-               outb(port,*dst);
-               dst += inc;
-       }
-       return (dst-base);
-}
-
-int
-port_rep_outw(CARD16 port, CARD16 *base, int d_f, CARD32 count)
-{
-       register int inc = d_f ? -1 : 1;
-       CARD16 *dst = base;
-       
-       while (count--) {
-               outw(port,*dst);
-               dst += inc;
-       }
-       return (dst-base);
-}
-
-int
-port_rep_outl(CARD16 port, CARD32 *base, int d_f, CARD32 count)
-{
-       register int inc = d_f ? -1 : 1;
-       CARD32 *dst = base;
-       
-       while (count--) {
-               outl(port,*dst);
-               dst += inc;
-       }
-       return (dst-base);
-}
diff --git a/src/hwinfo/src/int10/i10_pci.c b/src/hwinfo/src/int10/i10_pci.c
deleted file mode 100644 (file)
index 387cebb..0000000
+++ /dev/null
@@ -1,866 +0,0 @@
-/*
- * Copyright 1999 Egbert Eich
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the authors not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  The authors makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-#include <fcntl.h>
-#include <unistd.h>
-#include <malloc.h>
-#include <stdio.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <string.h>
-#if defined (__alpha__) || defined (__ia64__)
-#include <sys/io.h>
-#endif
-#include "AsmMacros.h"
-
-#include "pci.h"
-
-#define RESORT 1
-#define FIX_ROM 0
-
-/*
- * I'm rather simple mindend - therefore I do a poor man's
- * pci scan without all the fancy stuff that is done in
- * scanpci. However that's all we need.
- */
-
-PciStructPtr PciStruct = NULL;
-PciBusPtr PciBuses = NULL;
-PciStructPtr CurrentPci = NULL;
-PciStructPtr PciList = NULL;
-int pciMaxBus = 0;
-
-static CARD32 PciCfg1Addr;
-
-static void readConfigSpaceCfg1(CARD32 bus, CARD32 dev, CARD32 func,
-                               CARD32 *reg);
-static int checkSlotCfg1(CARD32 bus, CARD32 dev, CARD32 func);
-static int checkSlotCfg2(CARD32 bus, int dev);
-static void readConfigSpaceCfg2(CARD32 bus, int dev, CARD32 *reg);
-static CARD8 interpretConfigSpace(CARD32 *reg, int busidx,
-                                 CARD8 dev, CARD8 func);
-static CARD32 findBIOSMap(PciStructPtr pciP, CARD32 *biosSize);
-static void restoreMem(PciStructPtr pciP);
-
-
-#ifdef __alpha__
-#define PCI_BUS_FROM_TAG(tag)  (((tag) & 0x00ff0000) >> 16)
-#define PCI_DFN_FROM_TAG(tag) (((tag) & 0x0000ff00) >> 8)
-
-#include <asm/unistd.h>
-
-CARD32
-axpPciCfgRead(CARD32 tag)
-{
-    int bus, dfn;
-    CARD32 val = 0xffffffff;
-    
-    bus = PCI_BUS_FROM_TAG(tag);
-    dfn = PCI_DFN_FROM_TAG(tag);
-    
-    syscall(__NR_pciconfig_read, bus, dfn, tag & 0xff, 4, &val);
-    return(val);
-}
-
-void
-axpPciCfgWrite(CARD32 tag, CARD32 val)
-{
-    int bus, dfn;
-    
-    bus = PCI_BUS_FROM_TAG(tag);
-    dfn = PCI_DFN_FROM_TAG(tag);
-    
-    syscall(__NR_pciconfig_write, bus, dfn, tag & 0xff, 4, &val);
-}
-
-static CARD32 (*readPci)(CARD32 reg) = axpPciCfgRead;
-static void (*writePci)(CARD32 reg, CARD32 val) = axpPciCfgWrite;
-#else
-static CARD32 readPciCfg1(CARD32 reg);
-static void writePciCfg1(CARD32 reg, CARD32 val);
-#ifndef __ia64__
-static CARD32 readPciCfg2(CARD32 reg);
-static void writePciCfg2(CARD32 reg, CARD32 val);
-#endif
-
-static CARD32 (*readPci)(CARD32 reg) = readPciCfg1;
-static void (*writePci)(CARD32 reg, CARD32 val) = writePciCfg1;
-#endif
-
-#if defined(__alpha__) || defined(__sparc__)
-#define PCI_EN 0x00000000
-#else
-#define PCI_EN 0x80000000
-#endif
-
-
-static int numbus;
-static int hostbridges = 1;
-static unsigned long pciMinMemReg = ~0;
-
-
-
-void
-scan_pci(int pci_cfg_method)
-{
-    unsigned short configtype;
-    
-    CARD32 reg[64];
-    int busidx;
-    CARD8 cardnum;
-    CARD8 func;
-    int idx;
-    
-    PciStructPtr pci1;
-    PciBusPtr pci_b1,pci_b2;
-    
-    if(pci_cfg_method) {
-      configtype = pci_cfg_method;
-    }
-    else {
-#if defined(__alpha__) || defined(__powerpc__) || defined(__sparc__) || defined(__ia64__)
-    configtype = 1;
-#else
-    CARD8 tmp1, tmp2;
-    CARD32 tmp32_1, tmp32_2;
-    outb(PCI_MODE2_ENABLE_REG, 0x00);
-    outb(PCI_MODE2_FORWARD_REG, 0x00);
-    tmp1 = inb(PCI_MODE2_ENABLE_REG);
-    tmp2 = inb(PCI_MODE2_FORWARD_REG);
-    if ((tmp1 == 0x00) && (tmp2 == 0x00)) {
-               configtype = 2;
-               readPci = readPciCfg2;
-               writePci = writePciCfg2;
-    } else {
-               tmp32_1 = inl(PCI_MODE1_ADDRESS_REG);
-               outl(PCI_MODE1_ADDRESS_REG, PCI_EN);
-               tmp32_2 = inl(PCI_MODE1_ADDRESS_REG);
-               outl(PCI_MODE1_ADDRESS_REG, tmp32_1);
-               if (tmp32_2 == PCI_EN) {
-                       configtype = 1;
-               } else {
-                       return;
-               }
-    }
-#endif
-    }
-    
-    if (configtype == 1) {
-               busidx = 0;
-               numbus = 1;
-               idx = 0;
-               do {
-                       for (cardnum = 0; cardnum < MAX_DEV_PER_VENDOR_CFG1; cardnum++) {
-                               func = 0;
-                               do {
-                                       /* loop over the different functions, if present */
-                                   if (!checkSlotCfg1(busidx,cardnum,func)) {
-                                               if (!func)
-                                                       break;
-                                               else {
-                                                       func++;
-                                                       continue;
-                                               }
-                                   }
-                                       readConfigSpaceCfg1(busidx,cardnum,func,reg);
-                   
-                                       func = interpretConfigSpace(reg,busidx,
-                                                                                               cardnum,func);
-                   
-                                       if (++idx >= MAX_PCI_DEVICES)
-                                               break;
-                               } while (func < 8);
-                               if (idx >= MAX_PCI_DEVICES)
-                                   break;
-                       }
-                       if (idx >= MAX_PCI_DEVICES)
-                           break;
-               } while (++busidx < PCI_MAXBUS);
-#if defined(__alpha__) || defined(__powerpc__) || defined(__sparc__) || defined(__ia64__)
-               /* don't use outl()  ;-) */
-#else
-               outl(PCI_MODE1_ADDRESS_REG, 0);
-#endif
-    } else {
-               int slot;
-       
-               busidx = 0;
-               numbus = 1;
-               idx = 0;
-               do {
-                       for (slot=0xc0; slot<0xd0; slot++) {
-                               if (!checkSlotCfg2(busidx,slot))
-                                       break;
-                               readConfigSpaceCfg2(busidx,slot,reg);
-               
-                               interpretConfigSpace(reg,busidx,
-                                                                        slot,0);
-                               if (++idx >= MAX_PCI_DEVICES)
-                                       break;
-                       }
-                       if (idx >= MAX_PCI_DEVICES)
-                           break;
-               }  while (++busidx < PCI_MAXBUS);
-    }
-    
-    
-    pciMaxBus = numbus - 1;
-    
-    /* link buses */
-    pci_b1 = PciBuses;
-    while (pci_b1) {
-               pci_b2 = PciBuses;
-               pci_b1->pBus = NULL;
-               while (pci_b2) {
-                       if (pci_b1->primary == pci_b2->secondary)
-                               pci_b1->pBus = pci_b2;
-                       pci_b2 = pci_b2->next;
-               }
-               pci_b1 = pci_b1->next;
-    }
-    pci1 = PciStruct;
-    while (pci1) {
-               pci_b2 = PciBuses;
-               pci1->pBus = NULL;
-               while (pci_b2) {
-                       if (pci1->bus == pci_b2->secondary)
-                               pci1->pBus = pci_b2;
-                       pci_b2 = pci_b2->next;
-               }
-               pci1 = pci1->next;
-    }
-    if (RESORT) {
-               PciStructPtr tmp = PciStruct, tmp1;
-               PciStruct = NULL;
-               while (tmp) {
-                       tmp1 = tmp->next;
-                       tmp->next = PciStruct;
-                       PciStruct = tmp;
-                       tmp = tmp1;
-               }
-    }
-    PciList = CurrentPci = PciStruct;
-}
-
-#ifndef __alpha__
-static CARD32
-readPciCfg1(CARD32 reg)
-{
-    CARD32 val;
-    
-    outl(PCI_MODE1_ADDRESS_REG, reg);
-    val = inl(PCI_MODE1_DATA_REG);
-    outl(PCI_MODE1_ADDRESS_REG, 0);
-    return val;
-}
-
-static void
-writePciCfg1(CARD32 reg, CARD32 val)
-{
-    outl(PCI_MODE1_ADDRESS_REG, reg);
-    outl(PCI_MODE1_DATA_REG,val);
-    outl(PCI_MODE1_ADDRESS_REG, 0);
-}
-
-#ifndef __ia64__
-static CARD32
-readPciCfg2(CARD32 reg)
-{
-    CARD32 val;
-    CARD8 bus = (reg >> 16) & 0xff;
-    CARD8 dev = (reg >> 11) & 0x1f;
-    CARD8 num = reg & 0xff;
-    
-    outb(PCI_MODE2_ENABLE_REG, 0xF1);
-    outb(PCI_MODE2_FORWARD_REG, bus);
-    val = inl((dev << 8) + num);
-    outb(PCI_MODE2_ENABLE_REG, 0x00);
-    return val;
-}
-
-static void
-writePciCfg2(CARD32 reg, CARD32 val)
-{
-    CARD8 bus = (reg >> 16) & 0xff;
-    CARD8 dev = (reg >> 11) & 0x1f;
-    CARD8 num = reg & 0xff;
-
-    outb(PCI_MODE2_ENABLE_REG, 0xF1);
-    outb(PCI_MODE2_FORWARD_REG, bus);
-    outl((dev << 8) + num,val);
-    outb(PCI_MODE2_ENABLE_REG, 0x00);
-}
-#endif
-#endif
-
-void
-pciVideoDisable(void)
-{
-    /* disable VGA routing on bridges */
-    PciBusPtr pbp = PciBuses;
-    PciStructPtr pcp = PciStruct;
-    
-    while (pbp) {
-               writePci(pbp->Slot.l | 0x3c, pbp->bctl & ~(CARD32)(8<<16));
-               pbp = pbp->next;
-    }
-    /* disable display devices */
-    while (pcp) {
-               writePci(pcp->Slot.l | 0x04, pcp->cmd_st & ~(CARD32)3);
-               writePci(pcp->Slot.l | 0x30, pcp->RomBase & ~(CARD32)1);
-               pcp = pcp->next;
-    }
-}
-
-void
-pciVideoRestore(void)
-{
-    /* disable VGA routing on bridges */
-    PciBusPtr pbp = PciBuses;
-    PciStructPtr pcp = PciStruct;
-    
-    while (pbp) {
-               writePci(pbp->Slot.l | 0x3c, pbp->bctl);
-               pbp = pbp->next;
-    }
-    /* disable display devices */
-    while (pcp) {
-               writePci(pcp->Slot.l | 0x04, pcp->cmd_st);
-               writePci(pcp->Slot.l | 0x30, pcp->RomBase);
-               pcp = pcp->next;
-    }
-}
-
-void
-EnableCurrent()
-{
-    PciBusPtr pbp;
-    PciStructPtr pcp = CurrentPci;
-    
-    pciVideoDisable();
-    
-    pbp = pcp->pBus;
-    while (pbp) { /* enable bridges */
-               writePci(pbp->Slot.l | 0x3c, pbp->bctl | (CARD32)(8<<16));
-               pbp = pbp->pBus;
-    }
-    writePci(pcp->Slot.l | 0x04, pcp->cmd_st | (CARD32)3);
-    writePci(pcp->Slot.l | 0x30, pcp->RomBase | (CARD32)1);
-}
-
-CARD8
-PciRead8(int offset, CARD32 Slot)
-{
-    int shift = offset & 0x3;
-    offset = offset & 0xFC;
-    return ((readPci(Slot | offset) >> (shift << 3)) & 0xff);
-}
-
-CARD16
-PciRead16(int offset, CARD32 Slot)
-{
-    int shift = offset & 0x2;
-    offset = offset & 0xFC;
-    return ((readPci(Slot | offset) >> (shift << 3)) & 0xffff);
-}
-
-CARD32
-PciRead32(int offset, CARD32 Slot)
-{
-    offset = offset & 0xFC;
-    return (readPci(Slot | offset));
-}
-
-void
-PciWrite8(int offset, CARD8 byte, CARD32 Slot)
-{
-    CARD32 val;
-    int shift = offset & 0x3;
-    offset = offset & 0xFC;
-    val = readPci(Slot | offset);
-    val &= ~(CARD32)(0xff << (shift << 3));
-    val |= byte << (shift << 3);
-    writePci(Slot | offset, val);
-}
-
-void
-PciWrite16(int offset, CARD16 word, CARD32 Slot)
-{
-    CARD32 val;
-    int shift = offset & 0x2;
-    offset = offset & 0xFC;
-    val = readPci(Slot | offset);
-    val &= ~(CARD32)(0xffff << (shift << 3));
-    val |= word << (shift << 3);
-    writePci(Slot | offset, val);
-}
-
-void
-PciWrite32(int offset, CARD32 lg, CARD32 Slot)
-{
-    offset = offset & 0xFC;
-    writePci(Slot | offset, lg);
-}
-
-int
-mapPciRom(PciStructPtr pciP)
-{
-    unsigned long RomBase = 0;
-    int mem_fd;
-    unsigned char *mem, *ptr;
-    unsigned char *scratch = NULL;
-    int length = 0;
-    CARD32 biosSize = 0x1000000;
-    CARD32 enablePci = 0;      /* to keep gcc happy */
-
-    if (!pciP)
-      pciP = CurrentPci;
-
-       if (FIX_ROM) {
-               RomBase = findBIOSMap(pciP, &biosSize);
-               if (!RomBase) {
-                       RomBase = pciP->RomBase & ~(CARD32)0xFF;
-               }
-       }  else {
-               RomBase = pciP->RomBase & ~(CARD32)0xFF;
-           if (~RomBase + 1 < biosSize || !RomBase)
-                       RomBase = findBIOSMap(pciP, &biosSize);
-       }
-
-       if ((mem_fd = open(MEM_FILE,O_RDONLY))<0) {
-               perror("opening memory");
-               restoreMem(pciP);
-               return (0);
-       }
-
-       PciWrite32(0x30,RomBase | 1,pciP->Slot.l);
-
-#ifdef __alpha__
-       mem = ptr = (unsigned char *)mmap(0, biosSize, PROT_READ,
-                                                                         MAP_SHARED, mem_fd, RomBase | _bus_base());
-#else
-       mem = ptr = (unsigned char *)mmap(0, biosSize, PROT_READ,
-                                                                         MAP_SHARED, mem_fd, RomBase);
-#endif
-       if (pciP != CurrentPci) {
-         enablePci = PciRead32(0x4,pciP->Slot.l);
-         PciWrite32(0x4,enablePci | 0x2,pciP->Slot.l);
-       }
-
-       while ( *ptr == 0x55 && *(ptr+1) == 0xAA) {
-               unsigned short data_off = *(ptr+0x18) | (*(ptr+0x19)<< 8);
-               unsigned char *data = ptr + data_off;
-               unsigned char type;
-               int i;
-
-               if (*data!='P' || *(data+1)!='C' || *(data+2)!='I' || *(data+3)!='R') {
-                       break;
-               }
-               type = *(data + 0x14);
-               
-               if (type != 0)  { /* not PC-AT image: find next one */
-                       unsigned int image_length;
-                       unsigned char indicator = *(data + 0x15);
-                       if (indicator & 0x80) /* last image */
-                               break;
-                       image_length = (*(data + 0x10)
-                                                       | (*(data + 0x11) << 8)) << 9;
-                       ptr = ptr + image_length;
-                       continue;
-               }
-               /* OK, we have a PC Image */
-               length = (*(ptr + 2) << 9);
-               scratch = (unsigned char *)malloc(length);
-               /* don't use memcpy() here: Reading from bus! */
-               for (i=0;i<length;i++)
-                       *(scratch + i)=*(ptr + i);
-               break;
-       }
-
-       if (pciP != CurrentPci)
-         PciWrite32(0x4,enablePci,pciP->Slot.l);
-
-       /* unmap/close/disable PCI bios mem */
-       munmap(mem, biosSize);
-       close(mem_fd);
-       /* disable and restore mapping */
-       writePci(pciP->Slot.l | 0x30, pciP->RomBase & ~(CARD32)1);
-
-       if (scratch && length) {
-               memcpy((unsigned char *)V_BIOS, scratch, length);
-               free(scratch);
-       }
-       
-       restoreMem(pciP);
-       return length;
-}
-
-CARD32
-findPci(CARD16 slotBX)
-{
-       CARD32 slot = slotBX << 8;
-
-       if (slot == (CurrentPci->Slot.l & ~PCI_EN))
-               return (CurrentPci->Slot.l | PCI_EN);
-       else {
-#if !SHOW_ALL_DEV
-               PciBusPtr pBus = CurrentPci->pBus;
-               while (pBus) {
-                       if (slot == (pBus->Slot.l & ~PCI_EN))
-                               return pBus->Slot.l | PCI_EN;
-                       pBus = pBus->next;
-               }
-#else
-               PciStructPtr pPci = PciStruct;
-               while (pPci) {
-                       if (slot == (pPci->Slot.l & ~PCI_EN))
-                               return pPci->Slot.l | PCI_EN;
-                       pPci = pPci->next;
-               }
-#endif
-       }
-       return 0;
-}
-
-CARD16
-pciSlotBX(PciStructPtr pPci)
-{
-       return (CARD16)((pPci->Slot.l >> 8) & 0xFFFF);
-}
-
-PciStructPtr
-findPciDevice(CARD16 vendorID, CARD16 deviceID, char n)
-{
-    PciStructPtr pPci = CurrentPci;
-    n++;
-
-    while (pPci)  {
-        if ((pPci->VendorID == vendorID) && (pPci->DeviceID == deviceID)) {
-           if (!(--n)) break;
-        }
-       pPci = pPci->next;
-    }
-    return pPci;
-}
-
-PciStructPtr
-findPciClass(CARD8 intf, CARD8 subClass, CARD16 class, char n)
-{
-    PciStructPtr pPci = CurrentPci;
-    n++;
-
-    while (pPci)  {
-        if ((pPci->Interface == intf) && (pPci->SubClass == subClass)
-            && (pPci->BaseClass == class)) {
-           if (!(--n)) break;
-        }
-       pPci = pPci->next;
-    }
-    return pPci;
-}
-
-static void
-readConfigSpaceCfg1(CARD32 bus, CARD32 dev, CARD32 func, CARD32 *reg)
-{
-       CARD32   config_cmd = PCI_EN | (bus<<16) |
-         (dev<<11) | (func<<8);
-       int i;
-
-       for (i = 0; i<64;i+=4) {
-#ifdef __alpha__
-               reg[i] = axpPciCfgRead(config_cmd | i);
-#else
-               outl(PCI_MODE1_ADDRESS_REG, config_cmd | i);
-               reg[i] = inl(PCI_MODE1_DATA_REG);
-#endif
-
-       }
-}
-
-static int
-checkSlotCfg1(CARD32 bus, CARD32 dev, CARD32 func)
-{
-       CARD32    config_cmd = PCI_EN | (bus<<16) |
-         (dev<<11) | (func<<8);
-       CARD32 reg;
-#ifdef __alpha__
-               reg = axpPciCfgRead(config_cmd);
-#else
-               outl(PCI_MODE1_ADDRESS_REG, config_cmd);
-               reg = inl(PCI_MODE1_DATA_REG);
-#endif
-       if (reg != 0xFFFFFFFF)
-               return 1;
-       else
-               return 0;
-}
-
-static int
-checkSlotCfg2(CARD32 bus, int dev)
-{
-       CARD32 val;
-
-       outb(PCI_MODE2_ENABLE_REG, 0xF1);
-       outb(PCI_MODE2_FORWARD_REG, bus);
-       val = inl(dev << 8);
-       outb(PCI_MODE2_FORWARD_REG, 0x00);
-       outb(PCI_MODE2_ENABLE_REG, 0x00);
-       if (val == 0xFFFFFFFF)
-               return 0;
-       if (val == 0xF0F0F0F0)
-               return 0;
-       return 1;
-}
-
-static void
-readConfigSpaceCfg2(CARD32 bus, int dev, CARD32 *reg)
-{
-       int i;
-
-       outb(PCI_MODE2_ENABLE_REG, 0xF1);
-       outb(PCI_MODE2_FORWARD_REG, bus);
-       for (i = 0; i<64;i+=4) {
-               reg[i] = inl((dev << 8) + i);
-       }
-       outb(PCI_MODE2_ENABLE_REG, 0x00);
-}
-
-static CARD8
-interpretConfigSpace(CARD32 *reg, int busidx, CARD8 dev, CARD8 func)
-{
-       CARD32 config_cmd;
-       CARD16 vendor, device;
-       CARD8 baseclass, subclass;
-       CARD8 primary, secondary;
-       CARD8 header, interface;
-       int i;
-       
-       config_cmd = PCI_EN | busidx<<16 |
-               (dev<<11) | (func<<8);
-
-       for (i = 0x10; i < 0x28; i+=4) {
-               if (IS_MEM32(reg[i]))
-                       if ((reg[i] & 0xFFFFFFF0) < pciMinMemReg)
-                               pciMinMemReg = (reg[i] & 0xFFFFFFF0);
-#ifdef __alpha__
-               if (IS_MEM64(reg[i])) {
-                       unsigned long addr = reg[i] | 
-                         (unsigned long)(reg[i+4]) << 32;
-                       if ((addr & ~0xfL) < pciMinMemReg)
-                               pciMinMemReg = (addr & ~0xfL);
-                       i+=4;
-               }
-#endif
-       }
-       vendor = reg[0] & 0xFFFF;
-       device = reg[0] >> 16;
-       baseclass = reg[8] >> 24;
-       subclass = (reg[8] >> 16) & 0xFF;
-       interface = (reg[8] >> 8) & 0xFF;
-
-       header = (reg[0x0c] >> 16) & 0xff;
-       if (BRIDGE_CLASS(baseclass)) {
-               if (BRIDGE_PCI_CLASS(subclass)) {
-                       PciBusPtr pbp = malloc(sizeof(PciBusRec));
-                       primary = reg[0x18] & 0xFF;
-                       secondary = (reg[0x18] >> 8) & 0xFF;
-                       pbp->bctl = reg[0x3c];
-                       pbp->primary = primary;
-                       pbp->secondary = secondary;
-                       pbp->Slot.l = config_cmd;
-                       pbp->next = PciBuses;
-                       PciBuses = pbp;
-                       numbus++;
-               } else if (BRIDGE_HOST_CLASS(subclass)
-                                  && (hostbridges++ > 1)) {
-                       numbus++;
-               }
-       } else if (VIDEO_CLASS(baseclass,subclass)) {
-               PciStructPtr pcp = malloc(sizeof(PciStructRec));
-               pcp->RomBase = reg[0x30];
-               pcp->cmd_st = reg[4];
-               pcp->active = (reg[4] & 0x03) == 3 ? 1 : 0;
-               pcp->VendorID = vendor;
-               pcp->DeviceID = device;
-               pcp->Interface = interface;
-               pcp->BaseClass = baseclass;
-               pcp->SubClass = subclass;
-               pcp->Slot.l = config_cmd;
-               pcp->bus = busidx;
-               pcp->dev = dev;
-               pcp->func = func;
-               pcp->next = PciStruct;
-               PciStruct = pcp;
-       }
-       if ((func == 0)
-               && ((header & PCI_MULTIFUNC_DEV) == 0))
-               func = 8;
-       else
-               func++;
-       return func;
-}
-
-static CARD32 remapMEM_val;
-static int remapMEM_num;
-
-static int /* map it on some other video device */
-remapMem(PciStructPtr pciP, int num, CARD32 size)
-{
-       PciStructPtr pciPtr = PciStruct;
-       int i;
-       CARD32 org;
-       CARD32 val;
-       CARD32 size_n;
-       
-       org = PciRead32(num + 0x10,pciP->Slot.l);
-       
-       while (pciPtr) {
-               for (i = 0; i < 20; i=i+4) {
-
-                       val = PciRead32(i + 0x10,pciPtr->Slot.l);
-                       /* don't map it on itself */
-                       if ((org & 0xfffffff0) == (val & 0xfffffff0))
-                               continue;
-                       if (val && !(val & 1))
-                               PciWrite32(i + 0x10,0xffffffff,pciPtr->Slot.l);
-                       else
-                               continue;
-                       size_n = PciRead32(i + 0x10,pciPtr->Slot.l);
-                       PciWrite32(i + 0x10,val,pciPtr->Slot.l);
-                       size_n = ~(CARD32)(size_n  & 0xfffffff0) + 1;
-                                       
-                       if (size_n >= size) {
-                               PciWrite32(num + 0x10,val,pciP->Slot.l);
-                               return 1;
-                       }
-               }
-               pciPtr = pciPtr->next;
-       }
-       /* last resort: try to go below lowest PCI mem address */
-       val = ((pciMinMemReg & ~(CARD32)(size - 1)) - size);
-       if (val > 0x7fffffff) {
-               PciWrite32(num + 0x10,val, pciP->Slot.l);
-               return 1;
-       }
-
-       return 0;
-}
-
-static void
-restoreMem(PciStructPtr pciP)
-{
-       if (remapMEM_val == 0) return;
-       PciWrite32(remapMEM_num + 0x10,remapMEM_val,pciP->Slot.l);
-       return;
-}
-
-static CARD32
-findBIOSMap(PciStructPtr pciP, CARD32 *biosSize)
-{
-       PciStructPtr pciPtr = PciStruct;
-       int i;
-       CARD32 val;
-       CARD32 size = 4*1024;   /* should be fixed: size seems _really_ to be undefined below */
-       
-       PciWrite32(0x30,0xffffffff,pciP->Slot.l);
-       *biosSize = PciRead32(0x30,pciP->Slot.l);
-       PciWrite32(0x30,pciP->RomBase,pciP->Slot.l);
-       *biosSize = ~(*biosSize & 0xFFFFFF00) + 1;
-       if (*biosSize > (1024 * 1024 * 16)) {
-         *biosSize = 1024 * 1024 * 16;
-       }
-       while (pciPtr) {
-               if (pciPtr->bus != pciP->bus) {
-                       pciPtr = pciPtr->next;
-                       continue;
-               }
-               for (i = 0; i < 20; i=i+4) {
-                       
-                       val = PciRead32(i + 0x10,pciPtr->Slot.l);
-                       if (!(val & 1))
-       
-                       PciWrite32(i + 0x10,0xffffffff,pciPtr->Slot.l);
-                       else
-                               continue;
-                       size = PciRead32(i + 0x10,pciPtr->Slot.l);
-                       PciWrite32(i + 0x10,val,pciPtr->Slot.l);
-                       size = ~(CARD32)(size & 0xFFFFFFF0) + 1;
-                       if (size >= *biosSize) {
-                               if (pciP == pciPtr) { /* if same device remap ram*/
-                                       if (!(remapMem(pciP,i,size)))
-                                               continue;
-                                       remapMEM_val = val;
-                                       remapMEM_num = i;
-                               } else {
-                                       remapMEM_val = 0;
-                               }
-                               return val & 0xFFFFFF00;
-                       }
-               }
-               pciPtr = pciPtr->next;
-       }
-       remapMEM_val = 0;
-       /* very last resort */
-       if (pciP->bus == 0 && (pciMinMemReg > *biosSize)) 
-         return (pciMinMemReg - size) & ~(size - 1);
-         
-       return 0;
-}
-
-int
-cfg1out(CARD16 addr, CARD32 val)
-{
-  if (addr == 0xCF8) {
-    PciCfg1Addr = val;
-    return 1;
-  } else if (addr == 0xCFC) {
-    writePci(PciCfg1Addr, val);
-    return 1;
-  }
-  return 0;
-}
-
-int 
-cfg1in(CARD16 addr, CARD32 *val)
-{
-  if (addr == 0xCF8) {
-    *val = PciCfg1Addr;
-    return 1;
-  } else if (addr == 0xCFC) {
-    *val = readPci(PciCfg1Addr);
-    return 1;
-  }
-  return 0;
-}
-
-PciStructPtr
-findPciByIDs(int bus, int dev, int func)
-{
-  PciStructPtr pciP = PciList;
-  
-  while (pciP) {
-    if (pciP->bus == (unsigned) bus && pciP->dev == (unsigned) dev && pciP->func == (unsigned) func)
-      return pciP;
-    pciP = pciP->next;
-  }
-  return NULL;
-}
diff --git a/src/hwinfo/src/int10/i10_v86.c b/src/hwinfo/src/int10/i10_v86.c
deleted file mode 100644 (file)
index 13fe52d..0000000
+++ /dev/null
@@ -1,516 +0,0 @@
-/*
- * Copyright 1999 Egbert Eich
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the authors not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  The authors makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <unistd.h>
-#include <errno.h>
-#include <asm/unistd.h>
-#include <stdio.h>
-#include <string.h>
-#ifdef __i386__
-#include <sys/vm86.h>
-#else
-#include "vm86_struct.h"
-#endif
-#include <signal.h>
-#include "v86bios.h"
-#include "AsmMacros.h"
-
-extern int emu_vm86(struct vm86_struct *vm, unsigned debug);
-
-#define INT2PTR(a)     ((a) + (unsigned char *) 0)
-
-void log_err(char *format, ...) __attribute__ ((format (printf, 1, 2)));
-
-struct vm86_struct vm86s;
-
-static int vm86_GP_fault(void);
-static int vm86_do_int(int num);
-#ifdef __i386__
-static int vm86_rep(struct vm86_struct *ptr);
-#endif
-void log_registers(void);
-
-#define CPU_REG(x) (vm86s.regs.x)
-#define CPU_REG_LW(reg)      (*((CARD16 *)&CPU_REG(reg)))
-#define CPU_REG_HW(reg)      (*((CARD16 *)&CPU_REG(reg) + 1))
-#define CPU_REG_LB(reg)      (*(CARD8 *)&CPU_REG(e##reg))
-#define SEG_ADR(type, seg, reg)  type((CPU_REG_LW(seg) << 4) + CPU_REG_LW(e##reg) + (unsigned char *) 0)
-#define DF (1 << 10)
-
-struct pio P;
-
-void
-setup_io(void) 
-{
-    P.inb = (CARD8(*)(CARD16))inb;
-    P.inw = (CARD16(*)(CARD16))inw;
-    P.inl = (CARD32(*)(CARD16))inl;
-    P.outb = (void(*)(CARD16,CARD8))outb;
-    P.outw = (void(*)(CARD16,CARD16))outw;
-    P.outl = (void(*)(CARD16,CARD32))outl;
-}
-
-       
-static void
-setup_vm86(unsigned long bios_start, i86biosRegsPtr regs)
-{
-       CARD32 eip;
-       CARD16 cs;
-       
-       vm86s.flags = VM86_SCREEN_BITMAP;
-       vm86s.flags = 0;
-       vm86s.screen_bitmap = 0;
-       vm86s.cpu_type = CPU_586;
-       memset(&vm86s.int_revectored, 0xff,sizeof(vm86s.int_revectored)) ;
-       memset(&vm86s.int21_revectored, 0xff,sizeof(vm86s.int21_revectored)) ;
-
-       eip = bios_start & 0xFFFF;
-       cs = (bios_start & 0xFF0000) >> 4;
-       
-       CPU_REG(eax) = regs->ax;
-       CPU_REG(ebx) = regs->bx;
-       CPU_REG(ecx) = regs->cx;
-       CPU_REG(edx) = regs->dx;
-       CPU_REG(esi) = 0;
-       CPU_REG(edi) = regs->di;
-       CPU_REG(ebp) = 0;
-       CPU_REG(eip) = eip;
-       CPU_REG(cs) = cs;               
-       CPU_REG(esp) = 0x100;
-       CPU_REG(ss) = 0x30;               /* This is the standard pc bios stack */
-       CPU_REG(es) = regs->es;
-       CPU_REG(ds) = 0x40;               /* standard pc ds */
-       CPU_REG(fs) = 0;
-       CPU_REG(gs) = 0;
-       CPU_REG(eflags) |= (VIF_MASK | VIP_MASK);
-}
-
-void
-collect_bios_regs(i86biosRegsPtr regs)
-{
-       regs->ax = CPU_REG(eax);
-       regs->bx = CPU_REG(ebx);
-       regs->cx = CPU_REG(ecx);
-       regs->dx = CPU_REG(edx);
-       regs->es = CPU_REG(es);
-       regs->ds = CPU_REG(ds);
-       regs->di = CPU_REG(edi);
-       regs->si = CPU_REG(esi);
-}
-
-static int do_vm86(int cpuemu)
-{
-  int retval;
-       
-#ifdef V86BIOS_DEBUG
-       dump_registers();
-#endif
-
-#ifdef __i386__
-       if(cpuemu) {
-         retval = emu_vm86(&vm86s, cpuemu & 2);
-       }
-       else {
-         retval = vm86_rep(&vm86s);
-       }
-#else
-       retval = emu_vm86(&vm86s, cpuemu & 2);
-#endif
-
-       switch (VM86_TYPE(retval)) {
-       case VM86_UNKNOWN:
-               if (!vm86_GP_fault())
-                       return 0;
-               break;
-       case VM86_STI:
-               log_err("vm86_sti :-((\n");
-               log_registers();
-               return 0;
-       case VM86_INTx:
-               if (!vm86_do_int(VM86_ARG(retval))) {
-                       log_err("Unknown vm86_int: %X\n",VM86_ARG(retval));
-                       log_registers();
-                       return 0;
-               }
-               /* I'm not sure yet what to do if we can handle ints */
-               break;
-       case VM86_SIGNAL:
-               log_err("VBE: received a signal!\n");
-               log_registers();
-               return 0;
-       default:
-               log_err("unknown type(0x%x)=0x%x\n",
-                               VM86_ARG(retval),VM86_TYPE(retval));
-               log_registers();
-               return 0;
-       }
-       
-       return 1;
-}
-
-void
-do_x86(unsigned long bios_start, i86biosRegsPtr regs, int cpuemu)
-{
-    setup_vm86(bios_start, regs);
-    while(do_vm86(cpuemu)) {};
-    collect_bios_regs(regs);
-}
-
-/* get the linear address */
-#define LIN_PREF_SI  ((pref_seg << 4) + CPU_REG_LW(esi))
-
-#define LWECX       (prefix66 ^ prefix67 ? CPU_REG(ecx) : CPU_REG_LW(ecx))
-#define SET_LWECX_ZERO (prefix66 ^ prefix67 ? (CPU_REG(ecx) = 0) : (CPU_REG_LW(ecx) = 0))
-
-static int
-vm86_GP_fault(void)
-{
-       unsigned char *csp, *lina;
-       CARD32 org_eip;
-       int pref_seg;
-       int done,is_rep,prefix66,prefix67;
-
-
-       csp = lina = SEG_ADR((unsigned char *), cs, ip);
-#ifdef V86BIOS_DEBUG
-       printf("exception: \n");
-       dump_code();
-#endif
-
-       is_rep = 0;
-       prefix66 = prefix67 = 0;
-       pref_seg = -1;
-
-       /* eat up prefixes */
-       done = 0;
-       do {
-               switch (*(csp++)) {
-               case 0x66:      /* operand prefix */  prefix66=1; break;
-               case 0x67:      /* address prefix */  prefix67=1; break;
-               case 0x2e:      /* CS */              pref_seg=CPU_REG(cs); break;
-               case 0x3e:      /* DS */              pref_seg=CPU_REG(ds); break;
-               case 0x26:      /* ES */              pref_seg=CPU_REG(es); break;
-               case 0x36:      /* SS */              pref_seg=CPU_REG(ss); break;
-               case 0x65:      /* GS */              pref_seg=CPU_REG(gs); break;
-               case 0x64:      /* FS */              pref_seg=CPU_REG(fs); break;
-               case 0xf2:      /* repnz */
-               case 0xf3:      /* rep */             is_rep=1; break;
-               default: done=1;
-               }
-       } while (!done);
-       csp--;   /* oops one too many */
-       org_eip = CPU_REG(eip);
-       CPU_REG_LW(eip) += (csp - lina);
-
-       switch (*csp) {
-
-       case 0x6c:                    /* insb */
-               /* NOTE: ES can't be overwritten; prefixes 66,67 should use esi,edi,ecx
-                * but is anyone using extended regs in real mode? */
-               /* WARNING: no test for DI wrapping! */
-               CPU_REG_LW(edi) += port_rep_inb(CPU_REG_LW(edx), 
-                                                                               SEG_ADR((CARD8 *),es,di),
-                                                                               CPU_REG_LW(eflags)&DF,
-                                                                               (is_rep? LWECX:1));
-               if (is_rep) SET_LWECX_ZERO;
-               CPU_REG_LW(eip)++;
-               break;
-
-       case 0x6d:                  /* (rep) insw / insd */
-               /* NOTE: ES can't be overwritten */
-               /* WARNING: no test for _DI wrapping! */
-               if (prefix66) {
-                       CPU_REG_LW(edi) += port_rep_inl(CPU_REG_LW(edx),
-                                                                                       SEG_ADR((CARD32 *),es,di),
-                                                                                       CPU_REG_LW(eflags)&DF,
-                                                                                       (is_rep? LWECX:1));
-               }
-               else {
-                       CPU_REG_LW(edi) += port_rep_inw(CPU_REG_LW(edx), 
-                                                                                       SEG_ADR((CARD16 *),es,di),
-                                                                                       CPU_REG_LW(eflags)&DF,
-                                                                                       (is_rep? LWECX:1));
-               }
-               if (is_rep) SET_LWECX_ZERO;
-               CPU_REG_LW(eip)++;
-               break;
-
-       case 0x6e:                  /* (rep) outsb */
-               if (pref_seg < 0) pref_seg = CPU_REG_LW(ds);
-               /* WARNING: no test for _SI wrapping! */
-               CPU_REG_LW(esi) += port_rep_outb(CPU_REG_LW(edx),(CARD8*)INT2PTR(LIN_PREF_SI),
-                                                                                CPU_REG_LW(eflags)&DF,
-                                                                                (is_rep? LWECX:1));
-               if (is_rep) SET_LWECX_ZERO;
-               CPU_REG_LW(eip)++;
-               break;
-
-       case 0x6f:                  /* (rep) outsw / outsd */
-               if (pref_seg < 0) pref_seg = CPU_REG_LW(ds);
-               /* WARNING: no test for _SI wrapping! */
-               if (prefix66) {
-                       CPU_REG_LW(esi) += port_rep_outl(CPU_REG_LW(edx),
-                                                                                        (CARD32 *)INT2PTR(LIN_PREF_SI),
-                                                                                        CPU_REG_LW(eflags)&DF,
-                                                                                        (is_rep? LWECX:1));
-               }
-               else {
-                       CPU_REG_LW(esi) += port_rep_outw(CPU_REG_LW(edx),
-                                                                                        (CARD16 *)INT2PTR(LIN_PREF_SI),
-                                                                                        CPU_REG_LW(eflags)&DF,
-                                                                                        (is_rep? LWECX:1));
-               } 
-               if (is_rep) SET_LWECX_ZERO;
-               CPU_REG_LW(eip)++;
-               break;
-
-       case 0xe5:                  /* inw xx, inl xx */
-               if (prefix66) CPU_REG(eax) = P.inl((int) csp[1]);
-               else CPU_REG_LW(eax) = P.inw((int) csp[1]);  
-               CPU_REG_LW(eip) += 2;
-               break;
-       case 0xe4:                  /* inb xx */
-               CPU_REG_LW(eax) &= ~(CARD32)0xff;
-               CPU_REG_LB(ax) |= P.inb((int) csp[1]);
-               CPU_REG_LW(eip) += 2;
-               break;
-       case 0xed:                  /* inw dx, inl dx */
-               if (prefix66) CPU_REG(eax) = P.inl(CPU_REG_LW(edx)); 
-               else CPU_REG_LW(eax) = P.inw(CPU_REG_LW(edx));
-               CPU_REG_LW(eip) += 1;
-               break;
-       case 0xec:                  /* inb dx */
-               CPU_REG_LW(eax) &= ~(CARD32)0xff;
-               CPU_REG_LB(ax) |= P.inb(CPU_REG_LW(edx));
-               CPU_REG_LW(eip) += 1;
-               break;
-
-       case 0xe7:                  /* outw xx */
-               if (prefix66) P.outl((int)csp[1], CPU_REG(eax));
-               else P.outw((int)csp[1], CPU_REG_LW(eax));
-               CPU_REG_LW(eip) += 2;
-               break;
-       case 0xe6:                  /* outb xx */
-               P.outb((int) csp[1], CPU_REG_LB(ax));
-               CPU_REG_LW(eip) += 2;
-               break;
-       case 0xef:                  /* outw dx */
-               if (prefix66) P.outl(CPU_REG_LW(edx), CPU_REG(eax));
-               else P.outw(CPU_REG_LW(edx), CPU_REG_LW(eax));
-               CPU_REG_LW(eip) += 1;
-               break;
-       case 0xee:                  /* outb dx */
-               P.outb(CPU_REG_LW(edx), CPU_REG_LB(ax));
-               CPU_REG_LW(eip) += 1;
-               break;
-
-       case 0xf4:
-#ifdef V86BIOS_DEBUG
-               printf("hlt at %p\n", lina);
-#endif
-               return 0;
-
-       case 0x0f: 
-               log_err("CPU 0x0f Trap at eip=0x%lx\n",CPU_REG(eip));
-               goto op0ferr; 
-               break;
-
-       case 0xf0:                  /* lock */
-       default:
-               log_err("unknown reason for exception\n");
-               log_registers();
-       op0ferr:
-               log_err("cannot continue\n");
-               return 0;
-       }                           /* end of switch() */
-       return 1;
-}
-
-static int
-vm86_do_int(int num)
-{
-       int val;
-       struct regs86 regs;
-
-       /* try to run bios interrupt */
-       
-       /* if not installed fall back */
-#define COPY(x) regs.x = CPU_REG(x)
-#define COPY_R(x) CPU_REG(x) = regs.x
-       
-       COPY(eax);
-       COPY(ebx);
-       COPY(ecx);
-       COPY(edx);
-       COPY(esi);
-       COPY(edi);
-       COPY(ebp);
-       COPY(eip);
-       COPY(esp);
-       COPY(cs);
-       COPY(ss);
-       COPY(ds);
-       COPY(es);
-       COPY(fs);
-       COPY(gs);
-       COPY(eflags);
-
-       if (!(val = int_handler(num,&regs)))
-               if (!(val = run_bios_int(num,&regs)))
-                       return val;
-               
-       COPY_R(eax);
-       COPY_R(ebx);
-       COPY_R(ecx);
-       COPY_R(edx);
-       COPY_R(esi);
-       COPY_R(edi);
-       COPY_R(ebp);
-       COPY_R(eip);
-       COPY_R(esp);
-       COPY_R(cs);
-       COPY_R(ss);
-       COPY_R(ds);
-       COPY_R(es);
-       COPY_R(fs);
-       COPY_R(gs);
-       COPY_R(eflags);
-
-       return val;
-#undef COPY
-#undef COPY_R
-}
-
-#ifdef __i386__
-
-static int
-vm86_rep(struct vm86_struct *ptr) 
-{
-
-       int __res;
-
-       /* stay away from %ebx */
-       __asm__ __volatile__("push %%ebx\n\tmov %%ecx,%%ebx\n\tpush %%gs\n\tint $0x80\n\tpop %%gs\n\tpop %%ebx\n"
-                                                :"=a" (__res):"a" ((int)113),
-                                                "c" ((struct vm86_struct *)ptr));
-
-                       if ((__res) < 0) {
-                               errno = -__res;
-                               __res=-1;
-                       }
-                       else errno = 0;
-                       return __res;
-}
-
-#endif
-
-#ifdef __i386__
-
-#define pushw(base, ptr, val) \
-__asm__ __volatile__( \
-               "decw %w0\n\t" \
-               "movb %h2,(%1,%0)\n\t" \
-               "decw %w0\n\t" \
-               "movb %b2,(%1,%0)" \
-               : "=r" (ptr) \
-               : "r" (base), "q" (val), "0" (ptr))
-
-#else
-
-#define pushw(base, ptr, val) {                                        \
-       ptr = ((ptr) - 1) & 0xffff;                             \
-       *((unsigned char *)(base) + (ptr)) = (val) >> 8;        \
-       ptr = ((ptr) - 1) & 0xffff;                             \
-       *((unsigned char *)(base) + (ptr)) = (val);             \
-       }
-
-#endif
-
-int
-run_bios_int(int num, struct regs86 *regs)
-{
-       CARD16 *ssp;
-       CARD32 sp;
-       CARD32 eflags;
-
-#ifdef V86BIOS_DEBUG
-       static int firsttime = 1;
-#endif
-       /* check if bios vector is initialized */
-       if (((CARD16*)0)[(num<<1)+1] == 0x0000) { /* SYS_BIOS_SEG ?*/
-               return 0;
-       }
-       
-#ifdef V86BIOS_DEBUG
-       if (firsttime) {
-               dprint(0,0x3D0);
-               firsttime = 0;
-       }
-#endif
-       
-       ssp = (CARD16*)INT2PTR(CPU_REG(ss)<<4);
-       sp = (CARD32) CPU_REG_LW(esp);
-
-       eflags = regs->eflags;
-       eflags = ((eflags & VIF_MASK) != 0)
-               ? (eflags | IF_MASK) : (eflags & ~(CARD32) IF_MASK);
-       pushw(ssp, sp, eflags);
-       pushw(ssp, sp, regs->cs);
-       pushw(ssp, sp, (CARD16)regs->eip);
-       regs->esp -= 6;
-       regs->cs = ((CARD16 *) 0)[(num << 1) + 1];
-       regs->eip = (regs->eip & 0xFFFF0000) | ((CARD16 *) 0)[num << 1];
-#ifdef V86BIOS_DEBUG
-       dump_code();
-#endif
-       regs->eflags = regs->eflags
-                                          & ~(VIF_MASK | TF_MASK | IF_MASK | NT_MASK);
-       return 1;
-}
-
-CARD32
-getIntVect(int num)
-{
-       return ((CARD32*)0)[num];
-}
-
-CARD32
-getIP(void)
-{
-    return (CPU_REG(cs) << 4) + CPU_REG(eip);
-}
-
-void log_registers()
-{
-  log_err(
-    "  eax %08x, ebx %08x, ecx %08x, edx %08x\n"
-    "  esi %08x, edi %08x, ebp %08x, esp %08x\n"
-    "  ds %04x, es %04x, fs %04x, gs %04x, ss %04x\n"
-    "  cs:eip %04x:%08x\n",
-    (unsigned) CPU_REG(eax), (unsigned) CPU_REG(ebx), (unsigned) CPU_REG(ecx), (unsigned) CPU_REG(edx),
-    (unsigned) CPU_REG(esi), (unsigned) CPU_REG(edi), (unsigned) CPU_REG(ebp), (unsigned) CPU_REG(esp),
-    (unsigned) CPU_REG(ds), (unsigned) CPU_REG(es),
-    (unsigned) CPU_REG(fs), (unsigned) CPU_REG(gs), (unsigned) CPU_REG(ss),
-    (unsigned) CPU_REG(cs), (unsigned) CPU_REG(eip)
-  );
-}
-
diff --git a/src/hwinfo/src/int10/i10_vbios.c b/src/hwinfo/src/int10/i10_vbios.c
deleted file mode 100644 (file)
index c952199..0000000
+++ /dev/null
@@ -1,511 +0,0 @@
-/*
- * Copyright 1999 Egbert Eich
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the authors not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  The authors makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <errno.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <string.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <sys/stat.h>
-#include <setjmp.h>
-#if defined(__alpha__) || defined (__ia64__)
-#include <sys/io.h>
-//#elif defined(HAVE_SYS_PERM)
-#else
-#include <sys/perm.h>
-#endif
-#include "v86bios.h"
-#include "pci.h"
-#include "AsmMacros.h"
-#include "vbios.h"
-
-void log_err(char *format, ...) __attribute__ ((format (printf, 1, 2)));
-
-#define SIZE 0x100000
-#define VRAM_START 0xA0000
-#define VRAM_SIZE 0x1FFFF
-#define V_BIOS_SIZE 0x1FFFF
-#define BIOS_START 0x7C00            /* default BIOS entry */
-
-static CARD8 code[] = { 0xcd, 0x10, 0xf4 };    /* int 0x10, hlt */
-// static CARD8 code13[] = { 0xcd, 0x13, 0xf4 };       /* int 0x13, hlt */
-
-static int int10_bios_ok(void);
-static int map(void);
-static void unmap(void);
-static int map_vram(void);
-static void unmap_vram(void);
-static int copy_vbios(hd_data_t *hd_data);
-// static int copy_sbios(void);
-#if MAP_SYS_BIOS
-static int copy_sys_bios(hd_data_t *hd_data);
-#endif
-static int copy_bios_ram(hd_data_t *hd_data);
-static int setup_system_bios(hd_data_t *hd_data);
-static void setup_int_vect(void);
-static int chksum(CARD8 *start);
-
-void loadCodeToMem(unsigned char *ptr, CARD8 *code);
-
-static int vram_mapped = 0;
-static int int10inited = 0;
-
-static sigjmp_buf longjmp_buf;
-
-static void sigsegv_handler(int);
-
-int InitInt10(hd_data_t *hd_data, int pci_cfg_method)
-{
-  if(geteuid()) return -1;
-
-  if(!map()) return -1;
-
-  if(!setup_system_bios(hd_data)) {
-    unmap();
-    return -1;
-  }
-
-  setup_io();
-
-  if(iopl(3) < 0) {
-    unmap();
-    return -1;
-  }
-
-  scan_pci(pci_cfg_method);
-
-  for(; CurrentPci; CurrentPci = CurrentPci->next) {
-    if(CurrentPci->active) break;
-  }
-
-  iopl(0);
-
-  setup_int_vect();
-
-  if(!copy_vbios(hd_data)) {
-    unmap();
-    return -1;
-  }
-
-  if(!map_vram() || !copy_bios_ram(hd_data)) {
-    unmap();
-    return -1;
-  }
-
-  if(!int10_bios_ok()) {
-    unmap();
-    return -1;
-  }
-
-  int10inited = 1;
-
-  return 0;
-}
-
-
-void FreeInt10()
-{
-  if(!int10inited) return;
-
-  unmap_vram();
-  unmap();
-
-  int10inited = 0;
-}
-
-
-/*
- * Check whether int 0x10 points to some useful code.
- */
-int int10_bios_ok()
-{
-  unsigned cs, ip;
-  unsigned char *p;
-
-  ip = ((uint16_t *) 0)[0x10 * 2];
-  cs = ((uint16_t *) 0)[0x10 * 2 + 1];
-
-  p = (unsigned char *) ((cs << 4) + ip);
-
-  log_err(
-    "  vbe: int 10h points to %04x:%04x: %02x %02x %02x %02x %02x %02x %02x %02x\n",
-    cs, ip,
-    p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]
-  );
-
-  /* It can't possibly start with all zeros. */
-  if(!*(uint32_t *) p) {
-    log_err("  vbe: oops, int 10h points into nirvana!\n");
-
-    return 0;
-  }
-
-  return 1;
-}
-
-
-void sigsegv_handler(int num)
-{
-  siglongjmp(longjmp_buf, num + 1000);
-}
-
-
-int CallInt10(int *ax, int *bx, int *cx, unsigned char *buf, int len, int cpuemu)
-{
-  i86biosRegs bRegs;
-  void (*old_sigsegv_handler)(int) = SIG_DFL;
-  void (*old_sigill_handler)(int) = SIG_DFL;
-  void (*old_sigtrap_handler)(int) = SIG_DFL;
-  int jmp;
-
-  if(!int10inited) return -1;
-  memset(&bRegs, 0, sizeof bRegs);
-  bRegs.ax = *ax;
-  bRegs.bx = *bx;
-  bRegs.cx = *cx;
-  bRegs.dx = 0;
-  bRegs.es = 0x7e0;
-  bRegs.di = 0x0;
-  if(buf) memcpy((unsigned char *) 0x7e00, buf, len);
-
-  iopl(3);
-
-  jmp = sigsetjmp(longjmp_buf, 1);
-
-  if(!jmp) {
-    old_sigsegv_handler = signal(SIGSEGV, sigsegv_handler);
-    old_sigill_handler = signal(SIGILL, sigsegv_handler);
-    old_sigtrap_handler = signal(SIGTRAP, sigsegv_handler);
-
-    loadCodeToMem((unsigned char *) BIOS_START, code);
-    do_x86(BIOS_START, &bRegs, cpuemu);
-  }
-  else {
-    int10inited = 0;
-    log_err("oops: got signal %d in vm86() code\n", jmp - 1000);
-  }
-
-  signal(SIGTRAP, old_sigtrap_handler);
-  signal(SIGILL, old_sigill_handler);
-  signal(SIGSEGV, old_sigsegv_handler);
-
-  iopl(0);
-
-  if(buf) memcpy(buf, (unsigned char *) 0x7e00, len);
-
-  *ax = bRegs.ax;
-  *bx = bRegs.bx;
-  *cx = bRegs.cx;
-
-  return bRegs.ax;
-}
-
-
-#if 0
-int CallInt13(int *ax, int *bx, int *cx, int *dx, unsigned char *buf, int len, int cpuemu)
-{
-  i86biosRegs bRegs;
-
-  if(!int10inited) return -1;
-  memset(&bRegs, 0, sizeof bRegs);
-  bRegs.ax = *ax;
-  bRegs.bx = *bx;
-  bRegs.cx = *cx;
-  bRegs.dx = *dx;
-  bRegs.es = 0x7e0;
-  bRegs.ds = 0x7e0;
-  bRegs.di = 0x0;
-  bRegs.si = 0x0;
-  if(buf) memcpy((unsigned char *) 0x7e00, buf, len);
-
-  iopl(3);
-
-  loadCodeToMem((unsigned char *) BIOS_START, code13);
-  do_x86(BIOS_START, &bRegs, cpuemu);
-
-  iopl(0);
-
-  if(buf) memcpy(buf, (unsigned char *) 0x7e00, len);
-
-  *ax = bRegs.ax;
-  *bx = bRegs.bx;
-  *cx = bRegs.cx;
-  *dx = bRegs.dx;
-
-  return bRegs.ax;
-}
-#endif
-
-
-int map()
-{
-  void* mem;
-
-  mem = mmap(0, (size_t) SIZE, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_FIXED | MAP_PRIVATE | MAP_ANON, -1, 0);
-
-  if(mem) {
-    perror("anonymous map");
-    return 0;
-  }
-
-  memset(mem, 0, SIZE);
-
-  loadCodeToMem((unsigned char *) BIOS_START, code);
-
-  return 1;
-}
-
-
-void unmap()
-{
-  munmap(0, SIZE);
-}
-
-
-static int
-map_vram(void)
-{
-       int mem_fd;
-
-#ifdef __ia64__
-       if ((mem_fd = open(MEM_FILE,O_RDWR | O_SYNC))<0) 
-#else
-       if ((mem_fd = open(MEM_FILE,O_RDWR))<0) 
-#endif
-         {
-               perror("opening memory");
-               return 0;
-       }
-
-#ifndef __alpha__
-       if (mmap((void *) VRAM_START, (size_t) VRAM_SIZE,
-                                        PROT_EXEC | PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED,
-                                        mem_fd, VRAM_START) == (void *) -1) 
-#else
-                if (!_bus_base()) sparse_shift = 7; /* Uh, oh, JENSEN... */
-                if (!_bus_base_sparse()) sparse_shift = 0;
-                if ((vram_map = mmap(0,(size_t) (VRAM_SIZE << sparse_shift),
-                                                                                                PROT_READ | PROT_WRITE,
-                                                                                                MAP_SHARED,
-                                                                                                mem_fd, (VRAM_START << sparse_shift)
-                                                                                                | _bus_base_sparse())) == (void *) -1)
-#endif
-         {
-           perror("mmap error in map_hardware_ram");
-                       close(mem_fd);
-                       return (0);
-               }
-       vram_mapped = 1;
-       close(mem_fd);
-       return (1);
-}
-
-
-void unmap_vram()
-{
-  if(!vram_mapped) return;
-
-  munmap((void*) VRAM_START, VRAM_SIZE);
-
-  vram_mapped = 0;
-}
-
-
-/*
- * Read video BIOS from /dev/mem.
- *
- * Return:
- *  0: failed
- *  1: ok
- */
-int copy_vbios(hd_data_t *hd_data)
-{
-  unsigned size;
-  unsigned char tmp[3];
-
-  if(!hd_read_mmap(hd_data, MEM_FILE, tmp, V_BIOS, sizeof tmp)) {
-    log_err("vbe: failed to read %u bytes at 0x%x\n", (unsigned) sizeof tmp, V_BIOS);
-    return 0;
-  }
-
-  if(tmp[0] != 0x55 || tmp[1] != 0xAA ) {
-    log_err("vbe: no bios found at: 0x%x\n", V_BIOS);
-    return 0;
-  }
-
-  size = tmp[2] * 0x200;
-
-  if(!hd_read_mmap(hd_data, MEM_FILE, (unsigned char *) V_BIOS, V_BIOS, size)) {
-    log_err("vbe: failed to read %d bytes at 0x%x\n", size, V_BIOS);
-    return 0;
-  }
-
-  return chksum((CARD8 *) V_BIOS) ? 1 : 0;
-}
-
-
-#if MAP_SYS_BIOS
-static int
-copy_sys_bios(hd_data_t *hd_data)
-{
-  return hd_read_mmap(hd_data, MEM_FILE, (unsigned char *) 0xf0000, 0xf0000, 0xffff);
-}
-#endif
-
-
-static int copy_bios_ram(hd_data_t *hd_data)
-{
-  return hd_read_mmap(hd_data, MEM_FILE, (unsigned char *) 0, 0, 0x1000);
-}
-
-void loadCodeToMem(unsigned char *ptr, CARD8 *code)
-{
-  while((*ptr++ = *code++) != 0xf4 /* hlt */);
-
-  return;
-}
-               
-
-/*
- * here we are really paranoid about faking a "real"
- * BIOS. Most of this information was pulled from
- * dosem.
- */
-static void
-setup_int_vect(void)
-{
-       const CARD16 cs = 0x0000;
-       const CARD16 ip = 0x0;
-       int i;
-       
-       /* let the int vects point to the SYS_BIOS seg */
-       for (i=0; i<0x80; i++) {
-               ((CARD16*)0)[i<<1] = ip;
-               ((CARD16*)0)[(i<<1)+1] = cs;
-       }
-       /* video interrupts default location */
-       ((CARD16*)0)[(0x42<<1)+1] = 0xf000;
-       ((CARD16*)0)[0x42<<1] = 0xf065;
-       ((CARD16*)0)[(0x10<<1)+1] = 0xf000;
-       ((CARD16*)0)[0x10<<1] = 0xf065;
-       /* video param table default location (int 1d) */
-       ((CARD16*)0)[(0x1d<<1)+1] = 0xf000;
-       ((CARD16*)0)[0x1d<<1] = 0xf0A4;
-       /* font tables default location (int 1F) */
-       ((CARD16*)0)[(0x1f<<1)+1] = 0xf000;
-       ((CARD16*)0)[0x1f<<1] = 0xfa6e;
-
-       /* int 11 default location */
-       ((CARD16*)0)[(0x11<1)+1] = 0xf000;
-       ((CARD16*)0)[0x11<<1] = 0xf84d;
-       /* int 12 default location */
-       ((CARD16*)0)[(0x12<<1)+1] = 0xf000;
-       ((CARD16*)0)[0x12<<1] = 0xf841;
-       /* int 15 default location */
-       ((CARD16*)0)[(0x15<<1)+1] = 0xf000;
-       ((CARD16*)0)[0x15<<1] = 0xf859;
-       /* int 1A default location */
-       ((CARD16*)0)[(0x1a<<1)+1] = 0xf000;
-       ((CARD16*)0)[0x1a<<1] = 0xff6e;
-       /* int 05 default location */
-       ((CARD16*)0)[(0x05<<1)+1] = 0xf000;
-       ((CARD16*)0)[0x05<<1] = 0xff54;
-       /* int 08 default location */
-       ((CARD16*)0)[(0x8<<1)+1] = 0xf000;
-       ((CARD16*)0)[0x8<<1] = 0xfea5;
-       /* int 13 default location (fdd) */
-       ((CARD16*)0)[(0x13<<1)+1] = 0xf000;
-       ((CARD16*)0)[0x13<<1] = 0xec59;
-       /* int 0E default location */
-       ((CARD16*)0)[(0xe<<1)+1] = 0xf000;
-       ((CARD16*)0)[0xe<<1] = 0xef57;
-       /* int 17 default location */
-       ((CARD16*)0)[(0x17<<1)+1] = 0xf000;
-       ((CARD16*)0)[0x17<<1] = 0xefd2;
-       /* fdd table default location (int 1e) */
-       ((CARD16*)0)[(0x1e<<1)+1] = 0xf000;
-       ((CARD16*)0)[0x1e<<1] = 0xefc7;
-}
-
-static int
-setup_system_bios(hd_data_t *hd_data)
-{
-       char *date = "06/01/99";
-       char *eisa_ident = "PCI/ISA";
-       
-#if MAP_SYS_BIOS
-       if (!copy_sys_bios(hd_data)) return 0;
-       return 1;
-#endif
-//    memset((void *)0xF0000,0xf4,0xfff7);
-       
-       /*
-        * we trap the "industry standard entry points" to the BIOS
-        * and all other locations by filling them with "hlt"
-        * TODO: implement hlt-handler for these
-        */
-       memset((void *)0xF0000,0xf4,0x10000);
-
-       /*
-        * TODO: we should copy the fdd table (0xfec59-0xfec5b)
-        * the video parameter table (0xf0ac-0xf0fb)
-        * and the font tables (0xfa6e-0xfe6d)
-        * from the original bios here
-        */
-       
-       /* set bios date */
-       strcpy((char *)0xFFFF5,date);
-       /* set up eisa ident string */
-       strcpy((char *)0xFFFD9,eisa_ident);
-       /* write system model id for IBM-AT */
-       ((char *)0)[0xFFFFE] = 0xfc;
-
-       return 1;
-}
-
-
-/*
- * Check BIOS CRC.
- *
- * Return:
- *  0: failed
- *  1: ok
- */
-int chksum(CARD8 *start)
-{
-  CARD16 size;
-  CARD8 val = 0;
-  int i;
-
-  size = start[2] * 0x200;
-  for(i = 0; i < size; i++) val += start[i];
-       
-  if(!val) return 1;
-
-  log_err("vbe: BIOS chksum wrong\n");
-
-  return 0;
-}
-
diff --git a/src/hwinfo/src/int10/int10.c b/src/hwinfo/src/int10/int10.c
deleted file mode 100644 (file)
index 04c1507..0000000
+++ /dev/null
@@ -1,299 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdarg.h>
-
-#include "vbios.h"
-
-#include "hd.h"
-#include "hd_int.h"
-#include "bios.h"
-
-static unsigned segofs2addr(unsigned char *segofs);
-static unsigned get_data(unsigned char *buf, unsigned buf_size, unsigned addr);
-static void read_vbe_info(hd_data_t *hd_data, vbe_info_t *vbe, unsigned char *vbeinfo, unsigned cpuemu);
-
-static hd_data_t *log_hd_data;
-void log_err(char *format, ...) __attribute__ ((format (printf, 1, 2)));
-
-void get_vbe_info(hd_data_t *hd_data, vbe_info_t *vbe)
-{
-  int i;
-  unsigned char vbeinfo[0x200];
-  int ax, bx, cx;
-  unsigned cpuemu = hd_data->flags.cpuemu;
-
-  log_hd_data = hd_data;
-
-  if(InitInt10(hd_data, hd_data->pci_config_type)) {
-    ADD2LOG("VBE: Could not init Int10\n");
-    return;
-  }
-
-  memset(vbeinfo, 0, sizeof vbeinfo);
-  strcpy(vbeinfo, "VBE2");
-
-  PROGRESS(4, 1, "vbe info");
-
-  if(hd_probe_feature(hd_data, pr_cpuemu_debug)) cpuemu |= 2;
-
-#ifdef __i386__
-  if(hd_data->flags.cpuemu)
-#endif
-    ADD2LOG("vm86: using CPU emulation\n");
-
-  ax = 0x4f00; bx = 0; cx = 0;
-  i = CallInt10(&ax, &bx, &cx, vbeinfo, sizeof vbeinfo, cpuemu) & 0xffff;
-
-  if(i != 0x4f) {
-    ADD2LOG("VBE: Error (0x4f00): 0x%04x\n", i);
-    FreeInt10();
-    return;
-  }
-
-  if(hd_probe_feature(hd_data, pr_bios_fb)) {
-    PROGRESS(4, 2, "mode info");
-
-    read_vbe_info(hd_data, vbe, vbeinfo, cpuemu);
-  }
-
-  if(hd_probe_feature(hd_data, pr_bios_ddc)) {
-    PROGRESS(4, 3, "ddc info");
-
-    memset(vbeinfo, 0, sizeof vbeinfo);
-    ax = 0x4f15; bx = 1; cx = 0;
-    i = CallInt10(&ax, &bx, &cx, vbeinfo, sizeof vbeinfo, cpuemu) & 0xffff;
-
-    if(i != 0x4f) {
-      ADD2LOG("Error (0x4f15): 0x%04x\n", i);
-    } else {
-      vbe->ok = 1;
-      memcpy(vbe->ddc, vbeinfo, sizeof vbe->ddc);
-
-      ADD2LOG("edid record:\n");
-      for(i = 0; (unsigned) i < sizeof vbe->ddc; i += 0x10) {
-        ADD2LOG("  ");
-        hexdump(&hd_data->log, 1, 0x10, vbe->ddc + i);
-        ADD2LOG("\n");
-      }
-    }
-  }
-
-  if(hd_probe_feature(hd_data, pr_bios_mode)) {
-    PROGRESS(4, 4, "gfx mode");
-
-    ax = 0x4f03; bx = 0; cx = 0;
-    i = CallInt10(&ax, &bx, &cx, vbeinfo, sizeof vbeinfo, cpuemu) & 0xffff;
-
-    if(i != 0x4f) {
-      ADD2LOG("Error (0x4f03): 0x%04x\n", i);
-    } else {
-      vbe->current_mode = bx;
-      vbe->ok = 1;
-    }
-  }
-
-  FreeInt10();
-}
-
-
-unsigned segofs2addr(unsigned char *segofs)
-{
-  return segofs[0] + (segofs[1] << 8) + (segofs[2] << 4)+ (segofs[3] << 12);
-}
-
-
-unsigned get_data(unsigned char *buf, unsigned buf_size, unsigned addr)
-{
-  unsigned bufferaddr = 0x7e00;
-  unsigned len;
-
-  *buf = 0;
-  len = 0;
-
-  if(addr >= bufferaddr && addr < bufferaddr + 0x200) {
-    len = bufferaddr + 0x200 - addr;
-    if(len >= buf_size) len = buf_size - 1;
-    memcpy(buf, addr + (char *) 0, len);
-  }
-  else if(addr >= 0x0c0000 && addr < 0x100000) {
-    len = 0x100000 - addr;
-    if(len >= buf_size) len = buf_size - 1;
-    memcpy(buf, addr + (char *) 0, len);
-  }
-
-  buf[len] = 0;
-
-  return len;
-}
-
-
-void read_vbe_info(hd_data_t *hd_data, vbe_info_t *vbe, unsigned char *v, unsigned cpuemu)
-{
-  unsigned char tmp[1024], s[64];
-  unsigned i, l, u;
-  unsigned modelist[0x100];
-  unsigned bpp, res_bpp, fb, clock;
-  vbe_mode_info_t *mi;
-  int ax, bx, cx;
-
-  vbe->ok = 1;
-
-  vbe->version = v[0x04] + (v[0x05] << 8);
-  vbe->oem_version = v[0x14] + (v[0x15] << 8);
-  vbe->memory = (v[0x12] + (v[0x13] << 8)) << 16;
-
-  ADD2LOG(
-    "version = %u.%u, oem version = %u.%u\n",
-    vbe->version >> 8, vbe->version & 0xff, vbe->oem_version >> 8, vbe->oem_version & 0xff
-  );
-
-  ADD2LOG("memory = %uk\n", vbe->memory >> 10);
-
-  l = get_data(tmp, sizeof tmp, u = segofs2addr(v + 0x06));
-  vbe->oem_name = canon_str(tmp, l);
-  ADD2LOG("oem name [0x%05x] = \"%s\"\n", u, vbe->oem_name);
-
-  l = get_data(tmp, sizeof tmp, u = segofs2addr(v + 0x16));
-  vbe->vendor_name = canon_str(tmp, l);
-  ADD2LOG("vendor name [0x%05x] = \"%s\"\n", u, vbe->vendor_name);
-
-  l = get_data(tmp, sizeof tmp, u = segofs2addr(v + 0x1a));
-  vbe->product_name = canon_str(tmp, l);
-  ADD2LOG("product name [0x%05x] = \"%s\"\n", u, vbe->product_name);
-
-  l = get_data(tmp, sizeof tmp, u = segofs2addr(v + 0x1e));
-  vbe->product_revision = canon_str(tmp, l);
-  ADD2LOG("product revision [0x%05x] = \"%s\"\n", u, vbe->product_revision);
-
-  l = get_data(tmp, sizeof tmp, u = segofs2addr(v + 0x0e)) >> 1;
-
-  for(i = vbe->modes = 0; i < l && i < sizeof modelist / sizeof *modelist; i++) {
-    u = tmp[2 * i] + (tmp[2 * i + 1] << 8);
-    if(u != 0xffff)
-      modelist[vbe->modes++] = u;
-    else
-      break;
-  }
-
-  ADD2LOG("%u video modes:\n", vbe->modes);
-
-  vbe->mode = new_mem(vbe->modes * sizeof *vbe->mode);
-
-  if(!vbe->mode) return;
-
-  for(i = 0; i < vbe->modes; i++) {
-
-    mi = vbe->mode + i;
-
-    mi->number =  modelist[i];
-    
-    ax = 0x4f01; bx = 0; cx = modelist[i];
-    l = CallInt10(&ax, &bx, &cx, tmp, sizeof tmp, cpuemu) & 0xffff;
-
-    if(l != 0x4f) {
-      ADD2LOG("0x%04x: no mode info\n", modelist[i]);
-      continue;
-    }
-
-    mi->attributes = tmp[0x00] + (tmp[0x01] << 8);
-
-    mi->width = tmp[0x12] + (tmp[0x13] << 8);
-    mi->height = tmp[0x14] + (tmp[0x15] << 8);
-    mi->bytes_p_line = tmp[0x10] + (tmp[0x11] << 8);
-
-    mi->win_A_start = (tmp[0x08] + (tmp[0x09] << 8)) << 4;
-    mi->win_B_start = (tmp[0x0a] + (tmp[0x0b] << 8)) << 4;
-
-    mi->win_A_attr = tmp[0x02];
-    mi->win_B_attr = tmp[0x03];
-
-    mi->win_gran = (tmp[0x04] + (tmp[0x05] << 8)) << 10;
-    mi->win_size = (tmp[0x06] + (tmp[0x07] << 8)) << 10;
-
-    bpp = res_bpp = 0;
-    switch(tmp[0x1b]) {
-      case 0:
-        bpp = -1;
-        break;
-
-      case 1:
-        bpp = 2;
-        break;
-
-      case 2:
-        bpp = 1;
-        break;
-
-      case 3:
-        bpp = 4;
-        break;
-
-      case 4:
-        bpp = 8;
-        break;
-
-      case 6:
-        bpp = tmp[0x19] - tmp[0x25];
-        res_bpp = tmp[0x25];
-    }
-
-    fb = 0;
-    if(vbe->version >= 0x0200) {
-      mi->fb_start = tmp[0x28] + (tmp[0x29] << 8) + (tmp[0x2a] << 16) + (tmp[0x2b] << 24);
-    }
-
-    clock = 0;
-    if(vbe->version >= 0x0300) {
-      mi->pixel_clock = tmp[0x3e] + (tmp[0x3f] << 8) + (tmp[0x40] << 16) + (tmp[0x41] << 24);
-    }
-
-    mi->pixel_size = bpp;
-
-    if(bpp == -1u) {
-      ADD2LOG("  0x%04x[%02x]: %ux%u, text\n", mi->number, mi->attributes, mi->width, mi->height);
-    }
-    else {
-      if(
-        (mi->attributes & 1) &&                /* mode is supported */
-        mi->fb_start
-      ) {
-        if(!vbe->fb_start) vbe->fb_start = mi->fb_start;
-      }
-      *s = 0;
-      if(res_bpp) sprintf(s, "+%u", res_bpp);
-      ADD2LOG(
-        "  0x%04x[%02x]: %ux%u+%u, %u%s bpp",
-        mi->number, mi->attributes, mi->width, mi->height, mi->bytes_p_line, mi->pixel_size, s
-      );
-
-      if(mi->pixel_clock) ADD2LOG(", max. %u MHz", mi->pixel_clock/1000000);
-
-      if(mi->fb_start) ADD2LOG(", fb: 0x%08x", mi->fb_start);
-
-      ADD2LOG(", %04x.%x", mi->win_A_start, mi->win_A_attr);
-
-      if(mi->win_B_start || mi->win_B_attr) ADD2LOG("/%04x.%x", mi->win_B_start, mi->win_B_attr);
-
-      ADD2LOG(": %uk", mi->win_size >> 10);
-
-      if(mi->win_gran != mi->win_size) ADD2LOG("/%uk", mi->win_gran >> 10);
-
-      ADD2LOG("\n");
-    }
-  }
-
-}
-
-void log_err(char *format, ...)
-{
-  va_list args;
-  char buf[1024];
-
-  va_start(args, format);
-  vsnprintf(buf, sizeof buf, format, args);
-  str_printf(&log_hd_data->log, -2, "%s", buf);
-  va_end(args);
-}
-
diff --git a/src/hwinfo/src/int10/pci.h b/src/hwinfo/src/int10/pci.h
deleted file mode 100644 (file)
index 840f9d4..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright 1999 Egbert Eich
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the authors not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  The authors makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-#include "v86bios.h"
-
-#ifndef V86_PCI_H
-#define V86_PCI_H
-
-typedef union {
-       struct {
-               unsigned int    zero:2;
-               unsigned int    reg:6;
-               unsigned int    func:3;
-               unsigned int    dev:5;
-               unsigned int    bus:8;
-               unsigned int    reserved:7;
-               unsigned int    enable:1;
-       } pci;
-       CARD32 l;
-} PciSlot;
-
-typedef struct pciBusRec {
-       CARD8 primary;
-       CARD8 secondary;
-       CARD32 bctl;
-       PciSlot Slot;
-       struct pciBusRec *next;
-       struct pciBusRec *pBus;
-} PciBusRec, *PciBusPtr;
-
-typedef struct pciStructRec {
-       CARD16 VendorID;
-       CARD16 DeviceID;
-       CARD8 Interface;
-       CARD8 BaseClass;
-       CARD8 SubClass;
-       CARD32 RomBase;
-       CARD32 bus;
-       CARD8 dev;
-       CARD8 func;
-       CARD32 cmd_st;
-       int active;
-       PciSlot Slot;
-       struct pciStructRec *next;
-       PciBusPtr pBus;
-} PciStructRec , *PciStructPtr;
-
-
-extern PciStructPtr CurrentPci;
-extern PciStructPtr PciList;
-extern PciStructPtr BootBios;
-extern int pciMaxBus;
-
-extern CARD32 findPci(CARD16 slotBX);
-extern CARD16 pciSlotBX(PciStructPtr);
-PciStructPtr findPciDevice(CARD16 vendorID, CARD16 deviceID, char n);
-PciStructPtr findPciClass(CARD8 intf, CARD8 subClass, CARD16 class, char n);
-
-extern CARD8 PciRead8(int offset, CARD32 slot);
-extern CARD16 PciRead16(int offset, CARD32 slot);
-extern CARD32 PciRead32(int offset, CARD32 slot);
-
-extern void PciWrite8(int offset,CARD8 byte, CARD32 slot);
-extern void PciWrite16(int offset,CARD16 word, CARD32 slot);
-extern void PciWrite32(int offset,CARD32 lg, CARD32 slot);
-
-extern void scan_pci(int);
-extern void pciVideoDisable(void);
-extern void pciVideoRestore(void);
-extern void EnableCurrent(void);
-extern int mapPciRom(PciStructPtr pciP);
-extern int cfg1out(CARD16 addr, CARD32 val);
-extern int cfg1in(CARD16 addr, CARD32 *val);
-extern void list_pci(void);
-extern PciStructPtr findPciByIDs(int bus, int dev, int func);
-
-#define PCI_MODE2_ENABLE_REG  0xCF8
-#define PCI_MODE2_FORWARD_REG  0xCFA
-#define PCI_MODE1_ADDRESS_REG  0xCF8
-#define PCI_MODE1_DATA_REG  0xCFC
-#if defined(__alpha__) || defined(__sparc__)
-#define PCI_EN 0x00000000
-#else
-#define PCI_EN 0x80000000
-#endif
-#define MAX_DEV_PER_VENDOR_CFG1  32
-#define BRIDGE_CLASS(x) (x == 0x06)
-#define BRIDGE_PCI_CLASS(x) (x == 0x04)
-#define BRIDGE_HOST_CLASS(x) (x == 0x00)
-#define PCI_CLASS_PREHISTORIC 0x00
-#define PCI_SUBCLASS_PREHISTORIC_VGA 0x01
-#define PCI_CLASS_DISPLAY 0x03
-#define PCI_SUBCLASS_DISPLAY_VGA 0x00
-#define PCI_SUBCLASS_DISPLAY_XGA 0x01
-#define PCI_SUBCLASS_DISPLAY_MISC 0x80
-#define VIDEO_CLASS(b,s) \
-       (((b) == PCI_CLASS_PREHISTORIC && (s) == PCI_SUBCLASS_PREHISTORIC_VGA) || \
-        ((b) == PCI_CLASS_DISPLAY && (s) == PCI_SUBCLASS_DISPLAY_VGA) ||\
-        ((b) == PCI_CLASS_DISPLAY && (s) == PCI_SUBCLASS_DISPLAY_XGA) ||\
-        ((b) == PCI_CLASS_DISPLAY && (s) == PCI_SUBCLASS_DISPLAY_MISC))
-#define PCI_MULTIFUNC_DEV  0x80
-#define MAX_PCI_DEVICES   64
-#define PCI_MAXBUS 16
-#define PCI_IS_MEM 0x00000001
-#define MAX_PCI_ROM_SIZE (1024 * 1024 * 16)
-
-#define IS_MEM32(x) ((x & 0x7) == 0 && x != 0)
-#define IS_MEM64(x) ((x & 0x7) == 0x4)
-#endif
diff --git a/src/hwinfo/src/int10/v86bios.h b/src/hwinfo/src/int10/v86bios.h
deleted file mode 100644 (file)
index c0c8acc..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright 1999 Egbert Eich
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the authors not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  The authors makes no representations
- * about the suitability of this software for any purpose.  It is provided
- * "as is" without express or implied warranty.
- *
- * THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-#ifndef V86_BIOS_H
-#define V86_BIOS_H
-
-#if defined (__i386__) || defined (__i486__) || defined (__i586__) || defined (__i686__) || defined (__k6__)
-# ifndef __ia32__
-#  define __ia32__
-# endif
-#endif
-
-#include <stdio.h>
-
-#define p_printf(f,a...) do {if (Config.PrintPort) lprintf(f,##a);} \
-                         while(0)
-#define i_printf(f,a...) do  {if (Config.PrintIrq) lprintf(f,##a);} \
-                          while(0)
-#define P_printf(f,a...) do {if (Config.PrintPci) lprintf(f,##a);} \
-                          while(0)
-
-typedef unsigned char CARD8;
-typedef unsigned short CARD16;
-typedef unsigned int CARD32;
-#if defined (__alpha__) || defined (__ia64__)
-typedef unsigned long memType;
-#else
-typedef unsigned int memType;
-#endif
-
-typedef int Bool;
-
-#define FALSE 0
-#define TRUE 1
-
-struct config {
-    Bool PrintPort;
-    Bool IoStatistics;
-    Bool PrintIrq;
-    Bool PrintPci;
-    Bool ShowAllDev;
-    Bool PrintIp;
-    Bool SaveBios;
-    Bool Trace;
-    Bool ConfigActiveOnly;
-    Bool ConfigActiveDevice;
-    Bool MapSysBios;
-    Bool Resort;
-    Bool FixRom;
-    Bool NoConsole;         
-    Bool BootOnly;
-    int  Verbose;
-};
-
-struct pio {
-       CARD8 (*inb)(CARD16);
-       CARD16 (*inw)(CARD16);
-       CARD32 (*inl)(CARD16);
-       void (*outb)(CARD16,CARD8);
-       void (*outw)(CARD16,CARD16);
-       void (*outl)(CARD16,CARD32);
-};
-
-struct regs86 {
-               long ebx;
-               long ecx;
-               long edx;
-               long esi;
-               long edi;
-               long ebp;
-               long eax;
-               long eip;
-               long esp;
-               unsigned short cs;
-               unsigned short ss;
-               unsigned short es;
-               unsigned short ds;
-               unsigned short fs;
-               unsigned short gs;
-       long eflags;
-};
-
-typedef struct {
-    CARD32 ax;
-    CARD32 bx;
-    CARD32 cx;
-    CARD32 dx;
-    CARD32 cs;
-    CARD32 es;
-    CARD32 ds;
-    CARD32 si;
-    CARD32 di;
-} i86biosRegs, *i86biosRegsPtr;
-
-typedef struct {
-       int fd;
-       int vt;
-} console;
-
-typedef struct {
-    void* address;
-    CARD8 orgval;
-} haltpoints;
-
-enum dev_type {  NONE, ISA, PCI };
-struct device {
-    Bool booted;
-    enum dev_type type;
-       union {
-         int none;
-         struct pci {
-               int bus;
-               int dev;
-               int func;
-         } pci;
-       } loc;
-};
-
-extern struct device Device;
-
-#ifdef __alpha__
-unsigned long _bus_base(void);
-extern void* vram_map;
-extern int sparse_shift;
-#endif
-
-extern struct pio P;
-extern struct config Config;
-#define IOPERM_BITS 1024
-extern int ioperm_list[IOPERM_BITS];
-
-extern void setup_io(void);
-extern void do_x86(unsigned long bios_start,i86biosRegsPtr regs, int cpuemu);
-extern int run_bios_int(int num, struct regs86 *regs);
-extern CARD32 getIntVect(int num);
-CARD32 getIP(void);
-
-extern void call_boot(struct device *dev);
-extern void runINT(int num,i86biosRegsPtr Regs);
-extern void add_hlt(unsigned long addr);
-extern void del_hlt(int addr);
-extern void list_hlt();
-
-extern int port_rep_inb(CARD16 port, CARD8 *base, int d_f, CARD32 count);
-extern int port_rep_inw(CARD16 port, CARD16 *base, int d_f, CARD32 count);
-extern int port_rep_inl(CARD16 port, CARD32 *base, int d_f, CARD32 count);
-extern int port_rep_outb(CARD16 port, CARD8 *base, int d_f, CARD32 count);
-extern int port_rep_outw(CARD16 port, CARD16 *base, int d_f, CARD32 count);
-extern int port_rep_outl(CARD16 port, CARD32 *base, int d_f, CARD32 count);
-extern CARD8 p_inb(CARD16 port);
-extern CARD16 p_inw(CARD16 port);
-extern CARD32 p_inl(CARD16 port);
-extern void p_outb(CARD16 port, CARD8 val);
-extern void p_outw(CARD16 port, CARD16 val);
-extern void p_outl(CARD16 port, CARD32 val);
-#ifdef __alpha__
-extern CARD8 a_inb(CARD16 port);
-extern CARD16 a_inw(CARD16 port);
-extern void a_outb(CARD16 port, CARD8 val);
-extern void a_outw(CARD16 port, CARD16 val);
-#endif
-#ifdef __alpha__
-CARD8 mem_rb(CARD32 addr);
-CARD16 mem_rw(CARD32 addr);
-CARD32 mem_rl(CARD32 addr);
-void mem_wb(CARD32 addr, CARD8 val);
-void mem_ww(CARD32 addr, CARD16 val);
-void mem_wl(CARD32 addr, CARD32 val);
-#endif
-extern void io_statistics(void);
-extern void clear_stat(void);
-extern int int_handler(int num, struct regs86 *regs);
-
-extern console open_console(void);
-extern void close_console(console);
-
-extern void dprint(unsigned long start, unsigned long size);
-
-extern Bool logging;
-extern Bool nostdout;
-extern char* logfile;
-extern void logon(void* ptr);
-extern void logoff();
-extern void lprintf(const char *f, ...);
-
-#define MEM_FILE "/dev/mem"
-#define DEFAULT_V_BIOS 0xc0000
-#ifndef V_BIOS
-#define V_BIOS DEFAULT_V_BIOS
-#endif
-
-#ifdef __alpha__
-#define NEED_PCI_IO
-#endif
-
-#endif
-
diff --git a/src/hwinfo/src/int10/vbios.h b/src/hwinfo/src/int10/vbios.h
deleted file mode 100644 (file)
index edcb715..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "hd.h"
-
-int InitInt10(hd_data_t *, int);
-int CallInt10(int *ax, int *bx, int *cx, unsigned char *buf, int len, int cpuemu);
-int CallInt13(int *ax, int *bx, int *cx, int *dx, unsigned char *buf, int len, int cpuemu);
-void FreeInt10(void);
diff --git a/src/hwinfo/src/int10/vm86_struct.h b/src/hwinfo/src/int10/vm86_struct.h
deleted file mode 100644 (file)
index 772e6ca..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-#ifndef _LINUX_VM86_H
-#define _LINUX_VM86_H
-
-/*
- * I'm guessing at the VIF/VIP flag usage, but hope that this is how
- * the Pentium uses them. Linux will return from vm86 mode when both
- * VIF and VIP is set.
- *
- * On a Pentium, we could probably optimize the virtual flags directly
- * in the eflags register instead of doing it "by hand" in vflags...
- *
- * Linus
- */
-
-#define TF_MASK                0x00000100
-#define IF_MASK                0x00000200
-#define IOPL_MASK      0x00003000
-#define NT_MASK                0x00004000
-#define VM_MASK                0x00020000
-#define AC_MASK                0x00040000
-#define VIF_MASK       0x00080000      /* virtual interrupt flag */
-#define VIP_MASK       0x00100000      /* virtual interrupt pending */
-#define ID_MASK                0x00200000
-
-#define BIOSSEG                0x0f000
-
-#define CPU_086                0
-#define CPU_186                1
-#define CPU_286                2
-#define CPU_386                3
-#define CPU_486                4
-#define CPU_586                5
-
-/*
- * Return values for the 'vm86()' system call
- */
-#define VM86_TYPE(retval)      ((retval) & 0xff)
-#define VM86_ARG(retval)       ((retval) >> 8)
-
-#define VM86_SIGNAL    0       /* return due to signal */
-#define VM86_UNKNOWN   1       /* unhandled GP fault - IO-instruction or similar */
-#define VM86_INTx      2       /* int3/int x instruction (ARG = x) */
-#define VM86_STI       3       /* sti/popf/iret instruction enabled virtual interrupts */
-
-/*
- * Additional return values when invoking new vm86()
- */
-#define VM86_PICRETURN 4       /* return due to pending PIC request */
-#define VM86_TRAP      6       /* return due to DOS-debugger request */
-
-/*
- * function codes when invoking new vm86()
- */
-#define VM86_PLUS_INSTALL_CHECK        0
-#define VM86_ENTER             1
-#define VM86_ENTER_NO_BYPASS   2
-#define        VM86_REQUEST_IRQ        3
-#define VM86_FREE_IRQ          4
-#define VM86_GET_IRQ_BITS      5
-#define VM86_GET_AND_RESET_IRQ 6
-
-/*
- * This is the stack-layout seen by the user space program when we have
- * done a translation of "SAVE_ALL" from vm86 mode. The real kernel layout
- * is 'kernel_vm86_regs' (see below).
- */
-
-struct vm86_regs {
-/*
- * normal regs, with special meaning for the segment descriptors..
- */
-       long ebx;
-       long ecx;
-       long edx;
-       long esi;
-       long edi;
-       long ebp;
-       long eax;
-       long __null_ds;
-       long __null_es;
-       long __null_fs;
-       long __null_gs;
-       long orig_eax;
-       long eip;
-       unsigned short cs, __csh;
-       long eflags;
-       long esp;
-       unsigned short ss, __ssh;
-/*
- * these are specific to v86 mode:
- */
-       unsigned short es, __esh;
-       unsigned short ds, __dsh;
-       unsigned short fs, __fsh;
-       unsigned short gs, __gsh;
-};
-
-struct revectored_struct {
-       unsigned long __map[8];                 /* 256 bits */
-};
-
-struct vm86_struct {
-       struct vm86_regs regs;
-       unsigned long flags;
-       unsigned long screen_bitmap;
-       unsigned long cpu_type;
-       struct revectored_struct int_revectored;
-       struct revectored_struct int21_revectored;
-};
-
-/*
- * flags masks
- */
-#define VM86_SCREEN_BITMAP     0x0001
-
-struct vm86plus_info_struct {
-       unsigned long force_return_for_pic:1;
-       unsigned long vm86dbg_active:1;       /* for debugger */
-       unsigned long vm86dbg_TFpendig:1;     /* for debugger */
-       unsigned long unused:28;
-       unsigned long is_vm86pus:1;           /* for vm86 internal use */
-       unsigned char vm86dbg_intxxtab[32];   /* for debugger */
-};
-
-struct vm86plus_struct {
-       struct vm86_regs regs;
-       unsigned long flags;
-       unsigned long screen_bitmap;
-       unsigned long cpu_type;
-       struct revectored_struct int_revectored;
-       struct revectored_struct int21_revectored;
-       struct vm86plus_info_struct vm86plus;
-};
-
-#endif
diff --git a/src/hwinfo/src/isdn/Makefile b/src/hwinfo/src/isdn/Makefile
deleted file mode 100644 (file)
index 5e52e6b..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-TOPDIR = ../..
-TARGETS        = $(LIBHD_D)
-SUBDIRS = cdb
-
-include $(TOPDIR)/Makefile.common
-
-$(LIBHD_D): $(OBJS)
-       ar r $(LIBHD) $?
-
diff --git a/src/hwinfo/src/isdn/cdb/ISDN.axp.txt b/src/hwinfo/src/isdn/cdb/ISDN.axp.txt
deleted file mode 100644 (file)
index 4a66c7f..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-#
-# CDB data export for subclass: ISDN Single Basic Rate
-# Generated at                : Sat Aug 30 17:22:29 2003
-#
-# Exported combinations:
-#      arch=axp  dist=Stable  lang=de_DE  vario=HiSax driver
-#      arch=axp  dist=Stable  lang=de_DE  vario=I4L driver
-#      arch=axp  dist=Stable  lang=de_DE  vario=CAPI 2.0 driver
-#
-# Author: dhess@suse.de (13.02.2003)
-# Author: didge@suse.de (04.08.2003)
-#
-#
-# Export format: |Vendorname|Productname|Subclass|Bus|Variation|topic=value|topic=value|...|Variation|topic=value|topic=value|...|
-#
-
-
-|vendor=Billion|device=B009|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb009|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x50023|drv_subtyp=5|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=ITH|device=ith mic|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x200|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=7|SMP=Yes|drv_id=0x11|drv_subtyp=0|drv_typ=17|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=High Soft Tech|device=Saphir|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x250|IO=0x270|IO=0x290|IO=0x2b0|IO=0x2d0|IO=0x350|IO=0x370|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=5|SMP=Yes|drv_id=0x1f|drv_subtyp=0|drv_typ=31|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=B00C|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb00c|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x80023|drv_subtyp=8|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Cologne Chip AG|device=HFCS+ based card|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x0000|device_id=0x0000|vario=HiSax driver|SMP=Yes|drv_id=0x10025|drv_subtyp=1|drv_typ=37|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Telekom AG|device=A1T|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x0871|device_id=0xffa1|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xd0023|drv_subtyp=13|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sagem|device=Niccy PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1267|device_id=0x1016|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x20018|drv_subtyp=2|drv_typ=24|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Cologne Chip AG|device=HFC 2BDS0|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0x2bd0|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x110023|drv_subtyp=17|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Formula-n|device=enter:now|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0x0055|subdevice_id=0x0002|vario=HiSax driver|SMP=Yes|drv_id=0x10029|drv_subtyp=1|drv_typ=41|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|short_description=under development|supported=full|
-|vendor=ICN|device=2B|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=I4L driver|IO=0x300|IO=0x308|IO=0x310|IO=0x318|IO=0x320|IO=0x328|IO=0x330|IO=0x338|IO=0x340|IO=0x348|IO=0x350|IO=0x358|IO=0x360|IO=0x368|MEMBASE=0xc0000|MEMBASE=0xc2000|MEMBASE=0xc4000|MEMBASE=0xc6000|MEMBASE=0xc8000|MEMBASE=0xca000|MEMBASE=0xcc000|MEMBASE=0xce000|MEMBASE=0xd0000|MEMBASE=0xd2000|MEMBASE=0xd4000|MEMBASE=0xd6000|MEMBASE=0xd8000|MEMBASE=0xda000|MEMBASE=0xdc000|MEMBASE=0xde000|SMP=Yes|drv_id=0x1f5e|drv_subtyp=0|drv_typ=8030|firmware=pc-%{PROTO}.bin|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=icn|need_packages=i4l-base|supported=full|
-|vendor=TigerJet|device=NetJet PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0x00ff|subdevice_id=0x000f|vario=HiSax driver|SMP=Yes|drv_id=0x10014|drv_subtyp=1|drv_typ=20|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Scitel|device=Quadro|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x10b5|device_id=0x9050|subvendor_id=0x0871|subdevice_id=0xffa8|vario=HiSax driver|SMP=Yes|drv_id=0x21|drv_subtyp=0|drv_typ=33|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=ML PCC-16|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x160|IO=0x170|IO=0x260|IO=0x360|IRQ=10|IRQ=11|IRQ=15|IRQ=3|IRQ=5|IRQ=9|SMP=Yes|drv_id=0x30006|drv_subtyp=3|drv_typ=6|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=16.3c v.2.1|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x2750|device_id=0x2026|vario=HiSax driver|SMP=Yes|drv_id=0x25|drv_subtyp=0|drv_typ=37|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sedlbauer AG|device=Speed Win|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x274c|device_id=0x0100|vario=HiSax driver|SMP=Yes|drv_id=0x1000f|drv_subtyp=1|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=S0Box|device_class=ISDN Single Basic Rate|bus_type=Parallel|vario=HiSax driver|IO=0x278|IO=0x378|IO=0x3bc|IRQ=5|IRQ=7|SMP=Yes|drv_id=0x19|drv_subtyp=0|drv_typ=25|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Eicon Networks|device=Diva 2.0U PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe004|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xc000b|drv_subtyp=12|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=CREATIX Creative Information eXchange|device=16.3 PNP|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x980e|device_id=0x0000|vario=HiSax driver|SMP=Yes|drv_id=0x10004|drv_subtyp=1|drv_typ=4|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=iSTAR PnP|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x2750|device_id=0x1074|vario=HiSax driver|SMP=Yes|drv_id=0x1000e|drv_subtyp=1|drv_typ=14|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Siemens|device=ISURF|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x254d|device_id=0x1000|vario=HiSax driver|SMP=Yes|drv_id=0x1d|drv_subtyp=0|drv_typ=29|feature=Fax|firmware=ISAR.BIN|interface=FCLASS1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Auerswald|device=Comfort 1200 System Telephone|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x09bf|device_id=0x00f2|vario=HiSax driver|SMP=Yes|drv_id=0x3002a|drv_subtyp=3|drv_typ=42|interface=I4L|line_cnt=1|line_protocol=DSS1|module=auerswald|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AsKey|device=PCI (CCD HFC)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0x2bd0|subvendor_id=0x144f|subdevice_id=0x1704|vario=HiSax driver|SMP=Yes|drv_id=0xc0023|drv_subtyp=12|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=B1 PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x21f41|drv_subtyp=2|drv_typ=8001|feature=Fax|firmware=b1-%{PROTO}.t4|interface=CAPI20|interface=CAPI20 Fax|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=b1pcmcia|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=Billion|device=BIPAC-D1|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x2c09|device_id=0x0100|vario=HiSax driver|SMP=Yes|drv_id=0x2001e|drv_subtyp=2|drv_typ=30|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Auerswald|device=COMpact 2104 USB|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x09bf|device_id=0x00c0|vario=HiSax driver|SMP=Yes|drv_id=0x2002a|drv_subtyp=2|drv_typ=42|interface=I4L|line_cnt=1|line_protocol=DSS1|module=auerswald|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Gazel|device=R685|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x10b5|device_id=0x1030|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x22|drv_subtyp=0|drv_typ=34|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=ASUSCOM|device=PCI (CCD HFC)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1043|device_id=0x0675|subvendor_id=0x0675|subdevice_id=0x1704|vario=HiSax driver|SMP=Yes|drv_id=0xa0023|drv_subtyp=10|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=ASUSCOM|device=PCI (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x1043|subdevice_id=0x1702|vario=HiSax driver|SMP=Yes|drv_id=0x24|drv_subtyp=0|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=16.3 PNP|device_class=ISDN Single Basic Rate|bus_type=ISA PnP|vendor_id=0x2750|device_id=0x1021|vario=HiSax driver|SMP=Yes|drv_id=0x4|drv_subtyp=0|drv_typ=4|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sedlbauer AG|device=Speed Star|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x20016|drv_subtyp=2|drv_typ=22|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!X seriell|device_class=ISDN Single Basic Rate|bus_type=Serial|vario=HiSax driver|line_cnt=1|supported=not|
-|vendor=Elsa AG|device=ML PCF-Pro|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x160|IO=0x170|IO=0x260|IO=0x360|IRQ=10|IRQ=11|IRQ=15|IRQ=3|IRQ=5|IRQ=9|SMP=Yes|drv_id=0x50006|drv_subtyp=5|drv_typ=6|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Digi|device=DataFire Micro V IOM2 (Europe)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x114f|device_id=0x0070|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x120023|drv_subtyp=18|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=Quickstep 3000|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x9315|device_id=0x3401|vario=HiSax driver|SMP=Yes|drv_id=0x80007|drv_subtyp=8|drv_typ=7|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Genius|device=Speed Surfer|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x252f|device_id=0x0100|vario=HiSax driver|SMP=Yes|drv_id=0x3001e|drv_subtyp=3|drv_typ=30|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Digi|device=DataFire Micro V (North America)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x114f|device_id=0x0073|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x150023|drv_subtyp=21|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Berkom|device=A4T|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x11de|device_id=0x6120|subvendor_id=0x0871|subdevice_id=0xffa4|vario=HiSax driver|SMP=Yes|drv_id=0x20|drv_subtyp=0|drv_typ=32|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Siemens|device=ISurf 2|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x254d|device_id=0x2000|vario=HiSax driver|SMP=Yes|drv_id=0x3000c|drv_subtyp=3|drv_typ=12|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Digi|device=DataFire Micro V (Europe)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x114f|device_id=0x0071|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x130023|drv_subtyp=19|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=U.S.Robotics|device=Sportster|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x268|IRQ=10|IRQ=11|IRQ=12|IRQ=14|IRQ=15|IRQ=5|IRQ=7|SMP=Yes|drv_id=0x10|drv_subtyp=0|drv_typ=16|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Zolltrix|device=2BDS0|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x15b0|device_id=0x2bd0|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x100023|drv_subtyp=16|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Eicon Networks|device=Diva Piccola|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x891c|device_id=0x5100|vario=HiSax driver|SMP=Yes|drv_id=0xb000b|drv_subtyp=11|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Motorola|device=MC145575|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1051|device_id=0x0100|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xf0023|drv_subtyp=15|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card PnP|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0xcd06|device_id=0x0009|vario=HiSax driver|SMP=Yes|drv_id=0x2001b|drv_subtyp=2|drv_typ=27|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Teles AG|device=16.0 AB|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0xd80|IO=0xe80|IO=0xf80|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=9|MEMBASE=0xc0000|MEMBASE=0xc2000|MEMBASE=0xc4000|MEMBASE=0xc6000|MEMBASE=0xc8000|MEMBASE=0xca000|MEMBASE=0xcc000|MEMBASE=0xce000|MEMBASE=0xd0000|MEMBASE=0xd2000|MEMBASE=0xd4000|MEMBASE=0xd6000|MEMBASE=0xd8000|MEMBASE=0xda000|MEMBASE=0xdc000|MEMBASE=0xde000|SMP=Yes|drv_id=0x10001|drv_subtyp=1|drv_typ=1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=PCMCIA IPAC|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0xb000a|drv_subtyp=11|drv_typ=10|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=B006|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb006|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x20023|drv_subtyp=2|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x1a|drv_subtyp=0|drv_typ=26|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Winbond|device=W6692 card|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x60024|drv_subtyp=6|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=ASUSCOM|device=ISA IPAC|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x7506|device_id=0x9016|vario=HiSax driver|SMP=Yes|drv_id=0x2000c|drv_subtyp=2|drv_typ=12|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=A1 PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x1001a|drv_subtyp=1|drv_typ=26|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|short_description=OpenSource without Fax G3|supported=full|
-|vendor=AsKey|device=PCI + Voice (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x144f|subdevice_id=0x1703|vario=HiSax driver|SMP=Yes|drv_id=0x30024|drv_subtyp=3|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Eicon Networks|device=Diva 2.0 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe002|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x2000b|drv_subtyp=2|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sedlbauer AG|device=Speed PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0053|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x6000f|drv_subtyp=6|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=ITK|device=ISDN PnP|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x8b26|device_id=0x2900|vario=HiSax driver|SMP=Yes|drv_id=0x20009|drv_subtyp=2|drv_typ=9|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Dynalink|device=PCI (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1043|device_id=0x0675|subvendor_id=0x0675|subdevice_id=0x1702|vario=HiSax driver|SMP=Yes|drv_id=0x40024|drv_subtyp=4|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=ML PC|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x160|IO=0x170|IO=0x260|IO=0x360|IRQ=3|IRQ=5|IRQ=7|IRQ=9|SMP=Yes|drv_id=0x10006|drv_subtyp=1|drv_typ=6|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Eicon Networks|device=Diva 2.01 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe005|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x4000b|drv_subtyp=4|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=U.S.Robotics|device=ISDN PCI Card TA|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x16ec|subdevice_id=0x3409|vario=HiSax driver|SMP=Yes|drv_id=0x70024|drv_subtyp=7|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sagem|device=Niccy ISA|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x814c|device_id=0x5001|vario=HiSax driver|SMP=Yes|drv_id=0x10018|drv_subtyp=1|drv_typ=24|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=ML PCF|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x160|IO=0x170|IO=0x260|IO=0x360|IRQ=10|IRQ=11|IRQ=15|IRQ=3|IRQ=5|IRQ=9|SMP=Yes|drv_id=0x40006|drv_subtyp=4|drv_typ=6|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=16.3 AB|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x180|IO=0x280|IO=0x380|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=5|IRQ=9|SMP=Yes|drv_id=0x10003|drv_subtyp=1|drv_typ=3|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Dynalink|device=6692 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x0675|device_id=0x1702|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x50024|drv_subtyp=5|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=ITK|device=ISDN 3.0|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x8b26|device_id=0x2500|vario=HiSax driver|SMP=Yes|drv_id=0x10009|drv_subtyp=1|drv_typ=9|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x11de|device_id=0x6120|subvendor_id=0x0000|subdevice_id=0x0000|vario=HiSax driver|SMP=Yes|drv_id=0x15|drv_subtyp=0|drv_typ=21|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sedlbauer AG|device=Speed Win2 PC104|device_class=ISDN Single Basic Rate|bus_type=PC104|vendor_id=0x0000|device_id=0x0000|subvendor_id=0x0000|subdevice_id=0x0000|vario=HiSax driver|SMP=Yes|drv_id=0x4000f|drv_subtyp=4|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=B1 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1244|device_id=0x0700|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x11f41|drv_subtyp=1|drv_typ=8001|feature=Fax|firmware=b1-%{PROTO}.t4|interface=CAPI20|interface=CAPI20 Fax|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=b1pci|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=Sedlbauer AG|device=Speed Star2|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x50016|drv_subtyp=5|drv_typ=22|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Telekom AG|device=Teledat USB 2a/b|device_class=ISDN Single Basic Rate|bus_type=USB|vario=HiSax driver|line_cnt=1|supported=not|
-|vendor=AsKey|device=PCI (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x144f|subdevice_id=0x1702|vario=HiSax driver|SMP=Yes|drv_id=0x10024|drv_subtyp=1|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=High Soft Tech|device=saphir III|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0052|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x9000f|drv_subtyp=9|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Digi|device=DataFire Micro V IOM2 (North America)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x114f|device_id=0x0072|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x140023|drv_subtyp=20|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Dynalink|device=PCI (CCD HFC)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0x2bd0|subvendor_id=0x1043|subdevice_id=0x1704|vario=HiSax driver|SMP=Yes|drv_id=0xb0023|drv_subtyp=11|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=Quickstep 1000|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x9315|device_id=0x3301|vario=HiSax driver|SMP=Yes|drv_id=0x70007|drv_subtyp=7|drv_typ=7|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=ITK|device=ix1-micro Rev.2|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x390|IO=0x398|IO=0x3a0|IO=0x3a8|IRQ=10|IRQ=11|IRQ=5|IRQ=9|SMP=Yes|drv_id=0x9|drv_subtyp=0|drv_typ=9|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=16.3c|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x2750|device_id=0x1026|vario=HiSax driver|SMP=Yes|drv_id=0xe|drv_subtyp=0|drv_typ=14|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=SGS Thomson Microelectronics|device=ST5481 USB Adapter|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x0483|device_id=0x4810|vario=HiSax driver|SMP=Yes|drv_id=0x103e9|drv_subtyp=1|drv_typ=1001|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax_st5481|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1244|device_id=0x0a00|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|alternative_name=Telekom AG,Teledat 150|drv_id=0x1001b|drv_subtyp=1|drv_typ=27|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|short_description=OpenSource without Fax G3|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=A1|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x200|IO=0x240|IO=0x300|IO=0x340|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=7|IRQ=9|SMP=Yes|drv_id=0x10005|drv_subtyp=1|drv_typ=5|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Elsa AG|device=PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x6000a|drv_subtyp=6|drv_typ=10|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Iscas|device=TE320|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x8615|device_id=0x0000|vario=HiSax driver|SMP=Yes|drv_id=0x4000c|drv_subtyp=4|drv_typ=12|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Eicon Networks|device=Diva 2.02 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe00b|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xd000b|drv_subtyp=13|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=ASUSCOM|device=ISA ISAC|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x7506|device_id=0x8816|vario=HiSax driver|SMP=Yes|drv_id=0x1000c|drv_subtyp=1|drv_typ=12|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sedlbauer AG|device=Speed Fax+|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x274c|device_id=0x0200|vario=HiSax driver|SMP=Yes|drv_id=0x3001c|drv_subtyp=3|drv_typ=28|feature=Fax|firmware=ISAR.BIN|interface=FCLASS1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=B008|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb008|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x40023|drv_subtyp=4|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=B00B|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb00b|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x70023|drv_subtyp=7|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=TigerJet|device=300 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x14|drv_subtyp=0|drv_typ=20|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Seyon|device=B100|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb100|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x90023|drv_subtyp=9|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=TigerJet|device=NetSpider-U PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x26|drv_subtyp=0|drv_typ=38|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sedlbauer AG|device=Speed Fax+ PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0054|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x8001c|drv_subtyp=8|drv_typ=28|feature=Fax|firmware=ISAR.BIN|interface=FCLASS1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Acer|device=P10|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0xd805|device_id=0x1411|vario=HiSax driver|SMP=Yes|drv_id=0x1e|drv_subtyp=0|drv_typ=30|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=Quickstep 3000 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1048|device_id=0x3000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xa0012|drv_subtyp=10|drv_typ=18|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=TeleInt|device=SA1|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x300|IRQ=10|IRQ=11|IRQ=3|IRQ=4|IRQ=5|IRQ=7|SMP=Yes|drv_id=0xd|drv_subtyp=0|drv_typ=13|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=B000|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x10023|drv_subtyp=1|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=8.0|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IRQ=3|IRQ=4|IRQ=5|IRQ=6|IRQ=7|IRQ=9|MEMBASE=0xc0000|MEMBASE=0xc2000|MEMBASE=0xc4000|MEMBASE=0xc6000|MEMBASE=0xc8000|MEMBASE=0xca000|MEMBASE=0xcc000|MEMBASE=0xce000|MEMBASE=0xd0000|MEMBASE=0xd2000|MEMBASE=0xd4000|MEMBASE=0xd6000|MEMBASE=0xd8000|MEMBASE=0xda000|MEMBASE=0xdc000|MEMBASE=0xde000|SMP=Yes|drv_id=0x2|drv_subtyp=0|drv_typ=2|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=Microlink ISDN USB|device_class=ISDN Single Basic Rate|bus_type=USB|vario=HiSax driver|line_cnt=1|supported=not|
-|vendor=Teles AG|device=16.0|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0xd80|IO=0xe80|IO=0xf80|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=9|MEMBASE=0xc0000|MEMBASE=0xc2000|MEMBASE=0xc4000|MEMBASE=0xc6000|MEMBASE=0xc8000|MEMBASE=0xca000|MEMBASE=0xcc000|MEMBASE=0xce000|MEMBASE=0xd0000|MEMBASE=0xd2000|MEMBASE=0xd4000|MEMBASE=0xd6000|MEMBASE=0xd8000|MEMBASE=0xda000|MEMBASE=0xdc000|MEMBASE=0xde000|SMP=Yes|drv_id=0x1|drv_subtyp=0|drv_typ=1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Auerswald|device=Comfort 2000 System Telephone|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x09bf|device_id=0x00f1|vario=HiSax driver|SMP=Yes|drv_id=0x4002a|drv_subtyp=4|drv_typ=42|interface=I4L|line_cnt=1|line_protocol=DSS1|module=auerswald|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Sedlbauer AG|device=Speed Card|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x270|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=7|SMP=Yes|alternative_name=Telekom AG,Teledat 100 ISA|drv_id=0xf|drv_subtyp=0|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=B007|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb007|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x30023|drv_subtyp=3|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=Quickstep 1000 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1048|device_id=0x1000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x90012|drv_subtyp=9|drv_typ=18|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=16.3|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x180|IO=0x280|IO=0x380|IRQ=10|IRQ=12|IRQ=15|IRQ=5|IRQ=9|SMP=Yes|drv_id=0x3|drv_subtyp=0|drv_typ=3|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=Microlink PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1048|device_id=0x1000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xc0012|drv_subtyp=12|drv_typ=18|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Gazel|device=Djinn Itoo|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x10b5|device_id=0x1151|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x20022|drv_subtyp=2|drv_typ=34|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Pyramid|device=Speed Fax+ PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0051|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x7001c|drv_subtyp=7|drv_typ=28|feature=Fax|firmware=ISAR.BIN|interface=FCLASS1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card PCI v2.0|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1244|device_id=0x0e00|subvendor_id=0x1244|subdevice_id=0x0e00|vario=HiSax driver|SMP=Yes|alternative_name=Telekom AG,Teledat 150 v2.0|drv_id=0x3e8|drv_subtyp=0|drv_typ=1000|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax_fcpcipnp|need_packages=i4l-base|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Compaq Computer Corporation|device=ISDN S0 ISA|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x110e|device_id=0x0210|vario=HiSax driver|SMP=Yes|drv_id=0x13|drv_subtyp=0|drv_typ=19|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=BIPAC-D|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x2c09|device_id=0x0200|vario=HiSax driver|SMP=Yes|drv_id=0x1001e|drv_subtyp=1|drv_typ=30|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Auerswald|device=COMpact 2206 USB|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x09bf|device_id=0x00db|vario=HiSax driver|SMP=Yes|drv_id=0x1002a|drv_subtyp=1|drv_typ=42|interface=I4L|line_cnt=1|line_protocol=DSS1|module=auerswald|supported=full|
-|vendor=ASUSCOM|device=PCI + Voice (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x1043|subdevice_id=0x1703|vario=HiSax driver|SMP=Yes|drv_id=0x20024|drv_subtyp=2|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x8|drv_subtyp=0|drv_typ=8|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Gazel|device=R753|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x10b5|device_id=0x1152|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x10022|drv_subtyp=1|drv_typ=34|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=ML PCC-8|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x160|IO=0x170|IO=0x260|IO=0x360|IRQ=3|IRQ=5|IRQ=7|IRQ=9|SMP=Yes|drv_id=0x20006|drv_subtyp=2|drv_typ=6|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=Tornado Tipac|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0xcd4c|device_id=0x0100|vario=HiSax driver|SMP=Yes|drv_id=0x4001e|drv_subtyp=4|drv_typ=30|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Abocom/Magitek|device=2BD1|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x13d1|device_id=0x2bd1|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x160023|drv_subtyp=22|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=B00A|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb00a|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x60023|drv_subtyp=6|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Eicon Networks|device=Diva 2.01 ISA|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x891c|device_id=0xa100|vario=HiSax driver|SMP=Yes|drv_id=0x3000b|drv_subtyp=3|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=PCI v2|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0x00a7|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x20014|drv_subtyp=2|drv_typ=20|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Telekom AG|device=Concept|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x0871|device_id=0xffa2|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xe0023|drv_subtyp=14|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card Classic|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x200|IO=0x240|IO=0x300|IO=0x340|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=7|IRQ=9|SMP=Yes|drv_id=0x5|drv_subtyp=0|drv_typ=5|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Eicon Networks|device=Diva 2.0 ISA|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x891c|device_id=0x7100|vario=HiSax driver|SMP=Yes|drv_id=0x1000b|drv_subtyp=1|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=C4|device_class=ISDN Multiple Basic Rate|bus_type=PCI|vendor_id=0x1011|device_id=0x1065|subvendor_id=0x1244|subdevice_id=0x0800|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x31f41|drv_subtyp=3|drv_typ=8001|feature=Fax|firmware=c4.bin|interface=CAPI20|interface=CAPI20 Fax|interface=I4L|line_cnt=4|line_protocol=DSS1|line_protocol=LEASED|module=c4|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=ICN|device=4B|device_class=ISDN Multiple Basic Rate|bus_type=ISA|vario=I4L driver|IO=0x300|IO=0x308|IO=0x310|IO=0x318|IO=0x320|IO=0x328|IO=0x330|IO=0x338|IO=0x340|IO=0x348|IO=0x350|IO=0x358|IO=0x360|IO=0x368|MEMBASE=0xc0000|MEMBASE=0xc2000|MEMBASE=0xc4000|MEMBASE=0xc6000|MEMBASE=0xc8000|MEMBASE=0xca000|MEMBASE=0xcc000|MEMBASE=0xce000|MEMBASE=0xd0000|MEMBASE=0xd2000|MEMBASE=0xd4000|MEMBASE=0xd6000|MEMBASE=0xd8000|MEMBASE=0xda000|MEMBASE=0xdc000|MEMBASE=0xde000|SMP=Yes|drv_id=0x11f5e|drv_subtyp=1|drv_typ=8030|firmware=pc-%{PROTO}.bin|interface=I4L|line_cnt=2|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=icn|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=C2|device_class=ISDN Multiple Basic Rate|bus_type=PCI|vendor_id=0x1011|device_id=0x1065|subvendor_id=0x1244|subdevice_id=0x1100|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x61f41|drv_subtyp=6|drv_typ=8001|firmware=c2.bin|interface=CAPI20|interface=CAPI20 Fax|interface=I4L|line_cnt=2|line_protocol=DSS1|line_protocol=LEASED|module=c4|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=T1 PCI|device_class=ISDN Primary Rate|bus_type=PCI|vendor_id=0x1244|device_id=0x1200|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x21f45|drv_subtyp=2|drv_typ=8005|firmware=t1-{PROF}.t4|interface=CAPI20|interface=CAPI20 Fax|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|module=t1pci|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|special=B version|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=BlueFRITZ!USB|device_class=Others|bus_type=USB|vendor_id=0x057c|device_id=0x2200|vario=CAPI 2.0 driver|Interface=CAPI20|SMP=Yes|drv_id=0x11f46|drv_subtyp=1|drv_typ=8006|feature=BLUETOOTH|feature=Basic Rate|firmware=bfubase.frm|line_cnt=1|line_protocol=DSS1|module=bfusb|need_packages=bluez-firmware|need_packages=bluez-libs|need_packages=bluez-utils|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box SL|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3701|vario=other|SMP=yes|drv_id=0xffff0001|drv_subtyp=1|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3702|vario=other|SMP=yes|drv_id=0xffff0002|drv_subtyp=2|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box SL WLAN|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3c00|vario=other|SMP=yes|drv_id=0xffff0003|drv_subtyp=3|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box Fon WLAN|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x4001|vario=other|SMP=yes|drv_id=0xffff0004|drv_subtyp=4|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box Fon (Annex A)|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3c00|vario=other|SMP=yes|drv_id=0xffff0005|drv_subtyp=5|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box (Annex A)|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3e01|vario=other|SMP=yes|drv_id=0xffff0006|drv_subtyp=6|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=AVM FRITZ!Box Fon|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3a00|vario=other|SMP=yes|drv_id=0xffff0007|drv_subtyp=7|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
diff --git a/src/hwinfo/src/isdn/cdb/ISDN.i386.txt b/src/hwinfo/src/isdn/cdb/ISDN.i386.txt
deleted file mode 100644 (file)
index bae7d09..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-#
-# CDB data export for subclass: ISDN Single Basic Rate
-# Generated at                : Sat Sep 13 01:19:56 2003
-#
-# Exported combinations:
-#      arch=i386  dist=Stable  lang=de_DE  vario=HiSax driver
-#      arch=i386  dist=Stable  lang=de_DE  vario=I4L driver
-#      arch=i386  dist=Stable  lang=de_DE  vario=CAPI 2.0 driver
-#
-# Author: dhess@suse.de (13.02.2003)
-# Author: didge@suse.de (04.08.2003)
-#
-#
-# Export format: |Vendorname|Productname|Subclass|Bus|Variation|topic=value|topic=value|...|Variation|topic=value|topic=value|...|
-#
-
-
-|vendor=Billion|device=B009|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb009|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x50023|drv_subtyp=5|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=B1|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=CAPI 2.0 driver|IO=0x150|IO=0x250|IO=0x300|IO=0x340|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=6|IRQ=7|IRQ=9|SMP=Yes|drv_id=0x1f41|drv_subtyp=0|drv_typ=8001|feature=Fax|firmware=b1-%{PROTO}.t4|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=b1isa|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=ITH|device=ith mic|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x200|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=7|SMP=Yes|drv_id=0x11|drv_subtyp=0|drv_typ=17|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=High Soft Tech|device=Saphir|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x250|IO=0x270|IO=0x290|IO=0x2b0|IO=0x2d0|IO=0x350|IO=0x370|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=5|SMP=Yes|drv_id=0x1f|drv_subtyp=0|drv_typ=31|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Billion|device=B00C|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb00c|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x80023|drv_subtyp=8|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Cologne Chip AG|device=HFCS+ based card|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x0000|device_id=0x0000|vario=HiSax driver|SMP=Yes|drv_id=0x10025|drv_subtyp=1|drv_typ=37|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card USB v2.0|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x057c|device_id=0x1000|vario=CAPI 2.0 driver|SMP=No|drv_id=0x21f43|drv_subtyp=2|drv_typ=8003|feature=Fax|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcusb2|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|
-|vendor=Telekom AG|device=A1T|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x0871|device_id=0xffa1|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xd0023|drv_subtyp=13|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Sagem|device=Niccy PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1267|device_id=0x1016|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x20018|drv_subtyp=2|drv_typ=24|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Cologne Chip AG|device=HFC 2BDS0|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0x2bd0|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x110023|drv_subtyp=17|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Formula-n|device=enter:now|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0x0055|subdevice_id=0x0002|vario=HiSax driver|SMP=Yes|drv_id=0x10029|drv_subtyp=1|drv_typ=41|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=under development|supported=full|
-|vendor=ICN|device=2B|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=I4L driver|IO=0x300|IO=0x308|IO=0x310|IO=0x318|IO=0x320|IO=0x328|IO=0x330|IO=0x338|IO=0x340|IO=0x348|IO=0x350|IO=0x358|IO=0x360|IO=0x368|MEMBASE=0xc0000|MEMBASE=0xc2000|MEMBASE=0xc4000|MEMBASE=0xc6000|MEMBASE=0xc8000|MEMBASE=0xca000|MEMBASE=0xcc000|MEMBASE=0xce000|MEMBASE=0xd0000|MEMBASE=0xd2000|MEMBASE=0xd4000|MEMBASE=0xd6000|MEMBASE=0xd8000|MEMBASE=0xda000|MEMBASE=0xdc000|MEMBASE=0xde000|SMP=Yes|drv_id=0x1f5e|drv_subtyp=0|drv_typ=8030|firmware=pc-%{PROTO}.bin|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=icn|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=TigerJet|device=NetJet PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0x00ff|subdevice_id=0x000f|vario=HiSax driver|SMP=Yes|drv_id=0x10014|drv_subtyp=1|drv_typ=20|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Scitel|device=Quadro|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x10b5|device_id=0x9050|subvendor_id=0x0871|subdevice_id=0xffa8|vario=HiSax driver|SMP=Yes|drv_id=0x21|drv_subtyp=0|drv_typ=33|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Elsa AG|device=ML PCC-16|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x160|IO=0x170|IO=0x260|IO=0x360|IRQ=10|IRQ=11|IRQ=15|IRQ=3|IRQ=5|IRQ=9|SMP=Yes|drv_id=0x30006|drv_subtyp=3|drv_typ=6|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Teles AG|device=16.3c v.2.1|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x2750|device_id=0x2026|vario=HiSax driver|SMP=Yes|drv_id=0x25|drv_subtyp=0|drv_typ=37|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Sedlbauer AG|device=Speed Win|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x274c|device_id=0x0100|vario=HiSax driver|SMP=Yes|drv_id=0x1000f|drv_subtyp=1|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Teles AG|device=S0Box|device_class=ISDN Single Basic Rate|bus_type=Parallel|vario=HiSax driver|IO=0x278|IO=0x378|IO=0x3bc|IRQ=5|IRQ=7|SMP=Yes|drv_id=0x19|drv_subtyp=0|drv_typ=25|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Eicon Networks|device=Diva 2.0U PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe004|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xc000b|drv_subtyp=12|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=CREATIX Creative Information eXchange|device=16.3 PNP|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x980e|device_id=0x0000|vario=HiSax driver|SMP=Yes|drv_id=0x10004|drv_subtyp=1|drv_typ=4|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Teles AG|device=iSTAR PnP|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x2750|device_id=0x1074|vario=HiSax driver|SMP=Yes|drv_id=0x1000e|drv_subtyp=1|drv_typ=14|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Siemens|device=ISURF|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x254d|device_id=0x1000|vario=HiSax driver|SMP=Yes|drv_id=0x1d|drv_subtyp=0|drv_typ=29|feature=Fax|firmware=ISAR.BIN|interface=FCLASS1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Auerswald|device=Comfort 1200 System Telephone|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x09bf|device_id=0x00f2|vario=HiSax driver|SMP=Yes|drv_id=0x3002a|drv_subtyp=3|drv_typ=42|interface=I4L|line_cnt=1|line_protocol=DSS1|module=auerswald|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AsKey|device=PCI (CCD HFC)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0x2bd0|subvendor_id=0x144f|subdevice_id=0x1704|vario=HiSax driver|SMP=Yes|drv_id=0xc0023|drv_subtyp=12|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=B1 PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x21f41|drv_subtyp=2|drv_typ=8001|feature=Fax|firmware=b1-%{PROTO}.t4|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=b1pcmcia|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=Billion|device=BIPAC-D1|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x2c09|device_id=0x0100|vario=HiSax driver|SMP=Yes|drv_id=0x2001e|drv_subtyp=2|drv_typ=30|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Auerswald|device=COMpact 2104 USB|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x09bf|device_id=0x00c0|vario=HiSax driver|SMP=Yes|alternative_name=COMpact 2104 DSL|drv_id=0x2002a|drv_subtyp=2|drv_typ=42|interface=I4L|line_cnt=1|line_protocol=DSS1|module=auerswald|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Gazel|device=R685|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x10b5|device_id=0x1030|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x22|drv_subtyp=0|drv_typ=34|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=ASUSCOM|device=PCI (CCD HFC)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1043|device_id=0x0675|subvendor_id=0x0675|subdevice_id=0x1704|vario=HiSax driver|SMP=Yes|drv_id=0xa0023|drv_subtyp=10|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=ASUSCOM|device=PCI (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x1043|subdevice_id=0x1702|vario=HiSax driver|SMP=Yes|drv_id=0x24|drv_subtyp=0|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Teles AG|device=16.3 PNP|device_class=ISDN Single Basic Rate|bus_type=ISA PnP|vendor_id=0x2750|device_id=0x1021|vario=HiSax driver|SMP=Yes|drv_id=0x4|drv_subtyp=0|drv_typ=4|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Sedlbauer AG|device=Speed Star|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x20016|drv_subtyp=2|drv_typ=22|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!X seriell|device_class=ISDN Single Basic Rate|bus_type=Serial|vario=HiSax driver|line_cnt=1|supported=not|
-|vendor=Elsa AG|device=ML PCF-Pro|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x160|IO=0x170|IO=0x260|IO=0x360|IRQ=10|IRQ=11|IRQ=15|IRQ=3|IRQ=5|IRQ=9|SMP=Yes|drv_id=0x50006|drv_subtyp=5|drv_typ=6|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Digi|device=DataFire Micro V IOM2 (Europe)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x114f|device_id=0x0070|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x120023|drv_subtyp=18|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Elsa AG|device=Quickstep 3000|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x9315|device_id=0x3401|vario=HiSax driver|SMP=Yes|drv_id=0x80007|drv_subtyp=8|drv_typ=7|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Genius|device=Speed Surfer|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x252f|device_id=0x0100|vario=HiSax driver|SMP=Yes|drv_id=0x3001e|drv_subtyp=3|drv_typ=30|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Digi|device=DataFire Micro V (North America)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x114f|device_id=0x0073|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x150023|drv_subtyp=21|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Berkom|device=A4T|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x11de|device_id=0x6120|subvendor_id=0x0871|subdevice_id=0xffa4|vario=HiSax driver|SMP=Yes|drv_id=0x20|drv_subtyp=0|drv_typ=32|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Siemens|device=ISurf 2|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x254d|device_id=0x2000|vario=HiSax driver|SMP=Yes|drv_id=0x3000c|drv_subtyp=3|drv_typ=12|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Digi|device=DataFire Micro V (Europe)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x114f|device_id=0x0071|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x130023|drv_subtyp=19|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=U.S.Robotics|device=Sportster|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x268|IRQ=10|IRQ=11|IRQ=12|IRQ=14|IRQ=15|IRQ=5|IRQ=7|SMP=Yes|drv_id=0x10|drv_subtyp=0|drv_typ=16|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Zolltrix|device=2BDS0|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x15b0|device_id=0x2bd0|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x100023|drv_subtyp=16|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Eicon Networks|device=Diva Piccola|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x891c|device_id=0x5100|vario=HiSax driver|SMP=Yes|drv_id=0xb000b|drv_subtyp=11|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Motorola|device=MC145575|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1051|device_id=0x0100|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xf0023|drv_subtyp=15|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Telekom AG|device=Teledat X120|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x057c|device_id=0x2800|vario=CAPI 2.0 driver|SMP=No|alternative_name=Teledat USB 2a/b|drv_id=0x61f43|drv_subtyp=6|drv_typ=8003|feature=Fax|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fxusb_CZ|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card PnP|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0xcd06|device_id=0x0009|vario=CAPI 2.0 driver|SMP=No|drv_id=0x71f42|drv_subtyp=7|drv_typ=8002|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcpnp|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|vario=HiSax driver|SMP=Yes|drv_id=0x2001b|drv_subtyp=2|drv_typ=27|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Teles AG|device=16.0 AB|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0xd80|IO=0xe80|IO=0xf80|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=9|MEMBASE=0xc0000|MEMBASE=0xc2000|MEMBASE=0xc4000|MEMBASE=0xc6000|MEMBASE=0xc8000|MEMBASE=0xca000|MEMBASE=0xcc000|MEMBASE=0xce000|MEMBASE=0xd0000|MEMBASE=0xd2000|MEMBASE=0xd4000|MEMBASE=0xd6000|MEMBASE=0xd8000|MEMBASE=0xda000|MEMBASE=0xdc000|MEMBASE=0xde000|SMP=Yes|drv_id=0x10001|drv_subtyp=1|drv_typ=1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Elsa AG|device=PCMCIA IPAC|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0xb000a|drv_subtyp=11|drv_typ=10|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Billion|device=B006|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb006|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x20023|drv_subtyp=2|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=CAPI 2.0 driver|SMP=No|drv_id=0x51f42|drv_subtyp=5|drv_typ=8002|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcpcmcia|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|vario=HiSax driver|SMP=Yes|drv_id=0x1a|drv_subtyp=0|drv_typ=26|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Winbond|device=W6692 card|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x60024|drv_subtyp=6|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Eicon Networks|device=Diehl ISDN-SX|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=I4L driver|IRQ=10|IRQ=11|IRQ=12|IRQ=3|IRQ=4|IRQ=9|MEMBASE=0xd0000|SMP=Yes|drv_id=0x11f4a|drv_subtyp=1|drv_typ=8010|feature=Fax|firmware=%{PROTO}|interface=FCLASS2|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=eicon|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=ASUSCOM|device=ISA IPAC|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x7506|device_id=0x9016|vario=HiSax driver|SMP=Yes|drv_id=0x2000c|drv_subtyp=2|drv_typ=12|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=A1 PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=CAPI 2.0 driver|SMP=No|drv_id=0x61f42|drv_subtyp=6|drv_typ=8002|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcpcmcia|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|vario=HiSax driver|SMP=Yes|drv_id=0x1001a|drv_subtyp=1|drv_typ=26|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=OpenSource without Fax G3|supported=full|
-|vendor=AsKey|device=PCI + Voice (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x144f|subdevice_id=0x1703|vario=HiSax driver|SMP=Yes|drv_id=0x30024|drv_subtyp=3|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Eicon Networks|device=Diva 2.0 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe002|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x2000b|drv_subtyp=2|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Sedlbauer AG|device=Speed PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0053|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x6000f|drv_subtyp=6|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=ITK|device=ISDN PnP|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x8b26|device_id=0x2900|vario=HiSax driver|SMP=Yes|drv_id=0x20009|drv_subtyp=2|drv_typ=9|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!X ISDN|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x057c|device_id=0x2000|vario=CAPI 2.0 driver|SMP=No|drv_id=0x71f43|drv_subtyp=7|drv_typ=8003|feature=Fax|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fxusb|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|revision=0x0301|short_description=binary only CAPI with FAX G3|supported=full|
-|vendor=Dynalink|device=PCI (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1043|device_id=0x0675|subvendor_id=0x0675|subdevice_id=0x1702|vario=HiSax driver|SMP=Yes|drv_id=0x40024|drv_subtyp=4|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Elsa AG|device=ML PC|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x160|IO=0x170|IO=0x260|IO=0x360|IRQ=3|IRQ=5|IRQ=7|IRQ=9|SMP=Yes|drv_id=0x10006|drv_subtyp=1|drv_typ=6|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=M2 PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x51f41|drv_subtyp=5|drv_typ=8001|feature=Fax|firmware=b1-%{PROTO}.t4|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|module=b1pcmcia|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=Eicon Networks|device=Diva 2.01 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe005|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x4000b|drv_subtyp=4|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=U.S.Robotics|device=ISDN PCI Card TA|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x16ec|subdevice_id=0x3409|vario=HiSax driver|SMP=Yes|drv_id=0x70024|drv_subtyp=7|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Sagem|device=Niccy ISA|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x814c|device_id=0x5001|vario=HiSax driver|SMP=Yes|drv_id=0x10018|drv_subtyp=1|drv_typ=24|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Elsa AG|device=ML PCF|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x160|IO=0x170|IO=0x260|IO=0x360|IRQ=10|IRQ=11|IRQ=15|IRQ=3|IRQ=5|IRQ=9|SMP=Yes|drv_id=0x40006|drv_subtyp=4|drv_typ=6|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Teles AG|device=16.3 AB|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x180|IO=0x280|IO=0x380|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=5|IRQ=9|SMP=Yes|drv_id=0x10003|drv_subtyp=1|drv_typ=3|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Dynalink|device=6692 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x0675|device_id=0x1702|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x50024|drv_subtyp=5|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=ITK|device=ISDN 3.0|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x8b26|device_id=0x2500|vario=HiSax driver|SMP=Yes|drv_id=0x10009|drv_subtyp=1|drv_typ=9|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Teles AG|device=PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x11de|device_id=0x6120|subvendor_id=0x0000|subdevice_id=0x0000|vario=HiSax driver|SMP=Yes|drv_id=0x15|drv_subtyp=0|drv_typ=21|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Sedlbauer AG|device=Speed Win2 PC104|device_class=ISDN Single Basic Rate|bus_type=PC104|vendor_id=0x0000|device_id=0x0000|subvendor_id=0x0000|subdevice_id=0x0000|vario=HiSax driver|SMP=Yes|drv_id=0x4000f|drv_subtyp=4|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=B1 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1244|device_id=0x0700|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x11f41|drv_subtyp=1|drv_typ=8001|feature=Fax|firmware=b1-%{PROTO}.t4|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=b1pci|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=Sedlbauer AG|device=Speed Star2|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x50016|drv_subtyp=5|drv_typ=22|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AsKey|device=PCI (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x144f|subdevice_id=0x1702|vario=HiSax driver|SMP=Yes|drv_id=0x10024|drv_subtyp=1|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=High Soft Tech|device=saphir III|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0052|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x9000f|drv_subtyp=9|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Digi|device=DataFire Micro V IOM2 (North America)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x114f|device_id=0x0072|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x140023|drv_subtyp=20|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Dynalink|device=PCI (CCD HFC)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0x2bd0|subvendor_id=0x1043|subdevice_id=0x1704|vario=HiSax driver|SMP=Yes|drv_id=0xb0023|drv_subtyp=11|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Elsa AG|device=Quickstep 1000|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x9315|device_id=0x3301|vario=HiSax driver|SMP=Yes|drv_id=0x70007|drv_subtyp=7|drv_typ=7|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=ITK|device=ix1-micro Rev.2|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x390|IO=0x398|IO=0x3a0|IO=0x3a8|IRQ=10|IRQ=11|IRQ=5|IRQ=9|SMP=Yes|drv_id=0x9|drv_subtyp=0|drv_typ=9|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Teles AG|device=16.3c|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x2750|device_id=0x1026|vario=HiSax driver|SMP=Yes|drv_id=0xe|drv_subtyp=0|drv_typ=14|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=SGS Thomson Microelectronics|device=ST5481 USB Adapter|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x0483|device_id=0x4810|vario=HiSax driver|SMP=Yes|drv_id=0x103e9|drv_subtyp=1|drv_typ=1001|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax_st5481|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1244|device_id=0x0a00|subvendor_id=0xffff|subdevice_id=0xffff|vario=CAPI 2.0 driver|SMP=No|alternative_name=Telekom AG,Teledat 150|drv_id=0x11f42|drv_subtyp=1|drv_typ=8002|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcpci|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|vario=HiSax driver|SMP=Yes|alternative_name=Telekom AG,Teledat 150|drv_id=0x1001b|drv_subtyp=1|drv_typ=27|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=OpenSource without Fax G3|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=A1|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=CAPI 2.0 driver|IO=0x200|IO=0x240|IO=0x300|IO=0x340|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=7|IRQ=9|SMP=No|drv_id=0x41f42|drv_subtyp=4|drv_typ=8002|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcclassic|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|vario=HiSax driver|IO=0x200|IO=0x240|IO=0x300|IO=0x340|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=7|IRQ=9|SMP=Yes|drv_id=0x10005|drv_subtyp=1|drv_typ=5|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Elsa AG|device=PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x6000a|drv_subtyp=6|drv_typ=10|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Iscas|device=TE320|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x8615|device_id=0x0000|vario=HiSax driver|SMP=Yes|drv_id=0x4000c|drv_subtyp=4|drv_typ=12|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Eicon Networks|device=Diva 2.02 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe00b|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xd000b|drv_subtyp=13|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=ASUSCOM|device=ISA ISAC|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x7506|device_id=0x8816|vario=HiSax driver|SMP=Yes|drv_id=0x1000c|drv_subtyp=1|drv_typ=12|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card USB v2.1|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x057c|device_id=0x1900|vario=CAPI 2.0 driver|SMP=No|drv_id=0x31f43|drv_subtyp=3|drv_typ=8003|feature=Fax|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcusb2|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|
-|vendor=Eicon Networks|device=Diehl ISDN-S|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=I4L driver|IRQ=10|IRQ=11|IRQ=12|IRQ=3|IRQ=4|IRQ=9|MEMBASE=0xd0000|SMP=Yes|drv_id=0x1f4a|drv_subtyp=0|drv_typ=8010|feature=Fax|firmware=%{PROTO}|interface=FCLASS2|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=eicon|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=Sedlbauer AG|device=Speed Fax+|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x274c|device_id=0x0200|vario=HiSax driver|SMP=Yes|drv_id=0x3001c|drv_subtyp=3|drv_typ=28|feature=Fax|firmware=ISAR.BIN|interface=FCLASS1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Billion|device=B008|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb008|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x40023|drv_subtyp=4|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Billion|device=B00B|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb00b|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x70023|drv_subtyp=7|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=TigerJet|device=300 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x14|drv_subtyp=0|drv_typ=20|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Seyon|device=B100|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb100|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x90023|drv_subtyp=9|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=TigerJet|device=NetSpider-U PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x26|drv_subtyp=0|drv_typ=38|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Sedlbauer AG|device=Speed Fax+ PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0054|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x8001c|drv_subtyp=8|drv_typ=28|feature=Fax|firmware=ISAR.BIN|interface=FCLASS1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!X USB v1.0 / v2.0|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x057c|device_id=0x2000|vario=CAPI 2.0 driver|SMP=No|drv_id=0x51f43|drv_subtyp=5|drv_typ=8003|feature=Fax|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fxusb|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|revision=0x0100|short_description=binary only CAPI with FAX G3|supported=full|
-|vendor=Acer|device=P10|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0xd805|device_id=0x1411|vario=HiSax driver|SMP=Yes|drv_id=0x1e|drv_subtyp=0|drv_typ=30|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Elsa AG|device=Quickstep 3000 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1048|device_id=0x3000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xa0012|drv_subtyp=10|drv_typ=18|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=TeleInt|device=SA1|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x300|IRQ=10|IRQ=11|IRQ=3|IRQ=4|IRQ=5|IRQ=7|SMP=Yes|drv_id=0xd|drv_subtyp=0|drv_typ=13|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Billion|device=B000|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x10023|drv_subtyp=1|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Teles AG|device=8.0|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IRQ=3|IRQ=4|IRQ=5|IRQ=6|IRQ=7|IRQ=9|MEMBASE=0xc0000|MEMBASE=0xc2000|MEMBASE=0xc4000|MEMBASE=0xc6000|MEMBASE=0xc8000|MEMBASE=0xca000|MEMBASE=0xcc000|MEMBASE=0xce000|MEMBASE=0xd0000|MEMBASE=0xd2000|MEMBASE=0xd4000|MEMBASE=0xd6000|MEMBASE=0xd8000|MEMBASE=0xda000|MEMBASE=0xdc000|MEMBASE=0xde000|SMP=Yes|drv_id=0x2|drv_subtyp=0|drv_typ=2|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Elsa AG|device=Microlink ISDN USB|device_class=ISDN Single Basic Rate|bus_type=USB|vario=HiSax driver|line_cnt=1|supported=not|
-|vendor=Teles AG|device=16.0|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0xd80|IO=0xe80|IO=0xf80|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=9|MEMBASE=0xc0000|MEMBASE=0xc2000|MEMBASE=0xc4000|MEMBASE=0xc6000|MEMBASE=0xc8000|MEMBASE=0xca000|MEMBASE=0xcc000|MEMBASE=0xce000|MEMBASE=0xd0000|MEMBASE=0xd2000|MEMBASE=0xd4000|MEMBASE=0xd6000|MEMBASE=0xd8000|MEMBASE=0xda000|MEMBASE=0xdc000|MEMBASE=0xde000|SMP=Yes|drv_id=0x1|drv_subtyp=0|drv_typ=1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Auerswald|device=Comfort 2000 System Telephone|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x09bf|device_id=0x00f1|vario=HiSax driver|SMP=Yes|drv_id=0x4002a|drv_subtyp=4|drv_typ=42|interface=I4L|line_cnt=1|line_protocol=DSS1|module=auerswald|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Eicon Networks|device=Diva Server BRI PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe010|subvendor_id=0xffff|subdevice_id=0xffff|vario=I4L driver|SMP=Yes|drv_id=0x51f4a|drv_subtyp=5|drv_typ=8010|feature=Fax|firmware=%{PROTO}|interface=FCLASS2|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=eicon|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=Sedlbauer AG|device=Speed Card|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x270|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=7|SMP=Yes|alternative_name=Telekom AG,Teledat 100 ISA|drv_id=0xf|drv_subtyp=0|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Billion|device=B007|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb007|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x30023|drv_subtyp=3|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Elsa AG|device=Quickstep 1000 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1048|device_id=0x1000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x90012|drv_subtyp=9|drv_typ=18|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Teles AG|device=16.3|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x180|IO=0x280|IO=0x380|IRQ=10|IRQ=12|IRQ=15|IRQ=5|IRQ=9|SMP=Yes|drv_id=0x3|drv_subtyp=0|drv_typ=3|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Elsa AG|device=Microlink PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1048|device_id=0x1000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xc0012|drv_subtyp=12|drv_typ=18|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Gazel|device=Djinn Itoo|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x10b5|device_id=0x1151|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x20022|drv_subtyp=2|drv_typ=34|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Pyramid|device=Speed Fax+ PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0051|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x7001c|drv_subtyp=7|drv_typ=28|feature=Fax|firmware=ISAR.BIN|interface=FCLASS1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card PCI v2.0|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1244|device_id=0x0e00|subvendor_id=0x1244|subdevice_id=0x0e00|vario=CAPI 2.0 driver|SMP=No|alternative_name=Telekom AG,Teledat 150 v2.0|drv_id=0x21f42|drv_subtyp=2|drv_typ=8002|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcpci|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|vario=HiSax driver|SMP=Yes|alternative_name=Telekom AG,Teledat 150 v2.0|drv_id=0x3e8|drv_subtyp=0|drv_typ=1000|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax_fcpcipnp|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Compaq Computer Corporation|device=ISDN S0 ISA|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x110e|device_id=0x0210|vario=HiSax driver|SMP=Yes|drv_id=0x13|drv_subtyp=0|drv_typ=19|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Billion|device=BIPAC-D|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x2c09|device_id=0x0200|vario=HiSax driver|SMP=Yes|drv_id=0x1001e|drv_subtyp=1|drv_typ=30|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Auerswald|device=COMpact 2206 USB|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x09bf|device_id=0x00db|vario=HiSax driver|SMP=Yes|alternative_name=COMpact 4410 USB|drv_id=0x1002a|drv_subtyp=1|drv_typ=42|interface=I4L|line_cnt=1|line_protocol=DSS1|module=auerswald|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=ASUSCOM|device=PCI + Voice (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x1043|subdevice_id=0x1703|vario=HiSax driver|SMP=Yes|drv_id=0x20024|drv_subtyp=2|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Eicon Networks|device=Diehl ISDN-SCOM|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=I4L driver|IRQ=10|IRQ=11|IRQ=12|IRQ=3|IRQ=4|IRQ=5|IRQ=7|IRQ=9|MEMBASE=0xd0000|SMP=Yes|drv_id=0x21f4a|drv_subtyp=2|drv_typ=8010|feature=Fax|firmware=%{PROTO}|interface=FCLASS2|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=eicon|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=Teles AG|device=PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x8|drv_subtyp=0|drv_typ=8|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Gazel|device=R753|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x10b5|device_id=0x1152|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x10022|drv_subtyp=1|drv_typ=34|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card USB|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x057c|device_id=0x0c00|vario=CAPI 2.0 driver|SMP=No|drv_id=0x11f43|drv_subtyp=1|drv_typ=8003|feature=Fax|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcusb|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|
-|vendor=Elsa AG|device=ML PCC-8|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=HiSax driver|IO=0x160|IO=0x170|IO=0x260|IO=0x360|IRQ=3|IRQ=5|IRQ=7|IRQ=9|SMP=Yes|drv_id=0x20006|drv_subtyp=2|drv_typ=6|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Billion|device=Tornado Tipac|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0xcd4c|device_id=0x0100|vario=HiSax driver|SMP=Yes|drv_id=0x4001e|drv_subtyp=4|drv_typ=30|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Abocom/Magitek|device=2BD1|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x13d1|device_id=0x2bd1|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x160023|drv_subtyp=22|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Billion|device=B00A|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb00a|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x60023|drv_subtyp=6|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Eicon Networks|device=Diva 2.01 ISA|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x891c|device_id=0xa100|vario=HiSax driver|SMP=Yes|drv_id=0x3000b|drv_subtyp=3|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Teles AG|device=PCI v2|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0x00a7|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x20014|drv_subtyp=2|drv_typ=20|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!X USB v3.0|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x057c|device_id=0x2000|vario=CAPI 2.0 driver|SMP=No|drv_id=0x81f43|drv_subtyp=8|drv_typ=8003|feature=Fax|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fxusb|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|revision=0x0302|short_description=binary only CAPI with FAX G3|supported=full|
-|vendor=Telekom AG|device=Concept|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x0871|device_id=0xffa2|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xe0023|drv_subtyp=14|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card Classic|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=CAPI 2.0 driver|IO=0x200|IO=0x240|IO=0x300|IO=0x340|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=7|IRQ=9|SMP=No|drv_id=0x31f42|drv_subtyp=3|drv_typ=8002|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcclassic|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|vario=HiSax driver|IO=0x200|IO=0x240|IO=0x300|IO=0x340|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=4|IRQ=5|IRQ=7|IRQ=9|SMP=Yes|drv_id=0x5|drv_subtyp=0|drv_typ=5|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Eicon Networks|device=Diva 2.0 ISA|device_class=ISDN Single Basic Rate|bus_type=ISA|vendor_id=0x891c|device_id=0x7100|vario=HiSax driver|SMP=Yes|drv_id=0x1000b|drv_subtyp=1|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Eicon Networks|device=Diva Server 4BRI/PCI|device_class=ISDN Multiple Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe012|subvendor_id=0xffff|subdevice_id=0xffff|vario=I4L driver|SMP=Yes|drv_id=0x61f4a|drv_subtyp=6|drv_typ=8010|feature=Fax|firmware=%{PROTO}|interface=FCLASS2|interface=I4L|line_cnt=4|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=eicon|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=ICN|device=4B|device_class=ISDN Multiple Basic Rate|bus_type=ISA|vario=I4L driver|IO=0x300|IO=0x308|IO=0x310|IO=0x318|IO=0x320|IO=0x328|IO=0x330|IO=0x338|IO=0x340|IO=0x348|IO=0x350|IO=0x358|IO=0x360|IO=0x368|MEMBASE=0xc0000|MEMBASE=0xc2000|MEMBASE=0xc4000|MEMBASE=0xc6000|MEMBASE=0xc8000|MEMBASE=0xca000|MEMBASE=0xcc000|MEMBASE=0xce000|MEMBASE=0xd0000|MEMBASE=0xd2000|MEMBASE=0xd4000|MEMBASE=0xd6000|MEMBASE=0xd8000|MEMBASE=0xda000|MEMBASE=0xdc000|MEMBASE=0xde000|SMP=Yes|drv_id=0x11f5e|drv_subtyp=1|drv_typ=8030|firmware=pc-%{PROTO}.bin|interface=I4L|line_cnt=2|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=icn|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=C4|device_class=ISDN Multiple Basic Rate|bus_type=PCI|vendor_id=0x1011|device_id=0x1065|subvendor_id=0x1244|subdevice_id=0x0800|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x31f41|drv_subtyp=3|drv_typ=8001|feature=Fax|firmware=c4.bin|interface=CAPI20|interface=CAPI20 Fax|line_cnt=4|line_protocol=DSS1|line_protocol=LEASED|module=c4|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=Eicon Networks|device=Diehl ISDN-QUADRO|device_class=ISDN Multiple Basic Rate|bus_type=ISA|vario=I4L driver|IRQ=10|IRQ=11|IRQ=12|IRQ=3|IRQ=4|IRQ=5|IRQ=6|IRQ=9|MEMBASE=0xd0000|SMP=Yes|drv_id=0x31f4a|drv_subtyp=3|drv_typ=8010|feature=Fax|firmware=%{PROTO}|interface=FCLASS2|interface=I4L|line_cnt=4|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=eicon|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=Eicon Networks|device=Diva Server 4BRI/PCI U|device_class=ISDN Multiple Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe013|subvendor_id=0xffff|subdevice_id=0xffff|vario=I4L driver|SMP=Yes|drv_id=0x71f4a|drv_subtyp=7|drv_typ=8010|feature=Fax|firmware=%{PROTO}|interface=FCLASS2|interface=I4L|line_cnt=4|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=eicon|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=C2|device_class=ISDN Multiple Basic Rate|bus_type=PCI|vendor_id=0x1011|device_id=0x1065|subvendor_id=0x1244|subdevice_id=0x1100|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x61f41|drv_subtyp=6|drv_typ=8001|feature=Fax|firmware=c2.bin|interface=CAPI20|interface=CAPI20 Fax|line_cnt=2|line_protocol=DSS1|line_protocol=LEASED|module=c4|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=T1 PCI|device_class=ISDN Primary Rate|bus_type=PCI|vendor_id=0x1244|device_id=0x1200|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x21f45|drv_subtyp=2|drv_typ=8005|feature=Fax|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|module=t1pci|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|special=B version|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=T1 ISA|device_class=ISDN Primary Rate|bus_type=ISA|vario=CAPI 2.0 driver|IO=0x340|IRQ=10|IRQ=11|IRQ=12|IRQ=15|IRQ=3|IRQ=5|IRQ=7|IRQ=9|SMP=Yes|drv_id=0x1f45|drv_subtyp=0|drv_typ=8005|feature=Fax|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|module=t1isa|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|special=B version|supported=full|
-|vendor=Eicon Networks|device=Diehl ISDN-S2M|device_class=ISDN Primary Rate|bus_type=ISA|vario=I4L driver|IRQ=10|IRQ=11|IRQ=12|IRQ=3|IRQ=4|IRQ=5|IRQ=7|IRQ=9|MEMBASE=0xd0000|SMP=Yes|drv_id=0x41f4a|drv_subtyp=4|drv_typ=8010|feature=Fax|firmware=%{PROTO}|interface=FCLASS2|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=eicon|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=Eicon Networks|device=Diva Server PRI/PCI|device_class=ISDN Primary Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe014|subvendor_id=0xffff|subdevice_id=0xffff|vario=I4L driver|SMP=Yes|drv_id=0x81f4a|drv_subtyp=8|drv_typ=8010|feature=Fax|firmware=%{PROTO}|interface=FCLASS2|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=eicon|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card DSL|device_class=ISDN Basic Rate and DSL|bus_type=PCI|vendor_id=0x1131|device_id=0x5402|subvendor_id=0x1244|subdevice_id=0x0f00|vario=CAPI 2.0 driver|SMP=No|drv_id=0x11f44|drv_subtyp=1|drv_typ=8004|feature=DSL|feature=Fax|firmware=fdslbase.bin|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcdsl|need_packages=avm_fcdsl|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3 and DSL|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card DSL v2.0|device_class=ISDN Basic Rate and DSL|bus_type=PCI|vendor_id=0x1244|device_id=0x2900|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x31f44|drv_subtyp=3|drv_typ=8004|feature=DSL|feature=Fax|firmware=fds2base.bin|info=card is supported with binary only drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcdsl2|need_packages=avm_fcdsl|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3 and DSL|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card DSL USB|device_class=ISDN Basic Rate and DSL|bus_type=USB|vendor_id=0x057c|device_id=0x2300|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x21f44|drv_subtyp=2|drv_typ=8004|feature=DSL|feature=Fax|firmware=fdsubase.frm|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcdslusb|need_packages=avm_fcdsl|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card DSL SL USB|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3500|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x51f44|drv_subtyp=5|drv_typ=8004|feature=DSLONLY|firmware=fdlubase.frm|info=DSL only card with binonly drivers from the manufacturer|interface=CAPI20|line_protocol=???|module=fcdslslusb|need_packages=avm_fcdsl|need_packages=capi4linux|need_packages=i4l-base|short_description=binary only CAPI|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card DSL SL|device_class=DSL|bus_type=PCI|vendor_id=0x1244|device_id=0x2700|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x41f44|drv_subtyp=4|drv_typ=8004|feature=DSLONLY|firmware=fdssbase.bin|info=DSL only card with binonly driver from the manufacturer|interface=CAPI20|line_protocol=???|module=fcdslsl|need_packages=avm_fcdsl|need_packages=capi4linux|need_packages=i4l-base|short_description=DSL only card with CAPI2.0|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card DSL USB v2.0|device_class=ISDN Basic Rate and DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3600|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x61f44|drv_subtyp=6|drv_typ=8004|feature=DSL|feature=Fax|firmware=fdsubase2.frm|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=fcdslusb2|need_packages=avm_fcdsl|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|
-|vendor=Telekom AG|device=Eumex 2220PC|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x057c|device_id=0x2805|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0xa1f43|drv_subtyp=10|drv_typ=8003|feature=Fax|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=e2220pc|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|
-|vendor=Telekom AG|device=Eumex 2220pc|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x057c|device_id=0x4401|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0xb1f43|drv_subtyp=11|drv_typ=8003|feature=Fax|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=e2220pc|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|
-|vendor=Telekom AG|device=Eumex 5520PC|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x057c|device_id=0x2806|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0xc1f43|drv_subtyp=12|drv_typ=8003|feature=Fax|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=e5520pc|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|
-|vendor=Telekom AG|device=Eumex 5520pc|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x057c|device_id=0x4601|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0xd1f43|drv_subtyp=13|drv_typ=8003|feature=Fax|info=This card is supported with binonly drivers from the manufacturer|interface=CAPI20|interface=CAPI20 Fax|line_cnt=1|line_protocol=DSS1|module=e5520pc|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=binary only CAPI with FAX G3|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=BlueFRITZ!USB|device_class=Others|bus_type=USB|vendor_id=0x057c|device_id=0x2200|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x11f46|drv_subtyp=1|drv_typ=8006|feature=BLUETOOTH|feature=Basic Rate|firmware=bfubase.frm|interface=CAPI20|line_cnt=1|line_protocol=DSS1|module=bfusb|need_packages=bluez-firmware|need_packages=bluez-libs|need_packages=bluez-utils|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|short_description=Bluetooth Dongle,need ISDN Accesspoint|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box SL|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3701|vario=other|SMP=yes|drv_id=0xffff0001|drv_subtyp=1|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3702|vario=other|SMP=yes|drv_id=0xffff0002|drv_subtyp=2|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box SL WLAN|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3c00|vario=other|SMP=yes|drv_id=0xffff0003|drv_subtyp=3|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box Fon WLAN|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x4001|vario=other|SMP=yes|drv_id=0xffff0004|drv_subtyp=4|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box Fon (Annex A)|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3c00|vario=other|SMP=yes|drv_id=0xffff0005|drv_subtyp=5|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box (Annex A)|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3e01|vario=other|SMP=yes|drv_id=0xffff0006|drv_subtyp=6|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box Fon|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3a00|vario=other|SMP=yes|drv_id=0xffff0007|drv_subtyp=7|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=Sitecom|device=DC-104 USB ISDN Modem Rev 1|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x0483|device_id=0x4810|subvendor_id=|subdevice_id=|vario=HiSax driver|SMP=Yes|drv_id=0x03e9|drv_subtyp=0|drv_typ=1001|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax_st5481|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Sitecom|device=DC 104 USB ISDN Modem Rev 2|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x0959|device_id=0x2bd0|subvendor_id=|subdevice_id=|vario=HiSax driver|SMP=Yes|drv_id=0x103ea|drv_subtyp=1|drv_typ=1002|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hfc_usb|supported=full|
-|vendor=Sitecom|device=DC 105 ISDN TA|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x182d|device_id=0x3069|subvendor_id=0x182d|subdevice_id=0x3069|vario=HiSax driver|SMP=Yes|drv_id=0x170023|drv_subtyp=23|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|supported=full|
diff --git a/src/hwinfo/src/isdn/cdb/ISDN.ppc.txt b/src/hwinfo/src/isdn/cdb/ISDN.ppc.txt
deleted file mode 100644 (file)
index d4acd85..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# CDB data export for subclass: ISDN Single Basic Rate
-# Generated at                : Tue Aug 26 16:15:17 2003
-#
-# Exported combinations:
-#      arch=ppc  dist=Stable  lang=de_DE  vario=HiSax driver
-#
-# Author: dhess@suse.de (13.02.2003)
-# Author: didge@suse.de (04.08.2003)
-#
-#
-# Export format: |Vendorname|Productname|Subclass|Bus|Variation|topic=value|topic=value|...|Variation|topic=value|topic=value|...|
-#
-
-
-|vendor=Sagem|device=Niccy PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1267|device_id=0x1016|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x20018|drv_subtyp=2|drv_typ=24|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!X seriell|device_class=ISDN Single Basic Rate|bus_type=Serial|vario=HiSax driver|line_cnt=1|supported=not|
-|vendor=Eicon Networks|device=Diva 2.0 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe002|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x2000b|drv_subtyp=2|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sedlbauer AG|device=Speed PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0053|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x6000f|drv_subtyp=6|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Eicon Networks|device=Diva 2.01 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe005|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x4000b|drv_subtyp=4|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Telekom AG|device=Teledat USB 2a/b|device_class=ISDN Single Basic Rate|bus_type=USB|vario=HiSax driver|line_cnt=1|supported=not|
-|vendor=High Soft Tech|device=saphir III|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0052|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x9000f|drv_subtyp=9|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1244|device_id=0x0a00|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|alternative_name=Telekom AG,Teledat 150|drv_id=0x1001b|drv_subtyp=1|drv_typ=27|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Eicon Networks|device=Diva 2.02 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe00b|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xd000b|drv_subtyp=13|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sedlbauer AG|device=Speed Fax+ PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0054|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x8001c|drv_subtyp=8|drv_typ=28|feature=Fax|firmware=ISAR.BIN|interface=FCLASS1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=Quickstep 3000 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1048|device_id=0x3000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xa0012|drv_subtyp=10|drv_typ=18|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=Microlink ISDN USB|device_class=ISDN Single Basic Rate|bus_type=USB|vario=HiSax driver|line_cnt=1|supported=not|
-|vendor=Elsa AG|device=Quickstep 1000 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1048|device_id=0x1000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x90012|drv_subtyp=9|drv_typ=18|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=Microlink PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1048|device_id=0x1000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xc0012|drv_subtyp=12|drv_typ=18|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Pyramid|device=Speed Fax+ PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0051|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x7001c|drv_subtyp=7|drv_typ=28|feature=Fax|firmware=ISAR.BIN|interface=FCLASS1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box SL|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3701|vario=other|SMP=yes|drv_id=0xffff0001|drv_subtyp=1|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3702|vario=other|SMP=yes|drv_id=0xffff0002|drv_subtyp=2|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box SL WLAN|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3c00|vario=other|SMP=yes|drv_id=0xffff0003|drv_subtyp=3|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box Fon WLAN|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x4001|vario=other|SMP=yes|drv_id=0xffff0004|drv_subtyp=4|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box Fon (Annex A)|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3c00|vario=other|SMP=yes|drv_id=0xffff0005|drv_subtyp=5|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box (Annex A)|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3e01|vario=other|SMP=yes|drv_id=0xffff0006|drv_subtyp=6|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=AVM FRITZ!Box Fon|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3a00|vario=other|SMP=yes|drv_id=0xffff0007|drv_subtyp=7|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
diff --git a/src/hwinfo/src/isdn/cdb/ISDN.x86_64.txt b/src/hwinfo/src/isdn/cdb/ISDN.x86_64.txt
deleted file mode 100644 (file)
index 71dab3d..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-#
-# CDB data export for subclass: ISDN Single Basic Rate
-# Generated at                : Sat Aug 30 17:23:03 2003
-#
-# Exported combinations:
-#      arch=x86_64  dist=Stable  lang=de_DE  vario=HiSax driver
-#      arch=x86_64  dist=Stable  lang=de_DE  vario=I4L driver
-#      arch=x86_64  dist=Stable  lang=de_DE  vario=CAPI 2.0 driver
-#
-# Author: dhess@suse.de (13.02.2003)
-# Author: didge@suse.de (04.08.2003)
-#
-#
-# Export format: |Vendorname|Productname|Subclass|Bus|Variation|topic=value|topic=value|...|Variation|topic=value|topic=value|...|
-#
-
-
-|vendor=Billion|device=B009|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb009|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x50023|drv_subtyp=5|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=B1|device_class=ISDN Single Basic Rate|bus_type=ISA|vario=CAPI 2.0 driver|supported=unknown|
-|vendor=Billion|device=B00C|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb00c|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x80023|drv_subtyp=8|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Telekom AG|device=A1T|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x0871|device_id=0xffa1|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xd0023|drv_subtyp=13|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sagem|device=Niccy PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1267|device_id=0x1016|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x20018|drv_subtyp=2|drv_typ=24|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Cologne Chip AG|device=HFC 2BDS0|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0x2bd0|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x110023|drv_subtyp=17|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Formula-n|device=enter:now|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0x0055|subdevice_id=0x0002|vario=HiSax driver|SMP=Yes|drv_id=0x10029|drv_subtyp=1|drv_typ=41|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|short_description=under development|supported=full|
-|vendor=TigerJet|device=NetJet PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0x00ff|subdevice_id=0x000f|vario=HiSax driver|SMP=Yes|drv_id=0x10014|drv_subtyp=1|drv_typ=20|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Scitel|device=Quadro|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x10b5|device_id=0x9050|subvendor_id=0x0871|subdevice_id=0xffa8|vario=HiSax driver|SMP=Yes|drv_id=0x21|drv_subtyp=0|drv_typ=33|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=S0Box|device_class=ISDN Single Basic Rate|bus_type=Parallel|vario=HiSax driver|IO=0x278|IO=0x378|IO=0x3bc|IRQ=5|IRQ=7|SMP=Yes|drv_id=0x19|drv_subtyp=0|drv_typ=25|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Eicon Networks|device=Diva 2.0U PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe004|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xc000b|drv_subtyp=12|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Auerswald|device=Comfort 1200 System Telephone|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x09bf|device_id=0x00f2|vario=HiSax driver|SMP=Yes|drv_id=0x3002a|drv_subtyp=3|drv_typ=42|interface=I4L|line_cnt=1|line_protocol=DSS1|module=auerswald|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AsKey|device=PCI (CCD HFC)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0x2bd0|subvendor_id=0x144f|subdevice_id=0x1704|vario=HiSax driver|SMP=Yes|drv_id=0xc0023|drv_subtyp=12|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=B1 PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x21f41|drv_subtyp=2|drv_typ=8001|feature=Fax|firmware=b1-%{PROTO}.t4|interface=CAPI20|interface=CAPI20 Fax|interface=I4L|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=b1pcmcia|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=Auerswald|device=COMpact 2104 USB|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x09bf|device_id=0x00c0|vario=HiSax driver|SMP=Yes|drv_id=0x2002a|drv_subtyp=2|drv_typ=42|interface=I4L|line_cnt=1|line_protocol=DSS1|module=auerswald|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Gazel|device=R685|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x10b5|device_id=0x1030|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x22|drv_subtyp=0|drv_typ=34|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=ASUSCOM|device=PCI (CCD HFC)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1043|device_id=0x0675|subvendor_id=0x0675|subdevice_id=0x1704|vario=HiSax driver|SMP=Yes|drv_id=0xa0023|drv_subtyp=10|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=ASUSCOM|device=PCI (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x1043|subdevice_id=0x1702|vario=HiSax driver|SMP=Yes|drv_id=0x24|drv_subtyp=0|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sedlbauer AG|device=Speed Star|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x20016|drv_subtyp=2|drv_typ=22|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!X seriell|device_class=ISDN Single Basic Rate|bus_type=Serial|vario=HiSax driver|line_cnt=1|supported=not|
-|vendor=Digi|device=DataFire Micro V IOM2 (Europe)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x114f|device_id=0x0070|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x120023|drv_subtyp=18|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Digi|device=DataFire Micro V (North America)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x114f|device_id=0x0073|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x150023|drv_subtyp=21|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Berkom|device=A4T|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x11de|device_id=0x6120|subvendor_id=0x0871|subdevice_id=0xffa4|vario=HiSax driver|SMP=Yes|drv_id=0x20|drv_subtyp=0|drv_typ=32|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Digi|device=DataFire Micro V (Europe)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x114f|device_id=0x0071|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x130023|drv_subtyp=19|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Zolltrix|device=2BDS0|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x15b0|device_id=0x2bd0|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x100023|drv_subtyp=16|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Motorola|device=MC145575|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1051|device_id=0x0100|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xf0023|drv_subtyp=15|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=PCMCIA IPAC|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0xb000a|drv_subtyp=11|drv_typ=10|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=B006|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb006|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x20023|drv_subtyp=2|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x1a|drv_subtyp=0|drv_typ=26|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Winbond|device=W6692 card|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x60024|drv_subtyp=6|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=A1 PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x1001a|drv_subtyp=1|drv_typ=26|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|short_description=OpenSource without Fax G3|supported=full|
-|vendor=AsKey|device=PCI + Voice (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x144f|subdevice_id=0x1703|vario=HiSax driver|SMP=Yes|drv_id=0x30024|drv_subtyp=3|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Eicon Networks|device=Diva 2.0 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe002|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x2000b|drv_subtyp=2|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sedlbauer AG|device=Speed PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0053|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x6000f|drv_subtyp=6|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Dynalink|device=PCI (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1043|device_id=0x0675|subvendor_id=0x0675|subdevice_id=0x1702|vario=HiSax driver|SMP=Yes|drv_id=0x40024|drv_subtyp=4|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Eicon Networks|device=Diva 2.01 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe005|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x4000b|drv_subtyp=4|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=U.S.Robotics|device=ISDN PCI Card TA|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x16ec|subdevice_id=0x3409|vario=HiSax driver|SMP=Yes|drv_id=0x70024|drv_subtyp=7|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Dynalink|device=6692 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x0675|device_id=0x1702|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x50024|drv_subtyp=5|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x11de|device_id=0x6120|subvendor_id=0x0000|subdevice_id=0x0000|vario=HiSax driver|SMP=Yes|drv_id=0x15|drv_subtyp=0|drv_typ=21|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sedlbauer AG|device=Speed Win2 PC104|device_class=ISDN Single Basic Rate|bus_type=PC104|vendor_id=0x0000|device_id=0x0000|subvendor_id=0x0000|subdevice_id=0x0000|vario=HiSax driver|SMP=Yes|drv_id=0x4000f|drv_subtyp=4|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=B1 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1244|device_id=0x0700|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x11f41|drv_subtyp=1|drv_typ=8001|feature=Fax|firmware=b1-%{PROTO}.t4|interface=CAPI20|interface=CAPI20 Fax|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=b1pci|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=Sedlbauer AG|device=Speed Star2|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x50016|drv_subtyp=5|drv_typ=22|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Telekom AG|device=Teledat USB 2a/b|device_class=ISDN Single Basic Rate|bus_type=USB|vario=HiSax driver|line_cnt=1|supported=not|
-|vendor=AsKey|device=PCI (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x144f|subdevice_id=0x1702|vario=HiSax driver|SMP=Yes|drv_id=0x10024|drv_subtyp=1|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=High Soft Tech|device=saphir III|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0052|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x9000f|drv_subtyp=9|drv_typ=15|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Digi|device=DataFire Micro V IOM2 (North America)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x114f|device_id=0x0072|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x140023|drv_subtyp=20|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Dynalink|device=PCI (CCD HFC)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0x2bd0|subvendor_id=0x1043|subdevice_id=0x1704|vario=HiSax driver|SMP=Yes|drv_id=0xb0023|drv_subtyp=11|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=SGS Thomson Microelectronics|device=ST5481 USB Adapter|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x0483|device_id=0x4810|vario=HiSax driver|SMP=Yes|drv_id=0x103e9|drv_subtyp=1|drv_typ=1001|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax_st5481|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1244|device_id=0x0a00|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|alternative_name=Telekom AG,Teledat 150|drv_id=0x1001b|drv_subtyp=1|drv_typ=27|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Elsa AG|device=PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x6000a|drv_subtyp=6|drv_typ=10|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Eicon Networks|device=Diva 2.02 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1133|device_id=0xe00b|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xd000b|drv_subtyp=13|drv_typ=11|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=B008|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb008|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x40023|drv_subtyp=4|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=B00B|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb00b|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x70023|drv_subtyp=7|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=TigerJet|device=300 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x14|drv_subtyp=0|drv_typ=20|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Seyon|device=B100|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb100|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x90023|drv_subtyp=9|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=TigerJet|device=NetSpider-U PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x26|drv_subtyp=0|drv_typ=38|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Sedlbauer AG|device=Speed Fax+ PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0054|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x8001c|drv_subtyp=8|drv_typ=28|feature=Fax|firmware=ISAR.BIN|interface=FCLASS1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=Quickstep 3000 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1048|device_id=0x3000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xa0012|drv_subtyp=10|drv_typ=18|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=B000|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x10023|drv_subtyp=1|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=Microlink ISDN USB|device_class=ISDN Single Basic Rate|bus_type=USB|vario=HiSax driver|line_cnt=1|supported=not|
-|vendor=Auerswald|device=Comfort 2000 System Telephone|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x09bf|device_id=0x00f1|vario=HiSax driver|SMP=Yes|drv_id=0x4002a|drv_subtyp=4|drv_typ=42|interface=I4L|line_cnt=1|module=auerswald|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Billion|device=B007|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb007|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x30023|drv_subtyp=3|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=Quickstep 1000 PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1048|device_id=0x1000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x90012|drv_subtyp=9|drv_typ=18|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Elsa AG|device=Microlink PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1048|device_id=0x1000|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xc0012|drv_subtyp=12|drv_typ=18|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Gazel|device=Djinn Itoo|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x10b5|device_id=0x1151|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x20022|drv_subtyp=2|drv_typ=34|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Pyramid|device=Speed Fax+ PCI|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0002|subvendor_id=0x0051|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x7001c|drv_subtyp=7|drv_typ=28|feature=Fax|firmware=ISAR.BIN|interface=FCLASS1|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Card PCI v2.0|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1244|device_id=0x0e00|subvendor_id=0x1244|subdevice_id=0x0e00|vario=HiSax driver|SMP=Yes|alternative_name=Telekom AG,Teledat 150 v2.0|drv_id=0x3e8|drv_subtyp=0|drv_typ=1000|feature=Fax|info=This card has multiple drivers, some functions are only available on the binonly driver|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax_fcpcipnp|need_packages=i4l-base|short_description=OpenSource without Fax G3|supported=full|
-|vendor=Auerswald|device=COMpact 2206 USB|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x09bf|device_id=0x00db|vario=HiSax driver|SMP=Yes|drv_id=0x1002a|drv_subtyp=1|drv_typ=42|interface=I4L|line_cnt=1|line_protocol=DSS1|module=auerswald|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=ASUSCOM|device=PCI + Voice (W6692)|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1050|device_id=0x6692|subvendor_id=0x1043|subdevice_id=0x1703|vario=HiSax driver|SMP=Yes|drv_id=0x20024|drv_subtyp=2|drv_typ=36|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=PCMCIA|device_class=ISDN Single Basic Rate|bus_type=PCMCIA|vario=HiSax driver|SMP=Yes|drv_id=0x8|drv_subtyp=0|drv_typ=8|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Gazel|device=R753|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x10b5|device_id=0x1152|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x10022|drv_subtyp=1|drv_typ=34|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Abocom/Magitek|device=2BD1|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x13d1|device_id=0x2bd1|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x160023|drv_subtyp=22|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Billion|device=B00A|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x1397|device_id=0xb00a|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0x60023|drv_subtyp=6|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Teles AG|device=PCI v2|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0xe159|device_id=0x0001|subvendor_id=0x00a7|subdevice_id=0x0001|vario=HiSax driver|SMP=Yes|drv_id=0x20014|drv_subtyp=2|drv_typ=20|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=Telekom AG|device=Concept|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x0871|device_id=0xffa2|subvendor_id=0xffff|subdevice_id=0xffff|vario=HiSax driver|SMP=Yes|drv_id=0xe0023|drv_subtyp=14|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|need_packages=i4l-base|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=C4|device_class=ISDN Multiple Basic Rate|bus_type=PCI|vendor_id=0x1011|device_id=0x1065|subvendor_id=0x1244|subdevice_id=0x0800|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x31f41|drv_subtyp=3|drv_typ=8001|feature=Fax|firmware=c4.bin|interface=CAPI20|interface=CAPI20 Fax|interface=I4L|line_cnt=4|line_protocol=DSS1|line_protocol=LEASED|module=c4|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=C2|device_class=ISDN Multiple Basic Rate|bus_type=PCI|vendor_id=0x1011|device_id=0x1065|subvendor_id=0x1244|subdevice_id=0x1100|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x61f41|drv_subtyp=6|drv_typ=8001|feature=Fax|firmware=c2.bin|interface=CAPI20|interface=CAPI20 Fax|interface=I4L|line_cnt=2|line_protocol=DSS1|line_protocol=LEASED|module=c4|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=T1 PCI|device_class=ISDN Primary Rate|bus_type=PCI|vendor_id=0x1244|device_id=0x1200|vario=CAPI 2.0 driver|SMP=Yes|drv_id=0x21f45|drv_subtyp=2|drv_typ=8005|feature=Fax|firmware=t1-{PROF}.t4|interface=CAPI20|interface=CAPI20 Fax|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|module=t1pci|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|need_packages=i4lfirm|special=B version|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=BlueFRITZ!USB|device_class=Others|bus_type=USB|vendor_id=0x057c|device_id=0x2200|vario=CAPI 2.0 driver|Interface=CAPI20|SMP=Yes|drv_id=0x11f46|drv_subtyp=1|drv_typ=8006|feature=BLUETOOTH|feature=Basic Rate|firmware=bfubase.frm|line_cnt=1|line_protocol=DSS1|module=bfusb|need_packages=bluez-firmware|need_packages=bluez-libs|need_packages=bluez-utils|need_packages=capi4linux|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box SL|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3701|vario=other|SMP=yes|drv_id=0xffff0001|drv_subtyp=1|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3702|vario=other|SMP=yes|drv_id=0xffff0002|drv_subtyp=2|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box SL WLAN|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3c00|vario=other|SMP=yes|drv_id=0xffff0003|drv_subtyp=3|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box Fon WLAN|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x4001|vario=other|SMP=yes|drv_id=0xffff0004|drv_subtyp=4|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box Fon (Annex A)|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3c00|vario=other|SMP=yes|drv_id=0xffff0005|drv_subtyp=5|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=FRITZ!Box (Annex A)|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3e01|vario=other|SMP=yes|drv_id=0xffff0006|drv_subtyp=6|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=AVM Computersysteme Vertriebs GmbH|device=AVM FRITZ!Box Fon|device_class=DSL|bus_type=USB|vendor_id=0x057c|device_id=0x3a00|vario=other|SMP=yes|drv_id=0xffff0007|drv_subtyp=7|drv_typ=9999|feature=DSLONLY|feature=PPPOE|interface=pppoe|line_cnt=0|line_protocol=none|need_packages=ppp|need_packages=smpppd|module=usbnet|supported=full|
-|vendor=Sitecom|device=DC-104 USB ISDN Modem Rev 1|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x0483|device_id=0x4810|subvendor_id=|subdevice_id=|vario=HiSax driver|SMP=Yes|drv_id=0x03e9|drv_subtyp=0|drv_typ=1001|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax_st5481|need_packages=i4l-base|need_packages=i4l-isdnlog|supported=full|
-|vendor=Sitecom|device=DC 104 USB ISDN Modem Rev 2|device_class=ISDN Single Basic Rate|bus_type=USB|vendor_id=0x0959|device_id=0x2bd0|subvendor_id=|subdevice_id=|vario=HiSax driver|SMP=Yes|drv_id=0x103ea|drv_subtyp=1|drv_typ=1002|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hfc_usb|supported=full|
-|vendor=Sitecom|device=DC 105 ISDN TA|device_class=ISDN Single Basic Rate|bus_type=PCI|vendor_id=0x182d|device_id=0x3069|subvendor_id=0x182d|subdevice_id=0x3069|vario=HiSax driver|SMP=Yes|drv_id=0x170023|drv_subtyp=23|drv_typ=35|interface=I4L|line_cnt=1|line_protocol=1TR6|line_protocol=DSS1|line_protocol=LEASED|line_protocol=NI1|module=hisax|supported=full|
diff --git a/src/hwinfo/src/isdn/cdb/Makefile b/src/hwinfo/src/isdn/cdb/Makefile
deleted file mode 100644 (file)
index 43cba1f..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-TOPDIR         = ../../..
-TARGETS                = mk_isdnhwdb isdn_cdb.h ISDN.CDB.hwdb
-CLEANFILES     = isdn_cdb isdn_cdb.h lex.yy.c ISDN.CDB.txt mk_isdnhwdb ISDN.CDB.hwdb
-
-include $(TOPDIR)/Makefile.common
-
-ISDN.CDB.txt:
-       if [ -f ISDN.$(ARCH).txt ]; then \
-               ln -s ISDN.$(ARCH).txt ISDN.CDB.txt; \
-       else \
-               ln -s ISDN.ppc.txt ISDN.CDB.txt; \
-       fi
-
-isdn_cdb.h: isdn_cdb ISDN.CDB.txt
-       rm -f isdn_cdb.h
-       ./isdn_cdb ISDN.CDB.txt isdn_cdb.h
-
-lex.yy.c: isdn_cdb.lex
-       lex isdn_cdb.lex
-
-isdn_cdb: isdn_cdb.o cdb_read.o
-
-mk_isdnhwdb: mk_isdnhwdb.o cdb_read.o
-
-cdb_read.o: cdb_read.c cdb_read.h
-
-isdn_cdb.o: isdn_cdb.c cdb_read.h lex.yy.c
-
-mk_isdnhwdb.o: mk_isdnhwdb.c cdb_read.h lex.yy.c
-
-ISDN.CDB.hwdb: mk_isdnhwdb ISDN.CDB.txt
-       rm -f  ISDN.CDB.hwdb
-       ./mk_isdnhwdb ISDN.CDB.txt ISDN.CDB.hwdb
diff --git a/src/hwinfo/src/isdn/cdb/cdb_hwdb.h b/src/hwinfo/src/isdn/cdb/cdb_hwdb.h
deleted file mode 100644 (file)
index 935e243..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#define CDBISDN_CDB_FILE               "/usr/share/hwinfo/ISDN.CDB.txt"
-#define CDBISDN_HWDB_FILE              "/usr/share/hwinfo/ISDN.CDB.hwdb"
-
-#define IWHREC_TYPE_VERSION            1
-#define IWHREC_TYPE_DATE               2
-#define IWHREC_TYPE_NAME_SIZE          3
-#define IWHREC_TYPE_NAME_COUNT         4
-#define        IWHREC_TYPE_NAME_DATA           5
-#define IWHREC_TYPE_VENDOR_COUNT       11
-#define IWHREC_TYPE_VENDOR_RECORD      12
-#define IWHREC_TYPE_CARD_COUNT         21
-#define IWHREC_TYPE_CARD_RECORD                22
-#define IWHREC_TYPE_CARD_IDSORTED      23
-#define IWHREC_TYPE_VARIO_COUNT                31
-#define IWHREC_TYPE_VARIO_RECORD       32
-
diff --git a/src/hwinfo/src/isdn/cdb/cdb_read.c b/src/hwinfo/src/isdn/cdb/cdb_read.c
deleted file mode 100644 (file)
index 92147e1..0000000
+++ /dev/null
@@ -1,517 +0,0 @@
-#include "cdb_read.h"
-
-int            max_ce = MAXCARDS;
-int            ce_idx = 0;
-int            max_vario = MAXVARIO;
-int            vario_idx;
-int            name_str_cnt = 0;
-int            max_name_str_cnt = MAXNAMECNT;
-int            max_ivendor = MAXCARDS;
-int            ivendor_idx = 0;
-
-char           *name_str;
-cdb_isdn_card  *cards;
-cdb_isdn_vario *varios;
-cdb_isdn_vendor        *vendors;
-
-int            *isdncard_id;
-
-int            drvid_cnt;
-int            drv_subtyp_cnt;
-int            drv_typ_cnt;
-int            supported_cnt;
-
-int            not_supported = 0;
-
-static struct _vendorshortnames_t _vendorshortnames[] = {
-       {"AVM Computersysteme Vertriebs GmbH","AVM"},
-       {"High Soft Tech","HST"},
-       {"Cologne Chip AG","CC"},
-       {"Telekom AG","DTAG"},
-       {"TigerJet","TJET"},
-       {"ASUSCOM","Asus"},
-       {"U.S.Robotics","USR"},
-       {"SGS Thomson Microelectronics","SGST"},
-       {"Abocom/Magitek","Abocom"},
-       {NULL,NULL},
-};
-
-static int compare_vendor(cdb_isdn_vendor *v1, cdb_isdn_vendor *v2) {
-       return(strcasecmp(v1->name, v2->name));
-}
-
-static int compare_card(cdb_isdn_card *c1, cdb_isdn_card *c2) {
-       return(strcasecmp(c1->name, c2->name));
-}
-
-int compare_name(const int *c1, const int *c2) {
-       return(strcasecmp(cards[*c1].name,
-               cards[*c2].name));
-}
-
-static int compare_type(cdb_isdn_vario *v1, cdb_isdn_vario *v2) {
-       int x= v1->typ - v2->typ;
-
-       if (!x)
-               x=v1->subtyp - v2->subtyp;
-       return(x);
-}
-
-static int compare_id(const int *c1, const int *c2) {
-       int x = cards[*c1].vendor - cards[*c2].vendor;
-
-       if (!x)
-               x = cards[*c1].device -
-                       cards[*c2].device;
-       if (!x)
-               x = cards[*c1].subvendor -
-                       cards[*c2].subvendor;
-       if (!x)
-               x = cards[*c1].subdevice -
-                       cards[*c2].subdevice;
-       return(x);
-}
-
-static char *add_name(const char *str, int merge) {
-       char    *p;
-       int     l;
-
-       if (!str)
-               return(NULL);
-       if (merge) {
-               p = name_str;
-               while (*p) {
-                       if (!strcmp(p, str))
-                               break;
-                       p += strlen(p) +1;
-                       if (p >= (name_str + max_name_str_cnt))
-                               return(NULL);
-               }
-               if (*p)
-                       return(p);
-       } else {
-               p = name_str + name_str_cnt;
-       }
-       l = strlen(str) +1;
-       if ((p + l) >= (name_str + max_name_str_cnt))
-               return(NULL);
-       strcpy(p, str);
-       name_str_cnt += l;
-       return(p);
-}
-
-static char stmp[4096],sstmp[4096];
-
-static char *add_lname(int v, const char *str) {
-       sprintf(stmp, "%s %s", vendors[v].shortname, str);
-       return(add_name(stmp, 1));
-}
-
-static char *add_name_list(const char *str, const char *list) {
-       if (!list || !list[0])
-               return(add_name(str, 1));
-       sprintf(stmp, "%s,%s", list, str);
-       return(add_name(stmp, 1));
-}
-
-static char *add_sortedname_list(const char *str, const char *list, const char *fmt) {
-       u_int   v,i,flg=0;
-       char    *t,*p;
-       if (!list || !list[0])
-               return(add_name(str, 1));
-       strncpy(stmp, list, 4096);
-       sscanf(str, fmt, &v);
-       p = sstmp;
-       t = strtok(stmp, ",");
-       while (t) {
-               sscanf(t, fmt, &i);
-               if (!flg && i>v) {
-                       flg++;
-                       p += sprintf(p, fmt, v);
-                       *p++ = ',';
-               }
-               p += sprintf(p, fmt, i);
-               *p++ = ',';
-               t = strtok(NULL, ",");
-       }
-       if (!flg)
-               p += sprintf(p, fmt, v);
-       else
-               p--;
-       *p = 0;
-       return(add_name(sstmp, 1));
-}
-
-static int add_vendor(char *v, int card) {
-       int     i,found = 0;
-       
-       for(i=0;i < ivendor_idx; i++) {
-               if (!strcmp(v, vendors[i].name)) {
-                       vendors[i].refcnt++;
-                       return(i);
-               }
-       }
-       if (ivendor_idx < max_ivendor) {
-               i=0;
-               while (_vendorshortnames[i].lname) {
-                       if (!strcmp(v, _vendorshortnames[i].lname)) {
-                               found++;
-                               break;
-                       } else if (!strcmp(v, _vendorshortnames[i].sname)) {
-                               found++;
-                               break;
-                       }
-                       i++;
-               }
-               if (found) {
-                       if (!(vendors[ivendor_idx].name = add_name(_vendorshortnames[i].lname, 1)))
-                               return(-1);
-                       if (!(vendors[ivendor_idx].shortname = add_name(_vendorshortnames[i].sname, 1)))
-                               return(-1);
-               } else {
-                       char *p;
-                       if (!(vendors[ivendor_idx].name = add_name(v, 1)))
-                               return(-1);
-                       p = strtok(v, " ");
-                       if (p) {
-                               if (!(vendors[ivendor_idx].shortname = add_name(p, 1)))
-                                       return(-1);
-                       } else
-                               vendors[ivendor_idx].shortname = vendors[ivendor_idx].name;
-               }
-               vendors[ivendor_idx].vnr = ivendor_idx;
-               vendors[ivendor_idx].refcnt++;
-               ivendor_idx++;
-               return(ivendor_idx-1);
-       } else
-               return(-1);
-}
-
-static int new_vario(char *v, int c) {
-
-       vario_idx++;
-       if (vario_idx>=max_vario)
-               return(-1);
-       drvid_cnt = 0;
-       drv_subtyp_cnt = 0;
-       drv_typ_cnt = 0;
-       not_supported = 0;
-       supported_cnt = 0;
-       if (!(varios[vario_idx].name = add_name(v, 1)))
-               return(-1);
-       if (cards[c].vario>0) {
-               varios[vario_idx-1].next_vario = vario_idx;
-       } else
-               cards[c].vario = vario_idx;
-       varios[vario_idx].handle = vario_idx;
-       varios[vario_idx].card_ref = c;
-       cards[c].vario_cnt++;
-       return(0);
-}
-
-void del_vario(void) {
-       fprintf(stderr, "del_vario: %d %s\n", vario_idx, cards[varios[vario_idx].card_ref].name);
-       cards[varios[vario_idx].card_ref].vario_cnt--;
-       if (vario_idx>0) {
-               if (varios[vario_idx-1].next_vario == vario_idx) {
-                       if (cards[varios[vario_idx].card_ref].vario_cnt == 1)
-                               cards[varios[vario_idx].card_ref].vario = vario_idx-1;
-                       varios[vario_idx-1].next_vario = 0;
-               } else if (cards[varios[vario_idx].card_ref].vario == vario_idx) {
-                       cards[varios[vario_idx].card_ref].vario = 0;
-               } else {
-                       fprintf(stderr, "del_vario:internal error\n");
-                       exit(98);
-               }
-       }
-       memset(&varios[vario_idx], 0, sizeof(cdb_isdn_vario));
-       vario_idx--;
-}
-
-int new_entry(void) {
-       if (not_supported) {
-               not_supported = 0;
-               fprintf(stderr, "new_entry:not_supported %s\n", cards[ce_idx].name);
-               if (cards[ce_idx].vario_cnt < 1) {
-                       vendors[cards[ce_idx].vhandle].refcnt--;
-                       memset(&cards[ce_idx], 0, sizeof(cdb_isdn_card));
-                       ce_idx--;
-               }
-       }
-       ce_idx++;
-       if (ce_idx >= max_ce)
-               return(1);
-       cards[ce_idx].handle = ce_idx;
-       cards[ce_idx].vendor = PCI_ANY_ID;
-       cards[ce_idx].device = PCI_ANY_ID;
-       cards[ce_idx].subvendor = PCI_ANY_ID;
-       cards[ce_idx].subdevice = PCI_ANY_ID;
-       return(0);
-}
-
-void add_current_item(int item, char *val) {
-       int i;
-       char *old;
-
-       if ((item != vario) && not_supported)
-               return;
-       switch (item) {
-               case vendor:
-                       i = add_vendor(val, ce_idx);
-                       if (i<0) {
-                               fprintf(stderr, "error in add_vendor %s\n", val);
-                               exit(100);
-                       }
-                       cards[ce_idx].vhandle = i;
-                       break;
-               case device:
-                       cards[ce_idx].name = add_name(val, 1);
-                       if (!cards[ce_idx].name) {
-                               fprintf(stderr, "error in add_name %s\n", val);
-                               exit(101);
-                       }
-                       cards[ce_idx].lname = add_lname(cards[ce_idx].vhandle, val);
-                       if (!cards[ce_idx].lname) {
-                               fprintf(stderr, "error in add_lname %s\n", val);
-                               exit(101);
-                       }
-                       break;
-               case vendor_id:
-                       i = sscanf(val,"%x", &cards[ce_idx].vendor);
-                       if (i!=1) {
-                               fprintf(stderr, "error to hex %s\n", val);
-                               exit(102);
-                       }
-                       break;
-               case device_id:
-                       i = sscanf(val,"%x", &cards[ce_idx].device);
-                       if (i!=1) {
-                               fprintf(stderr, "error to hex %s\n", val);
-                               exit(102);
-                       }
-                       break;
-               case subvendor_id:
-                       i = sscanf(val,"%x", &cards[ce_idx].subvendor);
-                       if (i!=1) {
-                               fprintf(stderr, "error to hex %s\n", val);
-                               exit(102);
-                       }
-                       break;
-               case subdevice_id:
-                       i = sscanf(val,"%x", &cards[ce_idx].subdevice);
-                       if (i!=1) {
-                               fprintf(stderr, "error to hex %s\n", val);
-                               exit(102);
-                       }
-                       break;
-               case device_class:
-                       cards[ce_idx].Class = add_name(val, 1);
-                       if (!cards[ce_idx].name) {
-                               fprintf(stderr, "error in add_name %s\n", val);
-                               exit(101);
-                       }
-                       break;
-               case bus_type:
-                       cards[ce_idx].bus = add_name(val, 1);
-                       if (!cards[ce_idx].name) {
-                               fprintf(stderr, "error in add_name %s\n", val);
-                               exit(101);
-                       }
-                       break;
-               case vario:
-                       if (new_vario(val, ce_idx)) {
-                               fprintf(stderr, "error in new_vario(%s, %d)\n", val, ce_idx);
-                               exit(103);
-                       }
-                       break;
-               case SMP:
-                       if (!strcasecmp(val, "no"))
-                               varios[vario_idx].smp = 0;
-                       else if (!strcasecmp(val, "yes"))
-                               varios[vario_idx].smp = 1;
-                       break;
-               case drv_id:
-                       if (drvid_cnt) {
-                               fprintf(stderr, "more as one drvid_cnt (%s) card (%s)\n", val, cards[ce_idx].name);
-                       } else {
-                               i = sscanf(val,"%x", &varios[vario_idx].drvid);
-                               if (i!=1) {
-                                       fprintf(stderr, "error to hex %s\n", val);
-                                       exit(102);
-                               }
-                       }
-                       drvid_cnt++; 
-                       break;
-               case drv_subtyp:
-                       if (drv_subtyp_cnt) {
-                               fprintf(stderr, "more as one drv_subtyp (%s) card (%s)\n", val, cards[ce_idx].name);
-                       } else {
-                               i = sscanf(val,"%d", &varios[vario_idx].subtyp);
-                               if (i!=1) {
-                                       fprintf(stderr, "error to decimal %s\n", val);
-                                       exit(104);
-                               }
-                       }
-                       drv_subtyp_cnt++; 
-                       break;
-               case drv_typ:
-                       if (drv_typ_cnt) {
-                               fprintf(stderr, "more as one drv_typ (%s) card (%s)\n", val, cards[ce_idx].name);
-                       } else {
-                               i = sscanf(val,"%d", &varios[vario_idx].typ);
-                               if (i!=1) {
-                                       fprintf(stderr, "error to decimal %s\n", val);
-                                       exit(104);
-                               }
-                       }
-                       drv_typ_cnt++; 
-                       break;
-               case interface:
-                       varios[vario_idx].interface = add_name_list(val, varios[vario_idx].interface);
-                       break;
-               case line_cnt:
-                       i = sscanf(val,"%d", &cards[ce_idx].line_cnt);
-                       if (i!=1) {
-                               fprintf(stderr, "error to hex %s\n", val);
-                               exit(102);
-                       }
-                       break;
-               case line_protocol:
-                       varios[vario_idx].protocol = add_name_list(val, varios[vario_idx].protocol);
-                       break;
-               case module:
-                       varios[vario_idx].mod_name = add_name(val, 1);
-                       break;
-               case need_packages:
-                       varios[vario_idx].need_pkg = add_name_list(val, varios[vario_idx].need_pkg);
-                       break;
-               case supported:
-                       if (supported_cnt)
-                               fprintf(stderr, "more as one supported entry (%s) vendor(%s) card(%s)\n", val, 
-                                       vendors[cards[ce_idx].vhandle].name, cards[ce_idx].name);
-                       if (!strcasecmp(val, "not")) {
-                               not_supported = 1;
-                               del_vario();
-                       }
-                       supported_cnt++;
-                       break;
-               case feature:
-                       varios[vario_idx].features = add_name_list(val, varios[vario_idx].features);
-                       break;
-               case info:
-                       old = name_str + name_str_cnt;
-                       varios[vario_idx].info = add_name(val, 1);
-                       if (old == varios[vario_idx].info)
-                               fprintf(stderr, "info(%s): %s\n", cards[ce_idx].name, varios[vario_idx].info);
-                       break;
-               case special:
-                       break;
-               case firmware:
-                       varios[vario_idx].firmware = add_name(val, 1);
-                       break;
-               case short_description:
-                       old = name_str + name_str_cnt;
-                       varios[vario_idx].description = add_name(val, 1);
-                       if (old == varios[vario_idx].description)
-                               fprintf(stderr, "description(%s): %s\n", cards[ce_idx].name, varios[vario_idx].description);
-                       break;
-               case IRQ:
-                       varios[vario_idx].irq = add_sortedname_list(val, varios[vario_idx].irq, "%d");
-                       break;
-               case IO:
-                       varios[vario_idx].io = add_sortedname_list(val, varios[vario_idx].io, "0x%x");
-                       break;
-               case MEMBASE:
-                       varios[vario_idx].membase = add_sortedname_list(val, varios[vario_idx].membase, "0x%x");
-                       break;
-               case alternative_name:
-                       break;
-               case revision:
-                       i = sscanf(val,"%x", &cards[ce_idx].revision);
-                       if (i!=1) {
-                               fprintf(stderr, "error to hex %s\n", val);
-                               exit(102);
-                       }
-                       if ((cards[ce_idx].subvendor == PCI_ANY_ID) &&
-                               (cards[ce_idx].subdevice == PCI_ANY_ID))
-                               cards[ce_idx].subvendor = cards[ce_idx].revision;
-                       break;
-       }
-}
-
-void SortVendors(void) {
-       int     v,c;
-
-       qsort(vendors, ivendor_idx, sizeof(cdb_isdn_vendor), (fcmp)compare_vendor);
-       /* readjust card data */
-       for (c = 1; c <= ce_idx; c++) {
-               for (v = 0; v < ivendor_idx; v++) {
-                       if (cards[c].vhandle == vendors[v].vnr) {
-                               cards[c].vhandle = v;
-                               break;
-                       }
-               }
-       }
-       /* now adjust own handle */
-       for (v = 0; v < ivendor_idx; v++) {
-               vendors[v].vnr = v;
-       }
-}
-
-void SortCards(void) {
-       int     v,c;
-
-       qsort(&cards[1], ce_idx, sizeof(cdb_isdn_card), (fcmp)compare_card);
-       /* readjust vario data */
-       for (v = 1; v <= vario_idx; v++) {
-               for (c = 1; c <= ce_idx; c++) {
-                       if (cards[c].handle == varios[v].card_ref) {
-                               varios[v].card_ref = c;
-                               break;
-                       }
-               }
-       }
-       /* now adjust own handle */
-       for (c = 0; c <= ce_idx; c++) {
-               cards[c].handle = c;
-       }
-       isdncard_id = malloc(ce_idx*sizeof(int));
-       if (!isdncard_id) {
-               fprintf(stderr, "no mem for isdncard_id (%d entries)\n", ce_idx);
-               exit(97);
-       }
-       for (c = 0; c < ce_idx; c++)
-               isdncard_id[c] = c + 1;
-       qsort(isdncard_id, ce_idx, sizeof(int), (fcmp)compare_id);
-}
-
-void SortVarios(void) {
-       int     v,c,i;
-
-       qsort(&varios[1], vario_idx, sizeof(cdb_isdn_vario), (fcmp)compare_type);
-       /* readjust vario data */
-       for (v = 1; v <= vario_idx; v++) {
-               if (varios[v].next_vario) {
-                       for (i = 1; i <= vario_idx; i++) {
-                               if (varios[i].handle == varios[v].next_vario) {
-                                       varios[v].next_vario = i;
-                                       break;
-                               }
-                       }
-               }
-       }
-       /* readjust card data */
-       for (c = 1; c <= ce_idx; c++) {
-               for (v = 1; v <= vario_idx; v++) {
-                       if (varios[v].handle == cards[c].vario) {
-                               cards[c].vario = v;
-                               break;
-                       }
-               }
-       }
-       /* now adjust own handle */
-       for (v = 1; v <= vario_idx; v++) {
-               varios[v].handle = v;
-       }
-}
-
diff --git a/src/hwinfo/src/isdn/cdb/cdb_read.h b/src/hwinfo/src/isdn/cdb/cdb_read.h
deleted file mode 100644 (file)
index 3eb01e6..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <malloc.h>
-#include <string.h>
-#include <time.h>
-#include "isdn_cdb_def.h"
-#include "hd.h"
-
-#define CDB_DATAVERSION        0x101
-#define MAXCARDS       300
-#define MAXVARIO       (MAXCARDS*4)
-#define MAXNAMECNT     (MAXCARDS*256)
-
-extern int             max_ce;
-extern int             ce_idx;
-extern int             max_vario;
-extern int             vario_idx;
-extern int             name_str_cnt;
-extern int             max_name_str_cnt;
-extern int             max_ivendor;
-extern int             ivendor_idx;
-
-extern char            *name_str;
-extern cdb_isdn_card   *cards;
-extern cdb_isdn_vario  *varios;
-extern cdb_isdn_vendor *vendors;
-
-extern int             *isdncard_id;
-
-extern int             drvid_cnt;
-extern int             drv_subtyp_cnt;
-extern int             drv_typ_cnt;
-extern int             supported_cnt;
-
-extern int             not_supported;
-
-struct _vendorshortnames_t {
-       char    *lname;
-       char    *sname;
-};
-
-typedef int (*fcmp) (const void *, const void *);
-
-
-extern void    del_vario(void);
-extern int     new_entry(void);
-extern void    add_current_item(int item, char *val);
-extern void    SortVendors(void);
-extern void    SortCards(void);
-extern void    SortVarios(void);
diff --git a/src/hwinfo/src/isdn/cdb/isdn_cdb.c b/src/hwinfo/src/isdn/cdb/isdn_cdb.c
deleted file mode 100644 (file)
index 3404075..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <malloc.h>
-#include <string.h>
-#include <time.h>
-#include "lex.yy.c"
-#include "hd.h"
-#include "cdb_read.h"
-
-int yywrap(void) {
-       return(1);
-}
-
-static int WriteVendors(FILE *f) {
-       int i;
-
-       fprintf(f, "/* vendor database */\n");
-       fprintf(f,"static cdb_isdn_vendor cdb_isdnvendor_info_init[] = {\n");
-       for (i=0; i < ivendor_idx; i++) {
-               fprintf(f,"     {");
-               if (vendors[i].name)
-                       fprintf(f,"\"%s\",", vendors[i].name);
-               else
-                       fprintf(f,"\"\",");
-               if (vendors[i].shortname)
-                       fprintf(f,"\"%s\",", vendors[i].shortname);
-               else
-                       fprintf(f,"\"\",");
-               fprintf(f,"%d,",vendors[i].vnr);
-               fprintf(f,"%d",vendors[i].refcnt);
-               fprintf(f,"},\n");
-       }
-       fprintf(f,"};\n");
-       return(0);
-}
-
-static int WriteCards(FILE *f) {
-       int i;
-
-       fprintf(f, "/* card database */\n");
-       fprintf(f,"static cdb_isdn_card cdb_isdncard_info_init[] = {\n");
-       for (i=0; i <= ce_idx; i++) {
-               fprintf(f,"     {");
-               fprintf(f,"%d,",cards[i].handle);
-               fprintf(f,"%d,",cards[i].vhandle);
-               if (cards[i].name)
-                       fprintf(f,"\"%s\",", cards[i].name);
-               else
-                       fprintf(f,"\"\",");
-               if (cards[i].lname)
-                       fprintf(f,"\"%s\",", cards[i].lname);
-               else
-                       fprintf(f,"\"\",");
-               if (cards[i].Class)
-                       fprintf(f,"\"%s\",",cards[i].Class);
-               else
-                       fprintf(f,"NULL,");
-               if (cards[i].bus)
-                       fprintf(f,"\"%s\",",cards[i].bus);
-               else
-                       fprintf(f,"NULL,");
-               fprintf(f,"%d,",cards[i].revision);
-               fprintf(f,"%d,",cards[i].vendor);
-               fprintf(f,"%d,",cards[i].device);
-               fprintf(f,"%d,",cards[i].subvendor);
-               fprintf(f,"%d,",cards[i].subdevice);
-               fprintf(f,"%d,",cards[i].features);
-               fprintf(f,"%d,",cards[i].line_cnt);
-               fprintf(f,"%d,",cards[i].vario_cnt);
-               fprintf(f,"%d",cards[i].vario);
-               fprintf(f,"},\n");
-       }
-       fprintf(f,"};\n");
-       fprintf(f,"static int cdb_isdncard_idsorted_init[] = {");
-       for (i=0; i < ce_idx; i++) {
-               if (!(i%8))
-                       fprintf(f,"\n   ");
-               fprintf(f,"%d,",isdncard_id[i]);
-       }
-       fprintf(f,"\n};\n");
-       return(0);
-}
-
-static int WriteVarios(FILE *f) {
-       int i;
-
-       fprintf(f, "/* driver database */\n");
-       fprintf(f,"static cdb_isdn_vario cdb_isdnvario_info_init[] = {\n");
-       for (i=0; i <= vario_idx; i++) {
-               fprintf(f,"     {");
-               fprintf(f,"%d,",varios[i].handle);
-               fprintf(f,"%d,",varios[i].next_vario);
-               fprintf(f,"%d,",varios[i].drvid);
-               fprintf(f,"%d,",varios[i].typ);
-               fprintf(f,"%d,",varios[i].subtyp);
-               fprintf(f,"%d,",varios[i].smp);
-               if (varios[i].mod_name)
-                       fprintf(f,"\"%s\",", varios[i].mod_name);
-               else
-                       fprintf(f,"\"\",");
-               if (varios[i].para_str)
-                       fprintf(f,"\"%s\",", varios[i].para_str);
-               else
-                       fprintf(f,"\"\",");
-               if (varios[i].mod_preload)
-                       fprintf(f,"\"%s\",", varios[i].mod_preload);
-               else
-                       fprintf(f,"\"\",");
-               if (varios[i].cfg_prog)
-                       fprintf(f,"\"%s\",", varios[i].cfg_prog);
-               else
-                       fprintf(f,"\"\",");
-               if (varios[i].firmware)
-                       fprintf(f,"\"%s\",", varios[i].firmware);
-               else
-                       fprintf(f,"\"\",");
-               if (varios[i].description)
-                       fprintf(f,"\"%s\",", varios[i].description);
-               else
-                       fprintf(f,"\"\",");
-               if (varios[i].need_pkg)
-                       fprintf(f,"\"%s\",", varios[i].need_pkg);
-               else
-                       fprintf(f,"\"\",");
-               if (varios[i].info)
-                       fprintf(f,"\"%s\",", varios[i].info);
-               else
-                       fprintf(f,"\"\",");
-               if (varios[i].protocol)
-                       fprintf(f,"\"%s\",", varios[i].protocol);
-               else
-                       fprintf(f,"\"\",");
-               if (varios[i].interface)
-                       fprintf(f,"\"%s\",", varios[i].interface);
-               else
-                       fprintf(f,"\"\",");
-               if (varios[i].io)
-                       fprintf(f,"\"%s\",", varios[i].io);
-               else
-                       fprintf(f,"\"\",");
-               if (varios[i].irq)
-                       fprintf(f,"\"%s\",", varios[i].irq);
-               else
-                       fprintf(f,"\"\",");
-               if (varios[i].membase)
-                       fprintf(f,"\"%s\",", varios[i].membase);
-               else
-                       fprintf(f,"\"\",");
-               if (varios[i].features)
-                       fprintf(f,"\"%s\",", varios[i].features);
-               else
-                       fprintf(f,"\"\",");
-               fprintf(f,"%d,",varios[i].card_ref);
-               if (varios[i].name)
-                       fprintf(f,"\"%s\"", varios[i].name);
-               else
-                       fprintf(f,"\"\"");
-               fprintf(f,"},\n");
-       }
-       fprintf(f,"};\n");
-       return(0);
-}
-
-int main(argc,argv)
-int argc;
-char **argv;
-{
-       char    line[256];
-       int     l;
-       time_t  tim;
-       if (argc<2) {
-               fprintf(stderr, "Error no filename\n");
-               exit(1);
-       }
-       if (!(stdin=freopen(argv[1],"rb", stdin))) {
-               fprintf(stderr, "Cannot open %s as stdin\n", argv[1]);
-               exit(2);
-       }
-       if (argc >2) {
-               if (!(stdout=freopen(argv[2],"w", stdout))) {
-                       fprintf(stderr, "Cannot open %s as stdout\n", argv[2]);
-                       exit(3);
-               }
-       }
-       cards = calloc(max_ce, sizeof(cdb_isdn_card));
-       if (!cards) {
-               fprintf(stderr, "cannot alloc card\n");
-               fclose(stdin);
-               exit(4);
-       }
-       varios = calloc(max_vario, sizeof(cdb_isdn_vario));
-       if (!varios) {
-               fprintf(stderr, "cannot alloc vario\n");
-               fclose(stdin);
-               free(cards);
-               exit(5);
-       }
-       name_str = calloc(max_name_str_cnt, 1);
-       if (!name_str) {
-               fprintf(stderr, "cannot alloc name_str\n");
-               fclose(stdin);
-               free(cards);
-               free(varios);
-               exit(6);
-       }
-       vendors = calloc(max_ivendor, sizeof(cdb_isdn_vendor));
-       if (!vendors) {
-               fprintf(stderr, "cannot alloc vendors\n");
-               fclose(stdin);
-               free(cards);
-               free(varios);
-               free(name_str);
-               exit(7);
-       }
-       BEGIN Main;
-       yylex();
-
-       SortVendors();
-       SortCards();
-       SortVarios();
-       
-       fprintf(stdout, "/* CDBISDN database */\n");
-       fprintf(stdout,"const int  CDBISDN_DBVERSION = 0x%x;\n", CDB_DATAVERSION);
-       time(&tim);
-       strcpy(line,ctime(&tim));
-       l = strlen(line);
-       if (l)
-               line[l-1] = 0;
-       fprintf(stdout,"const char CDBISDN_DATE[]  = \"%s\";\n", line); 
-       WriteVendors(stdout);
-       WriteCards(stdout);
-       WriteVarios(stdout);
-
-       fclose(stdin);
-       free(cards);
-       free(name_str);
-       free(vendors);
-       free(varios);
-       fprintf(stderr, "used cards(%d/%d)\n", ce_idx, max_ce);
-       fprintf(stderr, "used varios(%d/%d)\n", vario_idx, max_vario);
-       fprintf(stderr, "used vendors(%d/%d)\n", ivendor_idx, max_ivendor);
-       fprintf(stderr, "used name_str(%d/%d)\n",name_str_cnt,  max_name_str_cnt);
-       return(0);
-}
diff --git a/src/hwinfo/src/isdn/cdb/isdn_cdb.lex b/src/hwinfo/src/isdn/cdb/isdn_cdb.lex
deleted file mode 100644 (file)
index 15f1653..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-WSP    [ \t]
-VALCHAR [^\|]
-
-%START Main NextLine NewEntry Value
-
-%{
-#include "isdn_cdb_def.h"
-%}
-%%
-       int     item = 0;
-
-<Main>{
-#                      BEGIN NextLine;
-^\|                    {
-                               if (new_entry())
-                                       exit(99);
-                               BEGIN NewEntry;
-                       }
-^{WSP}+                        ;
-\n                     ;
-}
-
-<NextLine>{
-.*                     ;
-\n                     BEGIN Main;
-}
-
-<NewEntry>{
-vendor=                        {item=vendor; BEGIN Value;}
-device=                        {item=device; BEGIN Value;}
-vendor_id=             {item=vendor_id; BEGIN Value;}
-device_id=             {item=device_id; BEGIN Value;}
-subvendor_id=          {item=subvendor_id; BEGIN Value;}
-subdevice_id=          {item=subdevice_id; BEGIN Value;}
-device_class=          {item=device_class; BEGIN Value;}
-bus_type=              {item=bus_type; BEGIN Value;}
-vario=                 {item=vario; BEGIN Value;}
-SMP=                   {item=SMP; BEGIN Value;}
-drv_id=                        {item=drv_id; BEGIN Value;}
-drv_subtyp=            {item=drv_subtyp; BEGIN Value;}
-drv_typ=               {item=drv_typ; BEGIN Value;}
-[iI]nterface=          {item=interface; BEGIN Value;}
-line_cnt=              {item=line_cnt; BEGIN Value;}
-line_protocol=         {item=line_protocol; BEGIN Value;}
-module=                        {item=module; BEGIN Value;}
-need_packages=         {item=need_packages; BEGIN Value;}
-supported=             {item=supported; BEGIN Value;}
-feature=               {item=feature; BEGIN Value;}
-info=                  {item=info; BEGIN Value;}
-special=               {item=special; BEGIN Value;}
-firmware=              {item=firmware; BEGIN Value;}
-short_description=     {item=short_description; BEGIN Value;}
-IRQ=                   {item=IRQ; BEGIN Value;}
-IO=                    {item=IO; BEGIN Value;}
-MEMBASE=               {item=MEMBASE; BEGIN Value;}
-alternative_name=      {item=alternative_name; BEGIN Value;}
-revision=              {item=revision; BEGIN Value;}
-\n                     BEGIN Main;
-}
-
-<Value>{
-\|                     BEGIN NewEntry;
-{VALCHAR}*/\|          add_current_item(item, yytext);
-}
diff --git a/src/hwinfo/src/isdn/cdb/isdn_cdb_def.h b/src/hwinfo/src/isdn/cdb/isdn_cdb_def.h
deleted file mode 100644 (file)
index 10da231..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef ISDN_CDB_DEF
-#define ISDN_CDB_DEF
-
-enum {
-       vendor,
-       device,
-       vendor_id,
-       device_id,
-       subvendor_id,
-       subdevice_id,
-       revision,
-       device_class,
-       bus_type,
-       vario,
-       SMP,
-       drv_id,
-       drv_subtyp,
-       drv_typ,
-       interface,
-       line_cnt,
-       line_protocol,
-       module,
-       need_packages,
-       supported,
-       feature,
-       info,
-       special,
-       firmware,
-       short_description,
-       IRQ,
-       IO,
-       MEMBASE,
-       alternative_name,
-};
-
-extern void add_current_item(int, char *);
-extern int new_entry(void);
-
-#endif /* ISDN_CDB_DEF */
diff --git a/src/hwinfo/src/isdn/cdb/mk_isdnhwdb.c b/src/hwinfo/src/isdn/cdb/mk_isdnhwdb.c
deleted file mode 100644 (file)
index d5dc95e..0000000
+++ /dev/null
@@ -1,293 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <malloc.h>
-#include <string.h>
-#include <time.h>
-#include "lex.yy.c"
-#include "hd.h"
-#include "cdb_read.h"
-#include "cdb_hwdb.h"
-
-
-int yywrap(void) {
-       return(1);
-}
-
-static int WriteNames(FILE *f) {
-       char    *p, *e;
-       int     l, nc=0;
-
-       fprintf(f, "! name data\n");
-       fprintf(f, "$%02d %d\n", IWHREC_TYPE_NAME_SIZE, name_str_cnt);
-       p = e = name_str;
-       e += name_str_cnt;
-       while (p < e) {
-               l = strlen(p);
-               fprintf(f, "$%02d %s\n", IWHREC_TYPE_NAME_DATA, p);
-               p += l + 1;
-               nc++;
-       }
-       fprintf(f, "$%02d %d\n", IWHREC_TYPE_NAME_COUNT, nc);
-       return(0);
-}
-
-static int WriteVendors(FILE *f) {
-       int i, nullidx, idx;
-
-       fprintf(f, "! vendor database\n");
-       fprintf(f, "$%02d %d\n", IWHREC_TYPE_VENDOR_COUNT, ivendor_idx);
-       nullidx = strlen(name_str); /* first 0 in string array */
-       for (i=0; i < ivendor_idx; i++) {
-               fprintf(f,"$%02d ", IWHREC_TYPE_VENDOR_RECORD);
-               if (vendors[i].name && vendors[i].name[0])
-                       idx = vendors[i].name - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (vendors[i].shortname && vendors[i].shortname[0])
-                       idx = vendors[i].shortname - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               fprintf(f,"%d ", vendors[i].vnr);
-               fprintf(f,"%d\n",vendors[i].refcnt);
-       }
-       return(0);
-}
-
-static int WriteCards(FILE *f) {
-       int i, nullidx, idx;
-
-       fprintf(f, "! card database\n");
-       fprintf(f, "$%02d %d\n", IWHREC_TYPE_CARD_COUNT, ce_idx);
-       nullidx = strlen(name_str); /* first 0 in string array */
-
-       for (i=0; i <= ce_idx; i++) {
-               fprintf(f,"$%02d ", IWHREC_TYPE_CARD_RECORD);
-               fprintf(f,"%d ",cards[i].handle);
-               fprintf(f,"%d ",cards[i].vhandle);
-               if (cards[i].name && cards[i].name[0])
-                       idx = cards[i].name - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (cards[i].lname && cards[i].lname[0])
-                       idx = cards[i].lname - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (cards[i].Class && cards[i].Class[0])
-                       idx = cards[i].Class - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (cards[i].bus && cards[i].bus[0])
-                       idx = cards[i].bus - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               fprintf(f,"%d ",cards[i].revision);
-               fprintf(f,"%d ",cards[i].vendor);
-               fprintf(f,"%d ",cards[i].device);
-               fprintf(f,"%d ",cards[i].subvendor);
-               fprintf(f,"%d ",cards[i].subdevice);
-               fprintf(f,"%d ",cards[i].features);
-               fprintf(f,"%d ",cards[i].line_cnt);
-               fprintf(f,"%d ",cards[i].vario_cnt);
-               fprintf(f,"%d\n",cards[i].vario);
-       }
-       for (i=0; i < ce_idx; i++) {
-               fprintf(f,"$%02d %d\n", IWHREC_TYPE_CARD_IDSORTED, isdncard_id[i]);
-       }
-       return(0);
-}
-
-static int WriteVarios(FILE *f) {
-       int i, nullidx, idx;
-
-       fprintf(f, "! driver database\n");
-       fprintf(f, "$%02d %d\n", IWHREC_TYPE_VARIO_COUNT, vario_idx);
-       nullidx = strlen(name_str); /* first 0 in string array */
-
-       for (i=0; i <= vario_idx; i++) {
-               fprintf(f,"$%02d ", IWHREC_TYPE_VARIO_RECORD);
-               fprintf(f,"%d ",varios[i].handle);
-               fprintf(f,"%d ",varios[i].next_vario);
-               fprintf(f,"%d ",varios[i].drvid);
-               fprintf(f,"%d ",varios[i].typ);
-               fprintf(f,"%d ",varios[i].subtyp);
-               fprintf(f,"%d ",varios[i].smp);
-               if (varios[i].mod_name && varios[i].mod_name[0])
-                       idx = varios[i].mod_name - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (varios[i].para_str && varios[i].para_str[0])
-                       idx = varios[i].para_str - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (varios[i].mod_preload && varios[i].mod_preload[0])
-                       idx = varios[i].mod_preload - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (varios[i].cfg_prog && varios[i].cfg_prog[0])
-                       idx = varios[i].cfg_prog - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (varios[i].firmware && varios[i].firmware[0])
-                       idx = varios[i].firmware - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (varios[i].description && varios[i].description[0])
-                       idx = varios[i].description - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (varios[i].need_pkg && varios[i].need_pkg[0])
-                       idx = varios[i].need_pkg - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (varios[i].info && varios[i].info[0])
-                       idx = varios[i].info - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (varios[i].protocol && varios[i].protocol[0])
-                       idx = varios[i].protocol - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (varios[i].interface && varios[i].interface[0])
-                       idx = varios[i].interface - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (varios[i].io && varios[i].io[0])
-                       idx = varios[i].io - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (varios[i].irq && varios[i].irq[0])
-                       idx = varios[i].irq - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (varios[i].membase && varios[i].membase[0])
-                       idx = varios[i].membase - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               if (varios[i].features && varios[i].features[0])
-                       idx = varios[i].features - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x ", idx);
-               fprintf(f,"%d ",varios[i].card_ref);
-               if (varios[i].name && varios[i].name[0])
-                       idx = varios[i].name - name_str;
-               else
-                       idx = nullidx;
-               fprintf(f,"%x\n", idx);
-       }
-       return(0);
-}
-
-int main(argc,argv)
-int argc;
-char **argv;
-{
-       char    line[256];
-       int     l;
-       time_t  tim;
-       if (argc<2) {
-               if (!(stdin=freopen(CDBISDN_CDB_FILE,"rb", stdin))) {
-                       fprintf(stderr, "Cannot open %s as stdin\n", CDBISDN_CDB_FILE);
-                       exit(2);
-               }
-       } else {
-               if (!(stdin=freopen(argv[1],"rb", stdin))) {
-                       fprintf(stderr, "Cannot open %s as stdin\n", argv[1]);
-                       exit(2);
-               }
-       }
-       if (argc >2) {
-               if (strcmp(argv[2], "-")) { /* - := stdout */
-                       if (!(stdout=freopen(argv[2],"w", stdout))) {
-                               fprintf(stderr, "Cannot open %s as stdout\n", argv[2]);
-                               exit(3);
-                       }
-               }
-       } else { /* default: CDBISDN_HWDB_FILE */
-               if (!(stdout=freopen(CDBISDN_HWDB_FILE,"w", stdout))) {
-                       fprintf(stderr, "Cannot open %s as stdout\n", CDBISDN_HWDB_FILE);
-                       exit(3);
-               }
-       }
-       cards = calloc(max_ce, sizeof(cdb_isdn_card));
-       if (!cards) {
-               fprintf(stderr, "cannot alloc card\n");
-               fclose(stdin);
-               exit(4);
-       }
-       varios = calloc(max_vario, sizeof(cdb_isdn_vario));
-       if (!varios) {
-               fprintf(stderr, "cannot alloc vario\n");
-               fclose(stdin);
-               free(cards);
-               exit(5);
-       }
-       name_str = calloc(max_name_str_cnt, 1);
-       if (!name_str) {
-               fprintf(stderr, "cannot alloc name_str\n");
-               fclose(stdin);
-               free(cards);
-               free(varios);
-               exit(6);
-       }
-       vendors = calloc(max_ivendor, sizeof(cdb_isdn_vendor));
-       if (!vendors) {
-               fprintf(stderr, "cannot alloc vendors\n");
-               fclose(stdin);
-               free(cards);
-               free(varios);
-               free(name_str);
-               exit(7);
-       }
-       BEGIN Main;
-       yylex();
-
-       SortVendors();
-       SortCards();
-       SortVarios();
-       
-       fprintf(stdout, "! CDBISDN database version %x\n", CDB_DATAVERSION + 1);
-       fprintf(stdout, "! file is build with mk_isdnhwdb\n");
-       fprintf(stdout, "! Do not change this file !!!\n");
-       fprintf(stdout,"$%02d %d\n", IWHREC_TYPE_VERSION, CDB_DATAVERSION + 1);
-       time(&tim);
-       strcpy(line,ctime(&tim));
-       l = strlen(line);
-       if (l)
-               line[l-1] = 0;
-       fprintf(stdout,"$%02d %s\n", IWHREC_TYPE_DATE, line);
-       WriteNames(stdout);
-       WriteVendors(stdout);
-       WriteCards(stdout);
-       WriteVarios(stdout);
-
-       fclose(stdin);
-       free(cards);
-       free(name_str);
-       free(vendors);
-       free(varios);
-       fprintf(stderr, "used cards(%d/%d)\n", ce_idx, max_ce);
-       fprintf(stderr, "used varios(%d/%d)\n", vario_idx, max_vario);
-       fprintf(stderr, "used vendors(%d/%d)\n", ivendor_idx, max_ivendor);
-       fprintf(stderr, "used name_str(%d/%d)\n",name_str_cnt,  max_name_str_cnt);
-       return(0);
-}
diff --git a/src/hwinfo/src/isdn/cdbisdn.c b/src/hwinfo/src/isdn/cdbisdn.c
deleted file mode 100644 (file)
index f793eb4..0000000
+++ /dev/null
@@ -1,400 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include "hd.h"
-#include "hd_int.h"
-
-#define debprintf(a...)
-// #define debprintf(a...) fprintf(stderr, ## a)
-
-/* private data */
-
-#include "cdb/isdn_cdb.h"
-#include "cdb/cdb_hwdb.h"
-
-static int             CDBISDN_vendor_cnt;
-static int             CDBISDN_card_cnt;
-static int             CDBISDN_vario_cnt;
-static int             CDBISDN_name_size;
-static char            *CDBISDN_names;
-
-static cdb_isdn_vendor *cdb_isdnvendor_info;
-static cdb_isdn_card   *cdb_isdncard_info;
-static int             *cdb_isdncard_idsorted;
-static cdb_isdn_vario  *cdb_isdnvario_info;
-static int             cdb_dbversion;
-static char            cdb_date[32];
-
-static char            line[1024];
-
-static int             CDBISDN_readhwdb;
-
-static int
-init_cdbisdn(void)
-{
-       FILE    *cdb;
-       char    *s, *p = NULL;
-       int     rectyp, l, cnt = 0, icnt = 0;
-
-       cdb = fopen(CDBISDN_HWDB_FILE, "rb");
-       if (!cdb) {
-               debprintf("open failure %s\n", CDBISDN_HWDB_FILE);
-               goto fallback;
-       }
-       while (!feof(cdb)) {
-               s = fgets(line, 1024, cdb);
-               if (!s)
-                       break;
-               if (!s[0] || s[0] == '!' || s[0] == '#' || s[0] == '\n') 
-                       continue;
-               if (s[0] != '$') {
-                       debprintf("got wrong line %s\n", s);
-                       continue;
-               }
-               sscanf(s, "$%d", &rectyp);
-               switch(rectyp) {
-                       case IWHREC_TYPE_VERSION:
-                               sscanf(s + 4, "%d", &cdb_dbversion);
-                               break;
-                       case IWHREC_TYPE_DATE:
-                               l = strlen(s + 4);
-                               if (!l)
-                                       continue;
-                               l--;
-                               if (l > 31)
-                                       l = 31;
-                               strncpy(cdb_date, s + 4, l);
-                               cdb_date[l] = 0;
-                               break;
-                       case IWHREC_TYPE_NAME_SIZE:
-                               sscanf(s + 4, "%d", &CDBISDN_name_size);
-                               CDBISDN_names = calloc(CDBISDN_name_size + 1, 1);
-                               if (!CDBISDN_names) {
-                                       debprintf("fail to allocate %d bytes for CDBISDN_names\n", CDBISDN_name_size);
-                                       goto fallback_close;
-                               }
-                               p = CDBISDN_names;
-                               cnt = 0;
-                               icnt = 0;
-                               break;
-                       case IWHREC_TYPE_NAME_DATA:
-                               if (!p)
-                                       goto fallback_close;
-                               l = strlen(s + 4);
-                               icnt += l;
-                               if (icnt > CDBISDN_name_size) {
-                                       debprintf("name_size overflow %d/%d\n", icnt, CDBISDN_name_size);
-                                       goto fallback_close;
-                               }
-                               strcpy(p, s + 4);
-                               p[l-1] = 0;
-                               p += l;
-                               cnt++;
-                               break;
-                       case IWHREC_TYPE_NAME_COUNT:
-                               sscanf(s + 4, "%d", &l);
-                               if (cnt != l)
-                                       goto fallback_close;
-                               break;
-                       case IWHREC_TYPE_VENDOR_COUNT:
-                               sscanf(s + 4, "%d", &CDBISDN_vendor_cnt);
-                               cdb_isdnvendor_info = calloc(CDBISDN_vendor_cnt, sizeof(cdb_isdn_vendor));
-                               if (!cdb_isdnvendor_info) {
-                                       debprintf("fail to allocate %d vendor structs\n", CDBISDN_vendor_cnt);
-                                       goto fallback_close;
-                               }
-                               cnt = 0;
-                               break;
-                       case IWHREC_TYPE_VENDOR_RECORD:
-                               if (cnt >= CDBISDN_vendor_cnt) {
-                                       debprintf("vendor overflow %d/%d\n", cnt, CDBISDN_vendor_cnt);
-                                       goto fallback_close;
-                               }
-                               l = sscanf(s + 4, "%p %p %d %d",
-                                       &cdb_isdnvendor_info[cnt].name,
-                                       &cdb_isdnvendor_info[cnt].shortname,
-                                       &cdb_isdnvendor_info[cnt].vnr,
-                                       &cdb_isdnvendor_info[cnt].refcnt);
-                               if (l != 4) {
-                                       debprintf("error reading vendor record %s\n", s);
-                                       goto fallback_close;
-                               }
-                               cdb_isdnvendor_info[cnt].name = CDBISDN_names + (u_long)cdb_isdnvendor_info[cnt].name;
-                               cdb_isdnvendor_info[cnt].shortname = CDBISDN_names + (u_long)cdb_isdnvendor_info[cnt].shortname;
-                               cnt++;
-                               break;
-                       case IWHREC_TYPE_CARD_COUNT:
-                               sscanf(s + 4, "%d", &CDBISDN_card_cnt);
-                               cdb_isdncard_info = calloc(CDBISDN_card_cnt + 1, sizeof(cdb_isdn_card));
-                               cdb_isdncard_idsorted = calloc(CDBISDN_card_cnt, sizeof(int));
-                               if (!cdb_isdncard_info || !cdb_isdncard_idsorted) {
-                                       debprintf("fail to allocate %d vendor structs\n", CDBISDN_card_cnt);
-                                       goto fallback_close;
-                               }
-                               cnt = 0;
-                               icnt = 0;
-                               break;
-                       case IWHREC_TYPE_CARD_RECORD:
-                               if (cnt > CDBISDN_card_cnt) {
-                                       debprintf("card overflow %d/%d\n", cnt, CDBISDN_card_cnt);
-                                       goto fallback_close;
-                               }
-                               l = sscanf(s + 4, "%d %d %p %p %p %p %d %d %d %d %d %d %d %d %d",
-                                       &cdb_isdncard_info[cnt].handle,         /* internal identifier idx in database */
-                                       &cdb_isdncard_info[cnt].vhandle,        /* internal identifier to vendor database */
-                                       &cdb_isdncard_info[cnt].name,           /* cardname */
-                                       &cdb_isdncard_info[cnt].lname,          /* vendor short name + cardname */
-                                       &cdb_isdncard_info[cnt].Class,          /* CLASS of the card */
-                                       &cdb_isdncard_info[cnt].bus,            /* bus type */
-                                       &cdb_isdncard_info[cnt].revision,       /* revision used with USB */
-                                       &cdb_isdncard_info[cnt].vendor,         /* Vendor ID for ISAPNP and PCI cards */
-                                       &cdb_isdncard_info[cnt].device,         /* Device ID for ISAPNP and PCI cards */
-                                       &cdb_isdncard_info[cnt].subvendor,      /* Subvendor ID for PCI cards */
-                                       &cdb_isdncard_info[cnt].subdevice,      /* Subdevice ID for PCI cards */
-                                       &cdb_isdncard_info[cnt].features,       /* feature flags */
-                                       &cdb_isdncard_info[cnt].line_cnt,       /* count of ISDN ports */
-                                       &cdb_isdncard_info[cnt].vario_cnt,      /* count of driver varios */
-                                       &cdb_isdncard_info[cnt].vario);         /* referenz to driver vario record */
-                               if (l != 15) {
-                                       debprintf("error reading card record %s\n", s);
-                                       goto fallback_close;
-                               }
-                               cdb_isdncard_info[cnt].name = CDBISDN_names + (u_long)cdb_isdncard_info[cnt].name;
-                               cdb_isdncard_info[cnt].lname = CDBISDN_names + (u_long)cdb_isdncard_info[cnt].lname;
-                               cdb_isdncard_info[cnt].Class = CDBISDN_names + (u_long)cdb_isdncard_info[cnt].Class;
-                               cdb_isdncard_info[cnt].bus = CDBISDN_names + (u_long)cdb_isdncard_info[cnt].bus;
-                               cnt++;
-                               break;
-                       case IWHREC_TYPE_CARD_IDSORTED:
-                               if (icnt >= CDBISDN_card_cnt) {
-                                       debprintf("card overflow %d/%d\n", icnt, CDBISDN_card_cnt);
-                                       goto fallback_close;
-                               }
-                               sscanf(s + 4, "%d", &cdb_isdncard_idsorted[icnt]);
-                               icnt++;
-                               break;
-                       case IWHREC_TYPE_VARIO_COUNT:
-                               sscanf(s + 4, "%d", &CDBISDN_vario_cnt);
-                               cdb_isdnvario_info = calloc(CDBISDN_vario_cnt+1, sizeof(cdb_isdn_vario));
-                               if (!cdb_isdnvario_info) {
-                                       debprintf("fail to allocate %d vario structs\n", CDBISDN_vario_cnt);
-                                       goto fallback_close;
-                               }
-                               cnt = 0;
-                               break;
-                       case IWHREC_TYPE_VARIO_RECORD:
-                               if (cnt > CDBISDN_vario_cnt) {
-                                       debprintf("vario overflow %d/%d\n", cnt, CDBISDN_vario_cnt);
-                                       goto fallback_close;
-                               }
-                               l = sscanf(s + 4, "%d %d %d %d %d %d %p %p %p %p %p %p %p %p %p %p %p %p %p %p %d %p",
-                                       &cdb_isdnvario_info[cnt].handle,                /* idx in database */   
-                                       &cdb_isdnvario_info[cnt].next_vario,    /* link to alternate vario */
-                                       &cdb_isdnvario_info[cnt].drvid,         /* unique id of the driver vario */
-                                       &cdb_isdnvario_info[cnt].typ,           /* Type to identify the driver */
-                                       &cdb_isdnvario_info[cnt].subtyp,                /* Subtype of the driver type */
-                                       &cdb_isdnvario_info[cnt].smp,           /* SMP supported ? */
-                                       &cdb_isdnvario_info[cnt].mod_name,      /* name of the driver module */
-                                       &cdb_isdnvario_info[cnt].para_str,      /* optional parameter string */
-                                       &cdb_isdnvario_info[cnt].mod_preload,   /* optional modules to preload */
-                                       &cdb_isdnvario_info[cnt].cfg_prog,      /* optional cfg prog */
-                                       &cdb_isdnvario_info[cnt].firmware,      /* optional firmware to load */
-                                       &cdb_isdnvario_info[cnt].description,   /* optional description */
-                                       &cdb_isdnvario_info[cnt].need_pkg,      /* list of packages needed for function */
-                                       &cdb_isdnvario_info[cnt].info,          /* optional additional info */
-                                       &cdb_isdnvario_info[cnt].protocol,      /* supported D-channel protocols */
-                                       &cdb_isdnvario_info[cnt].interface,     /* supported API interfaces */
-                                       &cdb_isdnvario_info[cnt].io,            /* possible IO ports with legacy ISA cards */
-                                       &cdb_isdnvario_info[cnt].irq,           /* possible interrupts with legacy ISA cards */
-                                       &cdb_isdnvario_info[cnt].membase,       /* possible membase with legacy ISA cards */
-                                       &cdb_isdnvario_info[cnt].features,      /* optional features*/
-                                       &cdb_isdnvario_info[cnt].card_ref,      /* reference to a card */
-                                       &cdb_isdnvario_info[cnt].name);         /* driver name */
-                               if (l != 22) {
-                                       debprintf("error reading vario record %s\n", s);
-                                       goto fallback_close;
-                               }
-                               cdb_isdnvario_info[cnt].mod_name = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].mod_name;
-                               cdb_isdnvario_info[cnt].para_str = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].para_str;
-                               cdb_isdnvario_info[cnt].mod_preload = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].mod_preload;
-                               cdb_isdnvario_info[cnt].cfg_prog = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].cfg_prog;
-                               cdb_isdnvario_info[cnt].firmware = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].firmware;
-                               cdb_isdnvario_info[cnt].description = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].description;
-                               cdb_isdnvario_info[cnt].need_pkg = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].need_pkg;
-                               cdb_isdnvario_info[cnt].info = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].info;
-                               cdb_isdnvario_info[cnt].protocol = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].protocol;
-                               cdb_isdnvario_info[cnt].interface = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].interface;
-                               cdb_isdnvario_info[cnt].io = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].io;
-                               cdb_isdnvario_info[cnt].irq = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].irq;
-                               cdb_isdnvario_info[cnt].membase = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].membase;
-                               cdb_isdnvario_info[cnt].features = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].features;
-                               cdb_isdnvario_info[cnt].name = CDBISDN_names + (u_long)cdb_isdnvario_info[cnt].name;
-                               cnt++;
-                               break;
-                       default:
-                               debprintf("got wrong RecType %d\n", rectyp);
-                               break;
-               }
-       }
-       fclose(cdb);
-       if (CDBISDN_name_size == 0 ||
-               CDBISDN_vendor_cnt == 0 ||
-               CDBISDN_card_cnt == 0 ||
-               CDBISDN_vario_cnt == 0)
-               goto fallback;
-       debprintf("successfull reading %s\n", CDBISDN_HWDB_FILE);
-       CDBISDN_readhwdb = 1;   
-       return(0);
-fallback_close:
-       fclose(cdb);
-fallback:
-       debprintf("error reading %s\n", CDBISDN_HWDB_FILE);
-       CDBISDN_vendor_cnt = (sizeof(cdb_isdnvendor_info_init) / sizeof(cdb_isdn_vendor));
-       CDBISDN_card_cnt = ((sizeof(cdb_isdncard_info_init) / sizeof(cdb_isdn_card)) -1);
-       CDBISDN_vario_cnt = ((sizeof(cdb_isdnvario_info_init) / sizeof(cdb_isdn_vario))-1);
-       cdb_isdnvendor_info = cdb_isdnvendor_info_init;
-       cdb_isdncard_info = cdb_isdncard_info_init;
-       cdb_isdncard_idsorted = cdb_isdncard_idsorted_init;
-       cdb_isdnvario_info = cdb_isdnvario_info_init;
-       cdb_dbversion = CDBISDN_DBVERSION;
-       strncpy(cdb_date, CDBISDN_DATE, 31);
-       CDBISDN_readhwdb = 1;
-       return(1);
-}
-
-typedef int (*fcmp) (const void *, const void *);
-
-static int compare_type(cdb_isdn_vario *v1, cdb_isdn_vario *v2) {
-       int x= v1->typ - v2->typ;
-
-       if (!x)
-               x=v1->subtyp - v2->subtyp;
-       return(x);
-}
-
-static int compare_id(const int *c1, const int *c2) {
-       int x= cdb_isdncard_info[*c1].vendor - cdb_isdncard_info[*c2].vendor;
-
-       if (!x)
-               x=cdb_isdncard_info[*c1].device - cdb_isdncard_info[*c2].device;
-       if (!x)
-               x=cdb_isdncard_info[*c1].subvendor - cdb_isdncard_info[*c2].subvendor;
-       if (!x)
-               x=cdb_isdncard_info[*c1].subdevice - cdb_isdncard_info[*c2].subdevice;
-       return(x);
-}
-
-/* interface */
-
-cdb_isdn_vendor        *hd_cdbisdn_get_vendor(int handle)
-{
-       if (!CDBISDN_readhwdb)
-               init_cdbisdn();
-       if (handle<0)
-               return(NULL);
-       if ((unsigned)handle >= CDBISDN_vendor_cnt)
-               return(NULL);
-       return(&cdb_isdnvendor_info[handle]);
-}
-
-cdb_isdn_card  *hd_cdbisdn_get_card(int handle)
-{
-       if (!CDBISDN_readhwdb)
-               init_cdbisdn();
-       if (handle<=0)
-               return(NULL);
-       if ((unsigned) handle>CDBISDN_card_cnt)
-               return(NULL);
-       return(&cdb_isdncard_info[handle]);
-}
-
-cdb_isdn_vario *hd_cdbisdn_get_vario_from_type(int typ, int subtyp)
-{
-       cdb_isdn_vario key, *ret;
-       
-       if (!CDBISDN_readhwdb)
-               CDBISDN_readhwdb = init_cdbisdn();
-       key.typ = typ;
-       key.subtyp = subtyp;
-       if (!(ret=bsearch(&key, &cdb_isdnvario_info[1], CDBISDN_vario_cnt, sizeof(cdb_isdn_vario), (fcmp)compare_type))) {
-               debprintf("ret NULL\n");
-               return(NULL);
-       }
-       return(ret);
-}
-
-cdb_isdn_card  *hd_cdbisdn_get_card_from_type(int typ, int subtyp)
-{
-       cdb_isdn_vario  *civ;
-       
-       if (!CDBISDN_readhwdb)
-               init_cdbisdn();
-       civ = hd_cdbisdn_get_vario_from_type(typ, subtyp);
-       if (civ) {
-               if (civ->card_ref > 0)
-                       return(&cdb_isdncard_info[civ->card_ref]);
-       }
-       return(NULL);
-}
-
-cdb_isdn_card  *hd_cdbisdn_get_card_from_id(int vendor, int device, int subvendor, int subdevice)
-{
-       int key, *ret;  
-
-       if (!CDBISDN_readhwdb)
-               init_cdbisdn();
-       key = 0;
-       cdb_isdncard_info[key].vendor = vendor;
-       cdb_isdncard_info[key].device = device;
-       cdb_isdncard_info[key].subvendor = subvendor;
-       cdb_isdncard_info[key].subdevice = subdevice;
-       if (!(ret=bsearch(&key, cdb_isdncard_idsorted, CDBISDN_card_cnt, sizeof(int), (fcmp)compare_id))) {
-               debprintf("bs1 ret NULL\n");
-               key = 0;
-               cdb_isdncard_info[key].subvendor = PCI_ANY_ID;
-               cdb_isdncard_info[key].subdevice = PCI_ANY_ID;
-               if (!(ret=bsearch(&key, cdb_isdncard_idsorted, CDBISDN_card_cnt, sizeof(int), (fcmp)compare_id))) {
-                       debprintf("bs2 ret NULL\n");
-                       return(NULL);
-               }
-       }
-       debprintf("ret idx %d\n", *ret);
-       if (*ret <= 0)
-               return(NULL);
-       if ((unsigned) *ret > CDBISDN_card_cnt)
-               return(NULL);
-       return(&cdb_isdncard_info[*ret]);
-}
-
-cdb_isdn_vario *hd_cdbisdn_get_vario(int handle)
-{
-       if (!CDBISDN_readhwdb)
-               init_cdbisdn();
-       if (handle<=0)
-               return(NULL);
-       if ((unsigned) handle > CDBISDN_vario_cnt)
-               return(NULL);
-       return(&cdb_isdnvario_info[handle]);
-}
-
-int    hd_cdbisdn_get_version(void)
-{
-       if (!CDBISDN_readhwdb)
-               init_cdbisdn();
-       return(CDBISDN_VERSION);
-}
-
-int    hd_cdbisdn_get_db_version(void)
-{
-       if (!CDBISDN_readhwdb)
-               init_cdbisdn();
-       return(cdb_dbversion);
-}
-
-char   *hd_cdbisdn_get_db_date(void)
-{
-       if (!CDBISDN_readhwdb)
-               init_cdbisdn();
-       return(cdb_date);
-}
diff --git a/src/hwinfo/src/isdn/isa_probe.c b/src/hwinfo/src/isdn/isa_probe.c
deleted file mode 100644 (file)
index 14f7575..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-#if defined(__i386__)
-
-#include <stdio.h>
-#include <sys/io.h>
-
-#include "hd.h"
-#include "hd_int.h"
-#include "isa.h"
-
-#define AVM_CONFIG_OFF 0x1800  /* offset for config register */
-#define AVM_TEST_MASK  0x28    /* allways zero */
-#define AVM_HSCX_A_VSTR        0x40e   /* HSCX A version reg */
-#define AVM_HSCX_B_VSTR        0xc0e   /* HSCX B version reg */
-
-int avm_a1_detect(isa_isdn_t **ii) {
-       int adr,i;
-       unsigned char val,v1,v2;
-       int found=0;
-       unsigned short AVM_ADR[4]={0x200,0x240,0x300,0x340};
-       isa_isdn_t *card;
-
-       for (i=0;i<4;i++) {
-               adr=AVM_ADR[i] + AVM_CONFIG_OFF;
-               val = inb(adr);
-               if (val & AVM_TEST_MASK)
-                       continue;
-               /* May be we found an AVM A1 or AVM Fritz!Classic */
-               /* Checking HSCX VERSIONS */
-               v1 = 0xf & inb(AVM_ADR[i] + AVM_HSCX_A_VSTR);
-               if ((v1 != 5) && (v1 != 4))
-                       continue;
-               v2 = 0xf & inb(AVM_ADR[i] + AVM_HSCX_B_VSTR);
-               if (v1 != v2)
-                       continue;
-               /* 99% we found an AVM A1 or AVM Fritz!Classic */
-               /* printf("# AVM A1 or Fritz!Classic found\n");
-               printf("TYPE=5 SUBTYPE=0 IO=0x%3x\n", AVM_ADR[i]); */
-               card = new_isa_isdn(ii);
-               card->type = 5; card->has_io = 1; card->io = AVM_ADR[i];
-               found++;
-       }
-       return(found);
-}
-
-#define ELSA_CONFIG    5
-#define ELSA_PC                1
-#define ELSA_PCC8      2
-#define ELSA_PCC16     3
-#define ELSA_PCF       4
-#define ELSA_PCFPRO    5
-
-#define ELSA_IRQ_IDX           0x38    /* Bit 3,4,5 des Config-Reg */
-#define ELSA_IRQ_IDX_PCC8      0x30    /* Bit 4,5 des Config-Reg */
-#define ELSA_IRQ_IDX_PC                0x0c    /* Bit 2,3 des Config-Reg */
-
-
-int
-probe_elsa_adr(unsigned int adr)
-{
-       int i, in1, in2, p16_1 = 0, p16_2 = 0, p8_1 = 0, p8_2 = 0, pc_1 = 0,
-        pc_2 = 0, pfp_1 = 0, pfp_2 = 0;
-
-       for (i = 0; i < 16; i++) {
-               in1 = inb(adr + ELSA_CONFIG);   /* 'toggelt' bei */
-               in2 = inb(adr + ELSA_CONFIG);   /* jedem Zugriff */
-               p16_1 += 0x04 & in1;
-               p16_2 += 0x04 & in2;
-               p8_1 += 0x02 & in1;
-               p8_2 += 0x02 & in2;
-               pc_1 += 0x01 & in1;
-               pc_2 += 0x01 & in2;
-               pfp_1 += 0x40 & in1;
-               pfp_2 += 0x40 & in2;
-       }
-       if (65 == ++p16_1 * ++p16_2) {
-               return (ELSA_PCC16);
-       } else if (1025 == ++pfp_1 * ++pfp_2) {
-               return (ELSA_PCFPRO);
-       } else if (33 == ++p8_1 * ++p8_2) {
-               return (ELSA_PCC8);
-       } else if (17 == ++pc_1 * ++pc_2) {
-               return (ELSA_PC);
-       }
-       return (0);
-}
-
-int
-probe_elsa(isa_isdn_t **ii)
-{
-       int i, subtyp, val, irq, found=0;
-       isa_isdn_t *card;
-
-       unsigned int CARD_portlist[] =
-       {0x160, 0x170, 0x260, 0x360, 0};
-
-       for (i = 0; CARD_portlist[i]; i++) {
-               if ((subtyp = probe_elsa_adr(CARD_portlist[i]))) {
-                       found++;
-                       val = inb(CARD_portlist[i] + ELSA_CONFIG);
-                       if (subtyp == ELSA_PC) {
-                               int CARD_IrqTab[8] =
-                               {7, 3, 5, 9, 0, 0, 0, 0};
-                               irq = CARD_IrqTab[(val & ELSA_IRQ_IDX_PC) >> 2];
-                       } else if (subtyp == ELSA_PCC8) {
-                               int CARD_IrqTab[8] =
-                               {7, 3, 5, 9, 0, 0, 0, 0};
-                               irq = CARD_IrqTab[(val & ELSA_IRQ_IDX_PCC8) >> 4];
-                       } else {
-                               int CARD_IrqTab[8] =
-                               {15, 10, 15, 3, 11, 5, 11, 9};
-                               irq = CARD_IrqTab[(val & ELSA_IRQ_IDX) >> 3];
-                       }
-                       switch(subtyp) {
-                               case ELSA_PC:
-                                       /* printf("# Elsa ML PC found\n");
-                                       printf("TYPE=6 SUBTYPE=%d IO=0x%03x IRQ=%d\n",
-                                               subtyp, CARD_portlist[i], irq); */
-                               case ELSA_PCC8:
-                                       /* printf("# Elsa ML PCC-8 found\n");
-                                       printf("TYPE=6 SUBTYPE=%d IO=0x%03x IRQ=%d\n",
-                                               subtyp, CARD_portlist[i], irq); */
-                               case ELSA_PCC16:
-                                       /* printf("# Elsa ML PCC-16 found\n");
-                                       printf("TYPE=6 SUBTYPE=%d IO=0x%03x IRQ=%d\n",
-                                               subtyp, CARD_portlist[i], irq); */
-                               case ELSA_PCF:
-                                       /* printf("# Elsa ML PCF found\n");
-                                       printf("TYPE=6 SUBTYPE=%d IO=0x%03x IRQ=%d\n",
-                                               subtyp, CARD_portlist[i], irq); */
-                               case ELSA_PCFPRO:
-                                       /* printf("# Elsa ML PCFPro found\n");
-                                       printf("TYPE=6 SUBTYPE=%d IO=0x%03x IRQ=%d\n",
-                                               subtyp, CARD_portlist[i], irq); */
-
-                                       card = new_isa_isdn(ii);
-                                       card->type = 6; card->subtype = subtyp;
-                                       card->has_io = 1; card->io = CARD_portlist[i];
-                                       card->has_irq = 1; card->irq = irq;
-                                       break;
-                       }
-               }
-       }
-       return (found);
-}
-
-
-#define TELES_CONFIG_OFF       0xc00
-#define TELES_ID1              0x51
-#define TELES_ID2              0x93
-#define TELES_16_0             0x1e
-#define TELES_16_0_AB          0x1f
-#define TELES_16_3_0           0x1c
-#define TELES_16_3_1           0x39
-#define TELES_16_3_3           0x38
-#define TELES_16_3_AB          0x46
-
-
-int telesdetect(isa_isdn_t **ii) {
-       int adr,val,i;
-       int found=0;
-       unsigned short TELES_ADR[3]={0x380,0x280,0x180};
-       isa_isdn_t *card;
-
-       for (i=0;i<3;i++) {
-               adr=TELES_ADR[i] + TELES_CONFIG_OFF;
-
-               val = inb(adr);
-               if (val != TELES_ID1)
-                       continue;
-               adr++;
-               val = inb(adr);
-               if (val != TELES_ID2)
-                       continue;
-               adr++;
-               val = inb(adr);
-               switch(val) {
-                       case TELES_16_0:
-                               /* printf("# Teles 16.0 found\n");
-                               printf("TYPE=1 SUBTYPE=0 IO=0x%3x\n",
-                                       TELES_ADR[i] + TELES_CONFIG_OFF); */
-                       case TELES_16_0_AB:
-                               /* printf("# Teles 16.0 AB found\n");
-                               printf("TYPE=1 SUBTYPE=1 IO=0x%3x\n",
-                                       TELES_ADR[i] + TELES_CONFIG_OFF); */
-                               card = new_isa_isdn(ii);
-                               card->type = 1;
-                               if(val == TELES_16_0_AB) card->subtype = 1;
-                               card->has_io = 1; card->io = TELES_ADR[i] + TELES_CONFIG_OFF;
-                               found++;
-                               break;
-                       case TELES_16_3_0:
-                               /* printf("# Teles 16.3 v1.0 found\n");
-                               printf("TYPE=3 SUBTYPE=0 IO=0x%3x\n",
-                                       TELES_ADR[i]); */
-                       case TELES_16_3_1:
-                               /* printf("# Teles 16.3 v1.1 found\n");
-                               printf("TYPE=3 SUBTYPE=0 IO=0x%3x\n",
-                                       TELES_ADR[i]); */
-                       case TELES_16_3_3:
-                               /* printf("# Teles 16.3 v1.3 found\n");
-                               printf("TYPE=3 SUBTYPE=0 IO=0x%3x\n",
-                                       TELES_ADR[i]); */
-                       case TELES_16_3_AB:
-                               /* printf("# Teles 16.3 AB Video found\n");
-                               printf("TYPE=3 SUBTYPE=1 IO=0x%3x\n",
-                                       TELES_ADR[i]); */
-                               card = new_isa_isdn(ii);
-                               card->type = 3;
-                               if(val == TELES_16_3_AB) card->subtype = 1;
-                               card->has_io = 1; card->io = TELES_ADR[i];
-                               found++;
-                               break;
-                       default:
-                               if (0 /* guess */)
-                                       printf("# may be a Teles 16.0/16.3 detected at IO=0x%3x byte 3 is 0x%02x\n",
-                                               TELES_ADR[i] + TELES_CONFIG_OFF, val);
-                               break;
-               }
-       }
-       return(found);
-}
-
-isa_isdn_t *isdn_detect()
-{
-  isa_isdn_t *ii = NULL;
-
-  if(iopl(3) < 0) return ii;
-
-  avm_a1_detect(&ii);
-  probe_elsa(&ii);
-  telesdetect(&ii);
-
-  iopl(0);
-
-  return ii;
-}
-
-#endif /* i386 */
diff --git a/src/hwinfo/src/isdn/libihw.txt b/src/hwinfo/src/isdn/libihw.txt
deleted file mode 100644 (file)
index a384036..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-1.
-ihw_card_info   *ihw_get_card(int handle);
-
-"ihw_card_info" is a struct, which hold all info about the card (see ihw.h)
-The parameter is a internal used index for the database (range 0 ... max)
-To get all records use the following code as example:
-
-        ihw_card_info *icp;
-        handle = 0;
-       while ((icp =ihw_get_card(handle++))) {
-               ...
-       }
-
-If here are no entries left, you get NULL as return value.
-
-2.
-ihw_card_info  *ihw_get_device_from_type(int typ, int subtyp);
-
-Get card informations  for the card with TYPE and SUBTYPE .
-Returns NULL if no card match.
-This function is useful to get the card informations, if you have type and
-subtype from a rc.config, or from hardware probe.
-
-3.
-extern ihw_card_info    *ihw_get_card_from_id(int vendor, int device,
-                                        int subvendor, int subdevice);
-
-Get card informations  for the card with VENDOR,DEVICE,SUBVENDOR and
-SUBDEVICE for PCI and ISAPNP cards (set SUBVENDOR and SUBDEVICE 
-to 0xffff for ISAPNP cards). Returns NULL if no card found.
-
-This function will be useful for hardware probe.
-
-
-4. 
-ihw_para_info  *ihw_get_parameter(int card_handle, int pnr);
-
-This function provides parameter info for a card (which was given by one of
-the first 3 functions). "card_handle" is the "ihw_card_info->handle" of
-the given card, pnr is the number of the requested parameter (1,2, ...).
-For the first parameter, set pnr to 1, for next increment pnr, until
-NULL is returned.
-
-For examples see at demo/demo.c
-
-Specials:
-
-To make it easy to decide, if an parameter has to be set in a rc.config
-a flag P_DEFINE is set in ihw_para_info->flags, which is set for all
-parameter which have to go into rc.config (for yast1 this parameter has to be
-setable).
-
-Other flags (may be useful for autodetection):
-
-P_HARDSET  - parameter depends on a jumper or switch.
-P_SOFTSET  - parameter is written into a config register (not for PnP/PCI)
-P_READABLE - parameter can be read from a config register (not for PnP/PCI)
-P_ISAPNP   - parameter is set via ISA PnP setup
-P_PCI      - parameter is a PCI one
-
-Karsten
diff --git a/src/hwinfo/src/smp/Makefile b/src/hwinfo/src/smp/Makefile
deleted file mode 100644 (file)
index bcba090..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-TOPDIR = ../..
-TARGETS        = $(LIBHD_D)
-
-include $(TOPDIR)/Makefile.common
-
-$(LIBHD_D): $(OBJS)
-       ar r $(LIBHD) $?
diff --git a/src/hwinfo/src/smp/README b/src/hwinfo/src/smp/README
deleted file mode 100644 (file)
index 7ccf29e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-usage: smp
-
-exit codes:
-     0 -> ok, is smp
-  != 0 -> no, is single processor
-
-Note1: just checks the smp capability of the board, not if >1 processor is
-actually installed.
-
-Note2: must be run as 'root'.
-
-Original is:
-
-/mirror/distributions/redhat/ftp.redhat.com/redhat/redhat-6.1/i386/misc/src/anaconda/isys/smp.c
diff --git a/src/hwinfo/src/smp/smp.c b/src/hwinfo/src/smp/smp.c
deleted file mode 100644 (file)
index 4ccfc76..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
-[_Anarchy_(alan@lightning.swansea.uk.linux.org)] you should do one check
-   though - if the board seems to be SMP and the CPU in /proc/cpuinfo is non
-   intel dont install an SMP kernel - thats a dual pentium board with a cyrix
-   or similar single cpu in it
-*/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-#include <string.h>
-#include <errno.h>
-
-#ifdef __i386__
-#define SMP_MAGIC_IDENT        (('_'<<24)|('P'<<16)|('M'<<8)|'_')
-
-struct intel_mp_floating
-{
-       char mpf_signature[4];          /* "_MP_"                       */
-       unsigned long mpf_physptr;      /* Configuration table address  */
-       unsigned char mpf_length;       /* Our length (paragraphs)      */
-       unsigned char mpf_specification;/* Specification version        */
-       unsigned char mpf_checksum;     /* Checksum (makes sum 0)       */
-       unsigned char mpf_feature1;     /* Standard or configuration ?  */
-       unsigned char mpf_feature2;     /* Bit7 set for IMCR|PIC        */
-       unsigned char mpf_feature3;     /* Unused (0)                   */
-       unsigned char mpf_feature4;     /* Unused (0)                   */
-       unsigned char mpf_feature5;     /* Unused (0)                   */
-};
-
-struct mp_config_table
-{
-       char mpc_signature[4];
-#define MPC_SIGNATURE "PCMP"
-       unsigned short mpc_length;      /* Size of table */
-       char  mpc_spec;                 /* 0x01 */
-       char  mpc_checksum;
-       char  mpc_oem[8];
-       char  mpc_productid[12];
-       unsigned long mpc_oemptr;       /* 0 if not present */
-       unsigned short mpc_oemsize;     /* 0 if not present */
-       unsigned short mpc_oemcount;
-       unsigned long mpc_lapic;        /* APIC address */
-       unsigned long reserved;
-};
-
-/* Followed by entries */
-
-#define        MP_PROCESSOR    0
-#define        MP_BUS          1
-#define        MP_IOAPIC       2
-#define        MP_INTSRC       3
-#define        MP_LINTSRC      4
-
-struct mpc_config_processor
-{
-       unsigned char mpc_type;
-       unsigned char mpc_apicid;       /* Local APIC number */
-       unsigned char mpc_apicver;      /* Its versions */
-       unsigned char mpc_cpuflag;
-#define CPU_ENABLED            1       /* Processor is available */
-#define CPU_BOOTPROCESSOR      2       /* Processor is the BP */
-       unsigned long mpc_cpufeature;           
-#define CPU_STEPPING_MASK 0x0F
-#define CPU_MODEL_MASK 0xF0
-#define CPU_FAMILY_MASK        0xF00
-       unsigned long mpc_featureflag;  /* CPUID feature value */
-       unsigned long mpc_reserved[2];
-};
-
-struct mpc_config_bus
-{
-       unsigned char mpc_type;
-       unsigned char mpc_busid;
-       unsigned char mpc_bustype[6] __attribute((packed));
-};
-
-#define BUSTYPE_EISA   "EISA"
-#define BUSTYPE_ISA    "ISA"
-#define BUSTYPE_INTERN "INTERN"        /* Internal BUS */
-#define BUSTYPE_MCA    "MCA"
-#define BUSTYPE_VL     "VL"            /* Local bus */
-#define BUSTYPE_PCI    "PCI"
-#define BUSTYPE_PCMCIA "PCMCIA"
-
-/* We don't understand the others */
-
-struct mpc_config_ioapic
-{
-       unsigned char mpc_type;
-       unsigned char mpc_apicid;
-       unsigned char mpc_apicver;
-       unsigned char mpc_flags;
-#define MPC_APIC_USABLE                0x01
-       unsigned long mpc_apicaddr;
-};
-
-struct mpc_config_intsrc
-{
-       unsigned char mpc_type;
-       unsigned char mpc_irqtype;
-       unsigned short mpc_irqflag;
-       unsigned char mpc_srcbus;
-       unsigned char mpc_srcbusirq;
-       unsigned char mpc_dstapic;
-       unsigned char mpc_dstirq;
-};
-
-#define MP_INT_VECTORED                0
-#define MP_INT_NMI             1
-#define MP_INT_SMI             2
-#define MP_INT_EXTINT          3
-
-#define MP_IRQDIR_DEFAULT      0
-#define MP_IRQDIR_HIGH         1
-#define MP_IRQDIR_LOW          3
-
-
-struct mpc_config_intlocal
-{
-       unsigned char mpc_type;
-       unsigned char mpc_irqtype;
-       unsigned short mpc_irqflag;
-       unsigned char mpc_srcbusid;
-       unsigned char mpc_srcbusirq;
-       unsigned char mpc_destapic;     
-#define MP_APIC_ALL    0xFF
-       unsigned char mpc_destapiclint;
-};
-
-
-/*
- *     Default configurations
- *
- *     1       2 CPU ISA 82489DX
- *     2       2 CPU EISA 82489DX no IRQ 8 or timer chaining
- *     3       2 CPU EISA 82489DX
- *     4       2 CPU MCA 82489DX
- *     5       2 CPU ISA+PCI
- *     6       2 CPU EISA+PCI
- *     7       2 CPU MCA+PCI
- */
-
-
-static int smp_found_config=0;
-
-/*
- *     Checksum an MP configuration block.
- */
-
-static int mpf_checksum(unsigned char *mp, int len)
-{
-       int sum=0;
-       while(len--)
-               sum+=*mp++;
-       return sum&0xFF;
-}
-
-static int do_smp_scan_config(unsigned long *bp, unsigned long length)
-{
-       struct intel_mp_floating *mpf;
-
-/*
-       if (sizeof(*mpf)!=16)
-               logMessage("Error: MPF size\n");
-*/
-
-       while (length>0)
-       {
-               if (*bp==SMP_MAGIC_IDENT)
-               {
-                       mpf=(struct intel_mp_floating *)bp;
-                       if (mpf->mpf_length==1 &&
-                               !mpf_checksum((unsigned char *)bp,16) &&
-                               (mpf->mpf_specification == 1
-                                || mpf->mpf_specification == 4) )
-                       {
-                               /*logMessage("Intel MultiProcessor Specification v1.%d\n", mpf->mpf_specification);
-                               if (mpf->mpf_feature2&(1<<7))
-                                       logMessage("    IMCR and PIC compatibility mode.\n");
-                               else
-                                       logMessage("    Virtual Wire compatibility mode.\n");
-*/
-                               smp_found_config=1;
-                               return 1;
-                       }
-               }
-               bp+=4;
-               length-=16;
-       }
-
-       return 0;
-}
-
-static int smp_scan_config(int mem_fd, unsigned long base,
-                          unsigned long length)
-{
-       void *p;
-       int o;
-       
-       o=base&0xFFF;
-       base-=o;
-       length+=o;
-       
-       p=mmap(0, (length+4095)&0xFFFFF000,  PROT_READ, MAP_SHARED, 
-               mem_fd, (base&0xFFFF0000));
-       if(p==MAP_FAILED)
-       {
-               /*logMessage("SMP Probe error: mmap: %s", strerror(errno));*/
-               return 1;
-       }       
-       do_smp_scan_config(p+o, length-o);
-       munmap(p, (length+4095)&0xFFFFF000);
-       return 0;
-}
-
-static int intelDetectSMP(void)
-{
-        int mem_fd;
-        
-       mem_fd=open("/dev/mem", O_RDONLY);
-       
-       if(mem_fd==-1)
-       {
-               /*logMessage("Error detecting SMP: /dev/mem: %s", strerror(errno));*/
-       }
-       
-       /*
-        * FIXME: Linux assumes you have 640K of base ram..
-        * this continues the error...
-        *
-        * 1) Scan the bottom 1K for a signature
-        * 2) Scan the top 1K of base RAM
-        * 3) Scan the 64K of bios
-        */
-       if (!smp_scan_config(mem_fd, 0x0, 0x400) &&
-           !smp_scan_config(mem_fd, 639*0x400,0x400) &&
-           !smp_scan_config(mem_fd, 0xF0000,0x10000)) {
-#if 0
-
-               /*
-                * If it is an SMP machine we should know now, unless the
-                * configuration is in an EISA/MCA bus machine with an
-                * extended bios data area. 
-                *
-                * there is a real-mode segmented pointer pointing to the
-                * 4K EBDA area at 0x40E, calculate and scan it here.
-                *
-                * NOTE! There are Linux loaders that will corrupt the EBDA
-                * area, and as such this kind of SMP config may be less
-                * trustworthy, simply because the SMP table may have been
-                * stomped on during early boot. These loaders are buggy and
-                * should be fixed.
-                */
-               unsigned int address;
-
-               address = *(unsigned short *)phys_to_virt(0x40E);
-               address<<=4;
-               smp_scan_config(mem_fd, address, 0x1000);
-               if (smp_found_config)
-                       /*logMessage("WARNING: MP table in the EBDA can be UNSAFE, contact linux-smp@vger.rutgers.edu if you experience SMP problems!\n");*/
-#endif                 
-       }
-/*
-       if(smp_found_config)
-               logMessage("Detected SMP capable motherboard\n");
-       else
-               logMessage("Detected non SMP capable motherboard\n");
-*/
-       return smp_found_config;
-}
-
-int detectSMP(void)
-{
-    static int isSMP = -1;
-
-    if (isSMP != -1)
-       return isSMP;
-
-    return isSMP = intelDetectSMP();
-}
-       
-#endif /* __i386__ */
diff --git a/src/hwinfo/src/x86emu/LICENSE b/src/hwinfo/src/x86emu/LICENSE
deleted file mode 100644 (file)
index a3ede4a..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-                         License information
-                         -------------------
-
-The x86emu library is under a BSD style license, comaptible
-with the XFree86 and X licenses used by XFree86. The
-original x86emu libraries were under the GNU General Public
-License. Due to license incompatibilities between the GPL
-and the XFree86 license, the original authors of the code
-decided to allow a license change. If you have submitted
-code to the original x86emu project, and you don't agree
-with the license change, please contact us and let you
-know. Your code will be removed to comply with your wishes.
-
-If you have any questions about this, please send email to
-x86emu@linuxlabs.com or KendallB@scitechsoft.com for
-clarification.
-
diff --git a/src/hwinfo/src/x86emu/Makefile b/src/hwinfo/src/x86emu/Makefile
deleted file mode 100644 (file)
index 362c414..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#############################################################################
-#
-#                                              Realmode X86 Emulator Library
-#
-#              Copyright (C) 1996-1999 SciTech Software, Inc.
-#
-#  ========================================================================
-#
-#  Permission to use, copy, modify, distribute, and sell this software and
-#  its documentation for any purpose is hereby granted without fee,
-#  provided that the above copyright notice appear in all copies and that
-#  both that copyright notice and this permission notice appear in
-#  supporting documentation, and that the name of the authors not be used
-#  in advertising or publicity pertaining to distribution of the software
-#  without specific, written prior permission.  The authors makes no
-#  representations about the suitability of this software for any purpose.
-#  It is provided "as is" without express or implied warranty.
-#
-#  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-#  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-#  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-#  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-#  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-#  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-#  PERFORMANCE OF THIS SOFTWARE.
-#
-#  ========================================================================
-#
-# Descripton:   Linux specific makefile for the x86emu library.
-#
-#############################################################################
-
-TARGETLIB = ../libhd.a
-TARGETDEBUGLIB = ../libx86emud.a
-
-OBJS=\
-debug.o \
-decode.o \
-fpu.o \
-ops.o \
-ops2.o \
-prim_ops.o \
-sys.o
-
-DEBUGOBJS=debug.d \
-          decode.d \
-         fpu.d \
-         ops.d \
-         ops2.d \
-         prim_ops.d \
-         sys.d
-
-.SUFFIXES: .d
-
-all: $(TARGETLIB)
-
-$(TARGETLIB): $(OBJS)
-# prefix objects with x86emu_
-       @for i in $? ; do cp -p $$i x86emu_$$i ; ar rv $@ x86emu_$$i || exit ; rm -f x86emu_$$i ; done
-
-$(TARGETDEBUGLIB): $(DEBUGOBJS)
-       ar rv $(TARGETDEBUGLIB) $(DEBUGOBJS)
-
-INCS   = -I. -Ix86emu -Iinclude
-CFLAGS += -D__DRIVER__ -DFORCE_POST -D_CEXPORT= -DNO_LONG_LONG
-CDEBUGFLAGS = -DDEBUG
-
-.c.o:
-       gcc -c $(CFLAGS) $(INCS) $*.c
-
-.c.d:
-       gcc -c -o$*.d $(CFLAGS) $(CDEBUGFLAGS) $(INCS) $*.c
-
-.cpp.o:
-       gcc -c $(CFLAGS) $(INCS) $*.cpp
-
-install: all
-
-distclean: clean
-       @rm -f *~
-
-clean:
-       @rm -f *.o *.d
-
-validate:      validate.o ../libx86emu.a
-       gcc -o validate validate.o -lx86emu -L..
diff --git a/src/hwinfo/src/x86emu/debug.c b/src/hwinfo/src/x86emu/debug.c
deleted file mode 100644 (file)
index ed8f2f0..0000000
+++ /dev/null
@@ -1,431 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  This file contains the code to handle debugging of the
-*                              emulator.
-*
-****************************************************************************/
-/* $XFree86: xc/extras/x86emu/src/x86emu/debug.c,v 1.2 2000/04/05 18:13:14 dawes Exp $ */
-
-#include "x86emu/x86emui.h"
-#ifdef IN_MODULE
-#include "xf86_ansic.h"
-#else
-#include <stdarg.h>
-#include <stdlib.h>
-#endif
-
-/*----------------------------- Implementation ----------------------------*/
-
-#ifdef DEBUG
-
-static void     print_encoded_bytes (u16 s, u16 o);
-static void     print_decoded_instruction (void);
-static int      parse_line (char *s, int *ps, int *n);
-  
-/* should look something like debug's output. */
-void X86EMU_trace_regs (void)
-{
-       if (DEBUG_TRACE()) {
-               x86emu_dump_regs();
-    }
-       if (DEBUG_DECODE() && ! DEBUG_DECODE_NOPRINT()) {
-               printk("%04x:%04x ",M.x86.saved_cs, M.x86.saved_ip);
-               print_encoded_bytes( M.x86.saved_cs, M.x86.saved_ip);
-               print_decoded_instruction();
-    }
-}
-
-void X86EMU_trace_xregs (void)
-{
-       if (DEBUG_TRACE()) {
-               x86emu_dump_xregs();
-    }
-}
-
-void x86emu_just_disassemble (void)
-{
-    /*
-     * This routine called if the flag DEBUG_DISASSEMBLE is set kind
-     * of a hack!
-     */
-       printk("%04x:%04x ",M.x86.saved_cs, M.x86.saved_ip);
-       print_encoded_bytes( M.x86.saved_cs, M.x86.saved_ip);
-       print_decoded_instruction();
-}
-
-static void disassemble_forward (u16 seg, u16 off, int n)
-{
-       X86EMU_sysEnv tregs;
-       int i;
-       u8 op1;
-    /*
-     * hack, hack, hack.  What we do is use the exact machinery set up
-     * for execution, except that now there is an additional state
-     * flag associated with the "execution", and we are using a copy
-     * of the register struct.  All the major opcodes, once fully
-     * decoded, have the following two steps: TRACE_REGS(r,m);
-     * SINGLE_STEP(r,m); which disappear if DEBUG is not defined to
-     * the preprocessor.  The TRACE_REGS macro expands to:
-     *
-     * if (debug&DEBUG_DISASSEMBLE) 
-     *     {just_disassemble(); goto EndOfInstruction;}
-     *     if (debug&DEBUG_TRACE) trace_regs(r,m);
-     *
-     * ......  and at the last line of the routine. 
-     *
-     * EndOfInstruction: end_instr();
-     *
-     * Up to the point where TRACE_REG is expanded, NO modifications
-     * are done to any register EXCEPT the IP register, for fetch and
-     * decoding purposes.
-     *
-     * This was done for an entirely different reason, but makes a
-     * nice way to get the system to help debug codes.
-     */
-       tregs = M;
-    tregs.x86.R_IP = off;
-    tregs.x86.R_CS = seg;
-    
-    /* reset the decoding buffers */
-    tregs.x86.enc_str_pos = 0;
-    tregs.x86.enc_pos = 0;
-    
-    /* turn on the "disassemble only, no execute" flag */
-    tregs.x86.debug |= DEBUG_DISASSEMBLE_F;
-    /* DUMP NEXT n instructions to screen in straight_line fashion */
-    /*
-     * This looks like the regular instruction fetch stream, except
-     * that when this occurs, each fetched opcode, upon seeing the
-     * DEBUG_DISASSEMBLE flag set, exits immediately after decoding
-     * the instruction.  XXX --- CHECK THAT MEM IS NOT AFFECTED!!!
-     * Note the use of a copy of the register structure...
-     */
-    for (i=0; i<n; i++) {
-               op1 = (*sys_rdb)(((u32)M.x86.R_CS<<4) + (M.x86.R_IP++));
-               (x86emu_optab[op1])(op1);
-    }
-    /* end major hack mode. */
-}
-
-void x86emu_check_ip_access (void)
-{
-    /* NULL as of now */
-}
-
-void x86emu_check_sp_access (void)
-{
-}
-
-void x86emu_check_mem_access (u32 dummy)
-{
-       /*  check bounds, etc */
-}
-
-void x86emu_check_data_access (uint dummy1, uint dummy2)
-{
-       /*  check bounds, etc */
-}
-
-void x86emu_inc_decoded_inst_len (int x)
-{
-       M.x86.enc_pos += x;
-}
-
-void x86emu_decode_printf (char *x)
-{
-       sprintf(M.x86.decoded_buf+M.x86.enc_str_pos,"%s",x);
-       M.x86.enc_str_pos += strlen(x);
-}
-
-void x86emu_decode_printf2 (char *x, int y)
-{
-       char temp[100];
-       sprintf(temp,x,y);
-       sprintf(M.x86.decoded_buf+M.x86.enc_str_pos,"%s",temp);
-       M.x86.enc_str_pos += strlen(temp);
-}
-
-void x86emu_end_instr (void)
-{
-       M.x86.enc_str_pos = 0;
-       M.x86.enc_pos = 0;
-}
-
-static void print_encoded_bytes (u16 s, u16 o)
-{
-    int i;
-    char buf1[64];
-       for (i=0; i< M.x86.enc_pos; i++) {
-               sprintf(buf1+2*i,"%02x", fetch_data_byte_abs(s,o+i));
-    }
-       printk("%-20s",buf1);
-}
-
-static void print_decoded_instruction (void)
-{
-       printk("%s", M.x86.decoded_buf);
-}
-
-void x86emu_print_int_vect (u16 iv)
-{
-       u16 seg,off;
-
-       if (iv > 256) return;
-       seg   = fetch_data_word_abs(0,iv*4);
-       off   = fetch_data_word_abs(0,iv*4+2);
-       printk("%04x:%04x ", seg, off);
-}
-
-void X86EMU_dump_memory (u16 seg, u16 off, u32 amt)
-{
-       u32 start = off & 0xfffffff0;
-       u32 end  = (off+16) & 0xfffffff0;
-       u32 i;
-       u32 current;
-
-       current = start;
-       while (end <= off + amt) {
-               printk("%04x:%04x ", seg, start);
-               for (i=start; i< off; i++)
-                 printk("   ");
-               for (       ; i< end; i++)
-                 printk("%02x ", fetch_data_byte_abs(seg,i));
-               printk("\n");
-               start = end;
-               end = start + 16;
-       }
-}
-
-void x86emu_single_step (void)
-{
-    char s[1024];
-    int ps[10];
-    int ntok;
-    int cmd;
-    int done;
-               int segment;
-    int offset;
-    static int breakpoint;
-    static int noDecode = 1;
-    
-    char *p;
-
-               if (DEBUG_BREAK()) {
-                               if (M.x86.saved_ip != breakpoint) {
-                                               return;
-                               } else {
-                 M.x86.debug &= ~DEBUG_DECODE_NOPRINT_F;
-                                               M.x86.debug |= DEBUG_TRACE_F;
-                                               M.x86.debug &= ~DEBUG_BREAK_F;
-                                               print_decoded_instruction ();
-                                               X86EMU_trace_regs();
-                               }
-               }
-    done=0;
-       offset = M.x86.saved_ip;
-    while (!done) {
-        printk("-");
-        p = fgets(s, 1023, stdin);
-        cmd = parse_line(s, ps, &ntok);
-        switch(cmd) {
-          case 'u':
-                       disassemble_forward(M.x86.saved_cs,(u16)offset,10);
-            break;
-          case 'd':  
-                                                       if (ntok == 2) {
-                                                                       segment = M.x86.saved_cs;
-                                                                       offset = ps[1];
-                                                                       X86EMU_dump_memory(segment,(u16)offset,16);
-                                                                       offset += 16;
-                                                       } else if (ntok == 3) {
-                                                                       segment = ps[1];
-                                                                       offset = ps[2];
-                                                                       X86EMU_dump_memory(segment,(u16)offset,16);
-                                                                       offset += 16;
-                                                       } else {
-                                                                       segment = M.x86.saved_cs;
-                                                                       X86EMU_dump_memory(segment,(u16)offset,16);
-                                                                       offset += 16;
-                                                       }
-            break;
-          case 'c':
-                       M.x86.debug ^= DEBUG_TRACECALL_F;
-            break;
-          case 's':
-                       M.x86.debug ^= DEBUG_SVC_F | DEBUG_SYS_F | DEBUG_SYSINT_F;
-            break;
-          case 'r':
-                       X86EMU_trace_regs();
-            break;
-          case 'x':
-                       X86EMU_trace_xregs();
-            break;
-          case 'g':
-            if (ntok == 2) {
-                breakpoint = ps[1];
-               if (noDecode) {
-                               M.x86.debug |= DEBUG_DECODE_NOPRINT_F;
-               } else {
-                               M.x86.debug &= ~DEBUG_DECODE_NOPRINT_F;
-               }
-               M.x86.debug &= ~DEBUG_TRACE_F;
-               M.x86.debug |= DEBUG_BREAK_F;
-               done = 1;
-            }
-            break;
-          case 'q':
-          M.x86.debug |= DEBUG_EXIT;
-          return;
-         case 'P':
-             noDecode = (noDecode)?0:1;
-             printk("Toggled decoding to %s\n",(noDecode)?"FALSE":"TRUE");
-             break;
-          case 't':
-         case 0:
-            done = 1;
-            break;
-        }   
-    }
-}
-
-int X86EMU_trace_on(void)
-{
-       return M.x86.debug |= DEBUG_STEP_F | DEBUG_DECODE_F | DEBUG_TRACE_F;
-}
-
-int X86EMU_trace_off(void)
-{
-       return M.x86.debug &= ~(DEBUG_STEP_F | DEBUG_DECODE_F | DEBUG_TRACE_F);
-}
-
-static int parse_line (char *s, int *ps, int *n)
-{
-    int cmd;
-
-    *n = 0;
-    while(*s == ' ' || *s == '\t') s++;
-    ps[*n] = *s;
-    switch (*s) {
-      case '\n':
-        *n += 1;
-        return 0;
-      default:
-        cmd = *s;
-        *n += 1;
-    }
-
-       while (1) {
-               while (*s != ' ' && *s != '\t' && *s != '\n')  s++;
-               
-               if (*s == '\n')
-                       return cmd;
-               
-               while(*s == ' ' || *s == '\t') s++;
-               
-               sscanf(s,"%x",&ps[*n]);
-               *n += 1;
-       }
-}
-
-#endif /* DEBUG */
-
-void x86emu_dump_regs (void)
-{
-       printk("\tAX=%04x  ", M.x86.R_AX );
-       printk("BX=%04x  ", M.x86.R_BX );
-       printk("CX=%04x  ", M.x86.R_CX );
-       printk("DX=%04x  ", M.x86.R_DX );
-       printk("SP=%04x  ", M.x86.R_SP );
-       printk("BP=%04x  ", M.x86.R_BP );
-       printk("SI=%04x  ", M.x86.R_SI );
-       printk("DI=%04x\n", M.x86.R_DI );
-       printk("\tDS=%04x  ", M.x86.R_DS );
-       printk("ES=%04x  ", M.x86.R_ES );
-       printk("SS=%04x  ", M.x86.R_SS );
-       printk("CS=%04x  ", M.x86.R_CS );
-       printk("IP=%04x   ", M.x86.R_IP );
-       if (ACCESS_FLAG(F_OF))    printk("OV ");     /* CHECKED... */
-       else                        printk("NV ");
-       if (ACCESS_FLAG(F_DF))    printk("DN ");
-       else                        printk("UP ");
-       if (ACCESS_FLAG(F_IF))    printk("EI ");
-       else                        printk("DI ");
-       if (ACCESS_FLAG(F_SF))    printk("NG ");
-       else                        printk("PL ");
-       if (ACCESS_FLAG(F_ZF))    printk("ZR ");
-       else                        printk("NZ ");
-       if (ACCESS_FLAG(F_AF))    printk("AC ");
-       else                        printk("NA ");
-       if (ACCESS_FLAG(F_PF))    printk("PE ");
-       else                        printk("PO ");
-       if (ACCESS_FLAG(F_CF))    printk("CY ");
-       else                        printk("NC ");
-       printk("\n");
-}
-
-void x86emu_dump_xregs (void)
-{
-       printk("\tEAX=%08x  ", M.x86.R_EAX );
-       printk("EBX=%08x  ", M.x86.R_EBX );
-       printk("ECX=%08x  ", M.x86.R_ECX );
-       printk("EDX=%08x  \n", M.x86.R_EDX );
-       printk("\tESP=%08x  ", M.x86.R_ESP );
-       printk("EBP=%08x  ", M.x86.R_EBP );
-       printk("ESI=%08x  ", M.x86.R_ESI );
-       printk("EDI=%08x\n", M.x86.R_EDI );
-       printk("\tDS=%04x  ", M.x86.R_DS );
-       printk("ES=%04x  ", M.x86.R_ES );
-       printk("SS=%04x  ", M.x86.R_SS );
-       printk("CS=%04x  ", M.x86.R_CS );
-       printk("EIP=%08x\n\t", M.x86.R_EIP );
-       if (ACCESS_FLAG(F_OF))    printk("OV ");     /* CHECKED... */
-       else                        printk("NV ");
-       if (ACCESS_FLAG(F_DF))    printk("DN ");
-       else                        printk("UP ");
-       if (ACCESS_FLAG(F_IF))    printk("EI ");
-       else                        printk("DI ");
-       if (ACCESS_FLAG(F_SF))    printk("NG ");
-       else                        printk("PL ");
-       if (ACCESS_FLAG(F_ZF))    printk("ZR ");
-       else                        printk("NZ ");
-       if (ACCESS_FLAG(F_AF))    printk("AC ");
-       else                        printk("NA ");
-       if (ACCESS_FLAG(F_PF))    printk("PE ");
-       else                        printk("PO ");
-       if (ACCESS_FLAG(F_CF))    printk("CY ");
-       else                        printk("NC ");
-       printk("\n");
-}
diff --git a/src/hwinfo/src/x86emu/decode.c b/src/hwinfo/src/x86emu/decode.c
deleted file mode 100644 (file)
index 5edaf15..0000000
+++ /dev/null
@@ -1,1108 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  This file includes subroutines which are related to
-*                              instruction decoding and accessess of immediate data via IP.  etc.
-*
-****************************************************************************/
-
-/* $XFree86: xc/extras/x86emu/src/x86emu/decode.c,v 1.11 2002/07/23 20:20:43 tsi Exp $ */
-
-#include "x86emu/x86emui.h"
-
-/*----------------------------- Implementation ----------------------------*/
-
-/****************************************************************************
-REMARKS:
-Handles any pending asychronous interrupts.
-****************************************************************************/
-static void x86emu_intr_handle(void)
-{
-       u8      intno;
-
-       if (M.x86.intr & INTR_SYNCH) {
-               intno = M.x86.intno;
-               if (_X86EMU_intrTab[intno]) {
-                       (*_X86EMU_intrTab[intno])(intno);
-               } else {
-                       push_word((u16)M.x86.R_FLG);
-                       CLEAR_FLAG(F_IF);
-                       CLEAR_FLAG(F_TF);
-                       push_word(M.x86.R_CS);
-                       M.x86.R_CS = mem_access_word(intno * 4 + 2);
-                       push_word(M.x86.R_IP);
-                       M.x86.R_IP = mem_access_word(intno * 4);
-                       M.x86.intr = 0;
-               }
-       }
-}
-
-/****************************************************************************
-PARAMETERS:
-intrnum - Interrupt number to raise
-
-REMARKS:
-Raise the specified interrupt to be handled before the execution of the
-next instruction.
-****************************************************************************/
-void x86emu_intr_raise(
-       u8 intrnum)
-{
-       M.x86.intno = intrnum;
-       M.x86.intr |= INTR_SYNCH;
-}
-
-/****************************************************************************
-REMARKS:
-Main execution loop for the emulator. We return from here when the system
-halts, which is normally caused by a stack fault when we return from the
-original real mode call.
-****************************************************************************/
-#include <time.h>
-void X86EMU_exec(unsigned timeout)
-{
-       u8 op1;
-       unsigned instr_cnt = 0;
-       unsigned debug = timeout & (1 << 31);
-       time_t t0 = time(NULL);
-
-       timeout &= ~(1 << 31);
-
-       M.x86.intr = 0;
-       DB(x86emu_end_instr();)
-
-    for (;;) {
-DB(            if (CHECK_IP_FETCH())
-                 x86emu_check_ip_access();)
-               /* If debugging, save the IP and CS values. */
-               SAVE_IP_CS(M.x86.R_CS, M.x86.R_IP);
-               INC_DECODED_INST_LEN(1);
-               if (M.x86.intr) {
-                       if (M.x86.intr & INTR_HALTED) {
-DB(             if (M.x86.R_SP != 0) {
-                    printk("halted\n");
-                    X86EMU_trace_regs();
-                    }
-                else {
-                    if (M.x86.debug)
-                        printk("Service completed successfully\n");
-                    })
-                               return;
-            }
-                       if (((M.x86.intr & INTR_SYNCH) && (M.x86.intno == 0 || M.x86.intno == 2)) ||
-                               !ACCESS_FLAG(F_IF)) {
-                               x86emu_intr_handle();
-                       }
-               }
-               op1 = (*sys_rdb)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP++));
-               if (debug) {
-                   fprintf(stderr, "%6u: %04x:%04x %02x\n", instr_cnt++, M.x86.R_CS, M.x86.R_IP - 1, op1);
-               }
-               if(!(instr_cnt & 0xffff) && timeout && time(NULL) - t0 > timeout) {
-                   if (debug) {
-                       fprintf(stderr, "*** %us timeout ***\n", timeout);
-                   }
-                   return;
-               }
-               (*x86emu_optab[op1])(op1);
-        if (M.x86.debug & DEBUG_EXIT) {
-            M.x86.debug &= ~DEBUG_EXIT;
-            return;
-        }
-    }
-}
-
-/****************************************************************************
-REMARKS:
-Halts the system by setting the halted system flag.
-****************************************************************************/
-void X86EMU_halt_sys(void)
-{
-       M.x86.intr |= INTR_HALTED;
-}
-
-/****************************************************************************
-PARAMETERS:
-mod            - Mod value from decoded byte
-regh   - Reg h value from decoded byte
-regl   - Reg l value from decoded byte
-
-REMARKS:
-Raise the specified interrupt to be handled before the execution of the
-next instruction.
-
-NOTE: Do not inline this function, as (*sys_rdb) is already inline!
-****************************************************************************/
-void fetch_decode_modrm(
-       int *mod,
-       int *regh,
-       int *regl)
-{
-       int fetched;
-
-DB(    if (CHECK_IP_FETCH())
-         x86emu_check_ip_access();)
-       fetched = (*sys_rdb)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP++));
-       INC_DECODED_INST_LEN(1);
-       *mod  = (fetched >> 6) & 0x03;
-       *regh = (fetched >> 3) & 0x07;
-    *regl = (fetched >> 0) & 0x07;
-}
-
-/****************************************************************************
-RETURNS:
-Immediate byte value read from instruction queue
-
-REMARKS:
-This function returns the immediate byte from the instruction queue, and
-moves the instruction pointer to the next value.
-
-NOTE: Do not inline this function, as (*sys_rdb) is already inline!
-****************************************************************************/
-u8 fetch_byte_imm(void)
-{
-       u8 fetched;
-
-DB(    if (CHECK_IP_FETCH())
-               x86emu_check_ip_access();)
-       fetched = (*sys_rdb)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP++));
-       INC_DECODED_INST_LEN(1);
-       return fetched;
-}
-
-/****************************************************************************
-RETURNS:
-Immediate word value read from instruction queue
-
-REMARKS:
-This function returns the immediate byte from the instruction queue, and
-moves the instruction pointer to the next value.
-
-NOTE: Do not inline this function, as (*sys_rdw) is already inline!
-****************************************************************************/
-u16 fetch_word_imm(void)
-{
-       u16     fetched;
-
-DB(    if (CHECK_IP_FETCH())
-               x86emu_check_ip_access();)
-       fetched = (*sys_rdw)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP));
-       M.x86.R_IP += 2;
-       INC_DECODED_INST_LEN(2);
-       return fetched;
-}
-
-/****************************************************************************
-RETURNS:
-Immediate lone value read from instruction queue
-
-REMARKS:
-This function returns the immediate byte from the instruction queue, and
-moves the instruction pointer to the next value.
-
-NOTE: Do not inline this function, as (*sys_rdw) is already inline!
-****************************************************************************/
-u32 fetch_long_imm(void)
-{
-       u32 fetched;
-
-DB(    if (CHECK_IP_FETCH())
-         x86emu_check_ip_access();)
-       fetched = (*sys_rdl)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP));
-       M.x86.R_IP += 4;
-       INC_DECODED_INST_LEN(4);
-       return fetched;
-}
-
-/****************************************************************************
-RETURNS:
-Value of the default data segment
-
-REMARKS:
-Inline function that returns the default data segment for the current
-instruction.
-
-On the x86 processor, the default segment is not always DS if there is
-no segment override. Address modes such as -3[BP] or 10[BP+SI] all refer to
-addresses relative to SS (ie: on the stack). So, at the minimum, all
-decodings of addressing modes would have to set/clear a bit describing
-whether the access is relative to DS or SS.  That is the function of the
-cpu-state-varible M.x86.mode. There are several potential states:
-
-       repe prefix seen  (handled elsewhere)
-       repne prefix seen  (ditto)
-
-       cs segment override
-       ds segment override
-       es segment override
-       fs segment override
-       gs segment override
-       ss segment override
-
-       ds/ss select (in absense of override)
-
-Each of the above 7 items are handled with a bit in the mode field.
-****************************************************************************/
-_INLINE u32 get_data_segment(void)
-{
-#define        GET_SEGMENT(segment)
-       switch (M.x86.mode & SYSMODE_SEGMASK) {
-         case 0:                                       /* default case: use ds register */
-         case SYSMODE_SEGOVR_DS:
-         case SYSMODE_SEGOVR_DS | SYSMODE_SEG_DS_SS:
-               return  M.x86.R_DS;
-         case SYSMODE_SEG_DS_SS:       /* non-overridden, use ss register */
-               return  M.x86.R_SS;
-         case SYSMODE_SEGOVR_CS:
-         case SYSMODE_SEGOVR_CS | SYSMODE_SEG_DS_SS:
-               return  M.x86.R_CS;
-         case SYSMODE_SEGOVR_ES:
-         case SYSMODE_SEGOVR_ES | SYSMODE_SEG_DS_SS:
-               return  M.x86.R_ES;
-         case SYSMODE_SEGOVR_FS:
-         case SYSMODE_SEGOVR_FS | SYSMODE_SEG_DS_SS:
-               return  M.x86.R_FS;
-         case SYSMODE_SEGOVR_GS:
-         case SYSMODE_SEGOVR_GS | SYSMODE_SEG_DS_SS:
-               return  M.x86.R_GS;
-         case SYSMODE_SEGOVR_SS:
-         case SYSMODE_SEGOVR_SS | SYSMODE_SEG_DS_SS:
-               return  M.x86.R_SS;
-         default:
-#ifdef DEBUG
-               printk("error: should not happen:  multiple overrides.\n");
-#endif
-               HALT_SYS();
-               return 0;
-       }
-}
-
-/****************************************************************************
-PARAMETERS:
-offset - Offset to load data from
-
-RETURNS:
-Byte value read from the absolute memory location.
-
-NOTE: Do not inline this function as (*sys_rdX) is already inline!
-****************************************************************************/
-u8 fetch_data_byte(
-       uint offset)
-{
-#ifdef DEBUG
-       if (CHECK_DATA_ACCESS())
-               x86emu_check_data_access((u16)get_data_segment(), offset);
-#endif
-       return (*sys_rdb)((get_data_segment() << 4) + offset);
-}
-
-/****************************************************************************
-PARAMETERS:
-offset - Offset to load data from
-
-RETURNS:
-Word value read from the absolute memory location.
-
-NOTE: Do not inline this function as (*sys_rdX) is already inline!
-****************************************************************************/
-u16 fetch_data_word(
-       uint offset)
-{
-#ifdef DEBUG
-       if (CHECK_DATA_ACCESS())
-               x86emu_check_data_access((u16)get_data_segment(), offset);
-#endif
-       return (*sys_rdw)((get_data_segment() << 4) + offset);
-}
-
-/****************************************************************************
-PARAMETERS:
-offset - Offset to load data from
-
-RETURNS:
-Long value read from the absolute memory location.
-
-NOTE: Do not inline this function as (*sys_rdX) is already inline!
-****************************************************************************/
-u32 fetch_data_long(
-       uint offset)
-{
-#ifdef DEBUG
-       if (CHECK_DATA_ACCESS())
-               x86emu_check_data_access((u16)get_data_segment(), offset);
-#endif
-       return (*sys_rdl)((get_data_segment() << 4) + offset);
-}
-
-/****************************************************************************
-PARAMETERS:
-segment        - Segment to load data from
-offset - Offset to load data from
-
-RETURNS:
-Byte value read from the absolute memory location.
-
-NOTE: Do not inline this function as (*sys_rdX) is already inline!
-****************************************************************************/
-u8 fetch_data_byte_abs(
-       uint segment,
-       uint offset)
-{
-#ifdef DEBUG
-       if (CHECK_DATA_ACCESS())
-               x86emu_check_data_access(segment, offset);
-#endif
-       return (*sys_rdb)(((u32)segment << 4) + offset);
-}
-
-/****************************************************************************
-PARAMETERS:
-segment        - Segment to load data from
-offset - Offset to load data from
-
-RETURNS:
-Word value read from the absolute memory location.
-
-NOTE: Do not inline this function as (*sys_rdX) is already inline!
-****************************************************************************/
-u16 fetch_data_word_abs(
-       uint segment,
-       uint offset)
-{
-#ifdef DEBUG
-       if (CHECK_DATA_ACCESS())
-               x86emu_check_data_access(segment, offset);
-#endif
-       return (*sys_rdw)(((u32)segment << 4) + offset);
-}
-
-/****************************************************************************
-PARAMETERS:
-segment        - Segment to load data from
-offset - Offset to load data from
-
-RETURNS:
-Long value read from the absolute memory location.
-
-NOTE: Do not inline this function as (*sys_rdX) is already inline!
-****************************************************************************/
-u32 fetch_data_long_abs(
-       uint segment,
-       uint offset)
-{
-#ifdef DEBUG
-       if (CHECK_DATA_ACCESS())
-               x86emu_check_data_access(segment, offset);
-#endif
-       return (*sys_rdl)(((u32)segment << 4) + offset);
-}
-
-/****************************************************************************
-PARAMETERS:
-offset - Offset to store data at
-val            - Value to store
-
-REMARKS:
-Writes a word value to an segmented memory location. The segment used is
-the current 'default' segment, which may have been overridden.
-
-NOTE: Do not inline this function as (*sys_wrX) is already inline!
-****************************************************************************/
-void store_data_byte(
-       uint offset,
-       u8 val)
-{
-#ifdef DEBUG
-       if (CHECK_DATA_ACCESS())
-               x86emu_check_data_access((u16)get_data_segment(), offset);
-#endif
-       (*sys_wrb)((get_data_segment() << 4) + offset, val);
-}
-
-/****************************************************************************
-PARAMETERS:
-offset - Offset to store data at
-val            - Value to store
-
-REMARKS:
-Writes a word value to an segmented memory location. The segment used is
-the current 'default' segment, which may have been overridden.
-
-NOTE: Do not inline this function as (*sys_wrX) is already inline!
-****************************************************************************/
-void store_data_word(
-       uint offset,
-       u16 val)
-{
-#ifdef DEBUG
-       if (CHECK_DATA_ACCESS())
-               x86emu_check_data_access((u16)get_data_segment(), offset);
-#endif
-       (*sys_wrw)((get_data_segment() << 4) + offset, val);
-}
-
-/****************************************************************************
-PARAMETERS:
-offset - Offset to store data at
-val            - Value to store
-
-REMARKS:
-Writes a long value to an segmented memory location. The segment used is
-the current 'default' segment, which may have been overridden.
-
-NOTE: Do not inline this function as (*sys_wrX) is already inline!
-****************************************************************************/
-void store_data_long(
-       uint offset,
-       u32 val)
-{
-#ifdef DEBUG
-       if (CHECK_DATA_ACCESS())
-               x86emu_check_data_access((u16)get_data_segment(), offset);
-#endif
-       (*sys_wrl)((get_data_segment() << 4) + offset, val);
-}
-
-/****************************************************************************
-PARAMETERS:
-segment        - Segment to store data at
-offset - Offset to store data at
-val            - Value to store
-
-REMARKS:
-Writes a byte value to an absolute memory location.
-
-NOTE: Do not inline this function as (*sys_wrX) is already inline!
-****************************************************************************/
-void store_data_byte_abs(
-       uint segment,
-       uint offset,
-       u8 val)
-{
-#ifdef DEBUG
-       if (CHECK_DATA_ACCESS())
-               x86emu_check_data_access(segment, offset);
-#endif
-       (*sys_wrb)(((u32)segment << 4) + offset, val);
-}
-
-/****************************************************************************
-PARAMETERS:
-segment        - Segment to store data at
-offset - Offset to store data at
-val            - Value to store
-
-REMARKS:
-Writes a word value to an absolute memory location.
-
-NOTE: Do not inline this function as (*sys_wrX) is already inline!
-****************************************************************************/
-void store_data_word_abs(
-       uint segment,
-       uint offset,
-       u16 val)
-{
-#ifdef DEBUG
-       if (CHECK_DATA_ACCESS())
-               x86emu_check_data_access(segment, offset);
-#endif
-       (*sys_wrw)(((u32)segment << 4) + offset, val);
-}
-
-/****************************************************************************
-PARAMETERS:
-segment        - Segment to store data at
-offset - Offset to store data at
-val            - Value to store
-
-REMARKS:
-Writes a long value to an absolute memory location.
-
-NOTE: Do not inline this function as (*sys_wrX) is already inline!
-****************************************************************************/
-void store_data_long_abs(
-       uint segment,
-       uint offset,
-       u32 val)
-{
-#ifdef DEBUG
-       if (CHECK_DATA_ACCESS())
-               x86emu_check_data_access(segment, offset);
-#endif
-       (*sys_wrl)(((u32)segment << 4) + offset, val);
-}
-
-/****************************************************************************
-PARAMETERS:
-reg    - Register to decode
-
-RETURNS:
-Pointer to the appropriate register
-
-REMARKS:
-Return a pointer to the register given by the R/RM field of the
-modrm byte, for byte operands. Also enables the decoding of instructions.
-****************************************************************************/
-u8* decode_rm_byte_register(
-       int reg)
-{
-       switch (reg) {
-      case 0:
-               DECODE_PRINTF("AL");
-               return &M.x86.R_AL;
-         case 1:
-               DECODE_PRINTF("CL");
-               return &M.x86.R_CL;
-         case 2:
-               DECODE_PRINTF("DL");
-               return &M.x86.R_DL;
-         case 3:
-               DECODE_PRINTF("BL");
-               return &M.x86.R_BL;
-         case 4:
-               DECODE_PRINTF("AH");
-               return &M.x86.R_AH;
-         case 5:
-               DECODE_PRINTF("CH");
-               return &M.x86.R_CH;
-         case 6:
-               DECODE_PRINTF("DH");
-               return &M.x86.R_DH;
-         case 7:
-               DECODE_PRINTF("BH");
-               return &M.x86.R_BH;
-       }
-       HALT_SYS();
-       return NULL;                /* NOT REACHED OR REACHED ON ERROR */
-}
-
-/****************************************************************************
-PARAMETERS:
-reg    - Register to decode
-
-RETURNS:
-Pointer to the appropriate register
-
-REMARKS:
-Return a pointer to the register given by the R/RM field of the
-modrm byte, for word operands.  Also enables the decoding of instructions.
-****************************************************************************/
-u16* decode_rm_word_register(
-       int reg)
-{
-       switch (reg) {
-         case 0:
-               DECODE_PRINTF("AX");
-               return &M.x86.R_AX;
-         case 1:
-               DECODE_PRINTF("CX");
-               return &M.x86.R_CX;
-         case 2:
-               DECODE_PRINTF("DX");
-               return &M.x86.R_DX;
-         case 3:
-               DECODE_PRINTF("BX");
-               return &M.x86.R_BX;
-         case 4:
-               DECODE_PRINTF("SP");
-               return &M.x86.R_SP;
-         case 5:
-               DECODE_PRINTF("BP");
-               return &M.x86.R_BP;
-         case 6:
-               DECODE_PRINTF("SI");
-               return &M.x86.R_SI;
-         case 7:
-               DECODE_PRINTF("DI");
-               return &M.x86.R_DI;
-       }
-       HALT_SYS();
-    return NULL;                /* NOTREACHED OR REACHED ON ERROR */
-}
-
-/****************************************************************************
-PARAMETERS:
-reg    - Register to decode
-
-RETURNS:
-Pointer to the appropriate register
-
-REMARKS:
-Return a pointer to the register given by the R/RM field of the
-modrm byte, for dword operands.  Also enables the decoding of instructions.
-****************************************************************************/
-u32* decode_rm_long_register(
-       int reg)
-{
-    switch (reg) {
-      case 0:
-               DECODE_PRINTF("EAX");
-               return &M.x86.R_EAX;
-         case 1:
-               DECODE_PRINTF("ECX");
-               return &M.x86.R_ECX;
-         case 2:
-               DECODE_PRINTF("EDX");
-               return &M.x86.R_EDX;
-         case 3:
-               DECODE_PRINTF("EBX");
-               return &M.x86.R_EBX;
-         case 4:
-               DECODE_PRINTF("ESP");
-               return &M.x86.R_ESP;
-         case 5:
-               DECODE_PRINTF("EBP");
-               return &M.x86.R_EBP;
-         case 6:
-               DECODE_PRINTF("ESI");
-               return &M.x86.R_ESI;
-         case 7:
-               DECODE_PRINTF("EDI");
-               return &M.x86.R_EDI;
-       }
-       HALT_SYS();
-    return NULL;                /* NOTREACHED OR REACHED ON ERROR */
-}
-
-/****************************************************************************
-PARAMETERS:
-reg    - Register to decode
-
-RETURNS:
-Pointer to the appropriate register
-
-REMARKS:
-Return a pointer to the register given by the R/RM field of the
-modrm byte, for word operands, modified from above for the weirdo
-special case of segreg operands.  Also enables the decoding of instructions.
-****************************************************************************/
-u16* decode_rm_seg_register(
-       int reg)
-{
-       switch (reg) {
-         case 0:
-               DECODE_PRINTF("ES");
-               return &M.x86.R_ES;
-         case 1:
-               DECODE_PRINTF("CS");
-               return &M.x86.R_CS;
-         case 2:
-               DECODE_PRINTF("SS");
-               return &M.x86.R_SS;
-         case 3:
-               DECODE_PRINTF("DS");
-               return &M.x86.R_DS;
-         case 4:
-               DECODE_PRINTF("FS");
-               return &M.x86.R_FS;
-         case 5:
-               DECODE_PRINTF("GS");
-               return &M.x86.R_GS;
-         case 6:
-         case 7:
-               DECODE_PRINTF("ILLEGAL SEGREG");
-               break;
-       }
-       HALT_SYS();
-       return NULL;                /* NOT REACHED OR REACHED ON ERROR */
-}
-
-/*
- *
- * return offset from the SIB Byte
- */
-u32 decode_sib_address(int sib, int mod)
-{
-    u32 base = 0, i = 0, scale = 1;
-
-    switch(sib & 0x07) {
-    case 0:
-       DECODE_PRINTF("[EAX]");
-       base = M.x86.R_EAX;
-       break;
-    case 1:
-       DECODE_PRINTF("[ECX]");
-       base = M.x86.R_ECX;
-       break;
-    case 2:
-       DECODE_PRINTF("[EDX]");
-       base = M.x86.R_EDX;
-       break;
-    case 3:
-       DECODE_PRINTF("[EBX]");
-       base = M.x86.R_EBX;
-       break;
-    case 4:
-       DECODE_PRINTF("[ESP]");
-       base = M.x86.R_ESP;
-       M.x86.mode |= SYSMODE_SEG_DS_SS;
-       break;
-    case 5:
-       if (mod == 0) {
-           base = fetch_long_imm();
-           DECODE_PRINTF2("%08x", base);
-       } else {
-           DECODE_PRINTF("[EBP]");
-           base = M.x86.R_ESP;
-           M.x86.mode |= SYSMODE_SEG_DS_SS;
-       }
-       break;
-    case 6:
-       DECODE_PRINTF("[ESI]");
-       base = M.x86.R_ESI;
-       break;
-    case 7:
-       DECODE_PRINTF("[EDI]");
-       base = M.x86.R_EDI;
-       break;
-    }
-    switch ((sib >> 3) & 0x07) {
-    case 0:
-       DECODE_PRINTF("[EAX");
-       i = M.x86.R_EAX;
-       break;
-    case 1:
-       DECODE_PRINTF("[ECX");
-       i = M.x86.R_ECX;
-       break;
-    case 2:
-       DECODE_PRINTF("[EDX");
-       i = M.x86.R_EDX;
-       break;
-    case 3:
-       DECODE_PRINTF("[EBX");
-       i = M.x86.R_EBX;
-       break;
-    case 4:
-       i = 0;
-       break;
-    case 5:
-       DECODE_PRINTF("[EBP");
-       i = M.x86.R_EBP;
-       break;
-    case 6:
-       DECODE_PRINTF("[ESI");
-       i = M.x86.R_ESI;
-       break;
-    case 7:
-       DECODE_PRINTF("[EDI");
-       i = M.x86.R_EDI;
-       break;
-    }
-    scale = 1 << ((sib >> 6) & 0x03);
-    if (((sib >> 3) & 0x07) != 4) {
-       if (scale == 1) {
-           DECODE_PRINTF("]");
-       } else {
-           DECODE_PRINTF2("*%d]", scale);
-       }
-    }
-    return base + (i * scale);
-}
-
-/****************************************************************************
-PARAMETERS:
-rm     - RM value to decode
-
-RETURNS:
-Offset in memory for the address decoding
-
-REMARKS:
-Return the offset given by mod=00 addressing.  Also enables the
-decoding of instructions.
-
-NOTE:  The code which specifies the corresponding segment (ds vs ss)
-               below in the case of [BP+..].  The assumption here is that at the
-               point that this subroutine is called, the bit corresponding to
-               SYSMODE_SEG_DS_SS will be zero.  After every instruction
-               except the segment override instructions, this bit (as well
-               as any bits indicating segment overrides) will be clear.  So
-               if a SS access is needed, set this bit.  Otherwise, DS access
-               occurs (unless any of the segment override bits are set).
-****************************************************************************/
-u32 decode_rm00_address(
-       int rm)
-{
-    u32 offset;
-    int sib;
-
-    if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
-        /* 32-bit addressing */
-       switch (rm) {
-         case 0:
-               DECODE_PRINTF("[EAX]");
-               return M.x86.R_EAX;
-         case 1:
-               DECODE_PRINTF("[ECX]");
-               return M.x86.R_ECX;
-         case 2:
-               DECODE_PRINTF("[EDX]");
-               return M.x86.R_EDX;
-         case 3:
-               DECODE_PRINTF("[EBX]");
-               return M.x86.R_EBX;
-         case 4:
-               sib = fetch_byte_imm();
-               return decode_sib_address(sib, 0);
-         case 5:
-               offset = fetch_long_imm();
-               DECODE_PRINTF2("[%08x]", offset);
-               return offset;
-         case 6:
-               DECODE_PRINTF("[ESI]");
-               return M.x86.R_ESI;
-         case 7:
-               DECODE_PRINTF("[EDI]");
-               return M.x86.R_EDI;
-       }
-       HALT_SYS();
-    } else {
-        /* 16-bit addressing */
-       switch (rm) {
-         case 0:
-               DECODE_PRINTF("[BX+SI]");
-            return (M.x86.R_BX + M.x86.R_SI) & 0xffff;
-         case 1:
-               DECODE_PRINTF("[BX+DI]");
-            return (M.x86.R_BX + M.x86.R_DI) & 0xffff;
-         case 2:
-               DECODE_PRINTF("[BP+SI]");
-               M.x86.mode |= SYSMODE_SEG_DS_SS;
-            return (M.x86.R_BP + M.x86.R_SI) & 0xffff;
-         case 3:
-               DECODE_PRINTF("[BP+DI]");
-               M.x86.mode |= SYSMODE_SEG_DS_SS;
-            return (M.x86.R_BP + M.x86.R_DI) & 0xffff;
-         case 4:
-               DECODE_PRINTF("[SI]");
-               return M.x86.R_SI;
-         case 5:
-               DECODE_PRINTF("[DI]");
-               return M.x86.R_DI;
-         case 6:
-               offset = fetch_word_imm();
-               DECODE_PRINTF2("[%04x]", offset);
-               return offset;
-         case 7:
-               DECODE_PRINTF("[BX]");
-               return M.x86.R_BX;
-       }
-       HALT_SYS();
-    }
-    return 0;
-}
-
-/****************************************************************************
-PARAMETERS:
-rm     - RM value to decode
-
-RETURNS:
-Offset in memory for the address decoding
-
-REMARKS:
-Return the offset given by mod=01 addressing.  Also enables the
-decoding of instructions.
-****************************************************************************/
-u32 decode_rm01_address(
-       int rm)
-{
-    int displacement = 0;
-    int sib;
-
-    /* Fetch disp8 if no SIB byte */
-    if (!((M.x86.mode & SYSMODE_PREFIX_ADDR) && (rm == 4)))
-       displacement = (s8)fetch_byte_imm();
-
-    if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
-        /* 32-bit addressing */
-       switch (rm) {
-         case 0:
-               DECODE_PRINTF2("%d[EAX]", displacement);
-               return M.x86.R_EAX + displacement;
-         case 1:
-               DECODE_PRINTF2("%d[ECX]", displacement);
-               return M.x86.R_ECX + displacement;
-         case 2:
-               DECODE_PRINTF2("%d[EDX]", displacement);
-               return M.x86.R_EDX + displacement;
-         case 3:
-               DECODE_PRINTF2("%d[EBX]", displacement);
-               return M.x86.R_EBX + displacement;
-         case 4:
-               sib = fetch_byte_imm();
-               displacement = (s8)fetch_byte_imm();
-               DECODE_PRINTF2("%d", displacement);
-               return decode_sib_address(sib, 1) + displacement;
-         case 5:
-               DECODE_PRINTF2("%d[EBP]", displacement);
-               return M.x86.R_EBP + displacement;
-         case 6:
-               DECODE_PRINTF2("%d[ESI]", displacement);
-               return M.x86.R_ESI + displacement;
-         case 7:
-               DECODE_PRINTF2("%d[EDI]", displacement);
-               return M.x86.R_EDI + displacement;
-       }
-       HALT_SYS();
-    } else {
-        /* 16-bit addressing */
-       switch (rm) {
-         case 0:
-               DECODE_PRINTF2("%d[BX+SI]", displacement);
-            return (M.x86.R_BX + M.x86.R_SI + displacement) & 0xffff;
-         case 1:
-               DECODE_PRINTF2("%d[BX+DI]", displacement);
-            return (M.x86.R_BX + M.x86.R_DI + displacement) & 0xffff;
-         case 2:
-               DECODE_PRINTF2("%d[BP+SI]", displacement);
-               M.x86.mode |= SYSMODE_SEG_DS_SS;
-            return (M.x86.R_BP + M.x86.R_SI + displacement) & 0xffff;
-         case 3:
-               DECODE_PRINTF2("%d[BP+DI]", displacement);
-               M.x86.mode |= SYSMODE_SEG_DS_SS;
-            return (M.x86.R_BP + M.x86.R_DI + displacement) & 0xffff;
-         case 4:
-               DECODE_PRINTF2("%d[SI]", displacement);
-            return (M.x86.R_SI + displacement) & 0xffff;
-         case 5:
-               DECODE_PRINTF2("%d[DI]", displacement);
-            return (M.x86.R_DI + displacement) & 0xffff;
-         case 6:
-               DECODE_PRINTF2("%d[BP]", displacement);
-               M.x86.mode |= SYSMODE_SEG_DS_SS;
-            return (M.x86.R_BP + displacement) & 0xffff;
-         case 7:
-               DECODE_PRINTF2("%d[BX]", displacement);
-            return (M.x86.R_BX + displacement) & 0xffff;
-       }
-       HALT_SYS();
-    }
-    return 0;                   /* SHOULD NOT HAPPEN */
-}
-
-/****************************************************************************
-PARAMETERS:
-rm     - RM value to decode
-
-RETURNS:
-Offset in memory for the address decoding
-
-REMARKS:
-Return the offset given by mod=10 addressing.  Also enables the
-decoding of instructions.
-****************************************************************************/
-u32 decode_rm10_address(
-       int rm)
-{
-    u32 displacement = 0;
-    int sib;
-
-    /* Fetch disp16 if 16-bit addr mode */
-    if (!(M.x86.mode & SYSMODE_PREFIX_ADDR))
-       displacement = (u16)fetch_word_imm();
-    else {
-       /* Fetch disp32 if no SIB byte */
-       if (rm != 4)
-           displacement = (u32)fetch_long_imm();
-    }
-
-    if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
-        /* 32-bit addressing */
-      switch (rm) {
-         case 0:
-               DECODE_PRINTF2("%08x[EAX]", displacement);
-               return M.x86.R_EAX + displacement;
-         case 1:
-               DECODE_PRINTF2("%08x[ECX]", displacement);
-               return M.x86.R_ECX + displacement;
-         case 2:
-               DECODE_PRINTF2("%08x[EDX]", displacement);
-               M.x86.mode |= SYSMODE_SEG_DS_SS;
-               return M.x86.R_EDX + displacement;
-         case 3:
-               DECODE_PRINTF2("%08x[EBX]", displacement);
-               return M.x86.R_EBX + displacement;
-         case 4:
-               sib = fetch_byte_imm();
-               displacement = (u32)fetch_long_imm();
-               DECODE_PRINTF2("%08x", displacement);
-               return decode_sib_address(sib, 2) + displacement;
-               break;
-         case 5:
-               DECODE_PRINTF2("%08x[EBP]", displacement);
-               return M.x86.R_EBP + displacement;
-         case 6:
-               DECODE_PRINTF2("%08x[ESI]", displacement);
-               return M.x86.R_ESI + displacement;
-         case 7:
-               DECODE_PRINTF2("%08x[EDI]", displacement);
-               return M.x86.R_EDI + displacement;
-       }
-       HALT_SYS();
-    } else {
-        /* 16-bit addressing */
-      switch (rm) {
-         case 0:
-            DECODE_PRINTF2("%04x[BX+SI]", displacement);
-            return (M.x86.R_BX + M.x86.R_SI + displacement) & 0xffff;
-         case 1:
-            DECODE_PRINTF2("%04x[BX+DI]", displacement);
-            return (M.x86.R_BX + M.x86.R_DI + displacement) & 0xffff;
-         case 2:
-               DECODE_PRINTF2("%04x[BP+SI]", displacement);
-               M.x86.mode |= SYSMODE_SEG_DS_SS;
-            return (M.x86.R_BP + M.x86.R_SI + displacement) & 0xffff;
-         case 3:
-               DECODE_PRINTF2("%04x[BP+DI]", displacement);
-               M.x86.mode |= SYSMODE_SEG_DS_SS;
-            return (M.x86.R_BP + M.x86.R_DI + displacement) & 0xffff;
-         case 4:
-            DECODE_PRINTF2("%04x[SI]", displacement);
-            return (M.x86.R_SI + displacement) & 0xffff;
-         case 5:
-            DECODE_PRINTF2("%04x[DI]", displacement);
-            return (M.x86.R_DI + displacement) & 0xffff;
-         case 6:
-               DECODE_PRINTF2("%04x[BP]", displacement);
-               M.x86.mode |= SYSMODE_SEG_DS_SS;
-            return (M.x86.R_BP + displacement) & 0xffff;
-         case 7:
-            DECODE_PRINTF2("%04x[BX]", displacement);
-            return (M.x86.R_BX + displacement) & 0xffff;
-       }
-       HALT_SYS();
-    }
-    return 0;
-    /*NOTREACHED */
-}
diff --git a/src/hwinfo/src/x86emu/fpu.c b/src/hwinfo/src/x86emu/fpu.c
deleted file mode 100644 (file)
index 4b801dc..0000000
+++ /dev/null
@@ -1,966 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  This file contains the code to implement the decoding and
-*               emulation of the FPU instructions.
-*
-****************************************************************************/
-/* $XFree86$ */
-
-#include "x86emu/x86emui.h"
-
-/*----------------------------- Implementation ----------------------------*/
-
-/* opcode=0xd8 */
-void x86emuOp_esc_coprocess_d8(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("ESC D8\n");
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR_NO_TRACE();
-}
-
-#ifdef DEBUG
-
-static char *x86emu_fpu_op_d9_tab[] = {
-    "FLD\tDWORD PTR ", "ESC_D9\t", "FST\tDWORD PTR ", "FSTP\tDWORD PTR ",
-    "FLDENV\t", "FLDCW\t", "FSTENV\t", "FSTCW\t",
-
-    "FLD\tDWORD PTR ", "ESC_D9\t", "FST\tDWORD PTR ", "FSTP\tDWORD PTR ",
-    "FLDENV\t", "FLDCW\t", "FSTENV\t", "FSTCW\t",
-
-    "FLD\tDWORD PTR ", "ESC_D9\t", "FST\tDWORD PTR ", "FSTP\tDWORD PTR ",
-    "FLDENV\t", "FLDCW\t", "FSTENV\t", "FSTCW\t",
-};
-
-static char *x86emu_fpu_op_d9_tab1[] = {
-    "FLD\t", "FLD\t", "FLD\t", "FLD\t",
-    "FLD\t", "FLD\t", "FLD\t", "FLD\t",
-
-    "FXCH\t", "FXCH\t", "FXCH\t", "FXCH\t",
-    "FXCH\t", "FXCH\t", "FXCH\t", "FXCH\t",
-
-    "FNOP", "ESC_D9", "ESC_D9", "ESC_D9",
-    "ESC_D9", "ESC_D9", "ESC_D9", "ESC_D9",
-
-    "FSTP\t", "FSTP\t", "FSTP\t", "FSTP\t",
-    "FSTP\t", "FSTP\t", "FSTP\t", "FSTP\t",
-
-    "FCHS", "FABS", "ESC_D9", "ESC_D9",
-    "FTST", "FXAM", "ESC_D9", "ESC_D9",
-
-    "FLD1", "FLDL2T", "FLDL2E", "FLDPI",
-    "FLDLG2", "FLDLN2", "FLDZ", "ESC_D9",
-
-    "F2XM1", "FYL2X", "FPTAN", "FPATAN",
-    "FXTRACT", "ESC_D9", "FDECSTP", "FINCSTP",
-
-    "FPREM", "FYL2XP1", "FSQRT", "ESC_D9",
-    "FRNDINT", "FSCALE", "ESC_D9", "ESC_D9",
-};
-
-#endif /* DEBUG */
-
-/* opcode=0xd9 */
-void x86emuOp_esc_coprocess_d9(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset = 0;
-    u8 stkelem = 0;
-
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (mod != 3) {
-        DECODE_PRINTINSTR32(x86emu_fpu_op_d9_tab, mod, rh, rl);
-    } else {
-        DECODE_PRINTF(x86emu_fpu_op_d9_tab1[(rh << 3) + rl]);
-    }
-#endif
-    switch (mod) {
-      case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 3:                   /* register to register */
-               stkelem = (u8)rl;
-               if (rh < 4) {
-                               DECODE_PRINTF2("ST(%d)\n", stkelem);
-               } else {
-                               DECODE_PRINTF("\n");
-               }
-        break;
-    }
-#ifdef X86EMU_FPU_PRESENT
-    /* execute */
-    switch (mod) {
-      case 3:
-        switch (rh) {
-          case 0:
-            x86emu_fpu_R_fld(X86EMU_FPU_STKTOP, stkelem);
-            break;
-          case 1:
-            x86emu_fpu_R_fxch(X86EMU_FPU_STKTOP, stkelem);
-            break;
-          case 2:
-            switch (rl) {
-              case 0:
-                x86emu_fpu_R_nop();
-                break;
-              default:
-                x86emu_fpu_illegal();
-                break;
-            }
-          case 3:
-            x86emu_fpu_R_fstp(X86EMU_FPU_STKTOP, stkelem);
-            break;
-          case 4:
-            switch (rl) {
-            case 0:
-                x86emu_fpu_R_fchs(X86EMU_FPU_STKTOP);
-                break;
-            case 1:
-                x86emu_fpu_R_fabs(X86EMU_FPU_STKTOP);
-                break;
-            case 4:
-                x86emu_fpu_R_ftst(X86EMU_FPU_STKTOP);
-                break;
-            case 5:
-                x86emu_fpu_R_fxam(X86EMU_FPU_STKTOP);
-                break;
-            default:
-                /* 2,3,6,7 */
-                x86emu_fpu_illegal();
-                break;
-            }
-            break;
-
-          case 5:
-            switch (rl) {
-              case 0:
-                x86emu_fpu_R_fld1(X86EMU_FPU_STKTOP);
-                break;
-              case 1:
-                x86emu_fpu_R_fldl2t(X86EMU_FPU_STKTOP);
-                break;
-              case 2:
-                x86emu_fpu_R_fldl2e(X86EMU_FPU_STKTOP);
-                break;
-              case 3:
-                x86emu_fpu_R_fldpi(X86EMU_FPU_STKTOP);
-                break;
-              case 4:
-                x86emu_fpu_R_fldlg2(X86EMU_FPU_STKTOP);
-                break;
-              case 5:
-                x86emu_fpu_R_fldln2(X86EMU_FPU_STKTOP);
-                break;
-              case 6:
-                x86emu_fpu_R_fldz(X86EMU_FPU_STKTOP);
-                break;
-              default:
-                /* 7 */
-                x86emu_fpu_illegal();
-                break;
-            }
-            break;
-
-          case 6:
-            switch (rl) {
-              case 0:
-                x86emu_fpu_R_f2xm1(X86EMU_FPU_STKTOP);
-                break;
-              case 1:
-                x86emu_fpu_R_fyl2x(X86EMU_FPU_STKTOP);
-                break;
-              case 2:
-                x86emu_fpu_R_fptan(X86EMU_FPU_STKTOP);
-                break;
-              case 3:
-                x86emu_fpu_R_fpatan(X86EMU_FPU_STKTOP);
-                break;
-              case 4:
-                x86emu_fpu_R_fxtract(X86EMU_FPU_STKTOP);
-                break;
-              case 5:
-                x86emu_fpu_illegal();
-                break;
-              case 6:
-                x86emu_fpu_R_decstp();
-                break;
-              case 7:
-                x86emu_fpu_R_incstp();
-                break;
-            }
-            break;
-
-          case 7:
-            switch (rl) {
-              case 0:
-                x86emu_fpu_R_fprem(X86EMU_FPU_STKTOP);
-                break;
-              case 1:
-                x86emu_fpu_R_fyl2xp1(X86EMU_FPU_STKTOP);
-                break;
-              case 2:
-                x86emu_fpu_R_fsqrt(X86EMU_FPU_STKTOP);
-                break;
-              case 3:
-                x86emu_fpu_illegal();
-                break;
-              case 4:
-                x86emu_fpu_R_frndint(X86EMU_FPU_STKTOP);
-                break;
-              case 5:
-                x86emu_fpu_R_fscale(X86EMU_FPU_STKTOP);
-                break;
-              case 6:
-              case 7:
-              default:
-                x86emu_fpu_illegal();
-                break;
-            }
-            break;
-
-          default:
-            switch (rh) {
-              case 0:
-                x86emu_fpu_M_fld(X86EMU_FPU_FLOAT, destoffset);
-                break;
-              case 1:
-                x86emu_fpu_illegal();
-                break;
-              case 2:
-                x86emu_fpu_M_fst(X86EMU_FPU_FLOAT, destoffset);
-                break;
-              case 3:
-                x86emu_fpu_M_fstp(X86EMU_FPU_FLOAT, destoffset);
-                break;
-              case 4:
-                x86emu_fpu_M_fldenv(X86EMU_FPU_WORD, destoffset);
-                break;
-              case 5:
-                x86emu_fpu_M_fldcw(X86EMU_FPU_WORD, destoffset);
-                break;
-              case 6:
-                x86emu_fpu_M_fstenv(X86EMU_FPU_WORD, destoffset);
-                break;
-              case 7:
-                x86emu_fpu_M_fstcw(X86EMU_FPU_WORD, destoffset);
-                break;
-            }
-        }
-    }
-#else
-    (void)destoffset;
-    (void)stkelem;
-#endif /* X86EMU_FPU_PRESENT */
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR_NO_TRACE();
-}
-
-#ifdef DEBUG
-
-char *x86emu_fpu_op_da_tab[] = {
-    "FIADD\tDWORD PTR ", "FIMUL\tDWORD PTR ", "FICOM\tDWORD PTR ",
-    "FICOMP\tDWORD PTR ",
-    "FISUB\tDWORD PTR ", "FISUBR\tDWORD PTR ", "FIDIV\tDWORD PTR ",
-    "FIDIVR\tDWORD PTR ",
-
-    "FIADD\tDWORD PTR ", "FIMUL\tDWORD PTR ", "FICOM\tDWORD PTR ",
-    "FICOMP\tDWORD PTR ",
-    "FISUB\tDWORD PTR ", "FISUBR\tDWORD PTR ", "FIDIV\tDWORD PTR ",
-    "FIDIVR\tDWORD PTR ",
-    
-    "FIADD\tDWORD PTR ", "FIMUL\tDWORD PTR ", "FICOM\tDWORD PTR ",
-    "FICOMP\tDWORD PTR ",
-    "FISUB\tDWORD PTR ", "FISUBR\tDWORD PTR ", "FIDIV\tDWORD PTR ",
-    "FIDIVR\tDWORD PTR ",
-
-    "ESC_DA ", "ESC_DA ", "ESC_DA ", "ESC_DA ",
-    "ESC_DA     ", "ESC_DA ", "ESC_DA   ", "ESC_DA ",
-};
-
-#endif /* DEBUG */
-
-/* opcode=0xda */
-void x86emuOp_esc_coprocess_da(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset = 0;
-    u8 stkelem = 0;
-
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    DECODE_PRINTINSTR32(x86emu_fpu_op_da_tab, mod, rh, rl);
-    switch (mod) {
-      case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 3:           /* register to register */
-               stkelem = (u8)rl;
-        DECODE_PRINTF2("\tST(%d),ST\n", stkelem);
-        break;
-    }
-#ifdef X86EMU_FPU_PRESENT
-    switch (mod) {
-      case 3:
-        x86emu_fpu_illegal();
-        break;
-      default:
-        switch (rh) {
-          case 0:
-            x86emu_fpu_M_iadd(X86EMU_FPU_SHORT, destoffset);
-            break;
-          case 1:
-            x86emu_fpu_M_imul(X86EMU_FPU_SHORT, destoffset);
-            break;
-          case 2:
-            x86emu_fpu_M_icom(X86EMU_FPU_SHORT, destoffset);
-            break;
-          case 3:
-            x86emu_fpu_M_icomp(X86EMU_FPU_SHORT, destoffset);
-            break;
-          case 4:
-            x86emu_fpu_M_isub(X86EMU_FPU_SHORT, destoffset);
-            break;
-          case 5:
-            x86emu_fpu_M_isubr(X86EMU_FPU_SHORT, destoffset);
-            break;
-          case 6:
-            x86emu_fpu_M_idiv(X86EMU_FPU_SHORT, destoffset);
-            break;
-          case 7:
-            x86emu_fpu_M_idivr(X86EMU_FPU_SHORT, destoffset);
-            break;
-        }
-    }
-#else
-    (void)destoffset;
-    (void)stkelem;
-#endif
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR_NO_TRACE();
-}
-
-#ifdef DEBUG
-
-char *x86emu_fpu_op_db_tab[] = {
-    "FILD\tDWORD PTR ", "ESC_DB\t19", "FIST\tDWORD PTR ", "FISTP\tDWORD PTR ",
-    "ESC_DB\t1C", "FLD\tTBYTE PTR ", "ESC_DB\t1E", "FSTP\tTBYTE PTR ",
-
-    "FILD\tDWORD PTR ", "ESC_DB\t19", "FIST\tDWORD PTR ", "FISTP\tDWORD PTR ",
-    "ESC_DB\t1C", "FLD\tTBYTE PTR ", "ESC_DB\t1E", "FSTP\tTBYTE PTR ",
-
-    "FILD\tDWORD PTR ", "ESC_DB\t19", "FIST\tDWORD PTR ", "FISTP\tDWORD PTR ",
-    "ESC_DB\t1C", "FLD\tTBYTE PTR ", "ESC_DB\t1E", "FSTP\tTBYTE PTR ",
-};
-
-#endif /* DEBUG */
-
-/* opcode=0xdb */
-void x86emuOp_esc_coprocess_db(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset = 0;
-
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (mod != 3) {
-        DECODE_PRINTINSTR32(x86emu_fpu_op_db_tab, mod, rh, rl);
-    } else if (rh == 4) {       /* === 11 10 0 nnn */
-        switch (rl) {
-          case 0:
-            DECODE_PRINTF("FENI\n");
-            break;
-          case 1:
-            DECODE_PRINTF("FDISI\n");
-            break;
-          case 2:
-            DECODE_PRINTF("FCLEX\n");
-            break;
-          case 3:
-            DECODE_PRINTF("FINIT\n");
-            break;
-        }
-    } else {
-        DECODE_PRINTF2("ESC_DB %0x\n", (mod << 6) + (rh << 3) + (rl));
-    }
-#endif /* DEBUG */
-    switch (mod) {
-      case 0:
-        destoffset = decode_rm00_address(rl);
-        break;
-      case 1:
-        destoffset = decode_rm01_address(rl);
-        break;
-      case 2:
-        destoffset = decode_rm10_address(rl);
-        break;
-      case 3:                   /* register to register */
-        break;
-    }
-#ifdef X86EMU_FPU_PRESENT
-    /* execute */
-    switch (mod) {
-      case 3:
-        switch (rh) {
-          case 4:
-            switch (rl) {
-              case 0:
-                x86emu_fpu_R_feni();
-                break;
-              case 1:
-                x86emu_fpu_R_fdisi();
-                break;
-              case 2:
-                x86emu_fpu_R_fclex();
-                break;
-              case 3:
-                x86emu_fpu_R_finit();
-                break;
-              default:
-                x86emu_fpu_illegal();
-                break;
-            }
-            break;
-          default:
-            x86emu_fpu_illegal();
-            break;
-        }
-        break;
-      default:
-        switch (rh) {
-          case 0:
-            x86emu_fpu_M_fild(X86EMU_FPU_SHORT, destoffset);
-            break;
-          case 1:
-            x86emu_fpu_illegal();
-            break;
-          case 2:
-            x86emu_fpu_M_fist(X86EMU_FPU_SHORT, destoffset);
-            break;
-          case 3:
-            x86emu_fpu_M_fistp(X86EMU_FPU_SHORT, destoffset);
-            break;
-          case 4:
-            x86emu_fpu_illegal();
-            break;
-          case 5:
-            x86emu_fpu_M_fld(X86EMU_FPU_LDBL, destoffset);
-            break;
-                      case 6:
-            x86emu_fpu_illegal();
-            break;
-          case 7:
-            x86emu_fpu_M_fstp(X86EMU_FPU_LDBL, destoffset);
-            break;
-        }
-    }
-#else
-    (void)destoffset;
-#endif
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR_NO_TRACE();
-}
-
-#ifdef DEBUG
-char *x86emu_fpu_op_dc_tab[] = {
-    "FADD\tQWORD PTR ", "FMUL\tQWORD PTR ", "FCOM\tQWORD PTR ",
-    "FCOMP\tQWORD PTR ",
-    "FSUB\tQWORD PTR ", "FSUBR\tQWORD PTR ", "FDIV\tQWORD PTR ",
-    "FDIVR\tQWORD PTR ",
-
-    "FADD\tQWORD PTR ", "FMUL\tQWORD PTR ", "FCOM\tQWORD PTR ",
-    "FCOMP\tQWORD PTR ",
-    "FSUB\tQWORD PTR ", "FSUBR\tQWORD PTR ", "FDIV\tQWORD PTR ",
-    "FDIVR\tQWORD PTR ",
-
-    "FADD\tQWORD PTR ", "FMUL\tQWORD PTR ", "FCOM\tQWORD PTR ",
-    "FCOMP\tQWORD PTR ",
-    "FSUB\tQWORD PTR ", "FSUBR\tQWORD PTR ", "FDIV\tQWORD PTR ",
-    "FDIVR\tQWORD PTR ",
-
-    "FADD\t", "FMUL\t", "FCOM\t", "FCOMP\t",
-    "FSUBR\t", "FSUB\t", "FDIVR\t", "FDIV\t",
-};
-#endif /* DEBUG */
-
-/* opcode=0xdc */
-void x86emuOp_esc_coprocess_dc(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset = 0;
-    u8 stkelem = 0;
-
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    DECODE_PRINTINSTR32(x86emu_fpu_op_dc_tab, mod, rh, rl);
-    switch (mod) {
-      case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 3:                   /* register to register */
-               stkelem = (u8)rl;
-        DECODE_PRINTF2("\tST(%d),ST\n", stkelem);
-        break;
-    }
-#ifdef X86EMU_FPU_PRESENT
-    /* execute */
-    switch (mod) {
-      case 3:
-        switch (rh) {
-          case 0:
-            x86emu_fpu_R_fadd(stkelem, X86EMU_FPU_STKTOP);
-            break;
-          case 1:
-            x86emu_fpu_R_fmul(stkelem, X86EMU_FPU_STKTOP);
-            break;
-          case 2:
-            x86emu_fpu_R_fcom(stkelem, X86EMU_FPU_STKTOP);
-            break;
-          case 3:
-            x86emu_fpu_R_fcomp(stkelem, X86EMU_FPU_STKTOP);
-            break;
-          case 4:
-            x86emu_fpu_R_fsubr(stkelem, X86EMU_FPU_STKTOP);
-            break;
-          case 5:
-            x86emu_fpu_R_fsub(stkelem, X86EMU_FPU_STKTOP);
-            break;
-          case 6:
-            x86emu_fpu_R_fdivr(stkelem, X86EMU_FPU_STKTOP);
-            break;
-          case 7:
-            x86emu_fpu_R_fdiv(stkelem, X86EMU_FPU_STKTOP);
-            break;
-        }
-        break;
-      default:
-        switch (rh) {
-          case 0:
-            x86emu_fpu_M_fadd(X86EMU_FPU_DOUBLE, destoffset);
-            break;
-          case 1:
-            x86emu_fpu_M_fmul(X86EMU_FPU_DOUBLE, destoffset);
-            break;
-          case 2:
-            x86emu_fpu_M_fcom(X86EMU_FPU_DOUBLE, destoffset);
-            break;
-          case 3:
-            x86emu_fpu_M_fcomp(X86EMU_FPU_DOUBLE, destoffset);
-            break;
-          case 4:
-            x86emu_fpu_M_fsub(X86EMU_FPU_DOUBLE, destoffset);
-            break;
-          case 5:
-            x86emu_fpu_M_fsubr(X86EMU_FPU_DOUBLE, destoffset);
-            break;
-          case 6:
-            x86emu_fpu_M_fdiv(X86EMU_FPU_DOUBLE, destoffset);
-            break;
-          case 7:
-            x86emu_fpu_M_fdivr(X86EMU_FPU_DOUBLE, destoffset);
-            break;
-        }
-    }
-#else
-    (void)destoffset;
-    (void)stkelem;
-#endif
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR_NO_TRACE();
-}
-
-#ifdef DEBUG
-
-static char *x86emu_fpu_op_dd_tab[] = {
-    "FLD\tQWORD PTR ", "ESC_DD\t29,", "FST\tQWORD PTR ", "FSTP\tQWORD PTR ",
-    "FRSTOR\t", "ESC_DD\t2D,", "FSAVE\t", "FSTSW\t",
-
-    "FLD\tQWORD PTR ", "ESC_DD\t29,", "FST\tQWORD PTR ", "FSTP\tQWORD PTR ",
-    "FRSTOR\t", "ESC_DD\t2D,", "FSAVE\t", "FSTSW\t",
-
-    "FLD\tQWORD PTR ", "ESC_DD\t29,", "FST\tQWORD PTR ", "FSTP\tQWORD PTR ",
-    "FRSTOR\t", "ESC_DD\t2D,", "FSAVE\t", "FSTSW\t",
-
-    "FFREE\t", "FXCH\t", "FST\t", "FSTP\t",
-    "ESC_DD\t2C,", "ESC_DD\t2D,", "ESC_DD\t2E,", "ESC_DD\t2F,",
-};
-
-#endif /* DEBUG */
-
-/* opcode=0xdd */
-void x86emuOp_esc_coprocess_dd(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset = 0;
-    u8 stkelem = 0;
-
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    DECODE_PRINTINSTR32(x86emu_fpu_op_dd_tab, mod, rh, rl);
-    switch (mod) {
-      case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 3:                   /* register to register */
-               stkelem = (u8)rl;
-        DECODE_PRINTF2("\tST(%d),ST\n", stkelem);
-        break;
-    }
-#ifdef X86EMU_FPU_PRESENT
-    switch (mod) {
-      case 3:
-        switch (rh) {
-          case 0:
-            x86emu_fpu_R_ffree(stkelem);
-            break;
-          case 1:
-            x86emu_fpu_R_fxch(stkelem);
-            break;
-          case 2:
-            x86emu_fpu_R_fst(stkelem);  /* register version */
-            break;
-          case 3:
-            x86emu_fpu_R_fstp(stkelem); /* register version */
-            break;
-          default:
-            x86emu_fpu_illegal();
-            break;
-        }
-        break;
-      default:
-        switch (rh) {
-          case 0:
-            x86emu_fpu_M_fld(X86EMU_FPU_DOUBLE, destoffset);
-            break;
-          case 1:
-            x86emu_fpu_illegal();
-            break;
-          case 2:
-            x86emu_fpu_M_fst(X86EMU_FPU_DOUBLE, destoffset);
-            break;
-          case 3:
-            x86emu_fpu_M_fstp(X86EMU_FPU_DOUBLE, destoffset);
-            break;
-          case 4:
-            x86emu_fpu_M_frstor(X86EMU_FPU_WORD, destoffset);
-            break;
-          case 5:
-            x86emu_fpu_illegal();
-            break;
-          case 6:
-            x86emu_fpu_M_fsave(X86EMU_FPU_WORD, destoffset);
-            break;
-          case 7:
-            x86emu_fpu_M_fstsw(X86EMU_FPU_WORD, destoffset);
-            break;
-        }
-    }
-#else
-    (void)destoffset;
-    (void)stkelem;
-#endif
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR_NO_TRACE();
-}
-
-#ifdef DEBUG
-
-static char *x86emu_fpu_op_de_tab[] =
-{
-    "FIADD\tWORD PTR ", "FIMUL\tWORD PTR ", "FICOM\tWORD PTR ",
-    "FICOMP\tWORD PTR ",
-    "FISUB\tWORD PTR ", "FISUBR\tWORD PTR ", "FIDIV\tWORD PTR ",
-    "FIDIVR\tWORD PTR ",
-
-    "FIADD\tWORD PTR ", "FIMUL\tWORD PTR ", "FICOM\tWORD PTR ",
-    "FICOMP\tWORD PTR ",
-    "FISUB\tWORD PTR ", "FISUBR\tWORD PTR ", "FIDIV\tWORD PTR ",
-    "FIDIVR\tWORD PTR ",
-
-    "FIADD\tWORD PTR ", "FIMUL\tWORD PTR ", "FICOM\tWORD PTR ",
-    "FICOMP\tWORD PTR ",
-    "FISUB\tWORD PTR ", "FISUBR\tWORD PTR ", "FIDIV\tWORD PTR ",
-    "FIDIVR\tWORD PTR ",
-
-    "FADDP\t", "FMULP\t", "FCOMP\t", "FCOMPP\t",
-    "FSUBRP\t", "FSUBP\t", "FDIVRP\t", "FDIVP\t",
-};
-
-#endif /* DEBUG */
-
-/* opcode=0xde */
-void x86emuOp_esc_coprocess_de(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset = 0;
-    u8 stkelem = 0;
-
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    DECODE_PRINTINSTR32(x86emu_fpu_op_de_tab, mod, rh, rl);
-    switch (mod) {
-      case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 3:                   /* register to register */
-               stkelem = (u8)rl;
-        DECODE_PRINTF2("\tST(%d),ST\n", stkelem);
-        break;
-    }
-#ifdef X86EMU_FPU_PRESENT
-    switch (mod) {
-      case 3:
-        switch (rh) {
-          case 0:
-            x86emu_fpu_R_faddp(stkelem, X86EMU_FPU_STKTOP);
-            break;
-          case 1:
-            x86emu_fpu_R_fmulp(stkelem, X86EMU_FPU_STKTOP);
-            break;
-          case 2:
-            x86emu_fpu_R_fcomp(stkelem, X86EMU_FPU_STKTOP);
-            break;
-          case 3:
-            if (stkelem == 1)
-              x86emu_fpu_R_fcompp(stkelem, X86EMU_FPU_STKTOP);
-            else
-              x86emu_fpu_illegal();
-            break;
-          case 4:
-            x86emu_fpu_R_fsubrp(stkelem, X86EMU_FPU_STKTOP);
-            break;
-          case 5:
-            x86emu_fpu_R_fsubp(stkelem, X86EMU_FPU_STKTOP);
-            break;
-          case 6:
-            x86emu_fpu_R_fdivrp(stkelem, X86EMU_FPU_STKTOP);
-            break;
-          case 7:
-            x86emu_fpu_R_fdivp(stkelem, X86EMU_FPU_STKTOP);
-            break;
-        }
-        break;
-      default:
-        switch (rh) {
-          case 0:
-            x86emu_fpu_M_fiadd(X86EMU_FPU_WORD, destoffset);
-            break;
-          case 1:
-            x86emu_fpu_M_fimul(X86EMU_FPU_WORD, destoffset);
-            break;
-          case 2:
-            x86emu_fpu_M_ficom(X86EMU_FPU_WORD, destoffset);
-            break;
-          case 3:
-            x86emu_fpu_M_ficomp(X86EMU_FPU_WORD, destoffset);
-            break;
-          case 4:
-            x86emu_fpu_M_fisub(X86EMU_FPU_WORD, destoffset);
-            break;
-          case 5:
-            x86emu_fpu_M_fisubr(X86EMU_FPU_WORD, destoffset);
-            break;
-          case 6:
-            x86emu_fpu_M_fidiv(X86EMU_FPU_WORD, destoffset);
-            break;
-          case 7:
-            x86emu_fpu_M_fidivr(X86EMU_FPU_WORD, destoffset);
-            break;
-        }
-    }
-#else
-    (void)destoffset;
-    (void)stkelem;
-#endif
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR_NO_TRACE();
-}
-
-#ifdef DEBUG
-
-static char *x86emu_fpu_op_df_tab[] = {
-    /* mod == 00 */
-    "FILD\tWORD PTR ", "ESC_DF\t39\n", "FIST\tWORD PTR ", "FISTP\tWORD PTR ",
-    "FBLD\tTBYTE PTR ", "FILD\tQWORD PTR ", "FBSTP\tTBYTE PTR ",
-    "FISTP\tQWORD PTR ",
-
-    /* mod == 01 */
-    "FILD\tWORD PTR ", "ESC_DF\t39 ", "FIST\tWORD PTR ", "FISTP\tWORD PTR ",
-    "FBLD\tTBYTE PTR ", "FILD\tQWORD PTR ", "FBSTP\tTBYTE PTR ",
-    "FISTP\tQWORD PTR ",
-
-    /* mod == 10 */
-    "FILD\tWORD PTR ", "ESC_DF\t39 ", "FIST\tWORD PTR ", "FISTP\tWORD PTR ",
-    "FBLD\tTBYTE PTR ", "FILD\tQWORD PTR ", "FBSTP\tTBYTE PTR ",
-    "FISTP\tQWORD PTR ",
-
-    /* mod == 11 */
-    "FFREE\t", "FXCH\t", "FST\t", "FSTP\t",
-    "ESC_DF\t3C,", "ESC_DF\t3D,", "ESC_DF\t3E,", "ESC_DF\t3F,"
-};
-
-#endif /* DEBUG */
-
-/* opcode=0xdf */
-void x86emuOp_esc_coprocess_df(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset = 0;
-    u8 stkelem = 0;
-
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    DECODE_PRINTINSTR32(x86emu_fpu_op_df_tab, mod, rh, rl);
-    switch (mod) {
-      case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        break;
-      case 3:                   /* register to register */
-               stkelem = (u8)rl;
-        DECODE_PRINTF2("\tST(%d)\n", stkelem);
-        break;
-    }
-#ifdef X86EMU_FPU_PRESENT
-    switch (mod) {
-      case 3:
-        switch (rh) {
-          case 0:
-            x86emu_fpu_R_ffree(stkelem);
-            break;
-          case 1:
-            x86emu_fpu_R_fxch(stkelem);
-            break;
-          case 2:
-            x86emu_fpu_R_fst(stkelem);  /* register version */
-            break;
-          case 3:
-            x86emu_fpu_R_fstp(stkelem); /* register version */
-            break;
-          default:
-            x86emu_fpu_illegal();
-            break;
-        }
-        break;
-      default:
-        switch (rh) {
-          case 0:
-            x86emu_fpu_M_fild(X86EMU_FPU_WORD, destoffset);
-            break;
-          case 1:
-            x86emu_fpu_illegal();
-            break;
-          case 2:
-            x86emu_fpu_M_fist(X86EMU_FPU_WORD, destoffset);
-            break;
-          case 3:
-            x86emu_fpu_M_fistp(X86EMU_FPU_WORD, destoffset);
-            break;
-          case 4:
-            x86emu_fpu_M_fbld(X86EMU_FPU_BSD, destoffset);
-            break;
-          case 5:
-            x86emu_fpu_M_fild(X86EMU_FPU_LONG, destoffset);
-            break;
-          case 6:
-            x86emu_fpu_M_fbstp(X86EMU_FPU_BSD, destoffset);
-            break;
-          case 7:
-            x86emu_fpu_M_fistp(X86EMU_FPU_LONG, destoffset);
-            break;
-        }
-    }
-#else
-    (void)destoffset;
-    (void)stkelem;
-#endif
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR_NO_TRACE();
-}
diff --git a/src/hwinfo/src/x86emu/include/x86emu.h b/src/hwinfo/src/x86emu/include/x86emu.h
deleted file mode 100644 (file)
index fd8ecff..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  Header file for public specific functions.
-*               Any application linking against us should only
-*               include this header
-*
-****************************************************************************/
-/* $XFree86$ */
-
-#ifndef __X86EMU_X86EMU_H
-#define __X86EMU_X86EMU_H
-
-#ifdef SCITECH
-#include "scitech.h"
-#define        X86API  _ASMAPI
-#define        X86APIP _ASMAPIP
-typedef int X86EMU_pioAddr;
-#else
-#include "x86emu/types.h"
-#define        X86API
-#define        X86APIP *
-#endif
-#include "x86emu/regs.h"
-
-/*---------------------- Macros and type definitions ----------------------*/
-
-#ifdef PACK
-# pragma       PACK   /* Don't pack structs with function pointers! */
-#endif
-
-/****************************************************************************
-REMARKS:
-Data structure containing ponters to programmed I/O functions used by the
-emulator. This is used so that the user program can hook all programmed
-I/O for the emulator to handled as necessary by the user program. By
-default the emulator contains simple functions that do not do access the
-hardware in any way. To allow the emualtor access the hardware, you will
-need to override the programmed I/O functions using the X86EMU_setupPioFuncs
-function.
-
-HEADER:
-x86emu.h
-
-MEMBERS:
-inb            - Function to read a byte from an I/O port
-inw            - Function to read a word from an I/O port
-inl     - Function to read a dword from an I/O port
-outb   - Function to write a byte to an I/O port
-outw    - Function to write a word to an I/O port
-outl    - Function to write a dword to an I/O port
-****************************************************************************/
-typedef struct {
-       u8      (X86APIP inb)(X86EMU_pioAddr addr);
-       u16     (X86APIP inw)(X86EMU_pioAddr addr);
-       u32     (X86APIP inl)(X86EMU_pioAddr addr);
-       void    (X86APIP outb)(X86EMU_pioAddr addr, u8 val);
-       void    (X86APIP outw)(X86EMU_pioAddr addr, u16 val);
-       void    (X86APIP outl)(X86EMU_pioAddr addr, u32 val);
-       } X86EMU_pioFuncs;
-
-/****************************************************************************
-REMARKS:
-Data structure containing ponters to memory access functions used by the
-emulator. This is used so that the user program can hook all memory
-access functions as necessary for the emulator. By default the emulator
-contains simple functions that only access the internal memory of the
-emulator. If you need specialised functions to handle access to different
-types of memory (ie: hardware framebuffer accesses and BIOS memory access
-etc), you will need to override this using the X86EMU_setupMemFuncs
-function.
-
-HEADER:
-x86emu.h
-
-MEMBERS:
-rdb            - Function to read a byte from an address
-rdw            - Function to read a word from an address
-rdl     - Function to read a dword from an address
-wrb            - Function to write a byte to an address
-wrw            - Function to write a word to an address
-wrl            - Function to write a dword to an address
-****************************************************************************/
-typedef struct {
-       u8      (X86APIP rdb)(u32 addr);
-       u16     (X86APIP rdw)(u32 addr);
-       u32     (X86APIP rdl)(u32 addr);
-       void    (X86APIP wrb)(u32 addr, u8 val);
-       void    (X86APIP wrw)(u32 addr, u16 val);
-       void    (X86APIP wrl)(u32 addr, u32 val);
-       } X86EMU_memFuncs;
-
-/****************************************************************************
-  Here are the default memory read and write
-  function in case they are needed as fallbacks.
-***************************************************************************/
-extern u8 X86API rdb(u32 addr);
-extern u16 X86API rdw(u32 addr);
-extern u32 X86API rdl(u32 addr);
-extern void X86API wrb(u32 addr, u8 val);
-extern void X86API wrw(u32 addr, u16 val);
-extern void X86API wrl(u32 addr, u32 val);
-
-#ifdef END_PACK
-# pragma       END_PACK
-#endif
-
-/*--------------------- type definitions -----------------------------------*/
-
-typedef void (X86APIP X86EMU_intrFuncs)(int num);
-extern X86EMU_intrFuncs _X86EMU_intrTab[256];
-
-/*-------------------------- Function Prototypes --------------------------*/
-
-#ifdef  __cplusplus
-extern "C" {                                   /* Use "C" linkage when in C++ mode */
-#endif
-
-void   X86EMU_setupMemFuncs(X86EMU_memFuncs *funcs);
-void   X86EMU_setupPioFuncs(X86EMU_pioFuncs *funcs);
-void   X86EMU_setupIntrFuncs(X86EMU_intrFuncs funcs[]);
-void   X86EMU_prepareForInt(int num);
-
-/* decode.c */
-
-void   X86EMU_exec(unsigned timeout);
-void   X86EMU_halt_sys(void);
-
-#ifdef DEBUG
-#define        HALT_SYS()      \
-       printk("halt_sys: file %s, line %d\n", __FILE__, __LINE__), \
-       X86EMU_halt_sys()
-#else
-#define        HALT_SYS()      X86EMU_halt_sys()
-#endif
-
-/* Debug options */
-
-#define DEBUG_DECODE_F          0x000001 /* print decoded instruction  */
-#define DEBUG_TRACE_F           0x000002 /* dump regs before/after execution */
-#define DEBUG_STEP_F            0x000004
-#define DEBUG_DISASSEMBLE_F     0x000008
-#define DEBUG_BREAK_F           0x000010
-#define DEBUG_SVC_F             0x000020
-#define DEBUG_SAVE_IP_CS_F      0x000040
-#define DEBUG_FS_F              0x000080
-#define DEBUG_PROC_F            0x000100
-#define DEBUG_SYSINT_F          0x000200 /* bios system interrupts. */
-#define DEBUG_TRACECALL_F       0x000400
-#define DEBUG_INSTRUMENT_F      0x000800
-#define DEBUG_MEM_TRACE_F       0x001000 
-#define DEBUG_IO_TRACE_F        0x002000 
-#define DEBUG_TRACECALL_REGS_F  0x004000
-#define DEBUG_DECODE_NOPRINT_F  0x008000 
-#define DEBUG_EXIT              0x010000
-#define DEBUG_SYS_F             (DEBUG_SVC_F|DEBUG_FS_F|DEBUG_PROC_F)
-
-void   X86EMU_trace_regs(void);
-void   X86EMU_trace_xregs(void);
-void   X86EMU_dump_memory(u16 seg, u16 off, u32 amt);
-int    X86EMU_trace_on(void);
-int    X86EMU_trace_off(void);
-
-#ifdef  __cplusplus
-}                                              /* End of "C" linkage for C++           */
-#endif
-
-#endif /* __X86EMU_X86EMU_H */
diff --git a/src/hwinfo/src/x86emu/include/x86emu/fpu_regs.h b/src/hwinfo/src/x86emu/include/x86emu/fpu_regs.h
deleted file mode 100644 (file)
index a62b493..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  Header file for FPU register definitions.
-*
-****************************************************************************/
-/* $XFree86: xc/extras/x86emu/include/x86emu/fpu_regs.h,v 1.2 2003/10/22 20:03:05 tsi Exp $ */
-
-#ifndef __X86EMU_FPU_REGS_H
-#define __X86EMU_FPU_REGS_H
-
-#ifdef X86_FPU_SUPPORT
-
-#ifdef PACK
-# pragma PACK
-#endif
-
-/* Basic 8087 register can hold any of the following values: */
-
-union x86_fpu_reg_u {
-    s8                  tenbytes[10];
-    double              dval;
-    float               fval;
-    s16                 sval;
-    s32                 lval;
-       };
-
-struct x86_fpu_reg {
-       union x86_fpu_reg_u reg;
-       char                tag;
-       };
-
-/*
- * Since we are not going to worry about the problems of aliasing
- * registers, every time a register is modified, its result type is
- * set in the tag fields for that register.  If some operation
- * attempts to access the type in a way inconsistent with its current
- * storage format, then we flag the operation.  If common, we'll
- * attempt the conversion.
- */
-
-#define  X86_FPU_VALID          0x80
-#define  X86_FPU_REGTYP(r)      ((r) & 0x7F)
-
-#define  X86_FPU_WORD           0x0
-#define  X86_FPU_SHORT          0x1
-#define  X86_FPU_LONG           0x2
-#define  X86_FPU_FLOAT          0x3
-#define  X86_FPU_DOUBLE         0x4
-#define  X86_FPU_LDBL           0x5
-#define  X86_FPU_BSD            0x6
-
-#define  X86_FPU_STKTOP  0
-
-struct x86_fpu_registers {
-    struct x86_fpu_reg  x86_fpu_stack[8];
-    int                 x86_fpu_flags;
-    int                 x86_fpu_config;         /* rounding modes, etc. */
-    short               x86_fpu_tos, x86_fpu_bos;
-       };
-
-#ifdef END_PACK
-# pragma END_PACK
-#endif
-
-/*
- * There are two versions of the following macro.
- *
- * One version is for opcode D9, for which there are more than 32
- * instructions encoded in the second byte of the opcode.
- *
- * The other version, deals with all the other 7 i87 opcodes, for
- * which there are only 32 strings needed to describe the
- * instructions.
- */
-
-#endif /* X86_FPU_SUPPORT */
-
-#ifdef DEBUG
-# define DECODE_PRINTINSTR32(t,mod,rh,rl)      \
-       DECODE_PRINTF(t[(mod<<3)+(rh)]);
-# define DECODE_PRINTINSTR256(t,mod,rh,rl)     \
-       DECODE_PRINTF(t[(mod<<6)+(rh<<3)+(rl)]);
-#else
-# define DECODE_PRINTINSTR32(t,mod,rh,rl)
-# define DECODE_PRINTINSTR256(t,mod,rh,rl)
-#endif
-
-#endif /* __X86EMU_FPU_REGS_H */
diff --git a/src/hwinfo/src/x86emu/include/x86emu/regs.h b/src/hwinfo/src/x86emu/include/x86emu/regs.h
deleted file mode 100644 (file)
index 5d224ce..0000000
+++ /dev/null
@@ -1,338 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  Header file for x86 register definitions.
-*
-****************************************************************************/
-/* $XFree86: xc/extras/x86emu/include/x86emu/regs.h,v 1.5 2003/10/22 20:03:05 tsi Exp $ */
-
-#ifndef __X86EMU_REGS_H
-#define __X86EMU_REGS_H
-
-/*---------------------- Macros and type definitions ----------------------*/
-
-#ifdef PACK
-# pragma PACK
-#endif
-
-/*
- * General EAX, EBX, ECX, EDX type registers.  Note that for
- * portability, and speed, the issue of byte swapping is not addressed
- * in the registers.  All registers are stored in the default format
- * available on the host machine.  The only critical issue is that the
- * registers should line up EXACTLY in the same manner as they do in
- * the 386.  That is:
- *
- * EAX & 0xff  === AL
- * EAX & 0xffff == AX
- *
- * etc.  The result is that alot of the calculations can then be
- * done using the native instruction set fully.
- */
-
-#ifdef __BIG_ENDIAN__
-
-typedef struct {
-    u32 e_reg;
-       } I32_reg_t;
-
-typedef struct {
-       u16 filler0, x_reg;
-       } I16_reg_t;
-
-typedef struct {
-       u8 filler0, filler1, h_reg, l_reg;
-       } I8_reg_t;
-
-#else /* !__BIG_ENDIAN__ */
-
-typedef struct {
-    u32 e_reg;
-       } I32_reg_t;
-
-typedef struct {
-       u16 x_reg;
-       } I16_reg_t;
-
-typedef struct {
-       u8 l_reg, h_reg;
-       } I8_reg_t;
-
-#endif /* BIG_ENDIAN */
-
-typedef union {
-       I32_reg_t   I32_reg;
-       I16_reg_t   I16_reg;
-       I8_reg_t    I8_reg;
-       } i386_general_register;
-
-struct i386_general_regs {
-       i386_general_register A, B, C, D;
-       };
-
-typedef struct i386_general_regs Gen_reg_t;
-
-struct i386_special_regs {
-       i386_general_register SP, BP, SI, DI, IP;
-       u32 FLAGS;
-       };
-
-/*  
- * Segment registers here represent the 16 bit quantities
- * CS, DS, ES, SS.
- */
-
-struct i386_segment_regs {
-    u16 CS, DS, SS, ES, FS, GS;
-       };
-
-/* 8 bit registers */
-#define R_AH  gen.A.I8_reg.h_reg
-#define R_AL  gen.A.I8_reg.l_reg
-#define R_BH  gen.B.I8_reg.h_reg
-#define R_BL  gen.B.I8_reg.l_reg
-#define R_CH  gen.C.I8_reg.h_reg
-#define R_CL  gen.C.I8_reg.l_reg
-#define R_DH  gen.D.I8_reg.h_reg
-#define R_DL  gen.D.I8_reg.l_reg
-
-/* 16 bit registers */
-#define R_AX  gen.A.I16_reg.x_reg
-#define R_BX  gen.B.I16_reg.x_reg
-#define R_CX  gen.C.I16_reg.x_reg
-#define R_DX  gen.D.I16_reg.x_reg
-
-/* 32 bit extended registers */
-#define R_EAX  gen.A.I32_reg.e_reg
-#define R_EBX  gen.B.I32_reg.e_reg
-#define R_ECX  gen.C.I32_reg.e_reg
-#define R_EDX  gen.D.I32_reg.e_reg
-
-/* special registers */
-#define R_SP  spc.SP.I16_reg.x_reg
-#define R_BP  spc.BP.I16_reg.x_reg
-#define R_SI  spc.SI.I16_reg.x_reg
-#define R_DI  spc.DI.I16_reg.x_reg
-#define R_IP  spc.IP.I16_reg.x_reg
-#define R_FLG spc.FLAGS
-
-/* special registers */
-#define R_SP  spc.SP.I16_reg.x_reg
-#define R_BP  spc.BP.I16_reg.x_reg
-#define R_SI  spc.SI.I16_reg.x_reg
-#define R_DI  spc.DI.I16_reg.x_reg
-#define R_IP  spc.IP.I16_reg.x_reg
-#define R_FLG spc.FLAGS
-
-/* special registers */
-#define R_ESP  spc.SP.I32_reg.e_reg
-#define R_EBP  spc.BP.I32_reg.e_reg
-#define R_ESI  spc.SI.I32_reg.e_reg
-#define R_EDI  spc.DI.I32_reg.e_reg
-#define R_EIP  spc.IP.I32_reg.e_reg
-#define R_EFLG spc.FLAGS
-
-/* segment registers */
-#define R_CS  seg.CS
-#define R_DS  seg.DS
-#define R_SS  seg.SS
-#define R_ES  seg.ES
-#define R_FS  seg.FS
-#define R_GS  seg.GS
-
-/* flag conditions   */
-#define FB_CF 0x0001            /* CARRY flag  */
-#define FB_PF 0x0004            /* PARITY flag */
-#define FB_AF 0x0010            /* AUX  flag   */
-#define FB_ZF 0x0040            /* ZERO flag   */
-#define FB_SF 0x0080            /* SIGN flag   */
-#define FB_TF 0x0100            /* TRAP flag   */
-#define FB_IF 0x0200            /* INTERRUPT ENABLE flag */
-#define FB_DF 0x0400            /* DIR flag    */
-#define FB_OF 0x0800            /* OVERFLOW flag */
-
-/* 80286 and above always have bit#1 set */
-#define F_ALWAYS_ON  (0x0002)   /* flag bits always on */
-
-/*
- * Define a mask for only those flag bits we will ever pass back 
- * (via PUSHF) 
- */
-#define F_MSK (FB_CF|FB_PF|FB_AF|FB_ZF|FB_SF|FB_TF|FB_IF|FB_DF|FB_OF)
-
-/* following bits masked in to a 16bit quantity */
-
-#define F_CF 0x0001             /* CARRY flag  */
-#define F_PF 0x0004             /* PARITY flag */
-#define F_AF 0x0010             /* AUX  flag   */
-#define F_ZF 0x0040             /* ZERO flag   */
-#define F_SF 0x0080             /* SIGN flag   */
-#define F_TF 0x0100             /* TRAP flag   */
-#define F_IF 0x0200             /* INTERRUPT ENABLE flag */
-#define F_DF 0x0400             /* DIR flag    */
-#define F_OF 0x0800             /* OVERFLOW flag */
-
-#define TOGGLE_FLAG(flag)      (M.x86.R_FLG ^= (flag))
-#define SET_FLAG(flag)         (M.x86.R_FLG |= (flag))
-#define CLEAR_FLAG(flag)       (M.x86.R_FLG &= ~(flag))
-#define ACCESS_FLAG(flag)      (M.x86.R_FLG & (flag))
-#define CLEARALL_FLAG(m)       (M.x86.R_FLG = 0)
-
-#define CONDITIONAL_SET_FLAG(COND,FLAG) \
-  if (COND) SET_FLAG(FLAG); else CLEAR_FLAG(FLAG)
-
-#define F_PF_CALC 0x010000      /* PARITY flag has been calced    */
-#define F_ZF_CALC 0x020000      /* ZERO flag has been calced      */
-#define F_SF_CALC 0x040000      /* SIGN flag has been calced      */
-
-#define F_ALL_CALC      0xff0000        /* All have been calced   */
-
-/*
- * Emulator machine state.
- * Segment usage control.
- */
-#define SYSMODE_SEG_DS_SS       0x00000001
-#define SYSMODE_SEGOVR_CS       0x00000002
-#define SYSMODE_SEGOVR_DS       0x00000004
-#define SYSMODE_SEGOVR_ES       0x00000008
-#define SYSMODE_SEGOVR_FS       0x00000010
-#define SYSMODE_SEGOVR_GS       0x00000020
-#define SYSMODE_SEGOVR_SS       0x00000040
-#define SYSMODE_PREFIX_REPE     0x00000080
-#define SYSMODE_PREFIX_REPNE    0x00000100
-#define SYSMODE_PREFIX_DATA     0x00000200
-#define SYSMODE_PREFIX_ADDR     0x00000400
-#define SYSMODE_INTR_PENDING    0x10000000
-#define SYSMODE_EXTRN_INTR      0x20000000
-#define SYSMODE_HALTED          0x40000000
-
-#define SYSMODE_SEGMASK (SYSMODE_SEG_DS_SS      | \
-                                                SYSMODE_SEGOVR_CS      | \
-                                                SYSMODE_SEGOVR_DS      | \
-                                                SYSMODE_SEGOVR_ES      | \
-                                                SYSMODE_SEGOVR_FS      | \
-                                                SYSMODE_SEGOVR_GS      | \
-                                                SYSMODE_SEGOVR_SS)
-#define SYSMODE_CLRMASK (SYSMODE_SEG_DS_SS      | \
-                                                SYSMODE_SEGOVR_CS      | \
-                                                SYSMODE_SEGOVR_DS      | \
-                                                SYSMODE_SEGOVR_ES      | \
-                                                SYSMODE_SEGOVR_FS      | \
-                                                SYSMODE_SEGOVR_GS      | \
-                                                SYSMODE_SEGOVR_SS      | \
-                                                SYSMODE_PREFIX_DATA    | \
-                                                SYSMODE_PREFIX_ADDR)
-
-#define  INTR_SYNCH           0x1
-#define  INTR_ASYNCH          0x2
-#define  INTR_HALTED          0x4
-
-typedef struct {
-    struct i386_general_regs    gen;
-    struct i386_special_regs    spc;
-    struct i386_segment_regs    seg;
-    /*
-     * MODE contains information on:
-     *  REPE prefix             2 bits  repe,repne
-     *  SEGMENT overrides       5 bits  normal,DS,SS,CS,ES
-     *  Delayed flag set        3 bits  (zero, signed, parity)
-     *  reserved                6 bits
-     *  interrupt #             8 bits  instruction raised interrupt
-     *  BIOS video segregs      4 bits  
-     *  Interrupt Pending       1 bits  
-     *  Extern interrupt        1 bits
-     *  Halted                  1 bits
-     */
-    u32                         mode;
-    volatile int                intr;   /* mask of pending interrupts */
-       int                         debug;
-#ifdef DEBUG
-       int                         check;
-    u16                         saved_ip;
-    u16                         saved_cs;
-    int                         enc_pos;
-    int                         enc_str_pos;
-    char                        decode_buf[32]; /* encoded byte stream  */
-    char                        decoded_buf[256]; /* disassembled strings */
-#endif
-    u8                          intno;
-    u8                          __pad[3];
-       } X86EMU_regs;
-
-/****************************************************************************
-REMARKS:
-Structure maintaining the emulator machine state.
-
-MEMBERS:
-mem_base               - Base real mode memory for the emulator
-mem_size               - Size of the real mode memory block for the emulator
-private                        - private data pointer
-x86                    - X86 registers
-****************************************************************************/
-typedef struct {
-       unsigned long   mem_base;
-       unsigned long   mem_size;
-       void*           private;
-       X86EMU_regs             x86;
-       } X86EMU_sysEnv;
-
-#ifdef END_PACK
-# pragma END_PACK
-#endif
-
-/*----------------------------- Global Variables --------------------------*/
-
-#ifdef  __cplusplus
-extern "C" {                                   /* Use "C" linkage when in C++ mode */
-#endif
-
-/* Global emulator machine state.
- *
- * We keep it global to avoid pointer dereferences in the code for speed.
- */
-
-extern    X86EMU_sysEnv        _X86EMU_env;
-#define   M             _X86EMU_env
-
-/*-------------------------- Function Prototypes --------------------------*/
-
-/* Function to log information at runtime */
-
-void   printk(const char *fmt, ...);
-
-#ifdef  __cplusplus
-}                                              /* End of "C" linkage for C++           */
-#endif
-
-#endif /* __X86EMU_REGS_H */
diff --git a/src/hwinfo/src/x86emu/include/x86emu/types.h b/src/hwinfo/src/x86emu/include/x86emu/types.h
deleted file mode 100644 (file)
index f31d77f..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  Header file for x86 emulator type definitions.
-*
-****************************************************************************/
-
-/* $XFree86: xc/extras/x86emu/include/x86emu/types.h,v 1.6 2003/06/12 14:12:26 eich Exp $ */
-
-#ifndef __X86EMU_TYPES_H
-#define __X86EMU_TYPES_H
-
-#ifndef IN_MODULE
-#include <sys/types.h>
-#endif
-
-/*
- * The following kludge is an attempt to work around typedef conflicts with
- * <sys/types.h>.
- */
-#define u8   x86emuu8
-#define u16  x86emuu16
-#define u32  x86emuu32
-#define u64  x86emuu64
-#define s8   x86emus8
-#define s16  x86emus16
-#define s32  x86emus32
-#define s64  x86emus64
-#define uint x86emuuint
-#define sint x86emusint
-
-/*---------------------- Macros and type definitions ----------------------*/
-
-/* Currently only for Linux/32bit */
-#undef  __HAS_LONG_LONG__
-#if defined(__GNUC__) && !defined(NO_LONG_LONG)
-#define __HAS_LONG_LONG__
-#endif
-
-/* Taken from Xmd.h */
-#undef NUM32
-#if defined (_LP64) || \
-    defined(__alpha) || defined(__alpha__) || \
-    defined(__ia64__) || defined(ia64) || \
-    defined(__sparc64__) || \
-    defined(__s390x__) || \
-    (defined(__hppa__) && defined(__LP64)) || \
-    defined(__AMD64__) || defined(AMD64) || \
-    (defined(__sgi) && (_MIPS_SZLONG == 64))
-#define NUM32 int
-#else
-#define NUM32 long
-#endif
-
-typedef unsigned char          u8;
-typedef unsigned short                 u16;
-typedef unsigned NUM32                 u32;
-#ifdef __HAS_LONG_LONG__
-typedef unsigned long long     u64;
-#endif
-
-typedef char                           s8;
-typedef short                          s16;
-typedef NUM32                          s32;
-#ifdef __HAS_LONG_LONG__
-typedef long long                      s64;
-#endif
-
-typedef unsigned int                   uint;
-typedef int                            sint;
-
-typedef u16 X86EMU_pioAddr;
-
-#undef NUM32
-
-#endif /* __X86EMU_TYPES_H */
diff --git a/src/hwinfo/src/x86emu/ops.c b/src/hwinfo/src/x86emu/ops.c
deleted file mode 100644 (file)
index 6fc936b..0000000
+++ /dev/null
@@ -1,11699 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  This file includes subroutines to implement the decoding
-*               and emulation of all the x86 processor instructions.
-*
-* There are approximately 250 subroutines in here, which correspond
-* to the 256 byte-"opcodes" found on the 8086.  The table which
-* dispatches this is found in the files optab.[ch].
-*
-* Each opcode proc has a comment preceeding it which gives it's table
-* address.  Several opcodes are missing (undefined) in the table.
-*
-* Each proc includes information for decoding (DECODE_PRINTF and
-* DECODE_PRINTF2), debugging (TRACE_REGS, SINGLE_STEP), and misc
-* functions (START_OF_INSTR, END_OF_INSTR).
-*
-* Many of the procedures are *VERY* similar in coding.  This has
-* allowed for a very large amount of code to be generated in a fairly
-* short amount of time (i.e. cut, paste, and modify).  The result is
-* that much of the code below could have been folded into subroutines
-* for a large reduction in size of this file.  The downside would be
-* that there would be a penalty in execution speed.  The file could
-* also have been *MUCH* larger by inlining certain functions which
-* were called.  This could have resulted even faster execution.  The
-* prime directive I used to decide whether to inline the code or to
-* modularize it, was basically: 1) no unnecessary subroutine calls,
-* 2) no routines more than about 200 lines in size, and 3) modularize
-* any code that I might not get right the first time.  The fetch_*
-* subroutines fall into the latter category.  The The decode_* fall
-* into the second category.  The coding of the "switch(mod){ .... }"
-* in many of the subroutines below falls into the first category.
-* Especially, the coding of {add,and,or,sub,...}_{byte,word}
-* subroutines are an especially glaring case of the third guideline.
-* Since so much of the code is cloned from other modules (compare
-* opcode #00 to opcode #01), making the basic operations subroutine
-* calls is especially important; otherwise mistakes in coding an
-* "add" would represent a nightmare in maintenance.
-*
-****************************************************************************/
-
-/* $XFree86: xc/extras/x86emu/src/x86emu/ops.c,v 1.8tsi Exp $ */
-
-#include "x86emu/x86emui.h"
-
-/*----------------------------- Implementation ----------------------------*/
-
-/****************************************************************************
-PARAMETERS:
-op1 - Instruction op code
-
-REMARKS:
-Handles illegal opcodes.
-****************************************************************************/
-static void x86emuOp_illegal_op(
-    u8 op1)
-{
-    START_OF_INSTR();
-    if (M.x86.R_SP != 0) {
-    DECODE_PRINTF("ILLEGAL X86 OPCODE\n");
-    TRACE_REGS();
-    printk("%04x:%04x: %02X ILLEGAL X86 OPCODE!\n",
-        M.x86.R_CS, M.x86.R_IP-1,op1);
-    HALT_SYS();
-        }
-    else {
-        /* If we get here, it means the stack pointer is back to zero
-         * so we are just returning from an emulator service call
-         * so therte is no need to display an error message. We trap
-         * the emulator with an 0xF1 opcode to finish the service
-         * call.
-         */
-        X86EMU_halt_sys();
-        }
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x00
-****************************************************************************/
-static void x86emuOp_add_byte_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-    u8 *destreg, *srcreg;
-    u8 destval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("ADD\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = add_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = add_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = add_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = add_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x01
-****************************************************************************/
-static void x86emuOp_add_word_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("ADD\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = add_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = add_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = add_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = add_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = add_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = add_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = add_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = add_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x02
-****************************************************************************/
-static void x86emuOp_add_byte_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint srcoffset;
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("ADD\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = add_byte(*destreg, srcval);
-        break;
-    case 1:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = add_byte(*destreg, srcval);
-        break;
-    case 2:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = add_byte(*destreg, srcval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = add_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x03
-****************************************************************************/
-static void x86emuOp_add_word_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("ADD\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = add_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = add_word(*destreg, srcval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = add_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = add_word(*destreg, srcval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = add_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = add_word(*destreg, srcval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = add_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = add_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x04
-****************************************************************************/
-static void x86emuOp_add_byte_AL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("ADD\tAL,");
-    srcval = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    M.x86.R_AL = add_byte(M.x86.R_AL, srcval);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x05
-****************************************************************************/
-static void x86emuOp_add_word_AX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("ADD\tEAX,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("ADD\tAX,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = add_long(M.x86.R_EAX, srcval);
-    } else {
-        M.x86.R_AX = add_word(M.x86.R_AX, (u16)srcval);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x06
-****************************************************************************/
-static void x86emuOp_push_ES(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("PUSH\tES\n");
-    TRACE_AND_STEP();
-    push_word(M.x86.R_ES);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x07
-****************************************************************************/
-static void x86emuOp_pop_ES(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("POP\tES\n");
-    TRACE_AND_STEP();
-    M.x86.R_ES = pop_word();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x08
-****************************************************************************/
-static void x86emuOp_or_byte_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint destoffset;
-    u8 destval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("OR\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = or_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = or_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = or_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = or_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x09
-****************************************************************************/
-static void x86emuOp_or_word_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("OR\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = or_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = or_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = or_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = or_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = or_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = or_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = or_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = or_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0a
-****************************************************************************/
-static void x86emuOp_or_byte_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint srcoffset;
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("OR\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = or_byte(*destreg, srcval);
-        break;
-    case 1:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = or_byte(*destreg, srcval);
-        break;
-    case 2:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = or_byte(*destreg, srcval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = or_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0b
-****************************************************************************/
-static void x86emuOp_or_word_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("OR\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = or_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = or_word(*destreg, srcval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = or_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = or_word(*destreg, srcval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = or_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = or_word(*destreg, srcval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = or_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = or_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0c
-****************************************************************************/
-static void x86emuOp_or_byte_AL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("OR\tAL,");
-    srcval = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    M.x86.R_AL = or_byte(M.x86.R_AL, srcval);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0d
-****************************************************************************/
-static void x86emuOp_or_word_AX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("OR\tEAX,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("OR\tAX,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = or_long(M.x86.R_EAX, srcval);
-    } else {
-        M.x86.R_AX = or_word(M.x86.R_AX, (u16)srcval);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0e
-****************************************************************************/
-static void x86emuOp_push_CS(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("PUSH\tCS\n");
-    TRACE_AND_STEP();
-    push_word(M.x86.R_CS);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f. Escape for two-byte opcode (286 or better)
-****************************************************************************/
-static void x86emuOp_two_byte(u8 X86EMU_UNUSED(op1))
-{
-    u8 op2 = (*sys_rdb)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP++));
-    INC_DECODED_INST_LEN(1);
-    (*x86emu_optab2[op2])(op2);
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x10
-****************************************************************************/
-static void x86emuOp_adc_byte_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint destoffset;
-    u8 destval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("ADC\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = adc_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = adc_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = adc_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = adc_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x11
-****************************************************************************/
-static void x86emuOp_adc_word_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("ADC\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = adc_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = adc_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = adc_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = adc_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = adc_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = adc_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = adc_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = adc_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x12
-****************************************************************************/
-static void x86emuOp_adc_byte_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint srcoffset;
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("ADC\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = adc_byte(*destreg, srcval);
-        break;
-    case 1:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = adc_byte(*destreg, srcval);
-        break;
-    case 2:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = adc_byte(*destreg, srcval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = adc_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x13
-****************************************************************************/
-static void x86emuOp_adc_word_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("ADC\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = adc_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = adc_word(*destreg, srcval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = adc_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = adc_word(*destreg, srcval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = adc_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = adc_word(*destreg, srcval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = adc_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = adc_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x14
-****************************************************************************/
-static void x86emuOp_adc_byte_AL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("ADC\tAL,");
-    srcval = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    M.x86.R_AL = adc_byte(M.x86.R_AL, srcval);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x15
-****************************************************************************/
-static void x86emuOp_adc_word_AX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("ADC\tEAX,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("ADC\tAX,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = adc_long(M.x86.R_EAX, srcval);
-    } else {
-        M.x86.R_AX = adc_word(M.x86.R_AX, (u16)srcval);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x16
-****************************************************************************/
-static void x86emuOp_push_SS(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("PUSH\tSS\n");
-    TRACE_AND_STEP();
-    push_word(M.x86.R_SS);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x17
-****************************************************************************/
-static void x86emuOp_pop_SS(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("POP\tSS\n");
-    TRACE_AND_STEP();
-    M.x86.R_SS = pop_word();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x18
-****************************************************************************/
-static void x86emuOp_sbb_byte_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint destoffset;
-    u8 destval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SBB\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = sbb_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = sbb_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = sbb_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = sbb_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x19
-****************************************************************************/
-static void x86emuOp_sbb_word_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SBB\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = sbb_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = sbb_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = sbb_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = sbb_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = sbb_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = sbb_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sbb_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sbb_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x1a
-****************************************************************************/
-static void x86emuOp_sbb_byte_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint srcoffset;
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SBB\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = sbb_byte(*destreg, srcval);
-        break;
-    case 1:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = sbb_byte(*destreg, srcval);
-        break;
-    case 2:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = sbb_byte(*destreg, srcval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = sbb_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x1b
-****************************************************************************/
-static void x86emuOp_sbb_word_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SBB\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sbb_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sbb_word(*destreg, srcval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sbb_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sbb_word(*destreg, srcval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sbb_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sbb_word(*destreg, srcval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sbb_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sbb_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x1c
-****************************************************************************/
-static void x86emuOp_sbb_byte_AL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SBB\tAL,");
-    srcval = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    M.x86.R_AL = sbb_byte(M.x86.R_AL, srcval);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x1d
-****************************************************************************/
-static void x86emuOp_sbb_word_AX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("SBB\tEAX,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("SBB\tAX,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = sbb_long(M.x86.R_EAX, srcval);
-    } else {
-        M.x86.R_AX = sbb_word(M.x86.R_AX, (u16)srcval);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x1e
-****************************************************************************/
-static void x86emuOp_push_DS(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("PUSH\tDS\n");
-    TRACE_AND_STEP();
-    push_word(M.x86.R_DS);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x1f
-****************************************************************************/
-static void x86emuOp_pop_DS(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("POP\tDS\n");
-    TRACE_AND_STEP();
-    M.x86.R_DS = pop_word();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x20
-****************************************************************************/
-static void x86emuOp_and_byte_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint destoffset;
-    u8 destval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("AND\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = and_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = and_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = and_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = and_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x21
-****************************************************************************/
-static void x86emuOp_and_word_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("AND\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = and_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = and_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = and_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = and_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = and_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = and_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = and_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = and_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x22
-****************************************************************************/
-static void x86emuOp_and_byte_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint srcoffset;
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("AND\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = and_byte(*destreg, srcval);
-        break;
-    case 1:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = and_byte(*destreg, srcval);
-        break;
-    case 2:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = and_byte(*destreg, srcval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = and_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x23
-****************************************************************************/
-static void x86emuOp_and_word_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("AND\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = and_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = and_word(*destreg, srcval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = and_long(*destreg, srcval);
-            break;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = and_word(*destreg, srcval);
-            break;
-        }
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = and_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = and_word(*destreg, srcval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = and_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = and_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x24
-****************************************************************************/
-static void x86emuOp_and_byte_AL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("AND\tAL,");
-    srcval = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    M.x86.R_AL = and_byte(M.x86.R_AL, srcval);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x25
-****************************************************************************/
-static void x86emuOp_and_word_AX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("AND\tEAX,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("AND\tAX,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = and_long(M.x86.R_EAX, srcval);
-    } else {
-        M.x86.R_AX = and_word(M.x86.R_AX, (u16)srcval);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x26
-****************************************************************************/
-static void x86emuOp_segovr_ES(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("ES:\n");
-    TRACE_AND_STEP();
-    M.x86.mode |= SYSMODE_SEGOVR_ES;
-    /*
-     * note the lack of DECODE_CLEAR_SEGOVR(r) since, here is one of 4
-     * opcode subroutines we do not want to do this.
-     */
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x27
-****************************************************************************/
-static void x86emuOp_daa(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("DAA\n");
-    TRACE_AND_STEP();
-    M.x86.R_AL = daa_byte(M.x86.R_AL);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x28
-****************************************************************************/
-static void x86emuOp_sub_byte_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint destoffset;
-    u8 destval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SUB\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = sub_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = sub_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = sub_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = sub_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x29
-****************************************************************************/
-static void x86emuOp_sub_word_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SUB\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = sub_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = sub_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = sub_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = sub_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = sub_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = sub_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sub_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sub_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x2a
-****************************************************************************/
-static void x86emuOp_sub_byte_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint srcoffset;
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SUB\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = sub_byte(*destreg, srcval);
-        break;
-    case 1:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = sub_byte(*destreg, srcval);
-        break;
-    case 2:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = sub_byte(*destreg, srcval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = sub_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x2b
-****************************************************************************/
-static void x86emuOp_sub_word_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SUB\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sub_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sub_word(*destreg, srcval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sub_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sub_word(*destreg, srcval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sub_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sub_word(*destreg, srcval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sub_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = sub_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x2c
-****************************************************************************/
-static void x86emuOp_sub_byte_AL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SUB\tAL,");
-    srcval = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    M.x86.R_AL = sub_byte(M.x86.R_AL, srcval);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x2d
-****************************************************************************/
-static void x86emuOp_sub_word_AX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("SUB\tEAX,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("SUB\tAX,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = sub_long(M.x86.R_EAX, srcval);
-    } else {
-        M.x86.R_AX = sub_word(M.x86.R_AX, (u16)srcval);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x2e
-****************************************************************************/
-static void x86emuOp_segovr_CS(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("CS:\n");
-    TRACE_AND_STEP();
-    M.x86.mode |= SYSMODE_SEGOVR_CS;
-    /* note no DECODE_CLEAR_SEGOVR here. */
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x2f
-****************************************************************************/
-static void x86emuOp_das(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("DAS\n");
-    TRACE_AND_STEP();
-    M.x86.R_AL = das_byte(M.x86.R_AL);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x30
-****************************************************************************/
-static void x86emuOp_xor_byte_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint destoffset;
-    u8 destval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("XOR\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = xor_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = xor_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = xor_byte(destval, *srcreg);
-        store_data_byte(destoffset, destval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = xor_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x31
-****************************************************************************/
-static void x86emuOp_xor_word_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("XOR\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = xor_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = xor_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = xor_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = xor_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = xor_long(destval, *srcreg);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = xor_word(destval, *srcreg);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = xor_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = xor_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x32
-****************************************************************************/
-static void x86emuOp_xor_byte_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint srcoffset;
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("XOR\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = xor_byte(*destreg, srcval);
-        break;
-    case 1:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = xor_byte(*destreg, srcval);
-        break;
-    case 2:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = xor_byte(*destreg, srcval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = xor_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x33
-****************************************************************************/
-static void x86emuOp_xor_word_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("XOR\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = xor_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = xor_word(*destreg, srcval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = xor_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = xor_word(*destreg, srcval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = xor_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = xor_word(*destreg, srcval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = xor_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = xor_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x34
-****************************************************************************/
-static void x86emuOp_xor_byte_AL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("XOR\tAL,");
-    srcval = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    M.x86.R_AL = xor_byte(M.x86.R_AL, srcval);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x35
-****************************************************************************/
-static void x86emuOp_xor_word_AX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("XOR\tEAX,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("XOR\tAX,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = xor_long(M.x86.R_EAX, srcval);
-    } else {
-        M.x86.R_AX = xor_word(M.x86.R_AX, (u16)srcval);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x36
-****************************************************************************/
-static void x86emuOp_segovr_SS(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("SS:\n");
-    TRACE_AND_STEP();
-    M.x86.mode |= SYSMODE_SEGOVR_SS;
-    /* no DECODE_CLEAR_SEGOVR ! */
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x37
-****************************************************************************/
-static void x86emuOp_aaa(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("AAA\n");
-    TRACE_AND_STEP();
-    M.x86.R_AX = aaa_word(M.x86.R_AX);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x38
-****************************************************************************/
-static void x86emuOp_cmp_byte_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-    u8 *destreg, *srcreg;
-    u8 destval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("CMP\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        cmp_byte(destval, *srcreg);
-        break;
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        cmp_byte(destval, *srcreg);
-        break;
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        cmp_byte(destval, *srcreg);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        cmp_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x39
-****************************************************************************/
-static void x86emuOp_cmp_word_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("CMP\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_long(destval, *srcreg);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_word(destval, *srcreg);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_long(destval, *srcreg);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_word(destval, *srcreg);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_long(destval, *srcreg);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_word(destval, *srcreg);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x3a
-****************************************************************************/
-static void x86emuOp_cmp_byte_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint srcoffset;
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("CMP\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        cmp_byte(*destreg, srcval);
-        break;
-    case 1:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        cmp_byte(*destreg, srcval);
-        break;
-    case 2:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        cmp_byte(*destreg, srcval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        cmp_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x3b
-****************************************************************************/
-static void x86emuOp_cmp_word_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("CMP\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_word(*destreg, srcval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_word(*destreg, srcval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_long(*destreg, srcval);
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_word(*destreg, srcval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            cmp_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x3c
-****************************************************************************/
-static void x86emuOp_cmp_byte_AL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("CMP\tAL,");
-    srcval = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    cmp_byte(M.x86.R_AL, srcval);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x3d
-****************************************************************************/
-static void x86emuOp_cmp_word_AX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("CMP\tEAX,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("CMP\tAX,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        cmp_long(M.x86.R_EAX, srcval);
-    } else {
-        cmp_word(M.x86.R_AX, (u16)srcval);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x3e
-****************************************************************************/
-static void x86emuOp_segovr_DS(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("DS:\n");
-    TRACE_AND_STEP();
-    M.x86.mode |= SYSMODE_SEGOVR_DS;
-    /* NO DECODE_CLEAR_SEGOVR! */
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x3f
-****************************************************************************/
-static void x86emuOp_aas(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("AAS\n");
-    TRACE_AND_STEP();
-    M.x86.R_AX = aas_word(M.x86.R_AX);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x40
-****************************************************************************/
-static void x86emuOp_inc_AX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("INC\tEAX\n");
-    } else {
-        DECODE_PRINTF("INC\tAX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = inc_long(M.x86.R_EAX);
-    } else {
-        M.x86.R_AX = inc_word(M.x86.R_AX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x41
-****************************************************************************/
-static void x86emuOp_inc_CX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("INC\tECX\n");
-    } else {
-        DECODE_PRINTF("INC\tCX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_ECX = inc_long(M.x86.R_ECX);
-    } else {
-        M.x86.R_CX = inc_word(M.x86.R_CX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x42
-****************************************************************************/
-static void x86emuOp_inc_DX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("INC\tEDX\n");
-    } else {
-        DECODE_PRINTF("INC\tDX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EDX = inc_long(M.x86.R_EDX);
-    } else {
-        M.x86.R_DX = inc_word(M.x86.R_DX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x43
-****************************************************************************/
-static void x86emuOp_inc_BX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("INC\tEBX\n");
-    } else {
-        DECODE_PRINTF("INC\tBX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EBX = inc_long(M.x86.R_EBX);
-    } else {
-        M.x86.R_BX = inc_word(M.x86.R_BX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x44
-****************************************************************************/
-static void x86emuOp_inc_SP(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("INC\tESP\n");
-    } else {
-        DECODE_PRINTF("INC\tSP\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_ESP = inc_long(M.x86.R_ESP);
-    } else {
-        M.x86.R_SP = inc_word(M.x86.R_SP);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x45
-****************************************************************************/
-static void x86emuOp_inc_BP(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("INC\tEBP\n");
-    } else {
-        DECODE_PRINTF("INC\tBP\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EBP = inc_long(M.x86.R_EBP);
-    } else {
-        M.x86.R_BP = inc_word(M.x86.R_BP);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x46
-****************************************************************************/
-static void x86emuOp_inc_SI(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("INC\tESI\n");
-    } else {
-        DECODE_PRINTF("INC\tSI\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_ESI = inc_long(M.x86.R_ESI);
-    } else {
-        M.x86.R_SI = inc_word(M.x86.R_SI);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x47
-****************************************************************************/
-static void x86emuOp_inc_DI(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("INC\tEDI\n");
-    } else {
-        DECODE_PRINTF("INC\tDI\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EDI = inc_long(M.x86.R_EDI);
-    } else {
-        M.x86.R_DI = inc_word(M.x86.R_DI);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x48
-****************************************************************************/
-static void x86emuOp_dec_AX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("DEC\tEAX\n");
-    } else {
-        DECODE_PRINTF("DEC\tAX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = dec_long(M.x86.R_EAX);
-    } else {
-        M.x86.R_AX = dec_word(M.x86.R_AX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x49
-****************************************************************************/
-static void x86emuOp_dec_CX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("DEC\tECX\n");
-    } else {
-        DECODE_PRINTF("DEC\tCX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_ECX = dec_long(M.x86.R_ECX);
-    } else {
-        M.x86.R_CX = dec_word(M.x86.R_CX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x4a
-****************************************************************************/
-static void x86emuOp_dec_DX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("DEC\tEDX\n");
-    } else {
-        DECODE_PRINTF("DEC\tDX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EDX = dec_long(M.x86.R_EDX);
-    } else {
-        M.x86.R_DX = dec_word(M.x86.R_DX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x4b
-****************************************************************************/
-static void x86emuOp_dec_BX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("DEC\tEBX\n");
-    } else {
-        DECODE_PRINTF("DEC\tBX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EBX = dec_long(M.x86.R_EBX);
-    } else {
-        M.x86.R_BX = dec_word(M.x86.R_BX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x4c
-****************************************************************************/
-static void x86emuOp_dec_SP(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("DEC\tESP\n");
-    } else {
-        DECODE_PRINTF("DEC\tSP\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_ESP = dec_long(M.x86.R_ESP);
-    } else {
-        M.x86.R_SP = dec_word(M.x86.R_SP);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x4d
-****************************************************************************/
-static void x86emuOp_dec_BP(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("DEC\tEBP\n");
-    } else {
-        DECODE_PRINTF("DEC\tBP\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EBP = dec_long(M.x86.R_EBP);
-    } else {
-        M.x86.R_BP = dec_word(M.x86.R_BP);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x4e
-****************************************************************************/
-static void x86emuOp_dec_SI(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("DEC\tESI\n");
-    } else {
-        DECODE_PRINTF("DEC\tSI\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_ESI = dec_long(M.x86.R_ESI);
-    } else {
-        M.x86.R_SI = dec_word(M.x86.R_SI);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x4f
-****************************************************************************/
-static void x86emuOp_dec_DI(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("DEC\tEDI\n");
-    } else {
-        DECODE_PRINTF("DEC\tDI\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EDI = dec_long(M.x86.R_EDI);
-    } else {
-        M.x86.R_DI = dec_word(M.x86.R_DI);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x50
-****************************************************************************/
-static void x86emuOp_push_AX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("PUSH\tEAX\n");
-    } else {
-        DECODE_PRINTF("PUSH\tAX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        push_long(M.x86.R_EAX);
-    } else {
-        push_word(M.x86.R_AX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x51
-****************************************************************************/
-static void x86emuOp_push_CX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("PUSH\tECX\n");
-    } else {
-        DECODE_PRINTF("PUSH\tCX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        push_long(M.x86.R_ECX);
-    } else {
-        push_word(M.x86.R_CX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x52
-****************************************************************************/
-static void x86emuOp_push_DX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("PUSH\tEDX\n");
-    } else {
-        DECODE_PRINTF("PUSH\tDX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        push_long(M.x86.R_EDX);
-    } else {
-        push_word(M.x86.R_DX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x53
-****************************************************************************/
-static void x86emuOp_push_BX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("PUSH\tEBX\n");
-    } else {
-        DECODE_PRINTF("PUSH\tBX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        push_long(M.x86.R_EBX);
-    } else {
-        push_word(M.x86.R_BX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x54
-****************************************************************************/
-static void x86emuOp_push_SP(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("PUSH\tESP\n");
-    } else {
-        DECODE_PRINTF("PUSH\tSP\n");
-    }
-    TRACE_AND_STEP();
-       /* Always push (E)SP, since we are emulating an i386 and above
-        * processor. This is necessary as some BIOS'es use this to check
-        * what type of processor is in the system.
-        */
-       if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-               push_long(M.x86.R_ESP);
-       } else {
-               push_word((u16)(M.x86.R_SP));
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x55
-****************************************************************************/
-static void x86emuOp_push_BP(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("PUSH\tEBP\n");
-    } else {
-        DECODE_PRINTF("PUSH\tBP\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        push_long(M.x86.R_EBP);
-    } else {
-        push_word(M.x86.R_BP);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x56
-****************************************************************************/
-static void x86emuOp_push_SI(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("PUSH\tESI\n");
-    } else {
-        DECODE_PRINTF("PUSH\tSI\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        push_long(M.x86.R_ESI);
-    } else {
-        push_word(M.x86.R_SI);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x57
-****************************************************************************/
-static void x86emuOp_push_DI(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("PUSH\tEDI\n");
-    } else {
-        DECODE_PRINTF("PUSH\tDI\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        push_long(M.x86.R_EDI);
-    } else {
-        push_word(M.x86.R_DI);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x58
-****************************************************************************/
-static void x86emuOp_pop_AX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("POP\tEAX\n");
-    } else {
-        DECODE_PRINTF("POP\tAX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = pop_long();
-    } else {
-        M.x86.R_AX = pop_word();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x59
-****************************************************************************/
-static void x86emuOp_pop_CX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("POP\tECX\n");
-    } else {
-        DECODE_PRINTF("POP\tCX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_ECX = pop_long();
-    } else {
-        M.x86.R_CX = pop_word();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x5a
-****************************************************************************/
-static void x86emuOp_pop_DX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("POP\tEDX\n");
-    } else {
-        DECODE_PRINTF("POP\tDX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EDX = pop_long();
-    } else {
-        M.x86.R_DX = pop_word();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x5b
-****************************************************************************/
-static void x86emuOp_pop_BX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("POP\tEBX\n");
-    } else {
-        DECODE_PRINTF("POP\tBX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EBX = pop_long();
-    } else {
-        M.x86.R_BX = pop_word();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x5c
-****************************************************************************/
-static void x86emuOp_pop_SP(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("POP\tESP\n");
-    } else {
-        DECODE_PRINTF("POP\tSP\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_ESP = pop_long();
-    } else {
-        M.x86.R_SP = pop_word();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x5d
-****************************************************************************/
-static void x86emuOp_pop_BP(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("POP\tEBP\n");
-    } else {
-        DECODE_PRINTF("POP\tBP\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EBP = pop_long();
-    } else {
-        M.x86.R_BP = pop_word();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x5e
-****************************************************************************/
-static void x86emuOp_pop_SI(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("POP\tESI\n");
-    } else {
-        DECODE_PRINTF("POP\tSI\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_ESI = pop_long();
-    } else {
-        M.x86.R_SI = pop_word();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x5f
-****************************************************************************/
-static void x86emuOp_pop_DI(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("POP\tEDI\n");
-    } else {
-        DECODE_PRINTF("POP\tDI\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EDI = pop_long();
-    } else {
-        M.x86.R_DI = pop_word();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x60
-****************************************************************************/
-static void x86emuOp_push_all(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("PUSHAD\n");
-    } else {
-        DECODE_PRINTF("PUSHA\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        u32 old_sp = M.x86.R_ESP;
-
-        push_long(M.x86.R_EAX);
-        push_long(M.x86.R_ECX);
-        push_long(M.x86.R_EDX);
-        push_long(M.x86.R_EBX);
-        push_long(old_sp);
-        push_long(M.x86.R_EBP);
-        push_long(M.x86.R_ESI);
-        push_long(M.x86.R_EDI);
-    } else {
-        u16 old_sp = M.x86.R_SP;
-
-        push_word(M.x86.R_AX);
-        push_word(M.x86.R_CX);
-        push_word(M.x86.R_DX);
-        push_word(M.x86.R_BX);
-        push_word(old_sp);
-        push_word(M.x86.R_BP);
-        push_word(M.x86.R_SI);
-        push_word(M.x86.R_DI);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x61
-****************************************************************************/
-static void x86emuOp_pop_all(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("POPAD\n");
-    } else {
-        DECODE_PRINTF("POPA\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EDI = pop_long();
-        M.x86.R_ESI = pop_long();
-        M.x86.R_EBP = pop_long();
-        M.x86.R_ESP += 4;              /* skip ESP */
-        M.x86.R_EBX = pop_long();
-        M.x86.R_EDX = pop_long();
-        M.x86.R_ECX = pop_long();
-        M.x86.R_EAX = pop_long();
-    } else {
-        M.x86.R_DI = pop_word();
-        M.x86.R_SI = pop_word();
-        M.x86.R_BP = pop_word();
-        M.x86.R_SP += 2;               /* skip SP */
-        M.x86.R_BX = pop_word();
-        M.x86.R_DX = pop_word();
-        M.x86.R_CX = pop_word();
-        M.x86.R_AX = pop_word();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/*opcode 0x62   ILLEGAL OP, calls x86emuOp_illegal_op() */
-/*opcode 0x63   ILLEGAL OP, calls x86emuOp_illegal_op() */
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x64
-****************************************************************************/
-static void x86emuOp_segovr_FS(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("FS:\n");
-    TRACE_AND_STEP();
-    M.x86.mode |= SYSMODE_SEGOVR_FS;
-    /*
-     * note the lack of DECODE_CLEAR_SEGOVR(r) since, here is one of 4
-     * opcode subroutines we do not want to do this.
-     */
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x65
-****************************************************************************/
-static void x86emuOp_segovr_GS(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("GS:\n");
-    TRACE_AND_STEP();
-    M.x86.mode |= SYSMODE_SEGOVR_GS;
-    /*
-     * note the lack of DECODE_CLEAR_SEGOVR(r) since, here is one of 4
-     * opcode subroutines we do not want to do this.
-     */
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x66 - prefix for 32-bit register
-****************************************************************************/
-static void x86emuOp_prefix_data(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("DATA:\n");
-    TRACE_AND_STEP();
-    M.x86.mode |= SYSMODE_PREFIX_DATA;
-    /* note no DECODE_CLEAR_SEGOVR here. */
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x67 - prefix for 32-bit address
-****************************************************************************/
-static void x86emuOp_prefix_addr(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("ADDR:\n");
-    TRACE_AND_STEP();
-    M.x86.mode |= SYSMODE_PREFIX_ADDR;
-    /* note no DECODE_CLEAR_SEGOVR here. */
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x68
-****************************************************************************/
-static void x86emuOp_push_word_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 imm;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        imm = fetch_long_imm();
-    } else {
-        imm = fetch_word_imm();
-    }
-    DECODE_PRINTF2("PUSH\t%x\n", imm);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        push_long(imm);
-    } else {
-        push_word((u16)imm);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x69
-****************************************************************************/
-static void x86emuOp_imul_word_IMM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("IMUL\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-            u32 res_lo,res_hi;
-            s32 imm;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            imm = fetch_long_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            imul_long_direct(&res_lo,&res_hi,(s32)srcval,(s32)imm);
-            if (res_hi != 0) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u32)res_lo;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-            u32 res;
-            s16 imm;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            imm = fetch_word_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            res = (s16)srcval * (s16)imm;
-            if (res > 0xFFFF) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u16)res;
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-            u32 res_lo,res_hi;
-            s32 imm;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            imm = fetch_long_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            imul_long_direct(&res_lo,&res_hi,(s32)srcval,(s32)imm);
-            if (res_hi != 0) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u32)res_lo;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-            u32 res;
-            s16 imm;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            imm = fetch_word_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            res = (s16)srcval * (s16)imm;
-            if (res > 0xFFFF) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u16)res;
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-            u32 res_lo,res_hi;
-            s32 imm;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            imm = fetch_long_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            imul_long_direct(&res_lo,&res_hi,(s32)srcval,(s32)imm);
-            if (res_hi != 0) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u32)res_lo;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-            u32 res;
-            s16 imm;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            imm = fetch_word_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            res = (s16)srcval * (s16)imm;
-            if (res > 0xFFFF) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u16)res;
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-            u32 res_lo,res_hi;
-            s32 imm;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            imm = fetch_long_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            imul_long_direct(&res_lo,&res_hi,(s32)*srcreg,(s32)imm);
-            if (res_hi != 0) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u32)res_lo;
-        } else {
-            u16 *destreg,*srcreg;
-            u32 res;
-            s16 imm;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            imm = fetch_word_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            res = (s16)*srcreg * (s16)imm;
-            if (res > 0xFFFF) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u16)res;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x6a
-****************************************************************************/
-static void x86emuOp_push_byte_IMM(u8 X86EMU_UNUSED(op1))
-{
-    s16 imm;
-
-    START_OF_INSTR();
-    imm = (s8)fetch_byte_imm();
-    DECODE_PRINTF2("PUSH\t%d\n", imm);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-       push_long((s32)imm);
-    } else {
-       push_word(imm);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x6b
-****************************************************************************/
-static void x86emuOp_imul_byte_IMM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-    s8  imm;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("IMUL\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-            u32 res_lo,res_hi;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            imm = fetch_byte_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            imul_long_direct(&res_lo,&res_hi,(s32)srcval,(s32)imm);
-            if (res_hi != 0) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u32)res_lo;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-            u32 res;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            imm = fetch_byte_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            res = (s16)srcval * (s16)imm;
-            if (res > 0xFFFF) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u16)res;
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-            u32 res_lo,res_hi;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            imm = fetch_byte_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            imul_long_direct(&res_lo,&res_hi,(s32)srcval,(s32)imm);
-            if (res_hi != 0) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u32)res_lo;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-            u32 res;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            imm = fetch_byte_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            res = (s16)srcval * (s16)imm;
-            if (res > 0xFFFF) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u16)res;
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-            u32 res_lo,res_hi;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            imm = fetch_byte_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            imul_long_direct(&res_lo,&res_hi,(s32)srcval,(s32)imm);
-            if (res_hi != 0) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u32)res_lo;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-            u32 res;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            imm = fetch_byte_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            res = (s16)srcval * (s16)imm;
-            if (res > 0xFFFF) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u16)res;
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-            u32 res_lo,res_hi;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            imm = fetch_byte_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            TRACE_AND_STEP();
-            imul_long_direct(&res_lo,&res_hi,(s32)*srcreg,(s32)imm);
-            if (res_hi != 0) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u32)res_lo;
-        } else {
-            u16 *destreg,*srcreg;
-            u32 res;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            imm = fetch_byte_imm();
-            DECODE_PRINTF2(",%d\n", (s32)imm);
-            res = (s16)*srcreg * (s16)imm;
-            if (res > 0xFFFF) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u16)res;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x6c
-****************************************************************************/
-static void x86emuOp_ins_byte(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("INSB\n");
-    ins(1);
-    TRACE_AND_STEP();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x6d
-****************************************************************************/
-static void x86emuOp_ins_word(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("INSD\n");
-        ins(4);
-    } else {
-        DECODE_PRINTF("INSW\n");
-        ins(2);
-    }
-    TRACE_AND_STEP();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x6e
-****************************************************************************/
-static void x86emuOp_outs_byte(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("OUTSB\n");
-    outs(1);
-    TRACE_AND_STEP();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x6f
-****************************************************************************/
-static void x86emuOp_outs_word(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("OUTSD\n");
-        outs(4);
-    } else {
-        DECODE_PRINTF("OUTSW\n");
-        outs(2);
-    }
-    TRACE_AND_STEP();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x70
-****************************************************************************/
-static void x86emuOp_jump_near_O(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-
-    /* jump to byte offset if overflow flag is set */
-    START_OF_INSTR();
-    DECODE_PRINTF("JO\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    if (ACCESS_FLAG(F_OF))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x71
-****************************************************************************/
-static void x86emuOp_jump_near_NO(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-
-    /* jump to byte offset if overflow is not set */
-    START_OF_INSTR();
-    DECODE_PRINTF("JNO\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    if (!ACCESS_FLAG(F_OF))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x72
-****************************************************************************/
-static void x86emuOp_jump_near_B(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-
-    /* jump to byte offset if carry flag is set. */
-    START_OF_INSTR();
-    DECODE_PRINTF("JB\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    if (ACCESS_FLAG(F_CF))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x73
-****************************************************************************/
-static void x86emuOp_jump_near_NB(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-
-    /* jump to byte offset if carry flag is clear. */
-    START_OF_INSTR();
-    DECODE_PRINTF("JNB\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    if (!ACCESS_FLAG(F_CF))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x74
-****************************************************************************/
-static void x86emuOp_jump_near_Z(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-
-    /* jump to byte offset if zero flag is set. */
-    START_OF_INSTR();
-    DECODE_PRINTF("JZ\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    if (ACCESS_FLAG(F_ZF))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x75
-****************************************************************************/
-static void x86emuOp_jump_near_NZ(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-
-    /* jump to byte offset if zero flag is clear. */
-    START_OF_INSTR();
-    DECODE_PRINTF("JNZ\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    if (!ACCESS_FLAG(F_ZF))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x76
-****************************************************************************/
-static void x86emuOp_jump_near_BE(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-
-    /* jump to byte offset if carry flag is set or if the zero
-       flag is set. */
-    START_OF_INSTR();
-    DECODE_PRINTF("JBE\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    if (ACCESS_FLAG(F_CF) || ACCESS_FLAG(F_ZF))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x77
-****************************************************************************/
-static void x86emuOp_jump_near_NBE(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-
-    /* jump to byte offset if carry flag is clear and if the zero
-       flag is clear */
-    START_OF_INSTR();
-    DECODE_PRINTF("JNBE\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    if (!(ACCESS_FLAG(F_CF) || ACCESS_FLAG(F_ZF)))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x78
-****************************************************************************/
-static void x86emuOp_jump_near_S(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-
-    /* jump to byte offset if sign flag is set */
-    START_OF_INSTR();
-    DECODE_PRINTF("JS\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    if (ACCESS_FLAG(F_SF))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x79
-****************************************************************************/
-static void x86emuOp_jump_near_NS(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-
-    /* jump to byte offset if sign flag is clear */
-    START_OF_INSTR();
-    DECODE_PRINTF("JNS\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    if (!ACCESS_FLAG(F_SF))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x7a
-****************************************************************************/
-static void x86emuOp_jump_near_P(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-
-    /* jump to byte offset if parity flag is set (even parity) */
-    START_OF_INSTR();
-    DECODE_PRINTF("JP\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    if (ACCESS_FLAG(F_PF))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x7b
-****************************************************************************/
-static void x86emuOp_jump_near_NP(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-
-    /* jump to byte offset if parity flag is clear (odd parity) */
-    START_OF_INSTR();
-    DECODE_PRINTF("JNP\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    if (!ACCESS_FLAG(F_PF))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x7c
-****************************************************************************/
-static void x86emuOp_jump_near_L(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-    int sf, of;
-
-    /* jump to byte offset if sign flag not equal to overflow flag. */
-    START_OF_INSTR();
-    DECODE_PRINTF("JL\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    sf = ACCESS_FLAG(F_SF) != 0;
-    of = ACCESS_FLAG(F_OF) != 0;
-    if (sf ^ of)
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x7d
-****************************************************************************/
-static void x86emuOp_jump_near_NL(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-    int sf, of;
-
-    /* jump to byte offset if sign flag not equal to overflow flag. */
-    START_OF_INSTR();
-    DECODE_PRINTF("JNL\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    sf = ACCESS_FLAG(F_SF) != 0;
-    of = ACCESS_FLAG(F_OF) != 0;
-    /* note: inverse of above, but using == instead of xor. */
-    if (sf == of)
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x7e
-****************************************************************************/
-static void x86emuOp_jump_near_LE(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-    int sf, of;
-
-    /* jump to byte offset if sign flag not equal to overflow flag
-       or the zero flag is set */
-    START_OF_INSTR();
-    DECODE_PRINTF("JLE\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    sf = ACCESS_FLAG(F_SF) != 0;
-    of = ACCESS_FLAG(F_OF) != 0;
-    if ((sf ^ of) || ACCESS_FLAG(F_ZF))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x7f
-****************************************************************************/
-static void x86emuOp_jump_near_NLE(u8 X86EMU_UNUSED(op1))
-{
-    s8 offset;
-    u16 target;
-    int sf, of;
-
-    /* jump to byte offset if sign flag equal to overflow flag.
-       and the zero flag is clear */
-    START_OF_INSTR();
-    DECODE_PRINTF("JNLE\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + (s16)offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    sf = ACCESS_FLAG(F_SF) != 0;
-    of = ACCESS_FLAG(F_OF) != 0;
-    if ((sf == of) && !ACCESS_FLAG(F_ZF))
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-static u8 (*opc80_byte_operation[])(u8 d, u8 s) =
-{
-    add_byte,           /* 00 */
-    or_byte,            /* 01 */
-    adc_byte,           /* 02 */
-    sbb_byte,           /* 03 */
-    and_byte,           /* 04 */
-    sub_byte,           /* 05 */
-    xor_byte,           /* 06 */
-    cmp_byte,           /* 07 */
-};
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x80
-****************************************************************************/
-static void x86emuOp_opc80_byte_RM_IMM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg;
-    uint destoffset;
-    u8 imm;
-    u8 destval;
-
-    /*
-     * Weirdo special case instruction format.  Part of the opcode
-     * held below in "RH".  Doubly nested case would result, except
-     * that the decoded instruction
-     */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (DEBUG_DECODE()) {
-        /* XXX DECODE_PRINTF may be changed to something more
-           general, so that it is important to leave the strings
-           in the same format, even though the result is that the 
-           above test is done twice. */
-
-        switch (rh) {
-        case 0:
-            DECODE_PRINTF("ADD\t");
-            break;
-        case 1:
-            DECODE_PRINTF("OR\t");
-            break;
-        case 2:
-            DECODE_PRINTF("ADC\t");
-            break;
-        case 3:
-            DECODE_PRINTF("SBB\t");
-            break;
-        case 4:
-            DECODE_PRINTF("AND\t");
-            break;
-        case 5:
-            DECODE_PRINTF("SUB\t");
-            break;
-        case 6:
-            DECODE_PRINTF("XOR\t");
-            break;
-        case 7:
-            DECODE_PRINTF("CMP\t");
-            break;
-        }
-    }
-#endif
-    /* know operation, decode the mod byte to find the addressing
-       mode. */
-    switch (mod) {
-    case 0:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        imm = fetch_byte_imm();
-        DECODE_PRINTF2("%x\n", imm);
-        TRACE_AND_STEP();
-        destval = (*opc80_byte_operation[rh]) (destval, imm);
-        if (rh != 7)
-            store_data_byte(destoffset, destval);
-        break;
-    case 1:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        imm = fetch_byte_imm();
-        DECODE_PRINTF2("%x\n", imm);
-        TRACE_AND_STEP();
-        destval = (*opc80_byte_operation[rh]) (destval, imm);
-        if (rh != 7)
-            store_data_byte(destoffset, destval);
-        break;
-    case 2:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        imm = fetch_byte_imm();
-        DECODE_PRINTF2("%x\n", imm);
-        TRACE_AND_STEP();
-        destval = (*opc80_byte_operation[rh]) (destval, imm);
-        if (rh != 7)
-            store_data_byte(destoffset, destval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",");
-        imm = fetch_byte_imm();
-        DECODE_PRINTF2("%x\n", imm);
-        TRACE_AND_STEP();
-        destval = (*opc80_byte_operation[rh]) (*destreg, imm);
-        if (rh != 7)
-            *destreg = destval;
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-static u16 (*opc81_word_operation[])(u16 d, u16 s) =
-{
-    add_word,           /*00 */
-    or_word,            /*01 */
-    adc_word,           /*02 */
-    sbb_word,           /*03 */
-    and_word,           /*04 */
-    sub_word,           /*05 */
-    xor_word,           /*06 */
-    cmp_word,           /*07 */
-};
-
-static u32 (*opc81_long_operation[])(u32 d, u32 s) =
-{
-    add_long,           /*00 */
-    or_long,            /*01 */
-    adc_long,           /*02 */
-    sbb_long,           /*03 */
-    and_long,           /*04 */
-    sub_long,           /*05 */
-    xor_long,           /*06 */
-    cmp_long,           /*07 */
-};
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x81
-****************************************************************************/
-static void x86emuOp_opc81_word_RM_IMM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    /*
-     * Weirdo special case instruction format.  Part of the opcode
-     * held below in "RH".  Doubly nested case would result, except
-     * that the decoded instruction
-     */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (DEBUG_DECODE()) {
-        /* XXX DECODE_PRINTF may be changed to something more
-           general, so that it is important to leave the strings
-           in the same format, even though the result is that the 
-           above test is done twice. */
-
-        switch (rh) {
-        case 0:
-            DECODE_PRINTF("ADD\t");
-            break;
-        case 1:
-            DECODE_PRINTF("OR\t");
-            break;
-        case 2:
-            DECODE_PRINTF("ADC\t");
-            break;
-        case 3:
-            DECODE_PRINTF("SBB\t");
-            break;
-        case 4:
-            DECODE_PRINTF("AND\t");
-            break;
-        case 5:
-            DECODE_PRINTF("SUB\t");
-            break;
-        case 6:
-            DECODE_PRINTF("XOR\t");
-            break;
-        case 7:
-            DECODE_PRINTF("CMP\t");
-            break;
-        }
-    }
-#endif
-    /*
-     * Know operation, decode the mod byte to find the addressing 
-     * mode.
-     */
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval,imm;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            imm = fetch_long_imm();
-            DECODE_PRINTF2("%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc81_long_operation[rh]) (destval, imm);
-            if (rh != 7)
-                store_data_long(destoffset, destval);
-        } else {
-            u16 destval,imm;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            imm = fetch_word_imm();
-            DECODE_PRINTF2("%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc81_word_operation[rh]) (destval, imm);
-            if (rh != 7)
-                store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval,imm;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            imm = fetch_long_imm();
-            DECODE_PRINTF2("%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc81_long_operation[rh]) (destval, imm);
-            if (rh != 7)
-                store_data_long(destoffset, destval);
-        } else {
-            u16 destval,imm;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            imm = fetch_word_imm();
-            DECODE_PRINTF2("%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc81_word_operation[rh]) (destval, imm);
-            if (rh != 7)
-                store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval,imm;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            imm = fetch_long_imm();
-            DECODE_PRINTF2("%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc81_long_operation[rh]) (destval, imm);
-            if (rh != 7)
-                store_data_long(destoffset, destval);
-        } else {
-            u16 destval,imm;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            imm = fetch_word_imm();
-            DECODE_PRINTF2("%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc81_word_operation[rh]) (destval, imm);
-            if (rh != 7)
-                store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 destval,imm;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            imm = fetch_long_imm();
-            DECODE_PRINTF2("%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc81_long_operation[rh]) (*destreg, imm);
-            if (rh != 7)
-                *destreg = destval;
-        } else {
-            u16 *destreg;
-            u16 destval,imm;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            imm = fetch_word_imm();
-            DECODE_PRINTF2("%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc81_word_operation[rh]) (*destreg, imm);
-            if (rh != 7)
-                *destreg = destval;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-static u8 (*opc82_byte_operation[])(u8 s, u8 d) =
-{
-    add_byte,           /*00 */
-    or_byte,            /*01 *//*YYY UNUSED ???? */
-    adc_byte,           /*02 */
-    sbb_byte,           /*03 */
-    and_byte,           /*04 *//*YYY UNUSED ???? */
-    sub_byte,           /*05 */
-    xor_byte,           /*06 *//*YYY UNUSED ???? */
-    cmp_byte,           /*07 */
-};
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x82
-****************************************************************************/
-static void x86emuOp_opc82_byte_RM_IMM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg;
-    uint destoffset;
-    u8 imm;
-    u8 destval;
-
-    /*
-     * Weirdo special case instruction format.  Part of the opcode
-     * held below in "RH".  Doubly nested case would result, except
-     * that the decoded instruction Similar to opcode 81, except that
-     * the immediate byte is sign extended to a word length.
-     */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (DEBUG_DECODE()) {
-        /* XXX DECODE_PRINTF may be changed to something more
-           general, so that it is important to leave the strings
-           in the same format, even though the result is that the 
-           above test is done twice. */
-        switch (rh) {
-        case 0:
-            DECODE_PRINTF("ADD\t");
-            break;
-        case 1:
-            DECODE_PRINTF("OR\t");
-            break;
-        case 2:
-            DECODE_PRINTF("ADC\t");
-            break;
-        case 3:
-            DECODE_PRINTF("SBB\t");
-            break;
-        case 4:
-            DECODE_PRINTF("AND\t");
-            break;
-        case 5:
-            DECODE_PRINTF("SUB\t");
-            break;
-        case 6:
-            DECODE_PRINTF("XOR\t");
-            break;
-        case 7:
-            DECODE_PRINTF("CMP\t");
-            break;
-        }
-    }
-#endif
-    /* know operation, decode the mod byte to find the addressing
-       mode. */
-    switch (mod) {
-    case 0:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm00_address(rl);
-        destval = fetch_data_byte(destoffset);
-        imm = fetch_byte_imm();
-        DECODE_PRINTF2(",%x\n", imm);
-        TRACE_AND_STEP();
-        destval = (*opc82_byte_operation[rh]) (destval, imm);
-        if (rh != 7)
-            store_data_byte(destoffset, destval);
-        break;
-    case 1:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm01_address(rl);
-        destval = fetch_data_byte(destoffset);
-        imm = fetch_byte_imm();
-        DECODE_PRINTF2(",%x\n", imm);
-        TRACE_AND_STEP();
-        destval = (*opc82_byte_operation[rh]) (destval, imm);
-        if (rh != 7)
-            store_data_byte(destoffset, destval);
-        break;
-    case 2:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm10_address(rl);
-        destval = fetch_data_byte(destoffset);
-        imm = fetch_byte_imm();
-        DECODE_PRINTF2(",%x\n", imm);
-        TRACE_AND_STEP();
-        destval = (*opc82_byte_operation[rh]) (destval, imm);
-        if (rh != 7)
-            store_data_byte(destoffset, destval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        imm = fetch_byte_imm();
-        DECODE_PRINTF2(",%x\n", imm);
-        TRACE_AND_STEP();
-        destval = (*opc82_byte_operation[rh]) (*destreg, imm);
-        if (rh != 7)
-            *destreg = destval;
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-static u16 (*opc83_word_operation[])(u16 s, u16 d) =
-{
-    add_word,           /*00 */
-    or_word,            /*01 *//*YYY UNUSED ???? */
-    adc_word,           /*02 */
-    sbb_word,           /*03 */
-    and_word,           /*04 *//*YYY UNUSED ???? */
-    sub_word,           /*05 */
-    xor_word,           /*06 *//*YYY UNUSED ???? */
-    cmp_word,           /*07 */
-};
-
-static u32 (*opc83_long_operation[])(u32 s, u32 d) =
-{
-    add_long,           /*00 */
-    or_long,            /*01 *//*YYY UNUSED ???? */
-    adc_long,           /*02 */
-    sbb_long,           /*03 */
-    and_long,           /*04 *//*YYY UNUSED ???? */
-    sub_long,           /*05 */
-    xor_long,           /*06 *//*YYY UNUSED ???? */
-    cmp_long,           /*07 */
-};
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x83
-****************************************************************************/
-static void x86emuOp_opc83_word_RM_IMM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    /*
-     * Weirdo special case instruction format.  Part of the opcode
-     * held below in "RH".  Doubly nested case would result, except
-     * that the decoded instruction Similar to opcode 81, except that
-     * the immediate byte is sign extended to a word length.
-     */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (DEBUG_DECODE()) {
-        /* XXX DECODE_PRINTF may be changed to something more
-           general, so that it is important to leave the strings
-           in the same format, even though the result is that the 
-           above test is done twice. */
-       switch (rh) {
-        case 0:
-            DECODE_PRINTF("ADD\t");
-            break;
-        case 1:
-            DECODE_PRINTF("OR\t");
-            break;
-        case 2:
-            DECODE_PRINTF("ADC\t");
-            break;
-        case 3:
-            DECODE_PRINTF("SBB\t");
-            break;
-        case 4:
-            DECODE_PRINTF("AND\t");
-            break;
-        case 5:
-            DECODE_PRINTF("SUB\t");
-            break;
-        case 6:
-            DECODE_PRINTF("XOR\t");
-            break;
-        case 7:
-            DECODE_PRINTF("CMP\t");
-            break;
-        }
-    }
-#endif
-    /* know operation, decode the mod byte to find the addressing
-       mode. */
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval,imm;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm00_address(rl);
-            destval = fetch_data_long(destoffset);
-            imm = (s8) fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc83_long_operation[rh]) (destval, imm);
-            if (rh != 7)
-                store_data_long(destoffset, destval);
-        } else {
-            u16 destval,imm;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm00_address(rl);
-            destval = fetch_data_word(destoffset);
-            imm = (s8) fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc83_word_operation[rh]) (destval, imm);
-            if (rh != 7)
-                store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval,imm;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm01_address(rl);
-            destval = fetch_data_long(destoffset);
-            imm = (s8) fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc83_long_operation[rh]) (destval, imm);
-            if (rh != 7)
-                store_data_long(destoffset, destval);
-        } else {
-            u16 destval,imm;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm01_address(rl);
-            destval = fetch_data_word(destoffset);
-            imm = (s8) fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc83_word_operation[rh]) (destval, imm);
-            if (rh != 7)
-                store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval,imm;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm10_address(rl);
-            destval = fetch_data_long(destoffset);
-            imm = (s8) fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc83_long_operation[rh]) (destval, imm);
-            if (rh != 7)
-                store_data_long(destoffset, destval);
-        } else {
-            u16 destval,imm;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm10_address(rl);
-            destval = fetch_data_word(destoffset);
-            imm = (s8) fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc83_word_operation[rh]) (destval, imm);
-            if (rh != 7)
-                store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 destval,imm;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            imm = (s8) fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc83_long_operation[rh]) (*destreg, imm);
-            if (rh != 7)
-                *destreg = destval;
-        } else {
-            u16 *destreg;
-            u16 destval,imm;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            imm = (s8) fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            destval = (*opc83_word_operation[rh]) (*destreg, imm);
-            if (rh != 7)
-                *destreg = destval;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x84
-****************************************************************************/
-static void x86emuOp_test_byte_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint destoffset;
-    u8 destval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("TEST\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        test_byte(destval, *srcreg);
-        break;
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        test_byte(destval, *srcreg);
-        break;
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        test_byte(destval, *srcreg);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        test_byte(*destreg, *srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x85
-****************************************************************************/
-static void x86emuOp_test_word_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("TEST\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            test_long(destval, *srcreg);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            test_word(destval, *srcreg);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            test_long(destval, *srcreg);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            test_word(destval, *srcreg);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            test_long(destval, *srcreg);
-        } else {
-            u16 destval;
-            u16 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            test_word(destval, *srcreg);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            test_long(*destreg, *srcreg);
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            test_word(*destreg, *srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x86
-****************************************************************************/
-static void x86emuOp_xchg_byte_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint destoffset;
-    u8 destval;
-    u8 tmp;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("XCHG\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        tmp = *srcreg;
-        *srcreg = destval;
-        destval = tmp;
-        store_data_byte(destoffset, destval);
-        break;
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        tmp = *srcreg;
-        *srcreg = destval;
-        destval = tmp;
-        store_data_byte(destoffset, destval);
-        break;
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",");
-        destval = fetch_data_byte(destoffset);
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        tmp = *srcreg;
-        *srcreg = destval;
-        destval = tmp;
-        store_data_byte(destoffset, destval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        tmp = *srcreg;
-        *srcreg = *destreg;
-        *destreg = tmp;
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x87
-****************************************************************************/
-static void x86emuOp_xchg_word_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("XCHG\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *srcreg;
-            u32 destval,tmp;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            tmp = *srcreg;
-            *srcreg = destval;
-            destval = tmp;
-            store_data_long(destoffset, destval);
-        } else {
-            u16 *srcreg;
-            u16 destval,tmp;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            tmp = *srcreg;
-            *srcreg = destval;
-            destval = tmp;
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *srcreg;
-            u32 destval,tmp;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            tmp = *srcreg;
-            *srcreg = destval;
-            destval = tmp;
-            store_data_long(destoffset, destval);
-        } else {
-            u16 *srcreg;
-            u16 destval,tmp;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            tmp = *srcreg;
-            *srcreg = destval;
-            destval = tmp;
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *srcreg;
-            u32 destval,tmp;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_long(destoffset);
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            tmp = *srcreg;
-            *srcreg = destval;
-            destval = tmp;
-            store_data_long(destoffset, destval);
-        } else {
-            u16 *srcreg;
-            u16 destval,tmp;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            destval = fetch_data_word(destoffset);
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            tmp = *srcreg;
-            *srcreg = destval;
-            destval = tmp;
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-            u32 tmp;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            tmp = *srcreg;
-            *srcreg = *destreg;
-            *destreg = tmp;
-        } else {
-            u16 *destreg,*srcreg;
-            u16 tmp;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            tmp = *srcreg;
-            *srcreg = *destreg;
-            *destreg = tmp;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x88
-****************************************************************************/
-static void x86emuOp_mov_byte_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        store_data_byte(destoffset, *srcreg);
-        break;
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        store_data_byte(destoffset, *srcreg);
-        break;
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        store_data_byte(destoffset, *srcreg);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = *srcreg;
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x89
-****************************************************************************/
-static void x86emuOp_mov_word_RM_R(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u32 destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            store_data_long(destoffset, *srcreg);
-        } else {
-            u16 *srcreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            store_data_word(destoffset, *srcreg);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            store_data_long(destoffset, *srcreg);
-        } else {
-            u16 *srcreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            store_data_word(destoffset, *srcreg);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            store_data_long(destoffset, *srcreg);
-        } else {
-            u16 *srcreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            store_data_word(destoffset, *srcreg);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = *srcreg;
-        } else {
-            u16 *destreg,*srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = *srcreg;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x8a
-****************************************************************************/
-static void x86emuOp_mov_byte_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg, *srcreg;
-    uint srcoffset;
-    u8 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = srcval;
-        break;
-    case 1:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = srcval;
-        break;
-    case 2:
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        srcval = fetch_data_byte(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = srcval;
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = *srcreg;
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x8b
-****************************************************************************/
-static void x86emuOp_mov_word_R_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg, *srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = *srcreg;
-        } else {
-            u16 *destreg, *srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = *srcreg;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x8c
-****************************************************************************/
-static void x86emuOp_mov_word_RM_SR(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u16 *destreg, *srcreg;
-    uint destoffset;
-    u16 destval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",");
-        srcreg = decode_rm_seg_register(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = *srcreg;
-        store_data_word(destoffset, destval);
-        break;
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",");
-        srcreg = decode_rm_seg_register(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = *srcreg;
-        store_data_word(destoffset, destval);
-        break;
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",");
-        srcreg = decode_rm_seg_register(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        destval = *srcreg;
-        store_data_word(destoffset, destval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_WORD_REGISTER(rl);
-        DECODE_PRINTF(",");
-        srcreg = decode_rm_seg_register(rh);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = *srcreg;
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x8d
-****************************************************************************/
-static void x86emuOp_lea_word_R_M(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u16 *srcreg;
-    uint destoffset;
-
-/*
- * TODO: Need to handle address size prefix!
- *
- * lea  eax,[eax+ebx*2] ??
- */
-    
-    START_OF_INSTR();
-    DECODE_PRINTF("LEA\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        srcreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *srcreg = (u16)destoffset;
-        break;
-    case 1:
-        srcreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *srcreg = (u16)destoffset;
-        break;
-    case 2:
-        srcreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *srcreg = (u16)destoffset;
-        break;
-    case 3:                     /* register to register */
-        /* undefined.  Do nothing. */
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x8e
-****************************************************************************/
-static void x86emuOp_mov_word_SR_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u16 *destreg, *srcreg;
-    uint srcoffset;
-    u16 srcval;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destreg = decode_rm_seg_register(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        srcval = fetch_data_word(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = srcval;
-        break;
-    case 1:
-        destreg = decode_rm_seg_register(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        srcval = fetch_data_word(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = srcval;
-        break;
-    case 2:
-        destreg = decode_rm_seg_register(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        srcval = fetch_data_word(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = srcval;
-        break;
-    case 3:                     /* register to register */
-        destreg = decode_rm_seg_register(rh);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_WORD_REGISTER(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = *srcreg;
-        break;
-    }
-    /*
-     * Clean up, and reset all the R_xSP pointers to the correct
-     * locations.  This is about 3x too much overhead (doing all the
-     * segreg ptrs when only one is needed, but this instruction
-     * *cannot* be that common, and this isn't too much work anyway.
-     */
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x8f
-****************************************************************************/
-static void x86emuOp_pop_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("POP\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    if (rh != 0) {
-        DECODE_PRINTF("ILLEGAL DECODE OF OPCODE 8F\n");
-        HALT_SYS();
-    }
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = pop_long();
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = pop_word();
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = pop_long();
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = pop_word();
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = pop_long();
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            destval = pop_word();
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = pop_long();
-        } else {
-            u16 *destreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = pop_word();
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x90
-****************************************************************************/
-static void x86emuOp_nop(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("NOP\n");
-    TRACE_AND_STEP();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x91
-****************************************************************************/
-static void x86emuOp_xchg_word_AX_CX(u8 X86EMU_UNUSED(op1))
-{
-    u32 tmp;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("XCHG\tEAX,ECX\n");
-    } else {
-        DECODE_PRINTF("XCHG\tAX,CX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        tmp = M.x86.R_EAX;
-        M.x86.R_EAX = M.x86.R_ECX;
-        M.x86.R_ECX = tmp;
-    } else {
-        tmp = M.x86.R_AX;
-        M.x86.R_AX = M.x86.R_CX;
-        M.x86.R_CX = (u16)tmp;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x92
-****************************************************************************/
-static void x86emuOp_xchg_word_AX_DX(u8 X86EMU_UNUSED(op1))
-{
-    u32 tmp;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("XCHG\tEAX,EDX\n");
-    } else {
-        DECODE_PRINTF("XCHG\tAX,DX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        tmp = M.x86.R_EAX;
-        M.x86.R_EAX = M.x86.R_EDX;
-        M.x86.R_EDX = tmp;
-    } else {
-        tmp = M.x86.R_AX;
-        M.x86.R_AX = M.x86.R_DX;
-        M.x86.R_DX = (u16)tmp;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x93
-****************************************************************************/
-static void x86emuOp_xchg_word_AX_BX(u8 X86EMU_UNUSED(op1))
-{
-    u32 tmp;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("XCHG\tEAX,EBX\n");
-    } else {
-        DECODE_PRINTF("XCHG\tAX,BX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        tmp = M.x86.R_EAX;
-        M.x86.R_EAX = M.x86.R_EBX;
-        M.x86.R_EBX = tmp;
-    } else {
-        tmp = M.x86.R_AX;
-        M.x86.R_AX = M.x86.R_BX;
-        M.x86.R_BX = (u16)tmp;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x94
-****************************************************************************/
-static void x86emuOp_xchg_word_AX_SP(u8 X86EMU_UNUSED(op1))
-{
-    u32 tmp;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("XCHG\tEAX,ESP\n");
-    } else {
-        DECODE_PRINTF("XCHG\tAX,SP\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        tmp = M.x86.R_EAX;
-        M.x86.R_EAX = M.x86.R_ESP;
-        M.x86.R_ESP = tmp;
-    } else {
-        tmp = M.x86.R_AX;
-        M.x86.R_AX = M.x86.R_SP;
-        M.x86.R_SP = (u16)tmp;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x95
-****************************************************************************/
-static void x86emuOp_xchg_word_AX_BP(u8 X86EMU_UNUSED(op1))
-{
-    u32 tmp;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("XCHG\tEAX,EBP\n");
-    } else {
-        DECODE_PRINTF("XCHG\tAX,BP\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        tmp = M.x86.R_EAX;
-        M.x86.R_EAX = M.x86.R_EBP;
-        M.x86.R_EBP = tmp;
-    } else {
-        tmp = M.x86.R_AX;
-        M.x86.R_AX = M.x86.R_BP;
-        M.x86.R_BP = (u16)tmp;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x96
-****************************************************************************/
-static void x86emuOp_xchg_word_AX_SI(u8 X86EMU_UNUSED(op1))
-{
-    u32 tmp;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("XCHG\tEAX,ESI\n");
-    } else {
-        DECODE_PRINTF("XCHG\tAX,SI\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        tmp = M.x86.R_EAX;
-        M.x86.R_EAX = M.x86.R_ESI;
-        M.x86.R_ESI = tmp;
-    } else {
-        tmp = M.x86.R_AX;
-        M.x86.R_AX = M.x86.R_SI;
-        M.x86.R_SI = (u16)tmp;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x97
-****************************************************************************/
-static void x86emuOp_xchg_word_AX_DI(u8 X86EMU_UNUSED(op1))
-{
-    u32 tmp;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("XCHG\tEAX,EDI\n");
-    } else {
-        DECODE_PRINTF("XCHG\tAX,DI\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        tmp = M.x86.R_EAX;
-        M.x86.R_EAX = M.x86.R_EDI;
-        M.x86.R_EDI = tmp;
-    } else {
-        tmp = M.x86.R_AX;
-        M.x86.R_AX = M.x86.R_DI;
-        M.x86.R_DI = (u16)tmp;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x98
-****************************************************************************/
-static void x86emuOp_cbw(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("CWDE\n");
-    } else {
-        DECODE_PRINTF("CBW\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        if (M.x86.R_AX & 0x8000) {
-            M.x86.R_EAX |= 0xffff0000;
-        } else {
-            M.x86.R_EAX &= 0x0000ffff;
-        }
-    } else {
-        if (M.x86.R_AL & 0x80) {
-            M.x86.R_AH = 0xff;
-        } else {
-            M.x86.R_AH = 0x0;
-        }
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x99
-****************************************************************************/
-static void x86emuOp_cwd(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("CDQ\n");
-    } else {
-        DECODE_PRINTF("CWD\n");
-    }
-    DECODE_PRINTF("CWD\n");
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        if (M.x86.R_EAX & 0x80000000) {
-            M.x86.R_EDX = 0xffffffff;
-        } else {
-            M.x86.R_EDX = 0x0;
-        }
-    } else {
-        if (M.x86.R_AX & 0x8000) {
-            M.x86.R_DX = 0xffff;
-        } else {
-            M.x86.R_DX = 0x0;
-        }
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x9a
-****************************************************************************/
-static void x86emuOp_call_far_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u16 farseg, faroff;
-
-    START_OF_INSTR();
-       DECODE_PRINTF("CALL\t");
-       faroff = fetch_word_imm();
-       farseg = fetch_word_imm();
-       DECODE_PRINTF2("%04x:", farseg);
-       DECODE_PRINTF2("%04x\n", faroff);
-       CALL_TRACE(M.x86.saved_cs, M.x86.saved_ip, farseg, faroff, "FAR ");
-
-    /* XXX
-     * 
-     * Hooked interrupt vectors calling into our "BIOS" will cause
-     * problems unless all intersegment stuff is checked for BIOS
-     * access.  Check needed here.  For moment, let it alone.
-     */
-    TRACE_AND_STEP();
-    push_word(M.x86.R_CS);
-    M.x86.R_CS = farseg;
-    push_word(M.x86.R_IP);
-    M.x86.R_IP = faroff;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x9b
-****************************************************************************/
-static void x86emuOp_wait(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("WAIT");
-    TRACE_AND_STEP();
-    /* NADA.  */
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x9c
-****************************************************************************/
-static void x86emuOp_pushf_word(u8 X86EMU_UNUSED(op1))
-{
-    u32 flags;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("PUSHFD\n");
-    } else {
-        DECODE_PRINTF("PUSHF\n");
-    }
-    TRACE_AND_STEP();
-
-    /* clear out *all* bits not representing flags, and turn on real bits */
-    flags = (M.x86.R_EFLG & F_MSK) | F_ALWAYS_ON;
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        push_long(flags);
-    } else {
-        push_word((u16)flags);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x9d
-****************************************************************************/
-static void x86emuOp_popf_word(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("POPFD\n");
-    } else {
-        DECODE_PRINTF("POPF\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EFLG = pop_long();
-    } else {
-        M.x86.R_FLG = pop_word();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x9e
-****************************************************************************/
-static void x86emuOp_sahf(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("SAHF\n");
-    TRACE_AND_STEP();
-    /* clear the lower bits of the flag register */
-    M.x86.R_FLG &= 0xffffff00;
-    /* or in the AH register into the flags register */
-    M.x86.R_FLG |= M.x86.R_AH;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x9f
-****************************************************************************/
-static void x86emuOp_lahf(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("LAHF\n");
-    TRACE_AND_STEP();
-       M.x86.R_AH = (u8)(M.x86.R_FLG & 0xff);
-    /*undocumented TC++ behavior??? Nope.  It's documented, but
-       you have too look real hard to notice it. */
-    M.x86.R_AH |= 0x2;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xa0
-****************************************************************************/
-static void x86emuOp_mov_AL_M_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u16 offset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\tAL,");
-    offset = fetch_word_imm();
-    DECODE_PRINTF2("[%04x]\n", offset);
-    TRACE_AND_STEP();
-    M.x86.R_AL = fetch_data_byte(offset);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xa1
-****************************************************************************/
-static void x86emuOp_mov_AX_M_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u16 offset;
-
-    START_OF_INSTR();
-    offset = fetch_word_imm();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF2("MOV\tEAX,[%04x]\n", offset);
-    } else {
-        DECODE_PRINTF2("MOV\tAX,[%04x]\n", offset);
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = fetch_data_long(offset);
-    } else {
-        M.x86.R_AX = fetch_data_word(offset);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xa2
-****************************************************************************/
-static void x86emuOp_mov_M_AL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u16 offset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\t");
-    offset = fetch_word_imm();
-    DECODE_PRINTF2("[%04x],AL\n", offset);
-    TRACE_AND_STEP();
-    store_data_byte(offset, M.x86.R_AL);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xa3
-****************************************************************************/
-static void x86emuOp_mov_M_AX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u16 offset;
-
-    START_OF_INSTR();
-    offset = fetch_word_imm();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF2("MOV\t[%04x],EAX\n", offset);
-    } else {
-        DECODE_PRINTF2("MOV\t[%04x],AX\n", offset);
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        store_data_long(offset, M.x86.R_EAX);
-    } else {
-        store_data_word(offset, M.x86.R_AX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xa4
-****************************************************************************/
-static void x86emuOp_movs_byte(u8 X86EMU_UNUSED(op1))
-{
-    u8  val;
-    u32 count;
-    int inc;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOVS\tBYTE\n");
-    if (ACCESS_FLAG(F_DF))   /* down */
-        inc = -1;
-    else
-        inc = 1;
-    TRACE_AND_STEP();
-    count = 1;
-    if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
-        /* dont care whether REPE or REPNE */
-        /* move them until CX is ZERO. */
-        count = M.x86.R_CX;
-        M.x86.R_CX = 0;
-        M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
-    }
-    while (count--) {
-        val = fetch_data_byte(M.x86.R_SI);
-        store_data_byte_abs(M.x86.R_ES, M.x86.R_DI, val);
-        M.x86.R_SI += inc;
-        M.x86.R_DI += inc;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xa5
-****************************************************************************/
-static void x86emuOp_movs_word(u8 X86EMU_UNUSED(op1))
-{
-    u32 val;
-    int inc;
-    u32 count;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("MOVS\tDWORD\n");
-        if (ACCESS_FLAG(F_DF))      /* down */
-            inc = -4;
-        else
-            inc = 4;
-    } else {
-        DECODE_PRINTF("MOVS\tWORD\n");
-        if (ACCESS_FLAG(F_DF))      /* down */
-            inc = -2;
-        else
-            inc = 2;
-    }
-    TRACE_AND_STEP();
-    count = 1;
-    if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
-        /* dont care whether REPE or REPNE */
-        /* move them until CX is ZERO. */
-        count = M.x86.R_CX;
-        M.x86.R_CX = 0;
-        M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
-    }
-    while (count--) {
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            val = fetch_data_long(M.x86.R_SI);
-            store_data_long_abs(M.x86.R_ES, M.x86.R_DI, val);
-        } else {
-            val = fetch_data_word(M.x86.R_SI);
-            store_data_word_abs(M.x86.R_ES, M.x86.R_DI, (u16)val);
-        }
-        M.x86.R_SI += inc;
-        M.x86.R_DI += inc;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xa6
-****************************************************************************/
-static void x86emuOp_cmps_byte(u8 X86EMU_UNUSED(op1))
-{
-    s8 val1, val2;
-    int inc;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("CMPS\tBYTE\n");
-    TRACE_AND_STEP();
-    if (ACCESS_FLAG(F_DF))   /* down */
-        inc = -1;
-    else
-        inc = 1;
-
-    if (M.x86.mode & SYSMODE_PREFIX_REPE) {
-        /* REPE  */
-        /* move them until CX is ZERO. */
-        while (M.x86.R_CX != 0) {
-            val1 = fetch_data_byte(M.x86.R_SI);
-            val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
-                     cmp_byte(val1, val2);
-            M.x86.R_CX -= 1;
-            M.x86.R_SI += inc;
-            M.x86.R_DI += inc;
-            if (ACCESS_FLAG(F_ZF) == 0)
-                break;
-        }
-        M.x86.mode &= ~SYSMODE_PREFIX_REPE;
-    } else if (M.x86.mode & SYSMODE_PREFIX_REPNE) {
-        /* REPNE  */
-        /* move them until CX is ZERO. */
-        while (M.x86.R_CX != 0) {
-            val1 = fetch_data_byte(M.x86.R_SI);
-            val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
-            cmp_byte(val1, val2);
-            M.x86.R_CX -= 1;
-            M.x86.R_SI += inc;
-            M.x86.R_DI += inc;
-            if (ACCESS_FLAG(F_ZF))
-                break;          /* zero flag set means equal */
-        }
-        M.x86.mode &= ~SYSMODE_PREFIX_REPNE;
-    } else {
-        val1 = fetch_data_byte(M.x86.R_SI);
-        val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
-        cmp_byte(val1, val2);
-        M.x86.R_SI += inc;
-        M.x86.R_DI += inc;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xa7
-****************************************************************************/
-static void x86emuOp_cmps_word(u8 X86EMU_UNUSED(op1))
-{
-    u32 val1,val2;
-    int inc;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("CMPS\tDWORD\n");
-        if (ACCESS_FLAG(F_DF))   /* down */
-            inc = -4;
-        else
-            inc = 4;
-    } else {
-        DECODE_PRINTF("CMPS\tWORD\n");
-        if (ACCESS_FLAG(F_DF))   /* down */
-            inc = -2;
-        else
-            inc = 2;
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_REPE) {
-        /* REPE  */
-        /* move them until CX is ZERO. */
-        while (M.x86.R_CX != 0) {
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                val1 = fetch_data_long(M.x86.R_SI);
-                val2 = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
-                cmp_long(val1, val2);
-            } else {
-                val1 = fetch_data_word(M.x86.R_SI);
-                val2 = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
-                cmp_word((u16)val1, (u16)val2);
-            }
-            M.x86.R_CX -= 1;
-            M.x86.R_SI += inc;
-            M.x86.R_DI += inc;
-            if (ACCESS_FLAG(F_ZF) == 0)
-                break;
-        }
-        M.x86.mode &= ~SYSMODE_PREFIX_REPE;
-    } else if (M.x86.mode & SYSMODE_PREFIX_REPNE) {
-        /* REPNE  */
-        /* move them until CX is ZERO. */
-        while (M.x86.R_CX != 0) {
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                val1 = fetch_data_long(M.x86.R_SI);
-                val2 = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
-                cmp_long(val1, val2);
-            } else {
-                val1 = fetch_data_word(M.x86.R_SI);
-                val2 = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
-                cmp_word((u16)val1, (u16)val2);
-            }
-            M.x86.R_CX -= 1;
-            M.x86.R_SI += inc;
-            M.x86.R_DI += inc;
-            if (ACCESS_FLAG(F_ZF))
-                break;          /* zero flag set means equal */
-        }
-        M.x86.mode &= ~SYSMODE_PREFIX_REPNE;
-    } else {
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            val1 = fetch_data_long(M.x86.R_SI);
-            val2 = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
-            cmp_long(val1, val2);
-        } else {
-            val1 = fetch_data_word(M.x86.R_SI);
-            val2 = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
-            cmp_word((u16)val1, (u16)val2);
-        }
-        M.x86.R_SI += inc;
-        M.x86.R_DI += inc;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xa8
-****************************************************************************/
-static void x86emuOp_test_AL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    int imm;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("TEST\tAL,");
-    imm = fetch_byte_imm();
-    DECODE_PRINTF2("%04x\n", imm);
-    TRACE_AND_STEP();
-       test_byte(M.x86.R_AL, (u8)imm);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xa9
-****************************************************************************/
-static void x86emuOp_test_AX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("TEST\tEAX,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("TEST\tAX,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        test_long(M.x86.R_EAX, srcval);
-    } else {
-        test_word(M.x86.R_AX, (u16)srcval);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xaa
-****************************************************************************/
-static void x86emuOp_stos_byte(u8 X86EMU_UNUSED(op1))
-{
-    int inc;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("STOS\tBYTE\n");
-    if (ACCESS_FLAG(F_DF))   /* down */
-        inc = -1;
-    else
-        inc = 1;
-    TRACE_AND_STEP();
-    if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
-        /* dont care whether REPE or REPNE */
-        /* move them until CX is ZERO. */
-        while (M.x86.R_CX != 0) {
-            store_data_byte_abs(M.x86.R_ES, M.x86.R_DI, M.x86.R_AL);
-            M.x86.R_CX -= 1;
-            M.x86.R_DI += inc;
-        }
-        M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
-    } else {
-        store_data_byte_abs(M.x86.R_ES, M.x86.R_DI, M.x86.R_AL);
-        M.x86.R_DI += inc;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xab
-****************************************************************************/
-static void x86emuOp_stos_word(u8 X86EMU_UNUSED(op1))
-{
-    int inc;
-    u32 count;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("STOS\tDWORD\n");
-        if (ACCESS_FLAG(F_DF))   /* down */
-            inc = -4;
-        else
-            inc = 4;
-    } else {
-        DECODE_PRINTF("STOS\tWORD\n");
-        if (ACCESS_FLAG(F_DF))   /* down */
-            inc = -2;
-        else
-            inc = 2;
-    }
-    TRACE_AND_STEP();
-    count = 1;
-    if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
-        /* dont care whether REPE or REPNE */
-        /* move them until CX is ZERO. */
-        count = M.x86.R_CX;
-        M.x86.R_CX = 0;
-        M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
-    }
-    while (count--) {
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            store_data_long_abs(M.x86.R_ES, M.x86.R_DI, M.x86.R_EAX);
-        } else {
-            store_data_word_abs(M.x86.R_ES, M.x86.R_DI, M.x86.R_AX);
-        }
-        M.x86.R_DI += inc;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xac
-****************************************************************************/
-static void x86emuOp_lods_byte(u8 X86EMU_UNUSED(op1))
-{
-    int inc;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("LODS\tBYTE\n");
-    TRACE_AND_STEP();
-    if (ACCESS_FLAG(F_DF))   /* down */
-        inc = -1;
-    else
-        inc = 1;
-    if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
-        /* dont care whether REPE or REPNE */
-        /* move them until CX is ZERO. */
-        while (M.x86.R_CX != 0) {
-            M.x86.R_AL = fetch_data_byte(M.x86.R_SI);
-            M.x86.R_CX -= 1;
-            M.x86.R_SI += inc;
-        }
-        M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
-    } else {
-        M.x86.R_AL = fetch_data_byte(M.x86.R_SI);
-        M.x86.R_SI += inc;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xad
-****************************************************************************/
-static void x86emuOp_lods_word(u8 X86EMU_UNUSED(op1))
-{
-    int inc;
-    u32 count;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("LODS\tDWORD\n");
-        if (ACCESS_FLAG(F_DF))   /* down */
-            inc = -4;
-        else
-            inc = 4;
-    } else {
-        DECODE_PRINTF("LODS\tWORD\n");
-        if (ACCESS_FLAG(F_DF))   /* down */
-            inc = -2;
-        else
-            inc = 2;
-    }
-    TRACE_AND_STEP();
-    count = 1;
-    if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
-        /* dont care whether REPE or REPNE */
-        /* move them until CX is ZERO. */
-        count = M.x86.R_CX;
-        M.x86.R_CX = 0;
-        M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
-    }
-    while (count--) {
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            M.x86.R_EAX = fetch_data_long(M.x86.R_SI);
-        } else {
-            M.x86.R_AX = fetch_data_word(M.x86.R_SI);
-        }
-        M.x86.R_SI += inc;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xae
-****************************************************************************/
-static void x86emuOp_scas_byte(u8 X86EMU_UNUSED(op1))
-{
-    s8 val2;
-    int inc;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SCAS\tBYTE\n");
-    TRACE_AND_STEP();
-    if (ACCESS_FLAG(F_DF))   /* down */
-        inc = -1;
-    else
-        inc = 1;
-    if (M.x86.mode & SYSMODE_PREFIX_REPE) {
-        /* REPE  */
-        /* move them until CX is ZERO. */
-        while (M.x86.R_CX != 0) {
-            val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
-            cmp_byte(M.x86.R_AL, val2);
-            M.x86.R_CX -= 1;
-            M.x86.R_DI += inc;
-            if (ACCESS_FLAG(F_ZF) == 0)
-                break;
-        }
-        M.x86.mode &= ~SYSMODE_PREFIX_REPE;
-    } else if (M.x86.mode & SYSMODE_PREFIX_REPNE) {
-        /* REPNE  */
-        /* move them until CX is ZERO. */
-        while (M.x86.R_CX != 0) {
-            val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
-            cmp_byte(M.x86.R_AL, val2);
-            M.x86.R_CX -= 1;
-            M.x86.R_DI += inc;
-            if (ACCESS_FLAG(F_ZF))
-                break;          /* zero flag set means equal */
-        }
-        M.x86.mode &= ~SYSMODE_PREFIX_REPNE;
-    } else {
-        val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
-        cmp_byte(M.x86.R_AL, val2);
-        M.x86.R_DI += inc;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xaf
-****************************************************************************/
-static void x86emuOp_scas_word(u8 X86EMU_UNUSED(op1))
-{
-    int inc;
-    u32 val;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("SCAS\tDWORD\n");
-        if (ACCESS_FLAG(F_DF))   /* down */
-            inc = -4;
-        else
-            inc = 4;
-    } else {
-        DECODE_PRINTF("SCAS\tWORD\n");
-        if (ACCESS_FLAG(F_DF))   /* down */
-            inc = -2;
-        else
-            inc = 2;
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_REPE) {
-        /* REPE  */
-        /* move them until CX is ZERO. */
-        while (M.x86.R_CX != 0) {
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                val = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
-                cmp_long(M.x86.R_EAX, val);
-            } else {
-                val = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
-                cmp_word(M.x86.R_AX, (u16)val);
-            }
-            M.x86.R_CX -= 1;
-            M.x86.R_DI += inc;
-            if (ACCESS_FLAG(F_ZF) == 0)
-                break;
-        }
-        M.x86.mode &= ~SYSMODE_PREFIX_REPE;
-    } else if (M.x86.mode & SYSMODE_PREFIX_REPNE) {
-        /* REPNE  */
-        /* move them until CX is ZERO. */
-        while (M.x86.R_CX != 0) {
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                val = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
-                cmp_long(M.x86.R_EAX, val);
-            } else {
-                val = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
-                cmp_word(M.x86.R_AX, (u16)val);
-            }
-            M.x86.R_CX -= 1;
-            M.x86.R_DI += inc;
-            if (ACCESS_FLAG(F_ZF))
-                break;          /* zero flag set means equal */
-        }
-        M.x86.mode &= ~SYSMODE_PREFIX_REPNE;
-    } else {
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            val = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
-            cmp_long(M.x86.R_EAX, val);
-        } else {
-            val = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
-            cmp_word(M.x86.R_AX, (u16)val);
-        }
-        M.x86.R_DI += inc;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xb0
-****************************************************************************/
-static void x86emuOp_mov_byte_AL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 imm;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\tAL,");
-    imm = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", imm);
-    TRACE_AND_STEP();
-    M.x86.R_AL = imm;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xb1
-****************************************************************************/
-static void x86emuOp_mov_byte_CL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 imm;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\tCL,");
-    imm = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", imm);
-    TRACE_AND_STEP();
-    M.x86.R_CL = imm;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xb2
-****************************************************************************/
-static void x86emuOp_mov_byte_DL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 imm;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\tDL,");
-    imm = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", imm);
-    TRACE_AND_STEP();
-    M.x86.R_DL = imm;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xb3
-****************************************************************************/
-static void x86emuOp_mov_byte_BL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 imm;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\tBL,");
-    imm = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", imm);
-    TRACE_AND_STEP();
-    M.x86.R_BL = imm;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xb4
-****************************************************************************/
-static void x86emuOp_mov_byte_AH_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 imm;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\tAH,");
-    imm = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", imm);
-    TRACE_AND_STEP();
-    M.x86.R_AH = imm;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xb5
-****************************************************************************/
-static void x86emuOp_mov_byte_CH_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 imm;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\tCH,");
-    imm = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", imm);
-    TRACE_AND_STEP();
-    M.x86.R_CH = imm;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xb6
-****************************************************************************/
-static void x86emuOp_mov_byte_DH_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 imm;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\tDH,");
-    imm = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", imm);
-    TRACE_AND_STEP();
-    M.x86.R_DH = imm;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xb7
-****************************************************************************/
-static void x86emuOp_mov_byte_BH_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 imm;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\tBH,");
-    imm = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", imm);
-    TRACE_AND_STEP();
-    M.x86.R_BH = imm;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xb8
-****************************************************************************/
-static void x86emuOp_mov_word_AX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("MOV\tEAX,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("MOV\tAX,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = srcval;
-    } else {
-        M.x86.R_AX = (u16)srcval;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xb9
-****************************************************************************/
-static void x86emuOp_mov_word_CX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("MOV\tECX,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("MOV\tCX,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_ECX = srcval;
-    } else {
-        M.x86.R_CX = (u16)srcval;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xba
-****************************************************************************/
-static void x86emuOp_mov_word_DX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("MOV\tEDX,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("MOV\tDX,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EDX = srcval;
-    } else {
-        M.x86.R_DX = (u16)srcval;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xbb
-****************************************************************************/
-static void x86emuOp_mov_word_BX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("MOV\tEBX,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("MOV\tBX,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EBX = srcval;
-    } else {
-        M.x86.R_BX = (u16)srcval;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xbc
-****************************************************************************/
-static void x86emuOp_mov_word_SP_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("MOV\tESP,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("MOV\tSP,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_ESP = srcval;
-    } else {
-        M.x86.R_SP = (u16)srcval;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xbd
-****************************************************************************/
-static void x86emuOp_mov_word_BP_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("MOV\tEBP,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("MOV\tBP,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EBP = srcval;
-    } else {
-        M.x86.R_BP = (u16)srcval;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xbe
-****************************************************************************/
-static void x86emuOp_mov_word_SI_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("MOV\tESI,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("MOV\tSI,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_ESI = srcval;
-    } else {
-        M.x86.R_SI = (u16)srcval;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xbf
-****************************************************************************/
-static void x86emuOp_mov_word_DI_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u32 srcval;
-
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("MOV\tEDI,");
-        srcval = fetch_long_imm();
-    } else {
-        DECODE_PRINTF("MOV\tDI,");
-        srcval = fetch_word_imm();
-    }
-    DECODE_PRINTF2("%x\n", srcval);
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EDI = srcval;
-    } else {
-        M.x86.R_DI = (u16)srcval;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/* used by opcodes c0, d0, and d2. */
-static u8(*opcD0_byte_operation[])(u8 d, u8 s) =
-{
-    rol_byte,
-    ror_byte,
-    rcl_byte,
-    rcr_byte,
-    shl_byte,
-    shr_byte,
-    shl_byte,           /* sal_byte === shl_byte  by definition */
-    sar_byte,
-};
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xc0
-****************************************************************************/
-static void x86emuOp_opcC0_byte_RM_MEM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg;
-    uint destoffset;
-    u8 destval;
-    u8 amt;
-
-    /*
-     * Yet another weirdo special case instruction format.  Part of
-     * the opcode held below in "RH".  Doubly nested case would
-     * result, except that the decoded instruction
-     */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (DEBUG_DECODE()) {
-        /* XXX DECODE_PRINTF may be changed to something more
-           general, so that it is important to leave the strings
-           in the same format, even though the result is that the 
-           above test is done twice. */
-
-        switch (rh) {
-        case 0:
-            DECODE_PRINTF("ROL\t");
-            break;
-        case 1:
-            DECODE_PRINTF("ROR\t");
-            break;
-        case 2:
-            DECODE_PRINTF("RCL\t");
-            break;
-        case 3:
-            DECODE_PRINTF("RCR\t");
-            break;
-        case 4:
-            DECODE_PRINTF("SHL\t");
-            break;
-        case 5:
-            DECODE_PRINTF("SHR\t");
-            break;
-        case 6:
-            DECODE_PRINTF("SAL\t");
-            break;
-        case 7:
-            DECODE_PRINTF("SAR\t");
-            break;
-        }
-    }
-#endif
-    /* know operation, decode the mod byte to find the addressing
-       mode. */
-    switch (mod) {
-    case 0:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm00_address(rl);
-        amt = fetch_byte_imm();
-        DECODE_PRINTF2(",%x\n", amt);
-        destval = fetch_data_byte(destoffset);
-        TRACE_AND_STEP();
-        destval = (*opcD0_byte_operation[rh]) (destval, amt);
-        store_data_byte(destoffset, destval);
-        break;
-    case 1:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm01_address(rl);
-        amt = fetch_byte_imm();
-        DECODE_PRINTF2(",%x\n", amt);
-        destval = fetch_data_byte(destoffset);
-        TRACE_AND_STEP();
-        destval = (*opcD0_byte_operation[rh]) (destval, amt);
-        store_data_byte(destoffset, destval);
-        break;
-    case 2:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm10_address(rl);
-        amt = fetch_byte_imm();
-        DECODE_PRINTF2(",%x\n", amt);
-        destval = fetch_data_byte(destoffset);
-        TRACE_AND_STEP();
-        destval = (*opcD0_byte_operation[rh]) (destval, amt);
-        store_data_byte(destoffset, destval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        amt = fetch_byte_imm();
-        DECODE_PRINTF2(",%x\n", amt);
-        TRACE_AND_STEP();
-        destval = (*opcD0_byte_operation[rh]) (*destreg, amt);
-        *destreg = destval;
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/* used by opcodes c1, d1, and d3. */
-static u16(*opcD1_word_operation[])(u16 s, u8 d) =
-{
-    rol_word,
-    ror_word,
-    rcl_word,
-    rcr_word,
-    shl_word,
-    shr_word,
-    shl_word,           /* sal_byte === shl_byte  by definition */
-    sar_word,
-};
-
-/* used by opcodes c1, d1, and d3. */
-static u32 (*opcD1_long_operation[])(u32 s, u8 d) =
-{
-    rol_long,
-    ror_long,
-    rcl_long,
-    rcr_long,
-    shl_long,
-    shr_long,
-    shl_long,           /* sal_byte === shl_byte  by definition */
-    sar_long,
-};
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xc1
-****************************************************************************/
-static void x86emuOp_opcC1_word_RM_MEM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-    u8 amt;
-
-    /*
-     * Yet another weirdo special case instruction format.  Part of
-     * the opcode held below in "RH".  Doubly nested case would
-     * result, except that the decoded instruction
-     */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (DEBUG_DECODE()) {
-        /* XXX DECODE_PRINTF may be changed to something more
-           general, so that it is important to leave the strings
-           in the same format, even though the result is that the 
-           above test is done twice. */
-
-        switch (rh) {
-        case 0:
-            DECODE_PRINTF("ROL\t");
-            break;
-        case 1:
-            DECODE_PRINTF("ROR\t");
-            break;
-        case 2:
-            DECODE_PRINTF("RCL\t");
-            break;
-        case 3:
-            DECODE_PRINTF("RCR\t");
-            break;
-        case 4:
-            DECODE_PRINTF("SHL\t");
-            break;
-        case 5:
-            DECODE_PRINTF("SHR\t");
-            break;
-        case 6:
-            DECODE_PRINTF("SAL\t");
-            break;
-        case 7:
-            DECODE_PRINTF("SAR\t");
-            break;
-        }
-    }
-#endif
-    /* know operation, decode the mod byte to find the addressing
-       mode. */
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm00_address(rl);
-            amt = fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", amt);
-            destval = fetch_data_long(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_long_operation[rh]) (destval, amt);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm00_address(rl);
-            amt = fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", amt);
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_word_operation[rh]) (destval, amt);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm01_address(rl);
-            amt = fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", amt);
-            destval = fetch_data_long(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_long_operation[rh]) (destval, amt);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm01_address(rl);
-            amt = fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", amt);
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_word_operation[rh]) (destval, amt);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm10_address(rl);
-            amt = fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", amt);
-            destval = fetch_data_long(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_long_operation[rh]) (destval, amt);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm10_address(rl);
-            amt = fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", amt);
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_word_operation[rh]) (destval, amt);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            amt = fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", amt);
-            TRACE_AND_STEP();
-            *destreg = (*opcD1_long_operation[rh]) (*destreg, amt);
-        } else {
-            u16 *destreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            amt = fetch_byte_imm();
-            DECODE_PRINTF2(",%x\n", amt);
-            TRACE_AND_STEP();
-            *destreg = (*opcD1_word_operation[rh]) (*destreg, amt);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xc2
-****************************************************************************/
-static void x86emuOp_ret_near_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u16 imm;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("RET\t");
-    imm = fetch_word_imm();
-    DECODE_PRINTF2("%x\n", imm);
-       RETURN_TRACE("RET",M.x86.saved_cs,M.x86.saved_ip);
-       TRACE_AND_STEP();
-    M.x86.R_IP = pop_word();
-    M.x86.R_SP += imm;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xc3
-****************************************************************************/
-static void x86emuOp_ret_near(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("RET\n");
-       RETURN_TRACE("RET",M.x86.saved_cs,M.x86.saved_ip);
-       TRACE_AND_STEP();
-    M.x86.R_IP = pop_word();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xc4
-****************************************************************************/
-static void x86emuOp_les_R_IMM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rh, rl;
-    u16 *dstreg;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("LES\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_ES = fetch_data_word(srcoffset + 2);
-        break;
-    case 1:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_ES = fetch_data_word(srcoffset + 2);
-        break;
-    case 2:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_ES = fetch_data_word(srcoffset + 2);
-        break;
-    case 3:                     /* register to register */
-        /* UNDEFINED! */
-        TRACE_AND_STEP();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xc5
-****************************************************************************/
-static void x86emuOp_lds_R_IMM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rh, rl;
-    u16 *dstreg;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("LDS\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_DS = fetch_data_word(srcoffset + 2);
-        break;
-    case 1:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_DS = fetch_data_word(srcoffset + 2);
-        break;
-    case 2:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_DS = fetch_data_word(srcoffset + 2);
-        break;
-    case 3:                     /* register to register */
-        /* UNDEFINED! */
-        TRACE_AND_STEP();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xc6
-****************************************************************************/
-static void x86emuOp_mov_byte_RM_IMM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg;
-    uint destoffset;
-    u8 imm;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    if (rh != 0) {
-        DECODE_PRINTF("ILLEGAL DECODE OF OPCODE c6\n");
-        HALT_SYS();
-    }
-    switch (mod) {
-    case 0:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm00_address(rl);
-        imm = fetch_byte_imm();
-        DECODE_PRINTF2(",%2x\n", imm);
-        TRACE_AND_STEP();
-        store_data_byte(destoffset, imm);
-        break;
-    case 1:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm01_address(rl);
-        imm = fetch_byte_imm();
-        DECODE_PRINTF2(",%2x\n", imm);
-        TRACE_AND_STEP();
-        store_data_byte(destoffset, imm);
-        break;
-    case 2:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm10_address(rl);
-        imm = fetch_byte_imm();
-        DECODE_PRINTF2(",%2x\n", imm);
-        TRACE_AND_STEP();
-        store_data_byte(destoffset, imm);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        imm = fetch_byte_imm();
-        DECODE_PRINTF2(",%2x\n", imm);
-        TRACE_AND_STEP();
-        *destreg = imm;
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xc7
-****************************************************************************/
-static void x86emuOp_mov_word_RM_IMM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOV\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    if (rh != 0) {
-        DECODE_PRINTF("ILLEGAL DECODE OF OPCODE 8F\n");
-        HALT_SYS();
-    }
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 imm;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm00_address(rl);
-            imm = fetch_long_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            store_data_long(destoffset, imm);
-        } else {
-            u16 imm;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm00_address(rl);
-            imm = fetch_word_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            store_data_word(destoffset, imm);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 imm;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm01_address(rl);
-            imm = fetch_long_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            store_data_long(destoffset, imm);
-        } else {
-            u16 imm;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm01_address(rl);
-            imm = fetch_word_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            store_data_word(destoffset, imm);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 imm;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm10_address(rl);
-            imm = fetch_long_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            store_data_long(destoffset, imm);
-        } else {
-            u16 imm;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm10_address(rl);
-            imm = fetch_word_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            store_data_word(destoffset, imm);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                       u32 *destreg;
-                       u32 imm;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            imm = fetch_long_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            *destreg = imm;
-        } else {
-                       u16 *destreg;
-                       u16 imm;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            imm = fetch_word_imm();
-            DECODE_PRINTF2(",%x\n", imm);
-            TRACE_AND_STEP();
-            *destreg = imm;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xc8
-****************************************************************************/
-static void x86emuOp_enter(u8 X86EMU_UNUSED(op1))
-{
-    u16 local,frame_pointer;
-    u8  nesting;
-    int i;
-
-    START_OF_INSTR();
-    local = fetch_word_imm();
-    nesting = fetch_byte_imm();
-    DECODE_PRINTF2("ENTER %x\n", local);
-    DECODE_PRINTF2(",%x\n", nesting);
-    TRACE_AND_STEP();
-    push_word(M.x86.R_BP);
-    frame_pointer = M.x86.R_SP;
-    if (nesting > 0) {
-        for (i = 1; i < nesting; i++) {
-            M.x86.R_BP -= 2;
-            push_word(fetch_data_word_abs(M.x86.R_SS, M.x86.R_BP));
-            }
-        push_word(frame_pointer);
-        }
-    M.x86.R_BP = frame_pointer;
-    M.x86.R_SP = (u16)(M.x86.R_SP - local);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xc9
-****************************************************************************/
-static void x86emuOp_leave(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("LEAVE\n");
-    TRACE_AND_STEP();
-    M.x86.R_SP = M.x86.R_BP;
-    M.x86.R_BP = pop_word();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xca
-****************************************************************************/
-static void x86emuOp_ret_far_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u16 imm;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("RETF\t");
-    imm = fetch_word_imm();
-    DECODE_PRINTF2("%x\n", imm);
-       RETURN_TRACE("RETF",M.x86.saved_cs,M.x86.saved_ip);
-       TRACE_AND_STEP();
-    M.x86.R_IP = pop_word();
-    M.x86.R_CS = pop_word();
-    M.x86.R_SP += imm;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xcb
-****************************************************************************/
-static void x86emuOp_ret_far(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("RETF\n");
-       RETURN_TRACE("RETF",M.x86.saved_cs,M.x86.saved_ip);
-       TRACE_AND_STEP();
-    M.x86.R_IP = pop_word();
-    M.x86.R_CS = pop_word();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xcc
-****************************************************************************/
-static void x86emuOp_int3(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("INT 3\n");
-    TRACE_AND_STEP();
-    if (_X86EMU_intrTab[3]) {
-       (*_X86EMU_intrTab[3])(3);
-    } else {
-        push_word((u16)M.x86.R_FLG);
-        CLEAR_FLAG(F_IF);
-        CLEAR_FLAG(F_TF);
-        push_word(M.x86.R_CS);
-        M.x86.R_CS = mem_access_word(3 * 4 + 2);
-        push_word(M.x86.R_IP);
-        M.x86.R_IP = mem_access_word(3 * 4);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xcd
-****************************************************************************/
-static void x86emuOp_int_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 intnum;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("INT\t");
-    intnum = fetch_byte_imm();
-    DECODE_PRINTF2("%x\n", intnum);
-    TRACE_AND_STEP();
-    if (_X86EMU_intrTab[intnum]) {
-       (*_X86EMU_intrTab[intnum])(intnum);
-    } else {
-        push_word((u16)M.x86.R_FLG);
-        CLEAR_FLAG(F_IF);
-        CLEAR_FLAG(F_TF);
-        push_word(M.x86.R_CS);
-        M.x86.R_CS = mem_access_word(intnum * 4 + 2);
-        push_word(M.x86.R_IP);
-        M.x86.R_IP = mem_access_word(intnum * 4);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xce
-****************************************************************************/
-static void x86emuOp_into(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("INTO\n");
-    TRACE_AND_STEP();
-    if (ACCESS_FLAG(F_OF)) {
-       if (_X86EMU_intrTab[4]) {
-           (*_X86EMU_intrTab[4])(4);
-        } else {
-            push_word((u16)M.x86.R_FLG);
-            CLEAR_FLAG(F_IF);
-            CLEAR_FLAG(F_TF);
-            push_word(M.x86.R_CS);
-            M.x86.R_CS = mem_access_word(4 * 4 + 2);
-            push_word(M.x86.R_IP);
-            M.x86.R_IP = mem_access_word(4 * 4);
-        }
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xcf
-****************************************************************************/
-static void x86emuOp_iret(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("IRET\n");
-
-    TRACE_AND_STEP();
-
-    M.x86.R_IP = pop_word();
-    M.x86.R_CS = pop_word();
-    M.x86.R_FLG = pop_word();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xd0
-****************************************************************************/
-static void x86emuOp_opcD0_byte_RM_1(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg;
-    uint destoffset;
-    u8 destval;
-
-    /*
-     * Yet another weirdo special case instruction format.  Part of
-     * the opcode held below in "RH".  Doubly nested case would
-     * result, except that the decoded instruction
-     */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (DEBUG_DECODE()) {
-        /* XXX DECODE_PRINTF may be changed to something more
-           general, so that it is important to leave the strings
-           in the same format, even though the result is that the
-           above test is done twice. */
-        switch (rh) {
-        case 0:
-            DECODE_PRINTF("ROL\t");
-            break;
-        case 1:
-            DECODE_PRINTF("ROR\t");
-            break;
-        case 2:
-            DECODE_PRINTF("RCL\t");
-            break;
-        case 3:
-            DECODE_PRINTF("RCR\t");
-            break;
-        case 4:
-            DECODE_PRINTF("SHL\t");
-            break;
-        case 5:
-            DECODE_PRINTF("SHR\t");
-            break;
-        case 6:
-            DECODE_PRINTF("SAL\t");
-            break;
-        case 7:
-            DECODE_PRINTF("SAR\t");
-            break;
-        }
-    }
-#endif
-    /* know operation, decode the mod byte to find the addressing
-       mode. */
-    switch (mod) {
-    case 0:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",1\n");
-        destval = fetch_data_byte(destoffset);
-        TRACE_AND_STEP();
-        destval = (*opcD0_byte_operation[rh]) (destval, 1);
-        store_data_byte(destoffset, destval);
-        break;
-    case 1:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",1\n");
-        destval = fetch_data_byte(destoffset);
-        TRACE_AND_STEP();
-        destval = (*opcD0_byte_operation[rh]) (destval, 1);
-        store_data_byte(destoffset, destval);
-        break;
-    case 2:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",1\n");
-        destval = fetch_data_byte(destoffset);
-        TRACE_AND_STEP();
-        destval = (*opcD0_byte_operation[rh]) (destval, 1);
-        store_data_byte(destoffset, destval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",1\n");
-        TRACE_AND_STEP();
-        destval = (*opcD0_byte_operation[rh]) (*destreg, 1);
-        *destreg = destval;
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xd1
-****************************************************************************/
-static void x86emuOp_opcD1_word_RM_1(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    /*
-     * Yet another weirdo special case instruction format.  Part of
-     * the opcode held below in "RH".  Doubly nested case would
-     * result, except that the decoded instruction
-     */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (DEBUG_DECODE()) {
-        /* XXX DECODE_PRINTF may be changed to something more
-           general, so that it is important to leave the strings
-           in the same format, even though the result is that the
-           above test is done twice. */
-        switch (rh) {
-        case 0:
-            DECODE_PRINTF("ROL\t");
-            break;
-        case 1:
-            DECODE_PRINTF("ROR\t");
-            break;
-        case 2:
-            DECODE_PRINTF("RCL\t");
-            break;
-        case 3:
-            DECODE_PRINTF("RCR\t");
-            break;
-        case 4:
-            DECODE_PRINTF("SHL\t");
-            break;
-        case 5:
-            DECODE_PRINTF("SHR\t");
-            break;
-        case 6:
-            DECODE_PRINTF("SAL\t");
-            break;
-        case 7:
-            DECODE_PRINTF("SAR\t");
-            break;
-        }
-    }
-#endif
-    /* know operation, decode the mod byte to find the addressing
-       mode. */
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",1\n");
-            destval = fetch_data_long(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_long_operation[rh]) (destval, 1);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",1\n");
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_word_operation[rh]) (destval, 1);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",1\n");
-            destval = fetch_data_long(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_long_operation[rh]) (destval, 1);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",1\n");
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_word_operation[rh]) (destval, 1);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",1\n");
-            destval = fetch_data_long(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_long_operation[rh]) (destval, 1);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-
-            DECODE_PRINTF("BYTE PTR ");
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",1\n");
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_word_operation[rh]) (destval, 1);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                       u32 destval;
-                       u32 *destreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",1\n");
-            TRACE_AND_STEP();
-            destval = (*opcD1_long_operation[rh]) (*destreg, 1);
-            *destreg = destval;
-        } else {
-                       u16 destval;
-                       u16 *destreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",1\n");
-            TRACE_AND_STEP();
-            destval = (*opcD1_word_operation[rh]) (*destreg, 1);
-            *destreg = destval;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xd2
-****************************************************************************/
-static void x86emuOp_opcD2_byte_RM_CL(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg;
-    uint destoffset;
-    u8 destval;
-    u8 amt;
-
-    /*
-     * Yet another weirdo special case instruction format.  Part of
-     * the opcode held below in "RH".  Doubly nested case would
-     * result, except that the decoded instruction
-     */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (DEBUG_DECODE()) {
-        /* XXX DECODE_PRINTF may be changed to something more
-           general, so that it is important to leave the strings
-           in the same format, even though the result is that the 
-           above test is done twice. */
-        switch (rh) {
-        case 0:
-            DECODE_PRINTF("ROL\t");
-            break;
-        case 1:
-            DECODE_PRINTF("ROR\t");
-            break;
-        case 2:
-            DECODE_PRINTF("RCL\t");
-            break;
-        case 3:
-            DECODE_PRINTF("RCR\t");
-            break;
-        case 4:
-            DECODE_PRINTF("SHL\t");
-            break;
-        case 5:
-            DECODE_PRINTF("SHR\t");
-            break;
-        case 6:
-            DECODE_PRINTF("SAL\t");
-            break;
-        case 7:
-            DECODE_PRINTF("SAR\t");
-            break;
-        }
-    }
-#endif
-    /* know operation, decode the mod byte to find the addressing
-       mode. */
-    amt = M.x86.R_CL;
-    switch (mod) {
-    case 0:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF(",CL\n");
-        destval = fetch_data_byte(destoffset);
-        TRACE_AND_STEP();
-        destval = (*opcD0_byte_operation[rh]) (destval, amt);
-        store_data_byte(destoffset, destval);
-        break;
-    case 1:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF(",CL\n");
-        destval = fetch_data_byte(destoffset);
-        TRACE_AND_STEP();
-        destval = (*opcD0_byte_operation[rh]) (destval, amt);
-        store_data_byte(destoffset, destval);
-        break;
-    case 2:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF(",CL\n");
-        destval = fetch_data_byte(destoffset);
-        TRACE_AND_STEP();
-        destval = (*opcD0_byte_operation[rh]) (destval, amt);
-        store_data_byte(destoffset, destval);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF(",CL\n");
-        TRACE_AND_STEP();
-        destval = (*opcD0_byte_operation[rh]) (*destreg, amt);
-        *destreg = destval;
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xd3
-****************************************************************************/
-static void x86emuOp_opcD3_word_RM_CL(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-    u8 amt;
-
-    /*
-     * Yet another weirdo special case instruction format.  Part of
-     * the opcode held below in "RH".  Doubly nested case would
-     * result, except that the decoded instruction
-     */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (DEBUG_DECODE()) {
-        /* XXX DECODE_PRINTF may be changed to something more
-           general, so that it is important to leave the strings
-           in the same format, even though the result is that the 
-           above test is done twice. */
-        switch (rh) {
-        case 0:
-            DECODE_PRINTF("ROL\t");
-            break;
-        case 1:
-            DECODE_PRINTF("ROR\t");
-            break;
-        case 2:
-            DECODE_PRINTF("RCL\t");
-            break;
-        case 3:
-            DECODE_PRINTF("RCR\t");
-            break;
-        case 4:
-            DECODE_PRINTF("SHL\t");
-            break;
-        case 5:
-            DECODE_PRINTF("SHR\t");
-            break;
-        case 6:
-            DECODE_PRINTF("SAL\t");
-            break;
-        case 7:
-            DECODE_PRINTF("SAR\t");
-            break;
-        }
-    }
-#endif
-    /* know operation, decode the mod byte to find the addressing
-       mode. */
-    amt = M.x86.R_CL;
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",CL\n");
-            destval = fetch_data_long(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_long_operation[rh]) (destval, amt);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",CL\n");
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_word_operation[rh]) (destval, amt);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",CL\n");
-            destval = fetch_data_long(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_long_operation[rh]) (destval, amt);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",CL\n");
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_word_operation[rh]) (destval, amt);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-
-            DECODE_PRINTF("DWORD PTR ");
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",CL\n");
-            destval = fetch_data_long(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_long_operation[rh]) (destval, amt);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-
-            DECODE_PRINTF("WORD PTR ");
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",CL\n");
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            destval = (*opcD1_word_operation[rh]) (destval, amt);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            *destreg = (*opcD1_long_operation[rh]) (*destreg, amt);
-        } else {
-            u16 *destreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            *destreg = (*opcD1_word_operation[rh]) (*destreg, amt);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xd4
-****************************************************************************/
-static void x86emuOp_aam(u8 X86EMU_UNUSED(op1))
-{
-    u8 a;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("AAM\n");
-    a = fetch_byte_imm();      /* this is a stupid encoding. */
-    if (a != 10) {
-       /* fix: add base decoding
-          aam_word(u8 val, int base a) */
-        DECODE_PRINTF("ERROR DECODING AAM\n");
-        TRACE_REGS();
-        HALT_SYS();
-    }
-    TRACE_AND_STEP();
-    /* note the type change here --- returning AL and AH in AX. */
-    M.x86.R_AX = aam_word(M.x86.R_AL);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xd5
-****************************************************************************/
-static void x86emuOp_aad(u8 X86EMU_UNUSED(op1))
-{
-    u8 a;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("AAD\n");
-    a = fetch_byte_imm();
-    if (a != 10) {
-       /* fix: add base decoding
-          aad_word(u16 val, int base a) */
-        DECODE_PRINTF("ERROR DECODING AAM\n");
-        TRACE_REGS();
-        HALT_SYS();
-    }
-    TRACE_AND_STEP();
-    M.x86.R_AX = aad_word(M.x86.R_AX);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/* opcode 0xd6 ILLEGAL OPCODE */
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xd7
-****************************************************************************/
-static void x86emuOp_xlat(u8 X86EMU_UNUSED(op1))
-{
-    u16 addr;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("XLAT\n");
-    TRACE_AND_STEP();
-       addr = (u16)(M.x86.R_BX + (u8)M.x86.R_AL);
-    M.x86.R_AL = fetch_data_byte(addr);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/* instuctions  D8 .. DF are in i87_ops.c */
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xe0
-****************************************************************************/
-static void x86emuOp_loopne(u8 X86EMU_UNUSED(op1))
-{
-    s16 ip;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("LOOPNE\t");
-    ip = (s8) fetch_byte_imm();
-    ip += (s16) M.x86.R_IP;
-    DECODE_PRINTF2("%04x\n", ip);
-    TRACE_AND_STEP();
-    M.x86.R_CX -= 1;
-    if (M.x86.R_CX != 0 && !ACCESS_FLAG(F_ZF))      /* CX != 0 and !ZF */
-        M.x86.R_IP = ip;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xe1
-****************************************************************************/
-static void x86emuOp_loope(u8 X86EMU_UNUSED(op1))
-{
-    s16 ip;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("LOOPE\t");
-    ip = (s8) fetch_byte_imm();
-    ip += (s16) M.x86.R_IP;
-    DECODE_PRINTF2("%04x\n", ip);
-    TRACE_AND_STEP();
-    M.x86.R_CX -= 1;
-    if (M.x86.R_CX != 0 && ACCESS_FLAG(F_ZF))       /* CX != 0 and ZF */
-        M.x86.R_IP = ip;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xe2
-****************************************************************************/
-static void x86emuOp_loop(u8 X86EMU_UNUSED(op1))
-{
-    s16 ip;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("LOOP\t");
-    ip = (s8) fetch_byte_imm();
-    ip += (s16) M.x86.R_IP;
-    DECODE_PRINTF2("%04x\n", ip);
-    TRACE_AND_STEP();
-    M.x86.R_CX -= 1;
-    if (M.x86.R_CX != 0)
-        M.x86.R_IP = ip;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xe3
-****************************************************************************/
-static void x86emuOp_jcxz(u8 X86EMU_UNUSED(op1))
-{
-    u16 target;
-    s8  offset;
-
-    /* jump to byte offset if overflow flag is set */
-    START_OF_INSTR();
-    DECODE_PRINTF("JCXZ\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    if (M.x86.R_CX == 0)
-        M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xe4
-****************************************************************************/
-static void x86emuOp_in_byte_AL_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 port;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("IN\t");
-       port = (u8) fetch_byte_imm();
-    DECODE_PRINTF2("%x,AL\n", port);
-    TRACE_AND_STEP();
-    M.x86.R_AL = (*sys_inb)(port);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xe5
-****************************************************************************/
-static void x86emuOp_in_word_AX_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u8 port;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("IN\t");
-       port = (u8) fetch_byte_imm();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF2("EAX,%x\n", port);
-    } else {
-        DECODE_PRINTF2("AX,%x\n", port);
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = (*sys_inl)(port);
-    } else {
-        M.x86.R_AX = (*sys_inw)(port);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xe6
-****************************************************************************/
-static void x86emuOp_out_byte_IMM_AL(u8 X86EMU_UNUSED(op1))
-{
-    u8 port;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("OUT\t");
-       port = (u8) fetch_byte_imm();
-    DECODE_PRINTF2("%x,AL\n", port);
-    TRACE_AND_STEP();
-    (*sys_outb)(port, M.x86.R_AL);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xe7
-****************************************************************************/
-static void x86emuOp_out_word_IMM_AX(u8 X86EMU_UNUSED(op1))
-{
-    u8 port;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("OUT\t");
-       port = (u8) fetch_byte_imm();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF2("%x,EAX\n", port);
-    } else {
-        DECODE_PRINTF2("%x,AX\n", port);
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        (*sys_outl)(port, M.x86.R_EAX);
-    } else {
-        (*sys_outw)(port, M.x86.R_AX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xe8
-****************************************************************************/
-static void x86emuOp_call_near_IMM(u8 X86EMU_UNUSED(op1))
-{
-    s16 ip;
-
-    START_OF_INSTR();
-       DECODE_PRINTF("CALL\t");
-       ip = (s16) fetch_word_imm();
-       ip += (s16) M.x86.R_IP;    /* CHECK SIGN */
-       DECODE_PRINTF2("%04x\n", (u16)ip);
-       CALL_TRACE(M.x86.saved_cs, M.x86.saved_ip, M.x86.R_CS, ip, "");
-    TRACE_AND_STEP();
-    push_word(M.x86.R_IP);
-    M.x86.R_IP = ip;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xe9
-****************************************************************************/
-static void x86emuOp_jump_near_IMM(u8 X86EMU_UNUSED(op1))
-{
-    int ip;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("JMP\t");
-    ip = (s16)fetch_word_imm();
-    ip += (s16)M.x86.R_IP;
-    DECODE_PRINTF2("%04x\n", (u16)ip);
-    TRACE_AND_STEP();
-    M.x86.R_IP = (u16)ip;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xea
-****************************************************************************/
-static void x86emuOp_jump_far_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u16 cs, ip;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("JMP\tFAR ");
-    ip = fetch_word_imm();
-    cs = fetch_word_imm();
-    DECODE_PRINTF2("%04x:", cs);
-    DECODE_PRINTF2("%04x\n", ip);
-    TRACE_AND_STEP();
-    M.x86.R_IP = ip;
-    M.x86.R_CS = cs;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xeb
-****************************************************************************/
-static void x86emuOp_jump_byte_IMM(u8 X86EMU_UNUSED(op1))
-{
-    u16 target;
-    s8 offset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("JMP\t");
-    offset = (s8)fetch_byte_imm();
-    target = (u16)(M.x86.R_IP + offset);
-    DECODE_PRINTF2("%x\n", target);
-    TRACE_AND_STEP();
-    M.x86.R_IP = target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xec
-****************************************************************************/
-static void x86emuOp_in_byte_AL_DX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("IN\tAL,DX\n");
-    TRACE_AND_STEP();
-    M.x86.R_AL = (*sys_inb)(M.x86.R_DX);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xed
-****************************************************************************/
-static void x86emuOp_in_word_AX_DX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("IN\tEAX,DX\n");
-    } else {
-        DECODE_PRINTF("IN\tAX,DX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        M.x86.R_EAX = (*sys_inl)(M.x86.R_DX);
-    } else {
-        M.x86.R_AX = (*sys_inw)(M.x86.R_DX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xee
-****************************************************************************/
-static void x86emuOp_out_byte_DX_AL(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("OUT\tDX,AL\n");
-    TRACE_AND_STEP();
-    (*sys_outb)(M.x86.R_DX, M.x86.R_AL);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xef
-****************************************************************************/
-static void x86emuOp_out_word_DX_AX(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        DECODE_PRINTF("OUT\tDX,EAX\n");
-    } else {
-        DECODE_PRINTF("OUT\tDX,AX\n");
-    }
-    TRACE_AND_STEP();
-    if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-        (*sys_outl)(M.x86.R_DX, M.x86.R_EAX);
-    } else {
-        (*sys_outw)(M.x86.R_DX, M.x86.R_AX);
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xf0
-****************************************************************************/
-static void x86emuOp_lock(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("LOCK:\n");
-    TRACE_AND_STEP();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/*opcode 0xf1 ILLEGAL OPERATION */
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xf2
-****************************************************************************/
-static void x86emuOp_repne(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("REPNE\n");
-    TRACE_AND_STEP();
-    M.x86.mode |= SYSMODE_PREFIX_REPNE;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xf3
-****************************************************************************/
-static void x86emuOp_repe(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("REPE\n");
-    TRACE_AND_STEP();
-    M.x86.mode |= SYSMODE_PREFIX_REPE;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xf4
-****************************************************************************/
-static void x86emuOp_halt(u8 X86EMU_UNUSED(op1))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("HALT\n");
-    TRACE_AND_STEP();
-    HALT_SYS();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xf5
-****************************************************************************/
-static void x86emuOp_cmc(u8 X86EMU_UNUSED(op1))
-{
-    /* complement the carry flag. */
-    START_OF_INSTR();
-    DECODE_PRINTF("CMC\n");
-    TRACE_AND_STEP();
-    TOGGLE_FLAG(F_CF);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xf6
-****************************************************************************/
-static void x86emuOp_opcF6_byte_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    u8 *destreg;
-    uint destoffset;
-    u8 destval, srcval;
-
-    /* long, drawn out code follows.  Double switch for a total
-       of 32 cases.  */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:                     /* mod=00 */
-        switch (rh) {
-        case 0:         /* test byte imm */
-            DECODE_PRINTF("TEST\tBYTE PTR ");
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            srcval = fetch_byte_imm();
-            DECODE_PRINTF2("%02x\n", srcval);
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            test_byte(destval, srcval);
-            break;
-        case 1:
-            DECODE_PRINTF("ILLEGAL OP MOD=00 RH=01 OP=F6\n");
-            HALT_SYS();
-            break;
-        case 2:
-            DECODE_PRINTF("NOT\tBYTE PTR ");
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            destval = not_byte(destval);
-            store_data_byte(destoffset, destval);
-            break;
-        case 3:
-            DECODE_PRINTF("NEG\tBYTE PTR ");
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            destval = neg_byte(destval);
-            store_data_byte(destoffset, destval);
-            break;
-        case 4:
-            DECODE_PRINTF("MUL\tBYTE PTR ");
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            mul_byte(destval);
-            break;
-        case 5:
-            DECODE_PRINTF("IMUL\tBYTE PTR ");
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            imul_byte(destval);
-            break;
-        case 6:
-            DECODE_PRINTF("DIV\tBYTE PTR ");
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            div_byte(destval);
-            break;
-        case 7:
-            DECODE_PRINTF("IDIV\tBYTE PTR ");
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            idiv_byte(destval);
-            break;
-        }
-        break;                  /* end mod==00 */
-    case 1:                     /* mod=01 */
-        switch (rh) {
-        case 0:         /* test byte imm */
-            DECODE_PRINTF("TEST\tBYTE PTR ");
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            srcval = fetch_byte_imm();
-            DECODE_PRINTF2("%02x\n", srcval);
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            test_byte(destval, srcval);
-            break;
-        case 1:
-            DECODE_PRINTF("ILLEGAL OP MOD=01 RH=01 OP=F6\n");
-            HALT_SYS();
-            break;
-        case 2:
-            DECODE_PRINTF("NOT\tBYTE PTR ");
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            destval = not_byte(destval);
-            store_data_byte(destoffset, destval);
-            break;
-        case 3:
-            DECODE_PRINTF("NEG\tBYTE PTR ");
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            destval = neg_byte(destval);
-            store_data_byte(destoffset, destval);
-            break;
-        case 4:
-            DECODE_PRINTF("MUL\tBYTE PTR ");
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            mul_byte(destval);
-            break;
-        case 5:
-            DECODE_PRINTF("IMUL\tBYTE PTR ");
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            imul_byte(destval);
-            break;
-        case 6:
-            DECODE_PRINTF("DIV\tBYTE PTR ");
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            div_byte(destval);
-            break;
-        case 7:
-            DECODE_PRINTF("IDIV\tBYTE PTR ");
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            idiv_byte(destval);
-            break;
-        }
-        break;                  /* end mod==01 */
-    case 2:                     /* mod=10 */
-        switch (rh) {
-        case 0:         /* test byte imm */
-            DECODE_PRINTF("TEST\tBYTE PTR ");
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            srcval = fetch_byte_imm();
-            DECODE_PRINTF2("%02x\n", srcval);
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            test_byte(destval, srcval);
-            break;
-        case 1:
-            DECODE_PRINTF("ILLEGAL OP MOD=10 RH=01 OP=F6\n");
-            HALT_SYS();
-            break;
-        case 2:
-            DECODE_PRINTF("NOT\tBYTE PTR ");
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            destval = not_byte(destval);
-            store_data_byte(destoffset, destval);
-            break;
-        case 3:
-            DECODE_PRINTF("NEG\tBYTE PTR ");
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            destval = neg_byte(destval);
-            store_data_byte(destoffset, destval);
-            break;
-        case 4:
-            DECODE_PRINTF("MUL\tBYTE PTR ");
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            mul_byte(destval);
-            break;
-        case 5:
-            DECODE_PRINTF("IMUL\tBYTE PTR ");
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            imul_byte(destval);
-            break;
-        case 6:
-            DECODE_PRINTF("DIV\tBYTE PTR ");
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            div_byte(destval);
-            break;
-        case 7:
-            DECODE_PRINTF("IDIV\tBYTE PTR ");
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF("\n");
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            idiv_byte(destval);
-            break;
-        }
-        break;                  /* end mod==10 */
-    case 3:                     /* mod=11 */
-        switch (rh) {
-        case 0:         /* test byte imm */
-            DECODE_PRINTF("TEST\t");
-            destreg = DECODE_RM_BYTE_REGISTER(rl);
-            DECODE_PRINTF(",");
-            srcval = fetch_byte_imm();
-            DECODE_PRINTF2("%02x\n", srcval);
-            TRACE_AND_STEP();
-            test_byte(*destreg, srcval);
-            break;
-        case 1:
-            DECODE_PRINTF("ILLEGAL OP MOD=00 RH=01 OP=F6\n");
-            HALT_SYS();
-            break;
-        case 2:
-            DECODE_PRINTF("NOT\t");
-            destreg = DECODE_RM_BYTE_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = not_byte(*destreg);
-            break;
-        case 3:
-            DECODE_PRINTF("NEG\t");
-            destreg = DECODE_RM_BYTE_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = neg_byte(*destreg);
-            break;
-        case 4:
-            DECODE_PRINTF("MUL\t");
-            destreg = DECODE_RM_BYTE_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            mul_byte(*destreg);      /*!!!  */
-            break;
-        case 5:
-            DECODE_PRINTF("IMUL\t");
-            destreg = DECODE_RM_BYTE_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            imul_byte(*destreg);
-            break;
-        case 6:
-            DECODE_PRINTF("DIV\t");
-            destreg = DECODE_RM_BYTE_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            div_byte(*destreg);
-            break;
-        case 7:
-            DECODE_PRINTF("IDIV\t");
-            destreg = DECODE_RM_BYTE_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            idiv_byte(*destreg);
-            break;
-        }
-        break;                  /* end mod==11 */
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xf7
-****************************************************************************/
-static void x86emuOp_opcF7_word_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    /* long, drawn out code follows.  Double switch for a total
-       of 32 cases.  */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:                     /* mod=00 */
-        switch (rh) {
-        case 0:         /* test word imm */
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval,srcval;
-
-                DECODE_PRINTF("TEST\tDWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF(",");
-                srcval = fetch_long_imm();
-                DECODE_PRINTF2("%x\n", srcval);
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                test_long(destval, srcval);
-            } else {
-                u16 destval,srcval;
-
-                DECODE_PRINTF("TEST\tWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF(",");
-                srcval = fetch_word_imm();
-                DECODE_PRINTF2("%x\n", srcval);
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                test_word(destval, srcval);
-            }
-            break;
-        case 1:
-            DECODE_PRINTF("ILLEGAL OP MOD=00 RH=01 OP=F7\n");
-            HALT_SYS();
-            break;
-        case 2:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("NOT\tDWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                destval = not_long(destval);
-                store_data_long(destoffset, destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("NOT\tWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                destval = not_word(destval);
-                store_data_word(destoffset, destval);
-            }
-            break;
-        case 3:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("NEG\tDWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                destval = neg_long(destval);
-                store_data_long(destoffset, destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("NEG\tWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                destval = neg_word(destval);
-                store_data_word(destoffset, destval);
-            }
-            break;
-        case 4:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("MUL\tDWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                mul_long(destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("MUL\tWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                mul_word(destval);
-            }
-            break;
-        case 5:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("IMUL\tDWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                imul_long(destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("IMUL\tWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                imul_word(destval);
-            }
-            break;
-        case 6:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("DIV\tDWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                div_long(destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("DIV\tWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                div_word(destval);
-            }
-            break;
-        case 7:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("IDIV\tDWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                idiv_long(destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("IDIV\tWORD PTR ");
-                destoffset = decode_rm00_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                idiv_word(destval);
-            }
-            break;
-        }
-        break;                  /* end mod==00 */
-    case 1:                     /* mod=01 */
-        switch (rh) {
-        case 0:         /* test word imm */
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval,srcval;
-
-                DECODE_PRINTF("TEST\tDWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF(",");
-                srcval = fetch_long_imm();
-                DECODE_PRINTF2("%x\n", srcval);
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                test_long(destval, srcval);
-            } else {
-                u16 destval,srcval;
-
-                DECODE_PRINTF("TEST\tWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF(",");
-                srcval = fetch_word_imm();
-                DECODE_PRINTF2("%x\n", srcval);
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                test_word(destval, srcval);
-            }
-            break;
-        case 1:
-            DECODE_PRINTF("ILLEGAL OP MOD=01 RH=01 OP=F6\n");
-            HALT_SYS();
-            break;
-        case 2:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("NOT\tDWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                destval = not_long(destval);
-                store_data_long(destoffset, destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("NOT\tWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                destval = not_word(destval);
-                store_data_word(destoffset, destval);
-            }
-            break;
-        case 3:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("NEG\tDWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                destval = neg_long(destval);
-                store_data_long(destoffset, destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("NEG\tWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                destval = neg_word(destval);
-                store_data_word(destoffset, destval);
-            }
-            break;
-        case 4:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("MUL\tDWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                mul_long(destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("MUL\tWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                mul_word(destval);
-            }
-            break;
-        case 5:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("IMUL\tDWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                imul_long(destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("IMUL\tWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                imul_word(destval);
-            }
-            break;
-        case 6:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("DIV\tDWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                div_long(destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("DIV\tWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                div_word(destval);
-            }
-            break;
-        case 7:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("IDIV\tDWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                idiv_long(destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("IDIV\tWORD PTR ");
-                destoffset = decode_rm01_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                idiv_word(destval);
-            }
-            break;
-        }
-        break;                  /* end mod==01 */
-    case 2:                     /* mod=10 */
-        switch (rh) {
-        case 0:         /* test word imm */
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval,srcval;
-
-                DECODE_PRINTF("TEST\tDWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF(",");
-                srcval = fetch_long_imm();
-                DECODE_PRINTF2("%x\n", srcval);
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                test_long(destval, srcval);
-            } else {
-                u16 destval,srcval;
-
-                DECODE_PRINTF("TEST\tWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF(",");
-                srcval = fetch_word_imm();
-                DECODE_PRINTF2("%x\n", srcval);
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                test_word(destval, srcval);
-            }
-            break;
-        case 1:
-            DECODE_PRINTF("ILLEGAL OP MOD=10 RH=01 OP=F6\n");
-            HALT_SYS();
-            break;
-        case 2:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("NOT\tDWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                destval = not_long(destval);
-                store_data_long(destoffset, destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("NOT\tWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                destval = not_word(destval);
-                store_data_word(destoffset, destval);
-            }
-            break;
-        case 3:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("NEG\tDWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                destval = neg_long(destval);
-                store_data_long(destoffset, destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("NEG\tWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                destval = neg_word(destval);
-                store_data_word(destoffset, destval);
-            }
-            break;
-        case 4:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("MUL\tDWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                mul_long(destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("MUL\tWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                mul_word(destval);
-            }
-            break;
-        case 5:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("IMUL\tDWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                imul_long(destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("IMUL\tWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                imul_word(destval);
-            }
-            break;
-        case 6:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("DIV\tDWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                div_long(destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("DIV\tWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                div_word(destval);
-            }
-            break;
-        case 7:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                DECODE_PRINTF("IDIV\tDWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                idiv_long(destval);
-            } else {
-                u16 destval;
-
-                DECODE_PRINTF("IDIV\tWORD PTR ");
-                destoffset = decode_rm10_address(rl);
-                DECODE_PRINTF("\n");
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                idiv_word(destval);
-            }
-            break;
-        }
-        break;                  /* end mod==10 */
-    case 3:                     /* mod=11 */
-        switch (rh) {
-        case 0:         /* test word imm */
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 *destreg;
-                u32 srcval;
-
-                DECODE_PRINTF("TEST\t");
-                destreg = DECODE_RM_LONG_REGISTER(rl);
-                DECODE_PRINTF(",");
-                srcval = fetch_long_imm();
-                DECODE_PRINTF2("%x\n", srcval);
-                TRACE_AND_STEP();
-                test_long(*destreg, srcval);
-            } else {
-                u16 *destreg;
-                u16 srcval;
-
-                DECODE_PRINTF("TEST\t");
-                destreg = DECODE_RM_WORD_REGISTER(rl);
-                DECODE_PRINTF(",");
-                srcval = fetch_word_imm();
-                DECODE_PRINTF2("%x\n", srcval);
-                TRACE_AND_STEP();
-                test_word(*destreg, srcval);
-            }
-            break;
-        case 1:
-            DECODE_PRINTF("ILLEGAL OP MOD=00 RH=01 OP=F6\n");
-            HALT_SYS();
-            break;
-        case 2:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 *destreg;
-
-                DECODE_PRINTF("NOT\t");
-                destreg = DECODE_RM_LONG_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                *destreg = not_long(*destreg);
-            } else {
-                u16 *destreg;
-
-                DECODE_PRINTF("NOT\t");
-                destreg = DECODE_RM_WORD_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                *destreg = not_word(*destreg);
-            }
-            break;
-        case 3:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 *destreg;
-
-                DECODE_PRINTF("NEG\t");
-                destreg = DECODE_RM_LONG_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                *destreg = neg_long(*destreg);
-            } else {
-                u16 *destreg;
-
-                DECODE_PRINTF("NEG\t");
-                destreg = DECODE_RM_WORD_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                *destreg = neg_word(*destreg);
-            }
-            break;
-        case 4:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 *destreg;
-
-                DECODE_PRINTF("MUL\t");
-                destreg = DECODE_RM_LONG_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                mul_long(*destreg);      /*!!!  */
-            } else {
-                u16 *destreg;
-
-                DECODE_PRINTF("MUL\t");
-                destreg = DECODE_RM_WORD_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                mul_word(*destreg);      /*!!!  */
-            }
-            break;
-        case 5:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 *destreg;
-
-                DECODE_PRINTF("IMUL\t");
-                destreg = DECODE_RM_LONG_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                imul_long(*destreg);
-            } else {
-                u16 *destreg;
-
-                DECODE_PRINTF("IMUL\t");
-                destreg = DECODE_RM_WORD_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                imul_word(*destreg);
-            }
-            break;
-        case 6:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 *destreg;
-
-                DECODE_PRINTF("DIV\t");
-                destreg = DECODE_RM_LONG_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                div_long(*destreg);
-            } else {
-                u16 *destreg;
-
-                DECODE_PRINTF("DIV\t");
-                destreg = DECODE_RM_WORD_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                div_word(*destreg);
-            }
-            break;
-        case 7:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 *destreg;
-
-                DECODE_PRINTF("IDIV\t");
-                destreg = DECODE_RM_LONG_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                idiv_long(*destreg);
-            } else {
-                u16 *destreg;
-
-                DECODE_PRINTF("IDIV\t");
-                destreg = DECODE_RM_WORD_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                idiv_word(*destreg);
-            }
-            break;
-        }
-        break;                  /* end mod==11 */
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xf8
-****************************************************************************/
-static void x86emuOp_clc(u8 X86EMU_UNUSED(op1))
-{
-    /* clear the carry flag. */
-    START_OF_INSTR();
-    DECODE_PRINTF("CLC\n");
-    TRACE_AND_STEP();
-    CLEAR_FLAG(F_CF);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xf9
-****************************************************************************/
-static void x86emuOp_stc(u8 X86EMU_UNUSED(op1))
-{
-    /* set the carry flag. */
-    START_OF_INSTR();
-    DECODE_PRINTF("STC\n");
-    TRACE_AND_STEP();
-    SET_FLAG(F_CF);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xfa
-****************************************************************************/
-static void x86emuOp_cli(u8 X86EMU_UNUSED(op1))
-{
-    /* clear interrupts. */
-    START_OF_INSTR();
-    DECODE_PRINTF("CLI\n");
-    TRACE_AND_STEP();
-    CLEAR_FLAG(F_IF);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xfb
-****************************************************************************/
-static void x86emuOp_sti(u8 X86EMU_UNUSED(op1))
-{
-    /* enable  interrupts. */
-    START_OF_INSTR();
-    DECODE_PRINTF("STI\n");
-    TRACE_AND_STEP();
-    SET_FLAG(F_IF);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xfc
-****************************************************************************/
-static void x86emuOp_cld(u8 X86EMU_UNUSED(op1))
-{
-    /* clear interrupts. */
-    START_OF_INSTR();
-    DECODE_PRINTF("CLD\n");
-    TRACE_AND_STEP();
-    CLEAR_FLAG(F_DF);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xfd
-****************************************************************************/
-static void x86emuOp_std(u8 X86EMU_UNUSED(op1))
-{
-    /* clear interrupts. */
-    START_OF_INSTR();
-    DECODE_PRINTF("STD\n");
-    TRACE_AND_STEP();
-    SET_FLAG(F_DF);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xfe
-****************************************************************************/
-static void x86emuOp_opcFE_byte_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rh, rl;
-    u8 destval;
-    uint destoffset;
-    u8 *destreg;
-
-    /* Yet another special case instruction. */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (DEBUG_DECODE()) {
-        /* XXX DECODE_PRINTF may be changed to something more
-           general, so that it is important to leave the strings
-           in the same format, even though the result is that the 
-           above test is done twice. */
-
-        switch (rh) {
-        case 0:
-            DECODE_PRINTF("INC\t");
-            break;
-        case 1:
-            DECODE_PRINTF("DEC\t");
-            break;
-        case 2:
-        case 3:
-        case 4:
-        case 5:
-        case 6:
-        case 7:
-            DECODE_PRINTF2("ILLEGAL OP MAJOR OP 0xFE MINOR OP %x \n", mod);
-            HALT_SYS();
-            break;
-        }
-    }
-#endif
-    switch (mod) {
-    case 0:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        switch (rh) {
-        case 0:         /* inc word ptr ... */
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            destval = inc_byte(destval);
-            store_data_byte(destoffset, destval);
-            break;
-        case 1:         /* dec word ptr ... */
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            destval = dec_byte(destval);
-            store_data_byte(destoffset, destval);
-            break;
-        }
-        break;
-    case 1:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        switch (rh) {
-        case 0:
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            destval = inc_byte(destval);
-            store_data_byte(destoffset, destval);
-            break;
-        case 1:
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            destval = dec_byte(destval);
-            store_data_byte(destoffset, destval);
-            break;
-        }
-        break;
-    case 2:
-        DECODE_PRINTF("BYTE PTR ");
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        switch (rh) {
-        case 0:
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            destval = inc_byte(destval);
-            store_data_byte(destoffset, destval);
-            break;
-        case 1:
-            destval = fetch_data_byte(destoffset);
-            TRACE_AND_STEP();
-            destval = dec_byte(destval);
-            store_data_byte(destoffset, destval);
-            break;
-        }
-        break;
-    case 3:
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        DECODE_PRINTF("\n");
-        switch (rh) {
-        case 0:
-            TRACE_AND_STEP();
-            *destreg = inc_byte(*destreg);
-            break;
-        case 1:
-            TRACE_AND_STEP();
-            *destreg = dec_byte(*destreg);
-            break;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0xff
-****************************************************************************/
-static void x86emuOp_opcFF_word_RM(u8 X86EMU_UNUSED(op1))
-{
-    int mod, rh, rl;
-    uint destoffset = 0;
-       u16 *destreg;
-       u16 destval,destval2;
-
-    /* Yet another special case instruction. */
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-#ifdef DEBUG
-    if (DEBUG_DECODE()) {
-        /* XXX DECODE_PRINTF may be changed to something more
-           general, so that it is important to leave the strings
-           in the same format, even though the result is that the
-           above test is done twice. */
-
-        switch (rh) {
-        case 0:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                DECODE_PRINTF("INC\tDWORD PTR ");
-            } else {
-                DECODE_PRINTF("INC\tWORD PTR ");
-            }
-            break;
-        case 1:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                DECODE_PRINTF("DEC\tDWORD PTR ");
-            } else {
-                DECODE_PRINTF("DEC\tWORD PTR ");
-            }
-            break;
-        case 2:
-            DECODE_PRINTF("CALL\t");
-            break;
-        case 3:
-            DECODE_PRINTF("CALL\tFAR ");
-            break;
-        case 4:
-            DECODE_PRINTF("JMP\t");
-            break;
-        case 5:
-            DECODE_PRINTF("JMP\tFAR ");
-            break;
-        case 6:
-            DECODE_PRINTF("PUSH\t");
-            break;
-        case 7:
-            DECODE_PRINTF("ILLEGAL DECODING OF OPCODE FF\t");
-            HALT_SYS();
-            break;
-        }
-    }
-#endif
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        switch (rh) {
-        case 0:         /* inc word ptr ... */
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                destval = inc_long(destval);
-                store_data_long(destoffset, destval);
-            } else {
-                u16 destval;
-
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                destval = inc_word(destval);
-                store_data_word(destoffset, destval);
-            }
-            break;
-        case 1:         /* dec word ptr ... */
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                destval = dec_long(destval);
-                store_data_long(destoffset, destval);
-            } else {
-                u16 destval;
-
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                destval = dec_word(destval);
-                store_data_word(destoffset, destval);
-            }
-            break;
-        case 2:         /* call word ptr ... */
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            push_word(M.x86.R_IP);
-            M.x86.R_IP = destval;
-            break;
-        case 3:         /* call far ptr ... */
-            destval = fetch_data_word(destoffset);
-            destval2 = fetch_data_word(destoffset + 2);
-            TRACE_AND_STEP();
-            push_word(M.x86.R_CS);
-            M.x86.R_CS = destval2;
-            push_word(M.x86.R_IP);
-            M.x86.R_IP = destval;
-            break;
-        case 4:         /* jmp word ptr ... */
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            M.x86.R_IP = destval;
-            break;
-        case 5:         /* jmp far ptr ... */
-            destval = fetch_data_word(destoffset);
-            destval2 = fetch_data_word(destoffset + 2);
-            TRACE_AND_STEP();
-            M.x86.R_IP = destval;
-            M.x86.R_CS = destval2;
-            break;
-        case 6:         /*  push word ptr ... */
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                push_long(destval);
-            } else {
-                u16 destval;
-
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                push_word(destval);
-            }
-            break;
-        }
-        break;
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        switch (rh) {
-        case 0:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                destval = inc_long(destval);
-                store_data_long(destoffset, destval);
-            } else {
-                u16 destval;
-
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                destval = inc_word(destval);
-                store_data_word(destoffset, destval);
-            }
-            break;
-        case 1:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                destval = dec_long(destval);
-                store_data_long(destoffset, destval);
-            } else {
-                u16 destval;
-
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                destval = dec_word(destval);
-                store_data_word(destoffset, destval);
-            }
-            break;
-        case 2:         /* call word ptr ... */
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            push_word(M.x86.R_IP);
-            M.x86.R_IP = destval;
-            break;
-        case 3:         /* call far ptr ... */
-            destval = fetch_data_word(destoffset);
-            destval2 = fetch_data_word(destoffset + 2);
-            TRACE_AND_STEP();
-            push_word(M.x86.R_CS);
-            M.x86.R_CS = destval2;
-            push_word(M.x86.R_IP);
-            M.x86.R_IP = destval;
-            break;
-        case 4:         /* jmp word ptr ... */
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            M.x86.R_IP = destval;
-            break;
-        case 5:         /* jmp far ptr ... */
-            destval = fetch_data_word(destoffset);
-            destval2 = fetch_data_word(destoffset + 2);
-            TRACE_AND_STEP();
-            M.x86.R_IP = destval;
-            M.x86.R_CS = destval2;
-            break;
-        case 6:         /*  push word ptr ... */
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                push_long(destval);
-            } else {
-                u16 destval;
-
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                push_word(destval);
-            }
-            break;
-        }
-        break;
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        switch (rh) {
-        case 0:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                destval = inc_long(destval);
-                store_data_long(destoffset, destval);
-            } else {
-                u16 destval;
-
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                destval = inc_word(destval);
-                store_data_word(destoffset, destval);
-            }
-            break;
-        case 1:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                destval = dec_long(destval);
-                store_data_long(destoffset, destval);
-            } else {
-                u16 destval;
-
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                destval = dec_word(destval);
-                store_data_word(destoffset, destval);
-            }
-            break;
-        case 2:         /* call word ptr ... */
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            push_word(M.x86.R_IP);
-            M.x86.R_IP = destval;
-            break;
-        case 3:         /* call far ptr ... */
-            destval = fetch_data_word(destoffset);
-            destval2 = fetch_data_word(destoffset + 2);
-            TRACE_AND_STEP();
-            push_word(M.x86.R_CS);
-            M.x86.R_CS = destval2;
-            push_word(M.x86.R_IP);
-            M.x86.R_IP = destval;
-            break;
-        case 4:         /* jmp word ptr ... */
-            destval = fetch_data_word(destoffset);
-            TRACE_AND_STEP();
-            M.x86.R_IP = destval;
-            break;
-        case 5:         /* jmp far ptr ... */
-            destval = fetch_data_word(destoffset);
-            destval2 = fetch_data_word(destoffset + 2);
-            TRACE_AND_STEP();
-            M.x86.R_IP = destval;
-            M.x86.R_CS = destval2;
-            break;
-        case 6:         /*  push word ptr ... */
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 destval;
-
-                destval = fetch_data_long(destoffset);
-                TRACE_AND_STEP();
-                push_long(destval);
-            } else {
-                u16 destval;
-
-                destval = fetch_data_word(destoffset);
-                TRACE_AND_STEP();
-                push_word(destval);
-            }
-            break;
-        }
-        break;
-    case 3:
-        switch (rh) {
-        case 0:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 *destreg;
-
-                destreg = DECODE_RM_LONG_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                *destreg = inc_long(*destreg);
-            } else {
-                u16 *destreg;
-
-                destreg = DECODE_RM_WORD_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                *destreg = inc_word(*destreg);
-            }
-            break;
-        case 1:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 *destreg;
-
-                destreg = DECODE_RM_LONG_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                *destreg = dec_long(*destreg);
-            } else {
-                u16 *destreg;
-
-                destreg = DECODE_RM_WORD_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                *destreg = dec_word(*destreg);
-            }
-            break;
-        case 2:         /* call word ptr ... */
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            push_word(M.x86.R_IP);
-            M.x86.R_IP = *destreg;
-            break;
-        case 3:         /* jmp far ptr ... */
-            DECODE_PRINTF("OPERATION UNDEFINED 0XFF \n");
-            TRACE_AND_STEP();
-            HALT_SYS();
-            break;
-
-        case 4:         /* jmp  ... */
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            M.x86.R_IP = (u16) (*destreg);
-            break;
-        case 5:         /* jmp far ptr ... */
-            DECODE_PRINTF("OPERATION UNDEFINED 0XFF \n");
-            TRACE_AND_STEP();
-            HALT_SYS();
-            break;
-        case 6:
-            if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                u32 *destreg;
-
-                destreg = DECODE_RM_LONG_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                push_long(*destreg);
-            } else {
-                u16 *destreg;
-
-                destreg = DECODE_RM_WORD_REGISTER(rl);
-                DECODE_PRINTF("\n");
-                TRACE_AND_STEP();
-                push_word(*destreg);
-            }
-            break;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/***************************************************************************
- * Single byte operation code table:
- **************************************************************************/
-void (*x86emu_optab[256])(u8) =
-{
-/*  0x00 */ x86emuOp_add_byte_RM_R,
-/*  0x01 */ x86emuOp_add_word_RM_R,
-/*  0x02 */ x86emuOp_add_byte_R_RM,
-/*  0x03 */ x86emuOp_add_word_R_RM,
-/*  0x04 */ x86emuOp_add_byte_AL_IMM,
-/*  0x05 */ x86emuOp_add_word_AX_IMM,
-/*  0x06 */ x86emuOp_push_ES,
-/*  0x07 */ x86emuOp_pop_ES,
-
-/*  0x08 */ x86emuOp_or_byte_RM_R,
-/*  0x09 */ x86emuOp_or_word_RM_R,
-/*  0x0a */ x86emuOp_or_byte_R_RM,
-/*  0x0b */ x86emuOp_or_word_R_RM,
-/*  0x0c */ x86emuOp_or_byte_AL_IMM,
-/*  0x0d */ x86emuOp_or_word_AX_IMM,
-/*  0x0e */ x86emuOp_push_CS,
-/*  0x0f */ x86emuOp_two_byte,
-
-/*  0x10 */ x86emuOp_adc_byte_RM_R,
-/*  0x11 */ x86emuOp_adc_word_RM_R,
-/*  0x12 */ x86emuOp_adc_byte_R_RM,
-/*  0x13 */ x86emuOp_adc_word_R_RM,
-/*  0x14 */ x86emuOp_adc_byte_AL_IMM,
-/*  0x15 */ x86emuOp_adc_word_AX_IMM,
-/*  0x16 */ x86emuOp_push_SS,
-/*  0x17 */ x86emuOp_pop_SS,
-
-/*  0x18 */ x86emuOp_sbb_byte_RM_R,
-/*  0x19 */ x86emuOp_sbb_word_RM_R,
-/*  0x1a */ x86emuOp_sbb_byte_R_RM,
-/*  0x1b */ x86emuOp_sbb_word_R_RM,
-/*  0x1c */ x86emuOp_sbb_byte_AL_IMM,
-/*  0x1d */ x86emuOp_sbb_word_AX_IMM,
-/*  0x1e */ x86emuOp_push_DS,
-/*  0x1f */ x86emuOp_pop_DS,
-
-/*  0x20 */ x86emuOp_and_byte_RM_R,
-/*  0x21 */ x86emuOp_and_word_RM_R,
-/*  0x22 */ x86emuOp_and_byte_R_RM,
-/*  0x23 */ x86emuOp_and_word_R_RM,
-/*  0x24 */ x86emuOp_and_byte_AL_IMM,
-/*  0x25 */ x86emuOp_and_word_AX_IMM,
-/*  0x26 */ x86emuOp_segovr_ES,
-/*  0x27 */ x86emuOp_daa,
-
-/*  0x28 */ x86emuOp_sub_byte_RM_R,
-/*  0x29 */ x86emuOp_sub_word_RM_R,
-/*  0x2a */ x86emuOp_sub_byte_R_RM,
-/*  0x2b */ x86emuOp_sub_word_R_RM,
-/*  0x2c */ x86emuOp_sub_byte_AL_IMM,
-/*  0x2d */ x86emuOp_sub_word_AX_IMM,
-/*  0x2e */ x86emuOp_segovr_CS,
-/*  0x2f */ x86emuOp_das,
-
-/*  0x30 */ x86emuOp_xor_byte_RM_R,
-/*  0x31 */ x86emuOp_xor_word_RM_R,
-/*  0x32 */ x86emuOp_xor_byte_R_RM,
-/*  0x33 */ x86emuOp_xor_word_R_RM,
-/*  0x34 */ x86emuOp_xor_byte_AL_IMM,
-/*  0x35 */ x86emuOp_xor_word_AX_IMM,
-/*  0x36 */ x86emuOp_segovr_SS,
-/*  0x37 */ x86emuOp_aaa,
-
-/*  0x38 */ x86emuOp_cmp_byte_RM_R,
-/*  0x39 */ x86emuOp_cmp_word_RM_R,
-/*  0x3a */ x86emuOp_cmp_byte_R_RM,
-/*  0x3b */ x86emuOp_cmp_word_R_RM,
-/*  0x3c */ x86emuOp_cmp_byte_AL_IMM,
-/*  0x3d */ x86emuOp_cmp_word_AX_IMM,
-/*  0x3e */ x86emuOp_segovr_DS,
-/*  0x3f */ x86emuOp_aas,
-
-/*  0x40 */ x86emuOp_inc_AX,
-/*  0x41 */ x86emuOp_inc_CX,
-/*  0x42 */ x86emuOp_inc_DX,
-/*  0x43 */ x86emuOp_inc_BX,
-/*  0x44 */ x86emuOp_inc_SP,
-/*  0x45 */ x86emuOp_inc_BP,
-/*  0x46 */ x86emuOp_inc_SI,
-/*  0x47 */ x86emuOp_inc_DI,
-
-/*  0x48 */ x86emuOp_dec_AX,
-/*  0x49 */ x86emuOp_dec_CX,
-/*  0x4a */ x86emuOp_dec_DX,
-/*  0x4b */ x86emuOp_dec_BX,
-/*  0x4c */ x86emuOp_dec_SP,
-/*  0x4d */ x86emuOp_dec_BP,
-/*  0x4e */ x86emuOp_dec_SI,
-/*  0x4f */ x86emuOp_dec_DI,
-
-/*  0x50 */ x86emuOp_push_AX,
-/*  0x51 */ x86emuOp_push_CX,
-/*  0x52 */ x86emuOp_push_DX,
-/*  0x53 */ x86emuOp_push_BX,
-/*  0x54 */ x86emuOp_push_SP,
-/*  0x55 */ x86emuOp_push_BP,
-/*  0x56 */ x86emuOp_push_SI,
-/*  0x57 */ x86emuOp_push_DI,
-
-/*  0x58 */ x86emuOp_pop_AX,
-/*  0x59 */ x86emuOp_pop_CX,
-/*  0x5a */ x86emuOp_pop_DX,
-/*  0x5b */ x86emuOp_pop_BX,
-/*  0x5c */ x86emuOp_pop_SP,
-/*  0x5d */ x86emuOp_pop_BP,
-/*  0x5e */ x86emuOp_pop_SI,
-/*  0x5f */ x86emuOp_pop_DI,
-
-/*  0x60 */ x86emuOp_push_all,
-/*  0x61 */ x86emuOp_pop_all,
-/*  0x62 */ x86emuOp_illegal_op,   /* bound */
-/*  0x63 */ x86emuOp_illegal_op,   /* arpl */
-/*  0x64 */ x86emuOp_segovr_FS,
-/*  0x65 */ x86emuOp_segovr_GS,
-/*  0x66 */ x86emuOp_prefix_data,
-/*  0x67 */ x86emuOp_prefix_addr,
-
-/*  0x68 */ x86emuOp_push_word_IMM,
-/*  0x69 */ x86emuOp_imul_word_IMM,
-/*  0x6a */ x86emuOp_push_byte_IMM,
-/*  0x6b */ x86emuOp_imul_byte_IMM,
-/*  0x6c */ x86emuOp_ins_byte,
-/*  0x6d */ x86emuOp_ins_word,
-/*  0x6e */ x86emuOp_outs_byte,
-/*  0x6f */ x86emuOp_outs_word,
-
-/*  0x70 */ x86emuOp_jump_near_O,
-/*  0x71 */ x86emuOp_jump_near_NO,
-/*  0x72 */ x86emuOp_jump_near_B,
-/*  0x73 */ x86emuOp_jump_near_NB,
-/*  0x74 */ x86emuOp_jump_near_Z,
-/*  0x75 */ x86emuOp_jump_near_NZ,
-/*  0x76 */ x86emuOp_jump_near_BE,
-/*  0x77 */ x86emuOp_jump_near_NBE,
-
-/*  0x78 */ x86emuOp_jump_near_S,
-/*  0x79 */ x86emuOp_jump_near_NS,
-/*  0x7a */ x86emuOp_jump_near_P,
-/*  0x7b */ x86emuOp_jump_near_NP,
-/*  0x7c */ x86emuOp_jump_near_L,
-/*  0x7d */ x86emuOp_jump_near_NL,
-/*  0x7e */ x86emuOp_jump_near_LE,
-/*  0x7f */ x86emuOp_jump_near_NLE,
-
-/*  0x80 */ x86emuOp_opc80_byte_RM_IMM,
-/*  0x81 */ x86emuOp_opc81_word_RM_IMM,
-/*  0x82 */ x86emuOp_opc82_byte_RM_IMM,
-/*  0x83 */ x86emuOp_opc83_word_RM_IMM,
-/*  0x84 */ x86emuOp_test_byte_RM_R,
-/*  0x85 */ x86emuOp_test_word_RM_R,
-/*  0x86 */ x86emuOp_xchg_byte_RM_R,
-/*  0x87 */ x86emuOp_xchg_word_RM_R,
-
-/*  0x88 */ x86emuOp_mov_byte_RM_R,
-/*  0x89 */ x86emuOp_mov_word_RM_R,
-/*  0x8a */ x86emuOp_mov_byte_R_RM,
-/*  0x8b */ x86emuOp_mov_word_R_RM,
-/*  0x8c */ x86emuOp_mov_word_RM_SR,
-/*  0x8d */ x86emuOp_lea_word_R_M,
-/*  0x8e */ x86emuOp_mov_word_SR_RM,
-/*  0x8f */ x86emuOp_pop_RM,
-
-/*  0x90 */ x86emuOp_nop,
-/*  0x91 */ x86emuOp_xchg_word_AX_CX,
-/*  0x92 */ x86emuOp_xchg_word_AX_DX,
-/*  0x93 */ x86emuOp_xchg_word_AX_BX,
-/*  0x94 */ x86emuOp_xchg_word_AX_SP,
-/*  0x95 */ x86emuOp_xchg_word_AX_BP,
-/*  0x96 */ x86emuOp_xchg_word_AX_SI,
-/*  0x97 */ x86emuOp_xchg_word_AX_DI,
-
-/*  0x98 */ x86emuOp_cbw,
-/*  0x99 */ x86emuOp_cwd,
-/*  0x9a */ x86emuOp_call_far_IMM,
-/*  0x9b */ x86emuOp_wait,
-/*  0x9c */ x86emuOp_pushf_word,
-/*  0x9d */ x86emuOp_popf_word,
-/*  0x9e */ x86emuOp_sahf,
-/*  0x9f */ x86emuOp_lahf,
-
-/*  0xa0 */ x86emuOp_mov_AL_M_IMM,
-/*  0xa1 */ x86emuOp_mov_AX_M_IMM,
-/*  0xa2 */ x86emuOp_mov_M_AL_IMM,
-/*  0xa3 */ x86emuOp_mov_M_AX_IMM,
-/*  0xa4 */ x86emuOp_movs_byte,
-/*  0xa5 */ x86emuOp_movs_word,
-/*  0xa6 */ x86emuOp_cmps_byte,
-/*  0xa7 */ x86emuOp_cmps_word,
-/*  0xa8 */ x86emuOp_test_AL_IMM,
-/*  0xa9 */ x86emuOp_test_AX_IMM,
-/*  0xaa */ x86emuOp_stos_byte,
-/*  0xab */ x86emuOp_stos_word,
-/*  0xac */ x86emuOp_lods_byte,
-/*  0xad */ x86emuOp_lods_word,
-/*  0xac */ x86emuOp_scas_byte,
-/*  0xad */ x86emuOp_scas_word,
-
-
-/*  0xb0 */ x86emuOp_mov_byte_AL_IMM,
-/*  0xb1 */ x86emuOp_mov_byte_CL_IMM,
-/*  0xb2 */ x86emuOp_mov_byte_DL_IMM,
-/*  0xb3 */ x86emuOp_mov_byte_BL_IMM,
-/*  0xb4 */ x86emuOp_mov_byte_AH_IMM,
-/*  0xb5 */ x86emuOp_mov_byte_CH_IMM,
-/*  0xb6 */ x86emuOp_mov_byte_DH_IMM,
-/*  0xb7 */ x86emuOp_mov_byte_BH_IMM,
-
-/*  0xb8 */ x86emuOp_mov_word_AX_IMM,
-/*  0xb9 */ x86emuOp_mov_word_CX_IMM,
-/*  0xba */ x86emuOp_mov_word_DX_IMM,
-/*  0xbb */ x86emuOp_mov_word_BX_IMM,
-/*  0xbc */ x86emuOp_mov_word_SP_IMM,
-/*  0xbd */ x86emuOp_mov_word_BP_IMM,
-/*  0xbe */ x86emuOp_mov_word_SI_IMM,
-/*  0xbf */ x86emuOp_mov_word_DI_IMM,
-
-/*  0xc0 */ x86emuOp_opcC0_byte_RM_MEM,
-/*  0xc1 */ x86emuOp_opcC1_word_RM_MEM,
-/*  0xc2 */ x86emuOp_ret_near_IMM,
-/*  0xc3 */ x86emuOp_ret_near,
-/*  0xc4 */ x86emuOp_les_R_IMM,
-/*  0xc5 */ x86emuOp_lds_R_IMM,
-/*  0xc6 */ x86emuOp_mov_byte_RM_IMM,
-/*  0xc7 */ x86emuOp_mov_word_RM_IMM,
-/*  0xc8 */ x86emuOp_enter,
-/*  0xc9 */ x86emuOp_leave,
-/*  0xca */ x86emuOp_ret_far_IMM,
-/*  0xcb */ x86emuOp_ret_far,
-/*  0xcc */ x86emuOp_int3,
-/*  0xcd */ x86emuOp_int_IMM,
-/*  0xce */ x86emuOp_into,
-/*  0xcf */ x86emuOp_iret,
-
-/*  0xd0 */ x86emuOp_opcD0_byte_RM_1,
-/*  0xd1 */ x86emuOp_opcD1_word_RM_1,
-/*  0xd2 */ x86emuOp_opcD2_byte_RM_CL,
-/*  0xd3 */ x86emuOp_opcD3_word_RM_CL,
-/*  0xd4 */ x86emuOp_aam,
-/*  0xd5 */ x86emuOp_aad,
-/*  0xd6 */ x86emuOp_illegal_op,   /* Undocumented SETALC instruction */
-/*  0xd7 */ x86emuOp_xlat,
-/*  0xd8 */ x86emuOp_esc_coprocess_d8,
-/*  0xd9 */ x86emuOp_esc_coprocess_d9,
-/*  0xda */ x86emuOp_esc_coprocess_da,
-/*  0xdb */ x86emuOp_esc_coprocess_db,
-/*  0xdc */ x86emuOp_esc_coprocess_dc,
-/*  0xdd */ x86emuOp_esc_coprocess_dd,
-/*  0xde */ x86emuOp_esc_coprocess_de,
-/*  0xdf */ x86emuOp_esc_coprocess_df,
-
-/*  0xe0 */ x86emuOp_loopne,
-/*  0xe1 */ x86emuOp_loope,
-/*  0xe2 */ x86emuOp_loop,
-/*  0xe3 */ x86emuOp_jcxz,
-/*  0xe4 */ x86emuOp_in_byte_AL_IMM,
-/*  0xe5 */ x86emuOp_in_word_AX_IMM,
-/*  0xe6 */ x86emuOp_out_byte_IMM_AL,
-/*  0xe7 */ x86emuOp_out_word_IMM_AX,
-
-/*  0xe8 */ x86emuOp_call_near_IMM,
-/*  0xe9 */ x86emuOp_jump_near_IMM,
-/*  0xea */ x86emuOp_jump_far_IMM,
-/*  0xeb */ x86emuOp_jump_byte_IMM,
-/*  0xec */ x86emuOp_in_byte_AL_DX,
-/*  0xed */ x86emuOp_in_word_AX_DX,
-/*  0xee */ x86emuOp_out_byte_DX_AL,
-/*  0xef */ x86emuOp_out_word_DX_AX,
-
-/*  0xf0 */ x86emuOp_lock,
-/*  0xf1 */ x86emuOp_illegal_op,
-/*  0xf2 */ x86emuOp_repne,
-/*  0xf3 */ x86emuOp_repe,
-/*  0xf4 */ x86emuOp_halt,
-/*  0xf5 */ x86emuOp_cmc,
-/*  0xf6 */ x86emuOp_opcF6_byte_RM,
-/*  0xf7 */ x86emuOp_opcF7_word_RM,
-
-/*  0xf8 */ x86emuOp_clc,
-/*  0xf9 */ x86emuOp_stc,
-/*  0xfa */ x86emuOp_cli,
-/*  0xfb */ x86emuOp_sti,
-/*  0xfc */ x86emuOp_cld,
-/*  0xfd */ x86emuOp_std,
-/*  0xfe */ x86emuOp_opcFE_byte_RM,
-/*  0xff */ x86emuOp_opcFF_word_RM,
-};
diff --git a/src/hwinfo/src/x86emu/ops2.c b/src/hwinfo/src/x86emu/ops2.c
deleted file mode 100644 (file)
index 7cb585b..0000000
+++ /dev/null
@@ -1,2805 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  This file includes subroutines to implement the decoding
-*               and emulation of all the x86 extended two-byte processor
-*               instructions.
-*
-****************************************************************************/
-/* $XFree86: xc/extras/x86emu/src/x86emu/ops2.c,v 1.6tsi Exp $ */
-
-#include "x86emu/x86emui.h"
-
-/*----------------------------- Implementation ----------------------------*/
-
-/****************************************************************************
-PARAMETERS:
-op1 - Instruction op code
-
-REMARKS:
-Handles illegal opcodes.
-****************************************************************************/
-static void x86emuOp2_illegal_op(
-       u8 op2)
-{
-       START_OF_INSTR();
-       DECODE_PRINTF("ILLEGAL EXTENDED X86 OPCODE\n");
-       TRACE_REGS();
-       printk("%04x:%04x: %02X ILLEGAL EXTENDED X86 OPCODE!\n",
-               M.x86.R_CS, M.x86.R_IP-2,op2);
-    HALT_SYS();
-    END_OF_INSTR();
-}
-
-#define xorl(a,b)   ((a) && !(b)) || (!(a) && (b))
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0x80-0x8F
-****************************************************************************/
-static void x86emuOp2_long_jump(u8 op2)
-{
-    s32 target;
-    char *name = 0;
-    int cond = 0;
-
-    /* conditional jump to word offset. */
-    START_OF_INSTR();
-    switch (op2) {
-      case 0x80:
-        name = "JO\t";
-        cond =  ACCESS_FLAG(F_OF);
-        break;
-      case 0x81:
-        name = "JNO\t";
-        cond = !ACCESS_FLAG(F_OF);
-        break;
-      case 0x82:
-        name = "JB\t";
-        cond = ACCESS_FLAG(F_CF);
-        break;
-      case 0x83:
-        name = "JNB\t";
-        cond = !ACCESS_FLAG(F_CF);
-        break;
-      case 0x84:
-        name = "JZ\t";
-        cond = ACCESS_FLAG(F_ZF);
-        break;
-      case 0x85:
-        name = "JNZ\t";
-        cond = !ACCESS_FLAG(F_ZF);
-        break;
-      case 0x86:
-        name = "JBE\t";
-        cond = ACCESS_FLAG(F_CF) || ACCESS_FLAG(F_ZF);
-        break;
-      case 0x87:
-        name = "JNBE\t";
-        cond = !(ACCESS_FLAG(F_CF) || ACCESS_FLAG(F_ZF));
-        break;
-      case 0x88:
-        name = "JS\t";
-        cond = ACCESS_FLAG(F_SF);
-        break;
-      case 0x89:
-        name = "JNS\t";
-        cond = !ACCESS_FLAG(F_SF);
-        break;
-      case 0x8a:
-        name = "JP\t";
-        cond = ACCESS_FLAG(F_PF);
-        break;
-      case 0x8b:
-        name = "JNP\t";
-        cond = !ACCESS_FLAG(F_PF);
-        break;
-      case 0x8c:
-        name = "JL\t";
-        cond = xorl(ACCESS_FLAG(F_SF), ACCESS_FLAG(F_OF));
-        break;
-      case 0x8d:
-        name = "JNL\t";
-        cond = xorl(ACCESS_FLAG(F_SF), ACCESS_FLAG(F_OF));
-        break;
-      case 0x8e:
-        name = "JLE\t";
-        cond = (xorl(ACCESS_FLAG(F_SF), ACCESS_FLAG(F_OF)) ||
-                ACCESS_FLAG(F_ZF));
-        break;
-      case 0x8f:
-        name = "JNLE\t";
-        cond = !(xorl(ACCESS_FLAG(F_SF), ACCESS_FLAG(F_OF)) ||
-                 ACCESS_FLAG(F_ZF));
-        break;
-    }
-    DECODE_PRINTF(name);
-    (void)name;
-    target = (s16) fetch_word_imm();
-    target += (s16) M.x86.R_IP;
-    DECODE_PRINTF2("%04x\n", target);
-    TRACE_AND_STEP();
-    if (cond)
-        M.x86.R_IP = (u16)target;
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0x90-0x9F
-****************************************************************************/
-static void x86emuOp2_set_byte(u8 op2)
-{
-    int mod, rl, rh;
-    uint destoffset;
-    u8  *destreg;
-    char *name = 0;
-    int cond = 0;
-
-    START_OF_INSTR();
-    switch (op2) {
-      case 0x90:
-        name = "SETO\t";
-        cond =  ACCESS_FLAG(F_OF);
-        break;
-      case 0x91:
-        name = "SETNO\t";
-        cond = !ACCESS_FLAG(F_OF);
-        break;
-      case 0x92:
-        name = "SETB\t";
-        cond = ACCESS_FLAG(F_CF);
-        break;
-      case 0x93:
-        name = "SETNB\t";
-        cond = !ACCESS_FLAG(F_CF);
-        break;
-      case 0x94:
-        name = "SETZ\t";
-        cond = ACCESS_FLAG(F_ZF);
-        break;
-      case 0x95:
-        name = "SETNZ\t";
-        cond = !ACCESS_FLAG(F_ZF);
-        break;
-      case 0x96:
-        name = "SETBE\t";
-        cond = ACCESS_FLAG(F_CF) || ACCESS_FLAG(F_ZF);
-        break;
-      case 0x97:
-        name = "SETNBE\t";
-        cond = !(ACCESS_FLAG(F_CF) || ACCESS_FLAG(F_ZF));
-        break;
-      case 0x98:
-        name = "SETS\t";
-        cond = ACCESS_FLAG(F_SF);
-        break;
-      case 0x99:
-        name = "SETNS\t";
-        cond = !ACCESS_FLAG(F_SF);
-        break;
-      case 0x9a:
-        name = "SETP\t";
-        cond = ACCESS_FLAG(F_PF);
-        break;
-      case 0x9b:
-        name = "SETNP\t";
-        cond = !ACCESS_FLAG(F_PF);
-        break;
-      case 0x9c:
-        name = "SETL\t";
-        cond = xorl(ACCESS_FLAG(F_SF), ACCESS_FLAG(F_OF));
-        break;
-      case 0x9d:
-        name = "SETNL\t";
-        cond = xorl(ACCESS_FLAG(F_SF), ACCESS_FLAG(F_OF));
-        break;
-      case 0x9e:
-        name = "SETLE\t";
-        cond = (xorl(ACCESS_FLAG(F_SF), ACCESS_FLAG(F_OF)) ||
-                ACCESS_FLAG(F_ZF));
-        break;
-      case 0x9f:
-        name = "SETNLE\t";
-        cond = !(xorl(ACCESS_FLAG(F_SF), ACCESS_FLAG(F_OF)) ||
-                 ACCESS_FLAG(F_ZF));
-        break;
-    }
-    DECODE_PRINTF(name);
-    (void)name;
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destoffset = decode_rm00_address(rl);
-        TRACE_AND_STEP();
-        store_data_byte(destoffset, cond ? 0x01 : 0x00);
-        break;
-    case 1:
-        destoffset = decode_rm01_address(rl);
-        TRACE_AND_STEP();
-        store_data_byte(destoffset, cond ? 0x01 : 0x00);
-        break;
-    case 2:
-        destoffset = decode_rm10_address(rl);
-        TRACE_AND_STEP();
-        store_data_byte(destoffset, cond ? 0x01 : 0x00);
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_BYTE_REGISTER(rl);
-        TRACE_AND_STEP();
-        *destreg = cond ? 0x01 : 0x00;
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xa0
-****************************************************************************/
-static void x86emuOp2_push_FS(u8 X86EMU_UNUSED(op2))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("PUSH\tFS\n");
-    TRACE_AND_STEP();
-    push_word(M.x86.R_FS);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xa1
-****************************************************************************/
-static void x86emuOp2_pop_FS(u8 X86EMU_UNUSED(op2))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("POP\tFS\n");
-    TRACE_AND_STEP();
-    M.x86.R_FS = pop_word();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xa3
-****************************************************************************/
-static void x86emuOp2_bt_R(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-    int bit,disp;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("BT\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 srcval;
-            u32 *shiftreg;
-
-            srcoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0x1F;
-            disp = (s16)*shiftreg >> 5;
-            srcval = fetch_data_long(srcoffset+disp);
-            CONDITIONAL_SET_FLAG(srcval & (0x1 << bit),F_CF);
-        } else {
-            u16 srcval;
-            u16 *shiftreg;
-
-            srcoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0xF;
-            disp = (s16)*shiftreg >> 4;
-            srcval = fetch_data_word(srcoffset+disp);
-            CONDITIONAL_SET_FLAG(srcval & (0x1 << bit),F_CF);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 srcval;
-            u32 *shiftreg;
-
-            srcoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0x1F;
-            disp = (s16)*shiftreg >> 5;
-            srcval = fetch_data_long(srcoffset+disp);
-            CONDITIONAL_SET_FLAG(srcval & (0x1 << bit),F_CF);
-        } else {
-            u16 srcval;
-            u16 *shiftreg;
-
-            srcoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0xF;
-            disp = (s16)*shiftreg >> 4;
-            srcval = fetch_data_word(srcoffset+disp);
-            CONDITIONAL_SET_FLAG(srcval & (0x1 << bit),F_CF);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 srcval;
-            u32 *shiftreg;
-
-            srcoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0x1F;
-            disp = (s16)*shiftreg >> 5;
-            srcval = fetch_data_long(srcoffset+disp);
-            CONDITIONAL_SET_FLAG(srcval & (0x1 << bit),F_CF);
-        } else {
-            u16 srcval;
-            u16 *shiftreg;
-
-            srcoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0xF;
-            disp = (s16)*shiftreg >> 4;
-            srcval = fetch_data_word(srcoffset+disp);
-            CONDITIONAL_SET_FLAG(srcval & (0x1 << bit),F_CF);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *srcreg,*shiftreg;
-
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0x1F;
-            CONDITIONAL_SET_FLAG(*srcreg & (0x1 << bit),F_CF);
-        } else {
-            u16 *srcreg,*shiftreg;
-
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0xF;
-            CONDITIONAL_SET_FLAG(*srcreg & (0x1 << bit),F_CF);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xa4
-****************************************************************************/
-static void x86emuOp2_shld_IMM(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint destoffset;
-       u8 shift;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SHLD\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *shiftreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            destval = fetch_data_long(destoffset);
-            destval = shld_long(destval,*shiftreg,shift);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *shiftreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            destval = fetch_data_word(destoffset);
-            destval = shld_word(destval,*shiftreg,shift);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *shiftreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            destval = fetch_data_long(destoffset);
-            destval = shld_long(destval,*shiftreg,shift);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *shiftreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            destval = fetch_data_word(destoffset);
-            destval = shld_word(destval,*shiftreg,shift);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *shiftreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            destval = fetch_data_long(destoffset);
-            destval = shld_long(destval,*shiftreg,shift);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *shiftreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            destval = fetch_data_word(destoffset);
-            destval = shld_word(destval,*shiftreg,shift);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*shiftreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            *destreg = shld_long(*destreg,*shiftreg,shift);
-        } else {
-            u16 *destreg,*shiftreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            *destreg = shld_word(*destreg,*shiftreg,shift);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xa5
-****************************************************************************/
-static void x86emuOp2_shld_CL(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SHLD\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *shiftreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            destval = fetch_data_long(destoffset);
-            destval = shld_long(destval,*shiftreg,M.x86.R_CL);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *shiftreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            destval = fetch_data_word(destoffset);
-            destval = shld_word(destval,*shiftreg,M.x86.R_CL);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *shiftreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            destval = fetch_data_long(destoffset);
-            destval = shld_long(destval,*shiftreg,M.x86.R_CL);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *shiftreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            destval = fetch_data_word(destoffset);
-            destval = shld_word(destval,*shiftreg,M.x86.R_CL);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *shiftreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            destval = fetch_data_long(destoffset);
-            destval = shld_long(destval,*shiftreg,M.x86.R_CL);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *shiftreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            destval = fetch_data_word(destoffset);
-            destval = shld_word(destval,*shiftreg,M.x86.R_CL);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*shiftreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            *destreg = shld_long(*destreg,*shiftreg,M.x86.R_CL);
-        } else {
-            u16 *destreg,*shiftreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            *destreg = shld_word(*destreg,*shiftreg,M.x86.R_CL);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xa8
-****************************************************************************/
-static void x86emuOp2_push_GS(u8 X86EMU_UNUSED(op2))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("PUSH\tGS\n");
-    TRACE_AND_STEP();
-    push_word(M.x86.R_GS);
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xa9
-****************************************************************************/
-static void x86emuOp2_pop_GS(u8 X86EMU_UNUSED(op2))
-{
-    START_OF_INSTR();
-    DECODE_PRINTF("POP\tGS\n");
-    TRACE_AND_STEP();
-    M.x86.R_GS = pop_word();
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-#if 0
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xaa
-****************************************************************************/
-static void x86emuOp2_bts_R(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-    int bit,disp;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("BTS\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 srcval,mask;
-            u32 *shiftreg;
-
-            srcoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0x1F;
-            disp = (s16)*shiftreg >> 5;
-            srcval = fetch_data_long(srcoffset+disp);
-            mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-            store_data_long(srcoffset+disp, srcval | mask);
-        } else {
-            u16 srcval,mask;
-            u16 *shiftreg;
-
-            srcoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0xF;
-            disp = (s16)*shiftreg >> 4;
-            srcval = fetch_data_word(srcoffset+disp);
-                       mask = (u16)(0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-            store_data_word(srcoffset+disp, srcval | mask);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 srcval,mask;
-            u32 *shiftreg;
-
-            srcoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0x1F;
-            disp = (s16)*shiftreg >> 5;
-            srcval = fetch_data_long(srcoffset+disp);
-            mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-            store_data_long(srcoffset+disp, srcval | mask);
-        } else {
-            u16 srcval,mask;
-            u16 *shiftreg;
-
-            srcoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0xF;
-            disp = (s16)*shiftreg >> 4;
-            srcval = fetch_data_word(srcoffset+disp);
-                       mask = (u16)(0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-            store_data_word(srcoffset+disp, srcval | mask);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 srcval,mask;
-            u32 *shiftreg;
-
-            srcoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0x1F;
-            disp = (s16)*shiftreg >> 5;
-            srcval = fetch_data_long(srcoffset+disp);
-            mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-            store_data_long(srcoffset+disp, srcval | mask);
-        } else {
-            u16 srcval,mask;
-            u16 *shiftreg;
-
-                       srcoffset = decode_rm10_address(rl);
-                       DECODE_PRINTF(",");
-                       shiftreg = DECODE_RM_WORD_REGISTER(rh);
-                       TRACE_AND_STEP();
-                       bit = *shiftreg & 0xF;
-                       disp = (s16)*shiftreg >> 4;
-                       srcval = fetch_data_word(srcoffset+disp);
-                       mask = (u16)(0x1 << bit);
-                       CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-                       store_data_word(srcoffset+disp, srcval | mask);
-               }
-               break;
-       case 3:                     /* register to register */
-               if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                       u32 *srcreg,*shiftreg;
-                       u32 mask;
-
-                       srcreg = DECODE_RM_LONG_REGISTER(rl);
-                       DECODE_PRINTF(",");
-                       shiftreg = DECODE_RM_LONG_REGISTER(rh);
-                       TRACE_AND_STEP();
-                       bit = *shiftreg & 0x1F;
-                       mask = (0x1 << bit);
-                       CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
-                       *srcreg |= mask;
-               } else {
-                       u16 *srcreg,*shiftreg;
-                       u16 mask;
-
-                       srcreg = DECODE_RM_WORD_REGISTER(rl);
-                       DECODE_PRINTF(",");
-                       shiftreg = DECODE_RM_WORD_REGISTER(rh);
-                       TRACE_AND_STEP();
-                       bit = *shiftreg & 0xF;
-                       mask = (u16)(0x1 << bit);
-            CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
-            *srcreg |= mask;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-#endif
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xac
-****************************************************************************/
-static void x86emuOp2_shrd_IMM(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint destoffset;
-       u8 shift;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SHLD\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *shiftreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            destval = fetch_data_long(destoffset);
-            destval = shrd_long(destval,*shiftreg,shift);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *shiftreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            destval = fetch_data_word(destoffset);
-            destval = shrd_word(destval,*shiftreg,shift);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *shiftreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            destval = fetch_data_long(destoffset);
-            destval = shrd_long(destval,*shiftreg,shift);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *shiftreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            destval = fetch_data_word(destoffset);
-            destval = shrd_word(destval,*shiftreg,shift);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *shiftreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            destval = fetch_data_long(destoffset);
-            destval = shrd_long(destval,*shiftreg,shift);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *shiftreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            destval = fetch_data_word(destoffset);
-            destval = shrd_word(destval,*shiftreg,shift);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*shiftreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            *destreg = shrd_long(*destreg,*shiftreg,shift);
-        } else {
-            u16 *destreg,*shiftreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            DECODE_PRINTF2("%d\n", shift);
-            TRACE_AND_STEP();
-            *destreg = shrd_word(*destreg,*shiftreg,shift);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xad
-****************************************************************************/
-static void x86emuOp2_shrd_CL(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint destoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("SHLD\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *shiftreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            destval = fetch_data_long(destoffset);
-            destval = shrd_long(destval,*shiftreg,M.x86.R_CL);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *shiftreg;
-
-            destoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            destval = fetch_data_word(destoffset);
-            destval = shrd_word(destval,*shiftreg,M.x86.R_CL);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *shiftreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            destval = fetch_data_long(destoffset);
-            destval = shrd_long(destval,*shiftreg,M.x86.R_CL);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *shiftreg;
-
-            destoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            destval = fetch_data_word(destoffset);
-            destval = shrd_word(destval,*shiftreg,M.x86.R_CL);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 destval;
-            u32 *shiftreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            destval = fetch_data_long(destoffset);
-            destval = shrd_long(destval,*shiftreg,M.x86.R_CL);
-            store_data_long(destoffset, destval);
-        } else {
-            u16 destval;
-            u16 *shiftreg;
-
-            destoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            destval = fetch_data_word(destoffset);
-            destval = shrd_word(destval,*shiftreg,M.x86.R_CL);
-            store_data_word(destoffset, destval);
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*shiftreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            *destreg = shrd_long(*destreg,*shiftreg,M.x86.R_CL);
-        } else {
-            u16 *destreg,*shiftreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",CL\n");
-            TRACE_AND_STEP();
-            *destreg = shrd_word(*destreg,*shiftreg,M.x86.R_CL);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xaf
-****************************************************************************/
-static void x86emuOp2_imul_R_RM(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("IMUL\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-            u32 res_lo,res_hi;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            TRACE_AND_STEP();
-            imul_long_direct(&res_lo,&res_hi,(s32)*destreg,(s32)srcval);
-            if (res_hi != 0) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u32)res_lo;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-            u32 res;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            TRACE_AND_STEP();
-            res = (s16)*destreg * (s16)srcval;
-            if (res > 0xFFFF) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u16)res;
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-            u32 res_lo,res_hi;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            TRACE_AND_STEP();
-            imul_long_direct(&res_lo,&res_hi,(s32)*destreg,(s32)srcval);
-            if (res_hi != 0) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u32)res_lo;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-            u32 res;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            TRACE_AND_STEP();
-            res = (s16)*destreg * (s16)srcval;
-            if (res > 0xFFFF) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u16)res;
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-            u32 res_lo,res_hi;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_long(srcoffset);
-            TRACE_AND_STEP();
-            imul_long_direct(&res_lo,&res_hi,(s32)*destreg,(s32)srcval);
-            if (res_hi != 0) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u32)res_lo;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-            u32 res;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_word(srcoffset);
-            TRACE_AND_STEP();
-            res = (s16)*destreg * (s16)srcval;
-            if (res > 0xFFFF) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u16)res;
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg,*srcreg;
-            u32 res_lo,res_hi;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            TRACE_AND_STEP();
-            imul_long_direct(&res_lo,&res_hi,(s32)*destreg,(s32)*srcreg);
-            if (res_hi != 0) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u32)res_lo;
-        } else {
-            u16 *destreg,*srcreg;
-            u32 res;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            res = (s16)*destreg * (s16)*srcreg;
-            if (res > 0xFFFF) {
-                SET_FLAG(F_CF);
-                SET_FLAG(F_OF);
-            } else {
-                CLEAR_FLAG(F_CF);
-                CLEAR_FLAG(F_OF);
-            }
-            *destreg = (u16)res;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xb2
-****************************************************************************/
-static void x86emuOp2_lss_R_IMM(u8 X86EMU_UNUSED(op2))
-{
-       int mod, rh, rl;
-    u16 *dstreg;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("LSS\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_SS = fetch_data_word(srcoffset + 2);
-        break;
-    case 1:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_SS = fetch_data_word(srcoffset + 2);
-        break;
-    case 2:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_SS = fetch_data_word(srcoffset + 2);
-        break;
-    case 3:                     /* register to register */
-        /* UNDEFINED! */
-        TRACE_AND_STEP();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xb3
-****************************************************************************/
-static void x86emuOp2_btr_R(u8 X86EMU_UNUSED(op2))
-{
-       int mod, rl, rh;
-       uint srcoffset;
-       int bit,disp;
-
-       START_OF_INSTR();
-       DECODE_PRINTF("BTR\t");
-       FETCH_DECODE_MODRM(mod, rh, rl);
-       switch (mod) {
-       case 0:
-               if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                       u32 srcval,mask;
-                       u32 *shiftreg;
-
-                       srcoffset = decode_rm00_address(rl);
-                       DECODE_PRINTF(",");
-                       shiftreg = DECODE_RM_LONG_REGISTER(rh);
-                       TRACE_AND_STEP();
-                       bit = *shiftreg & 0x1F;
-                       disp = (s16)*shiftreg >> 5;
-                       srcval = fetch_data_long(srcoffset+disp);
-                       mask = (0x1 << bit);
-                       CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-                       store_data_long(srcoffset+disp, srcval & ~mask);
-               } else {
-                       u16 srcval,mask;
-                       u16 *shiftreg;
-
-                       srcoffset = decode_rm00_address(rl);
-                       DECODE_PRINTF(",");
-                       shiftreg = DECODE_RM_WORD_REGISTER(rh);
-                       TRACE_AND_STEP();
-                       bit = *shiftreg & 0xF;
-                       disp = (s16)*shiftreg >> 4;
-                       srcval = fetch_data_word(srcoffset+disp);
-                       mask = (u16)(0x1 << bit);
-                       CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-                       store_data_word(srcoffset+disp, (u16)(srcval & ~mask));
-               }
-               break;
-       case 1:
-               if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                       u32 srcval,mask;
-                       u32 *shiftreg;
-
-                       srcoffset = decode_rm01_address(rl);
-                       DECODE_PRINTF(",");
-                       shiftreg = DECODE_RM_LONG_REGISTER(rh);
-                       TRACE_AND_STEP();
-                       bit = *shiftreg & 0x1F;
-                       disp = (s16)*shiftreg >> 5;
-                       srcval = fetch_data_long(srcoffset+disp);
-                       mask = (0x1 << bit);
-                       CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-                       store_data_long(srcoffset+disp, srcval & ~mask);
-               } else {
-                       u16 srcval,mask;
-                       u16 *shiftreg;
-
-                       srcoffset = decode_rm01_address(rl);
-                       DECODE_PRINTF(",");
-                       shiftreg = DECODE_RM_WORD_REGISTER(rh);
-                       TRACE_AND_STEP();
-                       bit = *shiftreg & 0xF;
-                       disp = (s16)*shiftreg >> 4;
-                       srcval = fetch_data_word(srcoffset+disp);
-                       mask = (u16)(0x1 << bit);
-                       CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-                       store_data_word(srcoffset+disp, (u16)(srcval & ~mask));
-               }
-               break;
-       case 2:
-               if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                       u32 srcval,mask;
-                       u32 *shiftreg;
-
-                       srcoffset = decode_rm10_address(rl);
-                       DECODE_PRINTF(",");
-                       shiftreg = DECODE_RM_LONG_REGISTER(rh);
-                       TRACE_AND_STEP();
-                       bit = *shiftreg & 0x1F;
-                       disp = (s16)*shiftreg >> 5;
-                       srcval = fetch_data_long(srcoffset+disp);
-                       mask = (0x1 << bit);
-                       CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-                       store_data_long(srcoffset+disp, srcval & ~mask);
-               } else {
-                       u16 srcval,mask;
-                       u16 *shiftreg;
-
-                       srcoffset = decode_rm10_address(rl);
-                       DECODE_PRINTF(",");
-                       shiftreg = DECODE_RM_WORD_REGISTER(rh);
-                       TRACE_AND_STEP();
-                       bit = *shiftreg & 0xF;
-                       disp = (s16)*shiftreg >> 4;
-                       srcval = fetch_data_word(srcoffset+disp);
-                       mask = (u16)(0x1 << bit);
-                       CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-                       store_data_word(srcoffset+disp, (u16)(srcval & ~mask));
-               }
-               break;
-       case 3:                     /* register to register */
-               if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                       u32 *srcreg,*shiftreg;
-                       u32 mask;
-
-                       srcreg = DECODE_RM_LONG_REGISTER(rl);
-                       DECODE_PRINTF(",");
-                       shiftreg = DECODE_RM_LONG_REGISTER(rh);
-                       TRACE_AND_STEP();
-                       bit = *shiftreg & 0x1F;
-                       mask = (0x1 << bit);
-                       CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
-                       *srcreg &= ~mask;
-               } else {
-                       u16 *srcreg,*shiftreg;
-                       u16 mask;
-
-                       srcreg = DECODE_RM_WORD_REGISTER(rl);
-                       DECODE_PRINTF(",");
-                       shiftreg = DECODE_RM_WORD_REGISTER(rh);
-                       TRACE_AND_STEP();
-                       bit = *shiftreg & 0xF;
-                       mask = (u16)(0x1 << bit);
-                       CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
-                       *srcreg &= ~mask;
-               }
-               break;
-       }
-       DECODE_CLEAR_SEGOVR();
-       END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xb4
-****************************************************************************/
-static void x86emuOp2_lfs_R_IMM(u8 X86EMU_UNUSED(op2))
-{
-       int mod, rh, rl;
-    u16 *dstreg;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("LFS\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_FS = fetch_data_word(srcoffset + 2);
-        break;
-    case 1:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_FS = fetch_data_word(srcoffset + 2);
-        break;
-    case 2:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_FS = fetch_data_word(srcoffset + 2);
-        break;
-    case 3:                     /* register to register */
-        /* UNDEFINED! */
-        TRACE_AND_STEP();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xb5
-****************************************************************************/
-static void x86emuOp2_lgs_R_IMM(u8 X86EMU_UNUSED(op2))
-{
-       int mod, rh, rl;
-    u16 *dstreg;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("LGS\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_GS = fetch_data_word(srcoffset + 2);
-        break;
-    case 1:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_GS = fetch_data_word(srcoffset + 2);
-        break;
-    case 2:
-        dstreg = DECODE_RM_WORD_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *dstreg = fetch_data_word(srcoffset);
-        M.x86.R_GS = fetch_data_word(srcoffset + 2);
-        break;
-    case 3:                     /* register to register */
-        /* UNDEFINED! */
-        TRACE_AND_STEP();
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xb6
-****************************************************************************/
-static void x86emuOp2_movzx_byte_R_RM(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOVZX\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_byte(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = fetch_data_byte(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_byte(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = fetch_data_byte(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_byte(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = fetch_data_byte(srcoffset);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u8  *srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_BYTE_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = *srcreg;
-        } else {
-            u16 *destreg;
-            u8  *srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_BYTE_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = *srcreg;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xb7
-****************************************************************************/
-static void x86emuOp2_movzx_word_R_RM(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-    u32 *destreg;
-    u32 srcval;
-    u16 *srcreg;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOVZX\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destreg = DECODE_RM_LONG_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        srcval = fetch_data_word(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = srcval;
-        break;
-    case 1:
-        destreg = DECODE_RM_LONG_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        srcval = fetch_data_word(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = srcval;
-        break;
-    case 2:
-        destreg = DECODE_RM_LONG_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        srcval = fetch_data_word(srcoffset);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = srcval;
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_LONG_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_WORD_REGISTER(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = *srcreg;
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xba
-****************************************************************************/
-static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-    int bit;
-
-    START_OF_INSTR();
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (rh) {
-    case 4:
-       DECODE_PRINTF("BT\t");
-       break;
-    case 5:
-       DECODE_PRINTF("BTS\t");
-       break;
-    case 6:
-       DECODE_PRINTF("BTR\t");
-       break;
-    case 7:
-       DECODE_PRINTF("BTC\t");
-       break;
-    default:
-       DECODE_PRINTF("ILLEGAL EXTENDED X86 OPCODE\n");
-       TRACE_REGS();
-       printk("%04x:%04x: %02X%02X ILLEGAL EXTENDED X86 OPCODE EXTENSION!\n",
-               M.x86.R_CS, M.x86.R_IP-3,op2, (mod<<6)|(rh<<3)|rl);
-       HALT_SYS();
-    }
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 srcval, mask;
-            u8 shift;
-
-            srcoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            TRACE_AND_STEP();
-            bit = shift & 0x1F;
-            srcval = fetch_data_long(srcoffset);
-           mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-           switch (rh) {
-           case 5:
-               store_data_long(srcoffset, srcval | mask);
-               break;
-           case 6:
-               store_data_long(srcoffset, srcval & ~mask);
-               break;
-           case 7:
-               store_data_long(srcoffset, srcval ^ mask);
-               break;
-           default:
-               break;
-           }
-        } else {
-            u16 srcval, mask;
-            u8 shift;
-
-            srcoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            TRACE_AND_STEP();
-            bit = shift & 0xF;
-            srcval = fetch_data_word(srcoffset);
-           mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-           switch (rh) {
-           case 5:
-               store_data_word(srcoffset, srcval | mask);
-               break;
-           case 6:
-               store_data_word(srcoffset, srcval & ~mask);
-               break;
-           case 7:
-               store_data_word(srcoffset, srcval ^ mask);
-               break;
-           default:
-               break;
-           }
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 srcval, mask;
-            u8 shift;
-
-            srcoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            TRACE_AND_STEP();
-            bit = shift & 0x1F;
-            srcval = fetch_data_long(srcoffset);
-           mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-           switch (rh) {
-           case 5:
-               store_data_long(srcoffset, srcval | mask);
-               break;
-           case 6:
-               store_data_long(srcoffset, srcval & ~mask);
-               break;
-           case 7:
-               store_data_long(srcoffset, srcval ^ mask);
-               break;
-           default:
-               break;
-           }
-        } else {
-            u16 srcval, mask;
-            u8 shift;
-
-            srcoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            TRACE_AND_STEP();
-            bit = shift & 0xF;
-            srcval = fetch_data_word(srcoffset);
-           mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-           switch (rh) {
-           case 5:
-               store_data_word(srcoffset, srcval | mask);
-               break;
-           case 6:
-               store_data_word(srcoffset, srcval & ~mask);
-               break;
-           case 7:
-               store_data_word(srcoffset, srcval ^ mask);
-               break;
-           default:
-               break;
-           }
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 srcval, mask;
-            u8 shift;
-
-            srcoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            TRACE_AND_STEP();
-            bit = shift & 0x1F;
-            srcval = fetch_data_long(srcoffset);
-           mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-           switch (rh) {
-           case 5:
-               store_data_long(srcoffset, srcval | mask);
-               break;
-           case 6:
-               store_data_long(srcoffset, srcval & ~mask);
-               break;
-           case 7:
-               store_data_long(srcoffset, srcval ^ mask);
-               break;
-           default:
-               break;
-           }
-        } else {
-            u16 srcval, mask;
-            u8 shift;
-
-            srcoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            TRACE_AND_STEP();
-            bit = shift & 0xF;
-            srcval = fetch_data_word(srcoffset);
-           mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-           switch (rh) {
-           case 5:
-               store_data_word(srcoffset, srcval | mask);
-               break;
-           case 6:
-               store_data_word(srcoffset, srcval & ~mask);
-               break;
-           case 7:
-               store_data_word(srcoffset, srcval ^ mask);
-               break;
-           default:
-               break;
-           }
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *srcreg;
-           u32 mask;
-           u8 shift;
-
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            TRACE_AND_STEP();
-            bit = shift & 0x1F;
-           mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
-           switch (rh) {
-           case 5:
-               *srcreg |= mask;
-               break;
-           case 6:
-               *srcreg &= ~mask;
-               break;
-           case 7:
-               *srcreg ^= mask;
-               break;
-           default:
-               break;
-           }
-        } else {
-            u16 *srcreg;
-           u16 mask;
-           u8 shift;
-
-            srcreg = DECODE_RM_WORD_REGISTER(rl);
-            DECODE_PRINTF(",");
-            shift = fetch_byte_imm();
-            TRACE_AND_STEP();
-            bit = shift & 0xF;
-           mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
-           switch (rh) {
-           case 5:
-               *srcreg |= mask;
-               break;
-           case 6:
-               *srcreg &= ~mask;
-               break;
-           case 7:
-               *srcreg ^= mask;
-               break;
-           default:
-               break;
-           }
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xbb
-****************************************************************************/
-static void x86emuOp2_btc_R(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-    int bit,disp;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("BTC\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 srcval,mask;
-            u32 *shiftreg;
-
-            srcoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0x1F;
-            disp = (s16)*shiftreg >> 5;
-            srcval = fetch_data_long(srcoffset+disp);
-            mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-            store_data_long(srcoffset+disp, srcval ^ mask);
-        } else {
-            u16 srcval,mask;
-            u16 *shiftreg;
-
-            srcoffset = decode_rm00_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0xF;
-            disp = (s16)*shiftreg >> 4;
-            srcval = fetch_data_word(srcoffset+disp);
-                       mask = (u16)(0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-                       store_data_word(srcoffset+disp, (u16)(srcval ^ mask));
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 srcval,mask;
-            u32 *shiftreg;
-
-            srcoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0x1F;
-            disp = (s16)*shiftreg >> 5;
-            srcval = fetch_data_long(srcoffset+disp);
-            mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-            store_data_long(srcoffset+disp, srcval ^ mask);
-        } else {
-            u16 srcval,mask;
-            u16 *shiftreg;
-
-            srcoffset = decode_rm01_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0xF;
-            disp = (s16)*shiftreg >> 4;
-            srcval = fetch_data_word(srcoffset+disp);
-                       mask = (u16)(0x1 << bit);
-                       CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-                       store_data_word(srcoffset+disp, (u16)(srcval ^ mask));
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 srcval,mask;
-            u32 *shiftreg;
-
-            srcoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0x1F;
-            disp = (s16)*shiftreg >> 5;
-            srcval = fetch_data_long(srcoffset+disp);
-            mask = (0x1 << bit);
-            CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-            store_data_long(srcoffset+disp, srcval ^ mask);
-        } else {
-            u16 srcval,mask;
-            u16 *shiftreg;
-
-            srcoffset = decode_rm10_address(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_WORD_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0xF;
-            disp = (s16)*shiftreg >> 4;
-            srcval = fetch_data_word(srcoffset+disp);
-                       mask = (u16)(0x1 << bit);
-                       CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
-                       store_data_word(srcoffset+disp, (u16)(srcval ^ mask));
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                       u32 *srcreg,*shiftreg;
-            u32 mask;
-
-            srcreg = DECODE_RM_LONG_REGISTER(rl);
-            DECODE_PRINTF(",");
-            shiftreg = DECODE_RM_LONG_REGISTER(rh);
-            TRACE_AND_STEP();
-            bit = *shiftreg & 0x1F;
-            mask = (0x1 << bit);
-                       CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
-                       *srcreg ^= mask;
-               } else {
-                       u16 *srcreg,*shiftreg;
-                       u16 mask;
-
-                       srcreg = DECODE_RM_WORD_REGISTER(rl);
-                       DECODE_PRINTF(",");
-                       shiftreg = DECODE_RM_WORD_REGISTER(rh);
-                       TRACE_AND_STEP();
-                       bit = *shiftreg & 0xF;
-                       mask = (u16)(0x1 << bit);
-            CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
-            *srcreg ^= mask;
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xbc
-****************************************************************************/
-static void x86emuOp2_bsf(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("BSF\n");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch(mod) {
-    case 0:
-       if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-           u32 srcval, *dstreg;
-
-           srcoffset = decode_rm00_address(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_LONG_REGISTER(rh);
-           TRACE_AND_STEP();
-           srcval = fetch_data_long(srcoffset);
-           CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
-           for(*dstreg = 0; *dstreg < 32; (*dstreg)++)
-               if ((srcval >> *dstreg) & 1) break;
-       } else {
-           u16 srcval, *dstreg;
-
-           srcoffset = decode_rm00_address(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_WORD_REGISTER(rh);
-           TRACE_AND_STEP();
-           srcval = fetch_data_word(srcoffset);
-           CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
-           for(*dstreg = 0; *dstreg < 16; (*dstreg)++)
-               if ((srcval >> *dstreg) & 1) break;
-       }
-       break;
-    case 1:
-       if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-           u32 srcval, *dstreg;
-
-           srcoffset = decode_rm01_address(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_LONG_REGISTER(rh);
-           TRACE_AND_STEP();
-           srcval = fetch_data_long(srcoffset);
-           CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
-           for(*dstreg = 0; *dstreg < 32; (*dstreg)++)
-               if ((srcval >> *dstreg) & 1) break;
-       } else {
-           u16 srcval, *dstreg;
-
-           srcoffset = decode_rm01_address(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_WORD_REGISTER(rh);
-           TRACE_AND_STEP();
-           srcval = fetch_data_word(srcoffset);
-           CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
-           for(*dstreg = 0; *dstreg < 16; (*dstreg)++)
-               if ((srcval >> *dstreg) & 1) break;
-       }
-       break;
-    case 2:
-       if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-           u32 srcval, *dstreg;
-
-           srcoffset = decode_rm10_address(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_LONG_REGISTER(rh);
-           TRACE_AND_STEP();
-           srcval = fetch_data_long(srcoffset);
-           CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
-           for(*dstreg = 0; *dstreg < 32; (*dstreg)++)
-               if ((srcval >> *dstreg) & 1) break;
-       } else {
-           u16 srcval, *dstreg;
-
-           srcoffset = decode_rm10_address(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_WORD_REGISTER(rh);
-           TRACE_AND_STEP();
-           srcval = fetch_data_word(srcoffset);
-           CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
-           for(*dstreg = 0; *dstreg < 16; (*dstreg)++)
-               if ((srcval >> *dstreg) & 1) break;
-       }
-       break;
-    case 3:                            /* register to register */
-       if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-           u32 *srcreg, *dstreg;
-
-           srcreg = DECODE_RM_LONG_REGISTER(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_LONG_REGISTER(rh);
-           TRACE_AND_STEP();
-           CONDITIONAL_SET_FLAG(*srcreg == 0, F_ZF);
-           for(*dstreg = 0; *dstreg < 32; (*dstreg)++)
-               if ((*srcreg >> *dstreg) & 1) break;
-       } else {
-           u16 *srcreg, *dstreg;
-
-           srcreg = DECODE_RM_WORD_REGISTER(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_WORD_REGISTER(rh);
-           TRACE_AND_STEP();
-           CONDITIONAL_SET_FLAG(*srcreg == 0, F_ZF);
-           for(*dstreg = 0; *dstreg < 16; (*dstreg)++)
-               if ((*srcreg >> *dstreg) & 1) break;
-       }
-       break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xbd
-****************************************************************************/
-static void x86emuOp2_bsr(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("BSF\n");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch(mod) {
-    case 0:
-       if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-           u32 srcval, *dstreg;
-
-           srcoffset = decode_rm00_address(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_LONG_REGISTER(rh);
-           TRACE_AND_STEP();
-           srcval = fetch_data_long(srcoffset);
-           CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
-           for(*dstreg = 31; *dstreg > 0; (*dstreg)--)
-               if ((srcval >> *dstreg) & 1) break;
-       } else {
-           u16 srcval, *dstreg;
-
-           srcoffset = decode_rm00_address(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_WORD_REGISTER(rh);
-           TRACE_AND_STEP();
-           srcval = fetch_data_word(srcoffset);
-           CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
-           for(*dstreg = 15; *dstreg > 0; (*dstreg)--)
-               if ((srcval >> *dstreg) & 1) break;
-       }
-       break;
-    case 1:
-       if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-           u32 srcval, *dstreg;
-
-           srcoffset = decode_rm01_address(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_LONG_REGISTER(rh);
-           TRACE_AND_STEP();
-           srcval = fetch_data_long(srcoffset);
-           CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
-           for(*dstreg = 31; *dstreg > 0; (*dstreg)--)
-               if ((srcval >> *dstreg) & 1) break;
-       } else {
-           u16 srcval, *dstreg;
-
-           srcoffset = decode_rm01_address(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_WORD_REGISTER(rh);
-           TRACE_AND_STEP();
-           srcval = fetch_data_word(srcoffset);
-           CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
-           for(*dstreg = 15; *dstreg > 0; (*dstreg)--)
-               if ((srcval >> *dstreg) & 1) break;
-       }
-       break;
-    case 2:
-       if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-           u32 srcval, *dstreg;
-
-           srcoffset = decode_rm10_address(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_LONG_REGISTER(rh);
-           TRACE_AND_STEP();
-           srcval = fetch_data_long(srcoffset);
-           CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
-           for(*dstreg = 31; *dstreg > 0; (*dstreg)--)
-               if ((srcval >> *dstreg) & 1) break;
-       } else {
-           u16 srcval, *dstreg;
-
-           srcoffset = decode_rm10_address(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_WORD_REGISTER(rh);
-           TRACE_AND_STEP();
-           srcval = fetch_data_word(srcoffset);
-           CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
-           for(*dstreg = 15; *dstreg > 0; (*dstreg)--)
-               if ((srcval >> *dstreg) & 1) break;
-       }
-       break;
-    case 3:                            /* register to register */
-       if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-           u32 *srcreg, *dstreg;
-
-           srcreg = DECODE_RM_LONG_REGISTER(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_LONG_REGISTER(rh);
-           TRACE_AND_STEP();
-           CONDITIONAL_SET_FLAG(*srcreg == 0, F_ZF);
-           for(*dstreg = 31; *dstreg > 0; (*dstreg)--)
-               if ((*srcreg >> *dstreg) & 1) break;
-       } else {
-           u16 *srcreg, *dstreg;
-
-           srcreg = DECODE_RM_WORD_REGISTER(rl);
-           DECODE_PRINTF(",");
-           dstreg = DECODE_RM_WORD_REGISTER(rh);
-           TRACE_AND_STEP();
-           CONDITIONAL_SET_FLAG(*srcreg == 0, F_ZF);
-           for(*dstreg = 15; *dstreg > 0; (*dstreg)--)
-               if ((*srcreg >> *dstreg) & 1) break;
-       }
-       break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xbe
-****************************************************************************/
-static void x86emuOp2_movsx_byte_R_RM(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOVSX\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = (s32)((s8)fetch_data_byte(srcoffset));
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm00_address(rl);
-            srcval = (s16)((s8)fetch_data_byte(srcoffset));
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        }
-        break;
-    case 1:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = (s32)((s8)fetch_data_byte(srcoffset));
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm01_address(rl);
-            srcval = (s16)((s8)fetch_data_byte(srcoffset));
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        }
-        break;
-    case 2:
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u32 srcval;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = (s32)((s8)fetch_data_byte(srcoffset));
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        } else {
-            u16 *destreg;
-            u16 srcval;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcoffset = decode_rm10_address(rl);
-            srcval = (s16)((s8)fetch_data_byte(srcoffset));
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = srcval;
-        }
-        break;
-    case 3:                     /* register to register */
-        if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-            u32 *destreg;
-            u8  *srcreg;
-
-            destreg = DECODE_RM_LONG_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_BYTE_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = (s32)((s8)*srcreg);
-        } else {
-            u16 *destreg;
-            u8  *srcreg;
-
-            destreg = DECODE_RM_WORD_REGISTER(rh);
-            DECODE_PRINTF(",");
-            srcreg = DECODE_RM_BYTE_REGISTER(rl);
-            DECODE_PRINTF("\n");
-            TRACE_AND_STEP();
-            *destreg = (s16)((s8)*srcreg);
-        }
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/****************************************************************************
-REMARKS:
-Handles opcode 0x0f,0xbf
-****************************************************************************/
-static void x86emuOp2_movsx_word_R_RM(u8 X86EMU_UNUSED(op2))
-{
-    int mod, rl, rh;
-    uint srcoffset;
-    u32 *destreg;
-    u32 srcval;
-    u16 *srcreg;
-
-    START_OF_INSTR();
-    DECODE_PRINTF("MOVSX\t");
-    FETCH_DECODE_MODRM(mod, rh, rl);
-    switch (mod) {
-    case 0:
-        destreg = DECODE_RM_LONG_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm00_address(rl);
-        srcval = (s32)((s16)fetch_data_word(srcoffset));
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = srcval;
-        break;
-    case 1:
-        destreg = DECODE_RM_LONG_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm01_address(rl);
-        srcval = (s32)((s16)fetch_data_word(srcoffset));
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = srcval;
-        break;
-    case 2:
-        destreg = DECODE_RM_LONG_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcoffset = decode_rm10_address(rl);
-        srcval = (s32)((s16)fetch_data_word(srcoffset));
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = srcval;
-        break;
-    case 3:                     /* register to register */
-        destreg = DECODE_RM_LONG_REGISTER(rh);
-        DECODE_PRINTF(",");
-        srcreg = DECODE_RM_WORD_REGISTER(rl);
-        DECODE_PRINTF("\n");
-        TRACE_AND_STEP();
-        *destreg = (s32)((s16)*srcreg);
-        break;
-    }
-    DECODE_CLEAR_SEGOVR();
-    END_OF_INSTR();
-}
-
-/***************************************************************************
- * Double byte operation code table:
- **************************************************************************/
-void (*x86emu_optab2[256])(u8) =
-{
-/*  0x00 */ x86emuOp2_illegal_op,  /* Group F (ring 0 PM)      */
-/*  0x01 */ x86emuOp2_illegal_op,  /* Group G (ring 0 PM)      */
-/*  0x02 */ x86emuOp2_illegal_op,  /* lar (ring 0 PM)          */
-/*  0x03 */ x86emuOp2_illegal_op,  /* lsl (ring 0 PM)          */
-/*  0x04 */ x86emuOp2_illegal_op,
-/*  0x05 */ x86emuOp2_illegal_op,  /* loadall (undocumented)   */
-/*  0x06 */ x86emuOp2_illegal_op,  /* clts (ring 0 PM)         */
-/*  0x07 */ x86emuOp2_illegal_op,  /* loadall (undocumented)   */
-/*  0x08 */ x86emuOp2_illegal_op,  /* invd (ring 0 PM)         */
-/*  0x09 */ x86emuOp2_illegal_op,  /* wbinvd (ring 0 PM)       */
-/*  0x0a */ x86emuOp2_illegal_op,
-/*  0x0b */ x86emuOp2_illegal_op,
-/*  0x0c */ x86emuOp2_illegal_op,
-/*  0x0d */ x86emuOp2_illegal_op,
-/*  0x0e */ x86emuOp2_illegal_op,
-/*  0x0f */ x86emuOp2_illegal_op,
-
-/*  0x10 */ x86emuOp2_illegal_op,
-/*  0x11 */ x86emuOp2_illegal_op,
-/*  0x12 */ x86emuOp2_illegal_op,
-/*  0x13 */ x86emuOp2_illegal_op,
-/*  0x14 */ x86emuOp2_illegal_op,
-/*  0x15 */ x86emuOp2_illegal_op,
-/*  0x16 */ x86emuOp2_illegal_op,
-/*  0x17 */ x86emuOp2_illegal_op,
-/*  0x18 */ x86emuOp2_illegal_op,
-/*  0x19 */ x86emuOp2_illegal_op,
-/*  0x1a */ x86emuOp2_illegal_op,
-/*  0x1b */ x86emuOp2_illegal_op,
-/*  0x1c */ x86emuOp2_illegal_op,
-/*  0x1d */ x86emuOp2_illegal_op,
-/*  0x1e */ x86emuOp2_illegal_op,
-/*  0x1f */ x86emuOp2_illegal_op,
-
-/*  0x20 */ x86emuOp2_illegal_op,  /* mov reg32,creg (ring 0 PM) */
-/*  0x21 */ x86emuOp2_illegal_op,  /* mov reg32,dreg (ring 0 PM) */
-/*  0x22 */ x86emuOp2_illegal_op,  /* mov creg,reg32 (ring 0 PM) */
-/*  0x23 */ x86emuOp2_illegal_op,  /* mov dreg,reg32 (ring 0 PM) */
-/*  0x24 */ x86emuOp2_illegal_op,  /* mov reg32,treg (ring 0 PM) */
-/*  0x25 */ x86emuOp2_illegal_op,
-/*  0x26 */ x86emuOp2_illegal_op,  /* mov treg,reg32 (ring 0 PM) */
-/*  0x27 */ x86emuOp2_illegal_op,
-/*  0x28 */ x86emuOp2_illegal_op,
-/*  0x29 */ x86emuOp2_illegal_op,
-/*  0x2a */ x86emuOp2_illegal_op,
-/*  0x2b */ x86emuOp2_illegal_op,
-/*  0x2c */ x86emuOp2_illegal_op,
-/*  0x2d */ x86emuOp2_illegal_op,
-/*  0x2e */ x86emuOp2_illegal_op,
-/*  0x2f */ x86emuOp2_illegal_op,
-
-/*  0x30 */ x86emuOp2_illegal_op,
-/*  0x31 */ x86emuOp2_illegal_op,
-/*  0x32 */ x86emuOp2_illegal_op,
-/*  0x33 */ x86emuOp2_illegal_op,
-/*  0x34 */ x86emuOp2_illegal_op,
-/*  0x35 */ x86emuOp2_illegal_op,
-/*  0x36 */ x86emuOp2_illegal_op,
-/*  0x37 */ x86emuOp2_illegal_op,
-/*  0x38 */ x86emuOp2_illegal_op,
-/*  0x39 */ x86emuOp2_illegal_op,
-/*  0x3a */ x86emuOp2_illegal_op,
-/*  0x3b */ x86emuOp2_illegal_op,
-/*  0x3c */ x86emuOp2_illegal_op,
-/*  0x3d */ x86emuOp2_illegal_op,
-/*  0x3e */ x86emuOp2_illegal_op,
-/*  0x3f */ x86emuOp2_illegal_op,
-
-/*  0x40 */ x86emuOp2_illegal_op,
-/*  0x41 */ x86emuOp2_illegal_op,
-/*  0x42 */ x86emuOp2_illegal_op,
-/*  0x43 */ x86emuOp2_illegal_op,
-/*  0x44 */ x86emuOp2_illegal_op,
-/*  0x45 */ x86emuOp2_illegal_op,
-/*  0x46 */ x86emuOp2_illegal_op,
-/*  0x47 */ x86emuOp2_illegal_op,
-/*  0x48 */ x86emuOp2_illegal_op,
-/*  0x49 */ x86emuOp2_illegal_op,
-/*  0x4a */ x86emuOp2_illegal_op,
-/*  0x4b */ x86emuOp2_illegal_op,
-/*  0x4c */ x86emuOp2_illegal_op,
-/*  0x4d */ x86emuOp2_illegal_op,
-/*  0x4e */ x86emuOp2_illegal_op,
-/*  0x4f */ x86emuOp2_illegal_op,
-
-/*  0x50 */ x86emuOp2_illegal_op,
-/*  0x51 */ x86emuOp2_illegal_op,
-/*  0x52 */ x86emuOp2_illegal_op,
-/*  0x53 */ x86emuOp2_illegal_op,
-/*  0x54 */ x86emuOp2_illegal_op,
-/*  0x55 */ x86emuOp2_illegal_op,
-/*  0x56 */ x86emuOp2_illegal_op,
-/*  0x57 */ x86emuOp2_illegal_op,
-/*  0x58 */ x86emuOp2_illegal_op,
-/*  0x59 */ x86emuOp2_illegal_op,
-/*  0x5a */ x86emuOp2_illegal_op,
-/*  0x5b */ x86emuOp2_illegal_op,
-/*  0x5c */ x86emuOp2_illegal_op,
-/*  0x5d */ x86emuOp2_illegal_op,
-/*  0x5e */ x86emuOp2_illegal_op,
-/*  0x5f */ x86emuOp2_illegal_op,
-
-/*  0x60 */ x86emuOp2_illegal_op,
-/*  0x61 */ x86emuOp2_illegal_op,
-/*  0x62 */ x86emuOp2_illegal_op,
-/*  0x63 */ x86emuOp2_illegal_op,
-/*  0x64 */ x86emuOp2_illegal_op,
-/*  0x65 */ x86emuOp2_illegal_op,
-/*  0x66 */ x86emuOp2_illegal_op,
-/*  0x67 */ x86emuOp2_illegal_op,
-/*  0x68 */ x86emuOp2_illegal_op,
-/*  0x69 */ x86emuOp2_illegal_op,
-/*  0x6a */ x86emuOp2_illegal_op,
-/*  0x6b */ x86emuOp2_illegal_op,
-/*  0x6c */ x86emuOp2_illegal_op,
-/*  0x6d */ x86emuOp2_illegal_op,
-/*  0x6e */ x86emuOp2_illegal_op,
-/*  0x6f */ x86emuOp2_illegal_op,
-
-/*  0x70 */ x86emuOp2_illegal_op,
-/*  0x71 */ x86emuOp2_illegal_op,
-/*  0x72 */ x86emuOp2_illegal_op,
-/*  0x73 */ x86emuOp2_illegal_op,
-/*  0x74 */ x86emuOp2_illegal_op,
-/*  0x75 */ x86emuOp2_illegal_op,
-/*  0x76 */ x86emuOp2_illegal_op,
-/*  0x77 */ x86emuOp2_illegal_op,
-/*  0x78 */ x86emuOp2_illegal_op,
-/*  0x79 */ x86emuOp2_illegal_op,
-/*  0x7a */ x86emuOp2_illegal_op,
-/*  0x7b */ x86emuOp2_illegal_op,
-/*  0x7c */ x86emuOp2_illegal_op,
-/*  0x7d */ x86emuOp2_illegal_op,
-/*  0x7e */ x86emuOp2_illegal_op,
-/*  0x7f */ x86emuOp2_illegal_op,
-
-/*  0x80 */ x86emuOp2_long_jump,
-/*  0x81 */ x86emuOp2_long_jump,
-/*  0x82 */ x86emuOp2_long_jump,
-/*  0x83 */ x86emuOp2_long_jump,
-/*  0x84 */ x86emuOp2_long_jump,
-/*  0x85 */ x86emuOp2_long_jump,
-/*  0x86 */ x86emuOp2_long_jump,
-/*  0x87 */ x86emuOp2_long_jump,
-/*  0x88 */ x86emuOp2_long_jump,
-/*  0x89 */ x86emuOp2_long_jump,
-/*  0x8a */ x86emuOp2_long_jump,
-/*  0x8b */ x86emuOp2_long_jump,
-/*  0x8c */ x86emuOp2_long_jump,
-/*  0x8d */ x86emuOp2_long_jump,
-/*  0x8e */ x86emuOp2_long_jump,
-/*  0x8f */ x86emuOp2_long_jump,
-
-/*  0x90 */ x86emuOp2_set_byte,
-/*  0x91 */ x86emuOp2_set_byte,
-/*  0x92 */ x86emuOp2_set_byte,
-/*  0x93 */ x86emuOp2_set_byte,
-/*  0x94 */ x86emuOp2_set_byte,
-/*  0x95 */ x86emuOp2_set_byte,
-/*  0x96 */ x86emuOp2_set_byte,
-/*  0x97 */ x86emuOp2_set_byte,
-/*  0x98 */ x86emuOp2_set_byte,
-/*  0x99 */ x86emuOp2_set_byte,
-/*  0x9a */ x86emuOp2_set_byte,
-/*  0x9b */ x86emuOp2_set_byte,
-/*  0x9c */ x86emuOp2_set_byte,
-/*  0x9d */ x86emuOp2_set_byte,
-/*  0x9e */ x86emuOp2_set_byte,
-/*  0x9f */ x86emuOp2_set_byte,
-
-/*  0xa0 */ x86emuOp2_push_FS,
-/*  0xa1 */ x86emuOp2_pop_FS,
-/*  0xa2 */ x86emuOp2_illegal_op,
-/*  0xa3 */ x86emuOp2_bt_R,
-/*  0xa4 */ x86emuOp2_shld_IMM,
-/*  0xa5 */ x86emuOp2_shld_CL,
-/*  0xa6 */ x86emuOp2_illegal_op,
-/*  0xa7 */ x86emuOp2_illegal_op,
-/*  0xa8 */ x86emuOp2_push_GS,
-/*  0xa9 */ x86emuOp2_pop_GS,
-/*  0xaa */ x86emuOp2_illegal_op,
-/*  0xab */ x86emuOp2_bt_R,
-/*  0xac */ x86emuOp2_shrd_IMM,
-/*  0xad */ x86emuOp2_shrd_CL,
-/*  0xae */ x86emuOp2_illegal_op,
-/*  0xaf */ x86emuOp2_imul_R_RM,
-
-/*  0xb0 */ x86emuOp2_illegal_op,  /* TODO: cmpxchg */
-/*  0xb1 */ x86emuOp2_illegal_op,  /* TODO: cmpxchg */
-/*  0xb2 */ x86emuOp2_lss_R_IMM,
-/*  0xb3 */ x86emuOp2_btr_R,
-/*  0xb4 */ x86emuOp2_lfs_R_IMM,
-/*  0xb5 */ x86emuOp2_lgs_R_IMM,
-/*  0xb6 */ x86emuOp2_movzx_byte_R_RM,
-/*  0xb7 */ x86emuOp2_movzx_word_R_RM,
-/*  0xb8 */ x86emuOp2_illegal_op,
-/*  0xb9 */ x86emuOp2_illegal_op,
-/*  0xba */ x86emuOp2_btX_I,
-/*  0xbb */ x86emuOp2_btc_R,
-/*  0xbc */ x86emuOp2_bsf,
-/*  0xbd */ x86emuOp2_bsr,
-/*  0xbe */ x86emuOp2_movsx_byte_R_RM,
-/*  0xbf */ x86emuOp2_movsx_word_R_RM,
-
-/*  0xc0 */ x86emuOp2_illegal_op,  /* TODO: xadd */
-/*  0xc1 */ x86emuOp2_illegal_op,  /* TODO: xadd */
-/*  0xc2 */ x86emuOp2_illegal_op,
-/*  0xc3 */ x86emuOp2_illegal_op,
-/*  0xc4 */ x86emuOp2_illegal_op,
-/*  0xc5 */ x86emuOp2_illegal_op,
-/*  0xc6 */ x86emuOp2_illegal_op,
-/*  0xc7 */ x86emuOp2_illegal_op,
-/*  0xc8 */ x86emuOp2_illegal_op,  /* TODO: bswap */
-/*  0xc9 */ x86emuOp2_illegal_op,  /* TODO: bswap */
-/*  0xca */ x86emuOp2_illegal_op,  /* TODO: bswap */
-/*  0xcb */ x86emuOp2_illegal_op,  /* TODO: bswap */
-/*  0xcc */ x86emuOp2_illegal_op,  /* TODO: bswap */
-/*  0xcd */ x86emuOp2_illegal_op,  /* TODO: bswap */
-/*  0xce */ x86emuOp2_illegal_op,  /* TODO: bswap */
-/*  0xcf */ x86emuOp2_illegal_op,  /* TODO: bswap */
-
-/*  0xd0 */ x86emuOp2_illegal_op,
-/*  0xd1 */ x86emuOp2_illegal_op,
-/*  0xd2 */ x86emuOp2_illegal_op,
-/*  0xd3 */ x86emuOp2_illegal_op,
-/*  0xd4 */ x86emuOp2_illegal_op,
-/*  0xd5 */ x86emuOp2_illegal_op,
-/*  0xd6 */ x86emuOp2_illegal_op,
-/*  0xd7 */ x86emuOp2_illegal_op,
-/*  0xd8 */ x86emuOp2_illegal_op,
-/*  0xd9 */ x86emuOp2_illegal_op,
-/*  0xda */ x86emuOp2_illegal_op,
-/*  0xdb */ x86emuOp2_illegal_op,
-/*  0xdc */ x86emuOp2_illegal_op,
-/*  0xdd */ x86emuOp2_illegal_op,
-/*  0xde */ x86emuOp2_illegal_op,
-/*  0xdf */ x86emuOp2_illegal_op,
-
-/*  0xe0 */ x86emuOp2_illegal_op,
-/*  0xe1 */ x86emuOp2_illegal_op,
-/*  0xe2 */ x86emuOp2_illegal_op,
-/*  0xe3 */ x86emuOp2_illegal_op,
-/*  0xe4 */ x86emuOp2_illegal_op,
-/*  0xe5 */ x86emuOp2_illegal_op,
-/*  0xe6 */ x86emuOp2_illegal_op,
-/*  0xe7 */ x86emuOp2_illegal_op,
-/*  0xe8 */ x86emuOp2_illegal_op,
-/*  0xe9 */ x86emuOp2_illegal_op,
-/*  0xea */ x86emuOp2_illegal_op,
-/*  0xeb */ x86emuOp2_illegal_op,
-/*  0xec */ x86emuOp2_illegal_op,
-/*  0xed */ x86emuOp2_illegal_op,
-/*  0xee */ x86emuOp2_illegal_op,
-/*  0xef */ x86emuOp2_illegal_op,
-
-/*  0xf0 */ x86emuOp2_illegal_op,
-/*  0xf1 */ x86emuOp2_illegal_op,
-/*  0xf2 */ x86emuOp2_illegal_op,
-/*  0xf3 */ x86emuOp2_illegal_op,
-/*  0xf4 */ x86emuOp2_illegal_op,
-/*  0xf5 */ x86emuOp2_illegal_op,
-/*  0xf6 */ x86emuOp2_illegal_op,
-/*  0xf7 */ x86emuOp2_illegal_op,
-/*  0xf8 */ x86emuOp2_illegal_op,
-/*  0xf9 */ x86emuOp2_illegal_op,
-/*  0xfa */ x86emuOp2_illegal_op,
-/*  0xfb */ x86emuOp2_illegal_op,
-/*  0xfc */ x86emuOp2_illegal_op,
-/*  0xfd */ x86emuOp2_illegal_op,
-/*  0xfe */ x86emuOp2_illegal_op,
-/*  0xff */ x86emuOp2_illegal_op,
-};
diff --git a/src/hwinfo/src/x86emu/prim_ops.c b/src/hwinfo/src/x86emu/prim_ops.c
deleted file mode 100644 (file)
index 56ab8cc..0000000
+++ /dev/null
@@ -1,2654 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  This file contains the code to implement the primitive
-*                              machine operations used by the emulation code in ops.c
-*
-* Carry Chain Calculation
-*
-* This represents a somewhat expensive calculation which is
-* apparently required to emulate the setting of the OF and AF flag.
-* The latter is not so important, but the former is.  The overflow
-* flag is the XOR of the top two bits of the carry chain for an
-* addition (similar for subtraction).  Since we do not want to
-* simulate the addition in a bitwise manner, we try to calculate the
-* carry chain given the two operands and the result.
-*
-* So, given the following table, which represents the addition of two
-* bits, we can derive a formula for the carry chain.
-*
-* a   b   cin   r     cout
-* 0   0   0     0     0
-* 0   0   1     1     0
-* 0   1   0     1     0
-* 0   1   1     0     1
-* 1   0   0     1     0
-* 1   0   1     0     1
-* 1   1   0     0     1
-* 1   1   1     1     1
-*
-* Construction of table for cout:
-*
-* ab
-* r  \  00   01   11  10
-* |------------------
-* 0  |   0    1    1   1
-* 1  |   0    0    1   0
-*
-* By inspection, one gets:  cc = ab +  r'(a + b)
-*
-* That represents alot of operations, but NO CHOICE....
-*
-* Borrow Chain Calculation.
-*
-* The following table represents the subtraction of two bits, from
-* which we can derive a formula for the borrow chain.
-*
-* a   b   bin   r     bout
-* 0   0   0     0     0
-* 0   0   1     1     1
-* 0   1   0     1     1
-* 0   1   1     0     1
-* 1   0   0     1     0
-* 1   0   1     0     0
-* 1   1   0     0     0
-* 1   1   1     1     1
-*
-* Construction of table for cout:
-*
-* ab
-* r  \  00   01   11  10
-* |------------------
-* 0  |   0    1    0   0
-* 1  |   1    1    1   0
-*
-* By inspection, one gets:  bc = a'b +  r(a' + b)
-*
-****************************************************************************/
-
-#define        PRIM_OPS_NO_REDEFINE_ASM
-#include "x86emu/x86emui.h"
-
-/*------------------------- Global Variables ------------------------------*/
-
-static u32 x86emu_parity_tab[8] =
-{
-       0x96696996,
-       0x69969669,
-       0x69969669,
-       0x96696996,
-       0x69969669,
-       0x96696996,
-       0x96696996,
-       0x69969669,
-};
-
-#define PARITY(x)   (((x86emu_parity_tab[(x) / 32] >> ((x) % 32)) & 1) == 0)
-#define XOR2(x)        (((x) ^ ((x)>>1)) & 0x1)
-
-/*----------------------------- Implementation ----------------------------*/
-
-/****************************************************************************
-REMARKS:
-Implements the AAA instruction and side effects.
-****************************************************************************/
-u16 aaa_word(u16 d)
-{
-       u16     res;
-       if ((d & 0xf) > 0x9 || ACCESS_FLAG(F_AF)) {
-               d += 0x6;
-               d += 0x100;
-               SET_FLAG(F_AF);
-               SET_FLAG(F_CF);
-       } else {
-               CLEAR_FLAG(F_CF);
-               CLEAR_FLAG(F_AF);
-       }
-       res = (u16)(d & 0xFF0F);
-       CLEAR_FLAG(F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the AAA instruction and side effects.
-****************************************************************************/
-u16 aas_word(u16 d)
-{
-       u16     res;
-       if ((d & 0xf) > 0x9 || ACCESS_FLAG(F_AF)) {
-               d -= 0x6;
-               d -= 0x100;
-               SET_FLAG(F_AF);
-               SET_FLAG(F_CF);
-       } else {
-               CLEAR_FLAG(F_CF);
-               CLEAR_FLAG(F_AF);
-       }
-       res = (u16)(d & 0xFF0F);
-       CLEAR_FLAG(F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the AAD instruction and side effects.
-****************************************************************************/
-u16 aad_word(u16 d)
-{
-       u16 l;
-       u8 hb, lb;
-
-       hb = (u8)((d >> 8) & 0xff);
-       lb = (u8)((d & 0xff));
-       l = (u16)((lb + 10 * hb) & 0xFF);
-
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_AF);
-       CLEAR_FLAG(F_OF);
-       CONDITIONAL_SET_FLAG(l & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG(l == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(l & 0xff), F_PF);
-       return l;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the AAM instruction and side effects.
-****************************************************************************/
-u16 aam_word(u8 d)
-{
-    u16 h, l;
-
-       h = (u16)(d / 10);
-       l = (u16)(d % 10);
-       l |= (u16)(h << 8);
-
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_AF);
-       CLEAR_FLAG(F_OF);
-       CONDITIONAL_SET_FLAG(l & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG(l == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(l & 0xff), F_PF);
-    return l;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the ADC instruction and side effects.
-****************************************************************************/
-u8 adc_byte(u8 d, u8 s)
-{
-       register u32 res;   /* all operands in native machine order */
-       register u32 cc;
-
-       if (ACCESS_FLAG(F_CF))
-               res = 1 + d + s;
-       else
-               res = d + s;
-
-       CONDITIONAL_SET_FLAG(res & 0x100, F_CF);
-       CONDITIONAL_SET_FLAG((res & 0xff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the carry chain  SEE NOTE AT TOP. */
-       cc = (s & d) | ((~res) & (s | d));
-       CONDITIONAL_SET_FLAG(XOR2(cc >> 6), F_OF);
-       CONDITIONAL_SET_FLAG(cc & 0x8, F_AF);
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the ADC instruction and side effects.
-****************************************************************************/
-u16 adc_word(u16 d, u16 s)
-{
-       register u32 res;   /* all operands in native machine order */
-       register u32 cc;
-
-       if (ACCESS_FLAG(F_CF))
-               res = 1 + d + s;
-       else
-               res = d + s;
-
-       CONDITIONAL_SET_FLAG(res & 0x10000, F_CF);
-       CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the carry chain  SEE NOTE AT TOP. */
-       cc = (s & d) | ((~res) & (s | d));
-       CONDITIONAL_SET_FLAG(XOR2(cc >> 14), F_OF);
-       CONDITIONAL_SET_FLAG(cc & 0x8, F_AF);
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the ADC instruction and side effects.
-****************************************************************************/
-u32 adc_long(u32 d, u32 s)
-{
-       register u32 lo;        /* all operands in native machine order */
-       register u32 hi;
-       register u32 res;
-       register u32 cc;
-
-       if (ACCESS_FLAG(F_CF)) {
-               lo = 1 + (d & 0xFFFF) + (s & 0xFFFF);
-               res = 1 + d + s;
-               }
-       else {
-               lo = (d & 0xFFFF) + (s & 0xFFFF);
-               res = d + s;
-               }
-       hi = (lo >> 16) + (d >> 16) + (s >> 16);
-
-       CONDITIONAL_SET_FLAG(hi & 0x10000, F_CF);
-       CONDITIONAL_SET_FLAG((res & 0xffffffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the carry chain  SEE NOTE AT TOP. */
-       cc = (s & d) | ((~res) & (s | d));
-       CONDITIONAL_SET_FLAG(XOR2(cc >> 30), F_OF);
-       CONDITIONAL_SET_FLAG(cc & 0x8, F_AF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the ADD instruction and side effects.
-****************************************************************************/
-u8 add_byte(u8 d, u8 s)
-{
-       register u32 res;   /* all operands in native machine order */
-       register u32 cc;
-
-       res = d + s;
-       CONDITIONAL_SET_FLAG(res & 0x100, F_CF);
-       CONDITIONAL_SET_FLAG((res & 0xff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the carry chain  SEE NOTE AT TOP. */
-       cc = (s & d) | ((~res) & (s | d));
-       CONDITIONAL_SET_FLAG(XOR2(cc >> 6), F_OF);
-       CONDITIONAL_SET_FLAG(cc & 0x8, F_AF);
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the ADD instruction and side effects.
-****************************************************************************/
-u16 add_word(u16 d, u16 s)
-{
-       register u32 res;   /* all operands in native machine order */
-       register u32 cc;
-
-       res = d + s;
-       CONDITIONAL_SET_FLAG(res & 0x10000, F_CF);
-       CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the carry chain  SEE NOTE AT TOP. */
-       cc = (s & d) | ((~res) & (s | d));
-       CONDITIONAL_SET_FLAG(XOR2(cc >> 14), F_OF);
-       CONDITIONAL_SET_FLAG(cc & 0x8, F_AF);
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the ADD instruction and side effects.
-****************************************************************************/
-u32 add_long(u32 d, u32 s)
-{
-       register u32 lo;        /* all operands in native machine order */
-       register u32 hi;
-       register u32 res;
-       register u32 cc;
-
-       lo = (d & 0xFFFF) + (s & 0xFFFF);
-       res = d + s;
-       hi = (lo >> 16) + (d >> 16) + (s >> 16);
-
-       CONDITIONAL_SET_FLAG(hi & 0x10000, F_CF);
-       CONDITIONAL_SET_FLAG((res & 0xffffffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-    /* calculate the carry chain  SEE NOTE AT TOP. */
-    cc = (s & d) | ((~res) & (s | d));
-       CONDITIONAL_SET_FLAG(XOR2(cc >> 30), F_OF);
-       CONDITIONAL_SET_FLAG(cc & 0x8, F_AF);
-
-    return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the AND instruction and side effects.
-****************************************************************************/
-u8 and_byte(u8 d, u8 s)
-{
-       register u8 res;    /* all operands in native machine order */
-
-       res = d & s;
-
-       /* set the flags  */
-       CLEAR_FLAG(F_OF);
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_AF);
-       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res), F_PF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the AND instruction and side effects.
-****************************************************************************/
-u16 and_word(u16 d, u16 s)
-{
-    register u16 res;   /* all operands in native machine order */
-
-    res = d & s;
-
-    /* set the flags  */
-       CLEAR_FLAG(F_OF);
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_AF);
-       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-    return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the AND instruction and side effects.
-****************************************************************************/
-u32 and_long(u32 d, u32 s)
-{
-       register u32 res;   /* all operands in native machine order */
-
-       res = d & s;
-
-       /* set the flags  */
-       CLEAR_FLAG(F_OF);
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_AF);
-       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the CMP instruction and side effects.
-****************************************************************************/
-u8 cmp_byte(u8 d, u8 s)
-{
-       register u32 res;   /* all operands in native machine order */
-       register u32 bc;
-
-       res = d - s;
-       CLEAR_FLAG(F_CF);
-       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG((res & 0xff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the borrow chain.  See note at top */
-       bc = (res & (~d | s)) | (~d & s);
-       CONDITIONAL_SET_FLAG(bc & 0x80, F_CF);
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 6), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return d;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the CMP instruction and side effects.
-****************************************************************************/
-u16 cmp_word(u16 d, u16 s)
-{
-       register u32 res;   /* all operands in native machine order */
-       register u32 bc;
-
-       res = d - s;
-       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-       CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the borrow chain.  See note at top */
-    bc = (res & (~d | s)) | (~d & s);
-       CONDITIONAL_SET_FLAG(bc & 0x8000, F_CF);
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 14), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return d;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the CMP instruction and side effects.
-****************************************************************************/
-u32 cmp_long(u32 d, u32 s)
-{
-       register u32 res;   /* all operands in native machine order */
-       register u32 bc;
-
-       res = d - s;
-       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-       CONDITIONAL_SET_FLAG((res & 0xffffffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the borrow chain.  See note at top */
-       bc = (res & (~d | s)) | (~d & s);
-       CONDITIONAL_SET_FLAG(bc & 0x80000000, F_CF);
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 30), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return d;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the DAA instruction and side effects.
-****************************************************************************/
-u8 daa_byte(u8 d)
-{
-       u32 res = d;
-       if ((d & 0xf) > 9 || ACCESS_FLAG(F_AF)) {
-               res += 6;
-               SET_FLAG(F_AF);
-       }
-       if (res > 0x9F || ACCESS_FLAG(F_CF)) {
-               res += 0x60;
-               SET_FLAG(F_CF);
-       }
-       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG((res & 0xFF) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the DAS instruction and side effects.
-****************************************************************************/
-u8 das_byte(u8 d)
-{
-       if ((d & 0xf) > 9 || ACCESS_FLAG(F_AF)) {
-               d -= 6;
-               SET_FLAG(F_AF);
-       }
-       if (d > 0x9F || ACCESS_FLAG(F_CF)) {
-               d -= 0x60;
-               SET_FLAG(F_CF);
-       }
-       CONDITIONAL_SET_FLAG(d & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG(d == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(d & 0xff), F_PF);
-       return d;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the DEC instruction and side effects.
-****************************************************************************/
-u8 dec_byte(u8 d)
-{
-    register u32 res;   /* all operands in native machine order */
-    register u32 bc;
-
-    res = d - 1;
-       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG((res & 0xff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the borrow chain.  See note at top */
-       /* based on sub_byte, uses s==1.  */
-       bc = (res & (~d | 1)) | (~d & 1);
-       /* carry flag unchanged */
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 6), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the DEC instruction and side effects.
-****************************************************************************/
-u16 dec_word(u16 d)
-{
-    register u32 res;   /* all operands in native machine order */
-    register u32 bc;
-
-    res = d - 1;
-       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-       CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-    /* calculate the borrow chain.  See note at top */
-    /* based on the sub_byte routine, with s==1 */
-    bc = (res & (~d | 1)) | (~d & 1);
-    /* carry flag unchanged */
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 14), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the DEC instruction and side effects.
-****************************************************************************/
-u32 dec_long(u32 d)
-{
-    register u32 res;   /* all operands in native machine order */
-    register u32 bc;
-
-    res = d - 1;
-
-       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-       CONDITIONAL_SET_FLAG((res & 0xffffffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-    /* calculate the borrow chain.  See note at top */
-       bc = (res & (~d | 1)) | (~d & 1);
-       /* carry flag unchanged */
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 30), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the INC instruction and side effects.
-****************************************************************************/
-u8 inc_byte(u8 d)
-{
-       register u32 res;   /* all operands in native machine order */
-       register u32 cc;
-
-       res = d + 1;
-       CONDITIONAL_SET_FLAG((res & 0xff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the carry chain  SEE NOTE AT TOP. */
-       cc = ((1 & d) | (~res)) & (1 | d);
-       CONDITIONAL_SET_FLAG(XOR2(cc >> 6), F_OF);
-       CONDITIONAL_SET_FLAG(cc & 0x8, F_AF);
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the INC instruction and side effects.
-****************************************************************************/
-u16 inc_word(u16 d)
-{
-       register u32 res;   /* all operands in native machine order */
-       register u32 cc;
-
-       res = d + 1;
-       CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the carry chain  SEE NOTE AT TOP. */
-       cc = (1 & d) | ((~res) & (1 | d));
-       CONDITIONAL_SET_FLAG(XOR2(cc >> 14), F_OF);
-       CONDITIONAL_SET_FLAG(cc & 0x8, F_AF);
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the INC instruction and side effects.
-****************************************************************************/
-u32 inc_long(u32 d)
-{
-       register u32 res;   /* all operands in native machine order */
-       register u32 cc;
-
-       res = d + 1;
-       CONDITIONAL_SET_FLAG((res & 0xffffffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the carry chain  SEE NOTE AT TOP. */
-       cc = (1 & d) | ((~res) & (1 | d));
-       CONDITIONAL_SET_FLAG(XOR2(cc >> 30), F_OF);
-       CONDITIONAL_SET_FLAG(cc & 0x8, F_AF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the OR instruction and side effects.
-****************************************************************************/
-u8 or_byte(u8 d, u8 s)
-{
-       register u8 res;    /* all operands in native machine order */
-
-       res = d | s;
-       CLEAR_FLAG(F_OF);
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_AF);
-       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res), F_PF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the OR instruction and side effects.
-****************************************************************************/
-u16 or_word(u16 d, u16 s)
-{
-       register u16 res;   /* all operands in native machine order */
-
-       res = d | s;
-       /* set the carry flag to be bit 8 */
-       CLEAR_FLAG(F_OF);
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_AF);
-       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the OR instruction and side effects.
-****************************************************************************/
-u32 or_long(u32 d, u32 s)
-{
-       register u32 res;   /* all operands in native machine order */
-
-       res = d | s;
-
-       /* set the carry flag to be bit 8 */
-       CLEAR_FLAG(F_OF);
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_AF);
-       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the OR instruction and side effects.
-****************************************************************************/
-u8 neg_byte(u8 s)
-{
-    register u8 res;
-    register u8 bc;
-
-       CONDITIONAL_SET_FLAG(s != 0, F_CF);
-       res = (u8)-s;
-       CONDITIONAL_SET_FLAG((res & 0xff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG(PARITY(res), F_PF);
-       /* calculate the borrow chain --- modified such that d=0.
-          substitutiing d=0 into     bc= res&(~d|s)|(~d&s);
-          (the one used for sub) and simplifying, since ~d=0xff...,
-          ~d|s == 0xffff..., and res&0xfff... == res.  Similarly
-          ~d&s == s.  So the simplified result is: */
-       bc = res | s;
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 6), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the OR instruction and side effects.
-****************************************************************************/
-u16 neg_word(u16 s)
-{
-       register u16 res;
-       register u16 bc;
-
-       CONDITIONAL_SET_FLAG(s != 0, F_CF);
-       res = (u16)-s;
-       CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the borrow chain --- modified such that d=0.
-          substitutiing d=0 into     bc= res&(~d|s)|(~d&s);
-          (the one used for sub) and simplifying, since ~d=0xff...,
-          ~d|s == 0xffff..., and res&0xfff... == res.  Similarly
-          ~d&s == s.  So the simplified result is: */
-       bc = res | s;
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 14), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the OR instruction and side effects.
-****************************************************************************/
-u32 neg_long(u32 s)
-{
-       register u32 res;
-       register u32 bc;
-
-       CONDITIONAL_SET_FLAG(s != 0, F_CF);
-       res = (u32)-s;
-       CONDITIONAL_SET_FLAG((res & 0xffffffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the borrow chain --- modified such that d=0.
-          substitutiing d=0 into     bc= res&(~d|s)|(~d&s);
-          (the one used for sub) and simplifying, since ~d=0xff...,
-          ~d|s == 0xffff..., and res&0xfff... == res.  Similarly
-          ~d&s == s.  So the simplified result is: */
-       bc = res | s;
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 30), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the NOT instruction and side effects.
-****************************************************************************/
-u8 not_byte(u8 s)
-{
-       return ~s;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the NOT instruction and side effects.
-****************************************************************************/
-u16 not_word(u16 s)
-{
-       return ~s;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the NOT instruction and side effects.
-****************************************************************************/
-u32 not_long(u32 s)
-{
-       return ~s;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the RCL instruction and side effects.
-****************************************************************************/
-u8 rcl_byte(u8 d, u8 s)
-{
-    register unsigned int res, cnt, mask, cf;
-
-    /* s is the rotate distance.  It varies from 0 - 8. */
-       /* have
-
-       CF  B_7 B_6 B_5 B_4 B_3 B_2 B_1 B_0 
-
-       want to rotate through the carry by "s" bits.  We could 
-       loop, but that's inefficient.  So the width is 9,
-       and we split into three parts:
-
-       The new carry flag   (was B_n)
-       the stuff in B_n-1 .. B_0
-       the stuff in B_7 .. B_n+1
-
-       The new rotate is done mod 9, and given this,
-       for a rotation of n bits (mod 9) the new carry flag is
-       then located n bits from the MSB.  The low part is 
-       then shifted up cnt bits, and the high part is or'd
-       in.  Using CAPS for new values, and lowercase for the 
-       original values, this can be expressed as:
-
-       IF n > 0 
-       1) CF <-  b_(8-n)
-       2) B_(7) .. B_(n)  <-  b_(8-(n+1)) .. b_0
-       3) B_(n-1) <- cf
-       4) B_(n-2) .. B_0 <-  b_7 .. b_(8-(n-1))
-        */
-       res = d;
-       if ((cnt = s % 9) != 0) {
-        /* extract the new CARRY FLAG. */
-        /* CF <-  b_(8-n)             */
-        cf = (d >> (8 - cnt)) & 0x1;
-
-        /* get the low stuff which rotated 
-           into the range B_7 .. B_cnt */
-        /* B_(7) .. B_(n)  <-  b_(8-(n+1)) .. b_0  */
-        /* note that the right hand side done by the mask */
-               res = (d << cnt) & 0xff;
-
-        /* now the high stuff which rotated around 
-           into the positions B_cnt-2 .. B_0 */
-        /* B_(n-2) .. B_0 <-  b_7 .. b_(8-(n-1)) */
-        /* shift it downward, 7-(n-2) = 9-n positions. 
-           and mask off the result before or'ing in. 
-         */
-        mask = (1 << (cnt - 1)) - 1;
-        res |= (d >> (9 - cnt)) & mask;
-
-        /* if the carry flag was set, or it in.  */
-               if (ACCESS_FLAG(F_CF)) {     /* carry flag is set */
-            /*  B_(n-1) <- cf */
-            res |= 1 << (cnt - 1);
-        }
-        /* set the new carry flag, based on the variable "cf" */
-               CONDITIONAL_SET_FLAG(cf, F_CF);
-        /* OVERFLOW is set *IFF* cnt==1, then it is the 
-           xor of CF and the most significant bit.  Blecck. */
-        /* parenthesized this expression since it appears to
-           be causing OF to be misset */
-        CONDITIONAL_SET_FLAG(cnt == 1 && XOR2(cf + ((res >> 6) & 0x2)),
-                                                        F_OF);
-
-    }
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the RCL instruction and side effects.
-****************************************************************************/
-u16 rcl_word(u16 d, u8 s)
-{
-       register unsigned int res, cnt, mask, cf;
-
-       res = d;
-       if ((cnt = s % 17) != 0) {
-               cf = (d >> (16 - cnt)) & 0x1;
-               res = (d << cnt) & 0xffff;
-               mask = (1 << (cnt - 1)) - 1;
-               res |= (d >> (17 - cnt)) & mask;
-               if (ACCESS_FLAG(F_CF)) {
-                       res |= 1 << (cnt - 1);
-               }
-               CONDITIONAL_SET_FLAG(cf, F_CF);
-               CONDITIONAL_SET_FLAG(cnt == 1 && XOR2(cf + ((res >> 14) & 0x2)),
-                                                        F_OF);
-       }
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the RCL instruction and side effects.
-****************************************************************************/
-u32 rcl_long(u32 d, u8 s)
-{
-       register u32 res, cnt, mask, cf;
-
-       res = d;
-       if ((cnt = s % 33) != 0) {
-               cf = (d >> (32 - cnt)) & 0x1;
-               res = (d << cnt) & 0xffffffff;
-               mask = (1 << (cnt - 1)) - 1;
-               res |= (d >> (33 - cnt)) & mask;
-               if (ACCESS_FLAG(F_CF)) {     /* carry flag is set */
-                       res |= 1 << (cnt - 1);
-               }
-               CONDITIONAL_SET_FLAG(cf, F_CF);
-               CONDITIONAL_SET_FLAG(cnt == 1 && XOR2(cf + ((res >> 30) & 0x2)),
-                                                        F_OF);
-       }
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the RCR instruction and side effects.
-****************************************************************************/
-u8 rcr_byte(u8 d, u8 s)
-{
-       u32     res, cnt;
-       u32     mask, cf, ocf = 0;
-
-       /* rotate right through carry */
-    /* 
-       s is the rotate distance.  It varies from 0 - 8.
-       d is the byte object rotated.  
-
-       have 
-
-       CF  B_7 B_6 B_5 B_4 B_3 B_2 B_1 B_0 
-
-       The new rotate is done mod 9, and given this,
-       for a rotation of n bits (mod 9) the new carry flag is
-       then located n bits from the LSB.  The low part is 
-       then shifted up cnt bits, and the high part is or'd
-       in.  Using CAPS for new values, and lowercase for the 
-       original values, this can be expressed as:
-
-       IF n > 0 
-       1) CF <-  b_(n-1)
-       2) B_(8-(n+1)) .. B_(0)  <-  b_(7) .. b_(n)
-       3) B_(8-n) <- cf
-       4) B_(7) .. B_(8-(n-1)) <-  b_(n-2) .. b_(0)
-        */
-       res = d;
-       if ((cnt = s % 9) != 0) {
-        /* extract the new CARRY FLAG. */
-        /* CF <-  b_(n-1)              */
-        if (cnt == 1) {
-            cf = d & 0x1;
-            /* note hackery here.  Access_flag(..) evaluates to either
-               0 if flag not set
-               non-zero if flag is set.
-               doing access_flag(..) != 0 casts that into either 
-                          0..1 in any representation of the flags register
-               (i.e. packed bit array or unpacked.)
-             */
-                       ocf = ACCESS_FLAG(F_CF) != 0;
-        } else
-            cf = (d >> (cnt - 1)) & 0x1;
-
-        /* B_(8-(n+1)) .. B_(0)  <-  b_(7) .. b_n  */
-        /* note that the right hand side done by the mask
-           This is effectively done by shifting the 
-           object to the right.  The result must be masked,
-           in case the object came in and was treated 
-           as a negative number.  Needed??? */
-
-        mask = (1 << (8 - cnt)) - 1;
-        res = (d >> cnt) & mask;
-
-        /* now the high stuff which rotated around 
-           into the positions B_cnt-2 .. B_0 */
-        /* B_(7) .. B_(8-(n-1)) <-  b_(n-2) .. b_(0) */
-        /* shift it downward, 7-(n-2) = 9-n positions. 
-           and mask off the result before or'ing in. 
-         */
-        res |= (d << (9 - cnt));
-
-        /* if the carry flag was set, or it in.  */
-               if (ACCESS_FLAG(F_CF)) {     /* carry flag is set */
-            /*  B_(8-n) <- cf */
-            res |= 1 << (8 - cnt);
-        }
-        /* set the new carry flag, based on the variable "cf" */
-               CONDITIONAL_SET_FLAG(cf, F_CF);
-        /* OVERFLOW is set *IFF* cnt==1, then it is the 
-           xor of CF and the most significant bit.  Blecck. */
-        /* parenthesized... */
-               if (cnt == 1) {
-                       CONDITIONAL_SET_FLAG(XOR2(ocf + ((d >> 6) & 0x2)),
-                                                                F_OF);
-               }
-       }
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the RCR instruction and side effects.
-****************************************************************************/
-u16 rcr_word(u16 d, u8 s)
-{
-       u32 res, cnt;
-       u32     mask, cf, ocf = 0;
-
-       /* rotate right through carry */
-       res = d;
-       if ((cnt = s % 17) != 0) {
-               if (cnt == 1) {
-                       cf = d & 0x1;
-                       ocf = ACCESS_FLAG(F_CF) != 0;
-               } else
-                       cf = (d >> (cnt - 1)) & 0x1;
-               mask = (1 << (16 - cnt)) - 1;
-               res = (d >> cnt) & mask;
-               res |= (d << (17 - cnt));
-               if (ACCESS_FLAG(F_CF)) {
-                       res |= 1 << (16 - cnt);
-               }
-               CONDITIONAL_SET_FLAG(cf, F_CF);
-               if (cnt == 1) {
-                       CONDITIONAL_SET_FLAG(XOR2(ocf + ((d >> 14) & 0x2)),
-                                                                F_OF);
-               }
-       }
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the RCR instruction and side effects.
-****************************************************************************/
-u32 rcr_long(u32 d, u8 s)
-{
-       u32 res, cnt;
-       u32 mask, cf, ocf = 0;
-
-       /* rotate right through carry */
-       res = d;
-       if ((cnt = s % 33) != 0) {
-               if (cnt == 1) {
-                       cf = d & 0x1;
-                       ocf = ACCESS_FLAG(F_CF) != 0;
-               } else
-                       cf = (d >> (cnt - 1)) & 0x1;
-               mask = (1 << (32 - cnt)) - 1;
-               res = (d >> cnt) & mask;
-               if (cnt != 1)
-                       res |= (d << (33 - cnt));
-               if (ACCESS_FLAG(F_CF)) {     /* carry flag is set */
-                       res |= 1 << (32 - cnt);
-               }
-               CONDITIONAL_SET_FLAG(cf, F_CF);
-               if (cnt == 1) {
-                       CONDITIONAL_SET_FLAG(XOR2(ocf + ((d >> 30) & 0x2)),
-                                                                F_OF);
-               }
-       }
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the ROL instruction and side effects.
-****************************************************************************/
-u8 rol_byte(u8 d, u8 s)
-{
-    register unsigned int res, cnt, mask;
-
-    /* rotate left */
-    /* 
-       s is the rotate distance.  It varies from 0 - 8.
-       d is the byte object rotated.  
-
-       have 
-
-       CF  B_7 ... B_0 
-
-       The new rotate is done mod 8.
-       Much simpler than the "rcl" or "rcr" operations.
-
-       IF n > 0 
-       1) B_(7) .. B_(n)  <-  b_(8-(n+1)) .. b_(0)
-       2) B_(n-1) .. B_(0) <-  b_(7) .. b_(8-n)
-        */
-    res = d;
-       if ((cnt = s % 8) != 0) {
-               /* B_(7) .. B_(n)  <-  b_(8-(n+1)) .. b_(0) */
-               res = (d << cnt);
-
-               /* B_(n-1) .. B_(0) <-  b_(7) .. b_(8-n) */
-               mask = (1 << cnt) - 1;
-               res |= (d >> (8 - cnt)) & mask;
-
-               /* set the new carry flag, Note that it is the low order
-                  bit of the result!!!                               */
-               CONDITIONAL_SET_FLAG(res & 0x1, F_CF);
-               /* OVERFLOW is set *IFF* s==1, then it is the
-                  xor of CF and the most significant bit.  Blecck. */
-               CONDITIONAL_SET_FLAG(s == 1 &&
-                                                        XOR2((res & 0x1) + ((res >> 6) & 0x2)),
-                                                        F_OF);
-       } if (s != 0) {
-               /* set the new carry flag, Note that it is the low order
-                  bit of the result!!!                               */
-               CONDITIONAL_SET_FLAG(res & 0x1, F_CF);
-       }
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the ROL instruction and side effects.
-****************************************************************************/
-u16 rol_word(u16 d, u8 s)
-{
-    register unsigned int res, cnt, mask;
-
-       res = d;
-       if ((cnt = s % 16) != 0) {
-               res = (d << cnt);
-               mask = (1 << cnt) - 1;
-               res |= (d >> (16 - cnt)) & mask;
-               CONDITIONAL_SET_FLAG(res & 0x1, F_CF);
-               CONDITIONAL_SET_FLAG(s == 1 &&
-                                                        XOR2((res & 0x1) + ((res >> 14) & 0x2)),
-                                                        F_OF);
-       } if (s != 0) {
-               /* set the new carry flag, Note that it is the low order
-                  bit of the result!!!                               */
-               CONDITIONAL_SET_FLAG(res & 0x1, F_CF);
-       }
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the ROL instruction and side effects.
-****************************************************************************/
-u32 rol_long(u32 d, u8 s)
-{
-    register u32 res, cnt, mask;
-
-       res = d;
-       if ((cnt = s % 32) != 0) {
-               res = (d << cnt);
-               mask = (1 << cnt) - 1;
-               res |= (d >> (32 - cnt)) & mask;
-               CONDITIONAL_SET_FLAG(res & 0x1, F_CF);
-               CONDITIONAL_SET_FLAG(s == 1 &&
-                                                        XOR2((res & 0x1) + ((res >> 30) & 0x2)),
-                                                        F_OF);
-       } if (s != 0) {
-               /* set the new carry flag, Note that it is the low order
-                  bit of the result!!!                               */
-               CONDITIONAL_SET_FLAG(res & 0x1, F_CF);
-       }
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the ROR instruction and side effects.
-****************************************************************************/
-u8 ror_byte(u8 d, u8 s)
-{
-    register unsigned int res, cnt, mask;
-
-    /* rotate right */
-    /* 
-       s is the rotate distance.  It varies from 0 - 8.
-       d is the byte object rotated.  
-
-       have 
-
-       B_7 ... B_0 
-
-       The rotate is done mod 8.
-
-       IF n > 0 
-       1) B_(8-(n+1)) .. B_(0)  <-  b_(7) .. b_(n)
-       2) B_(7) .. B_(8-n) <-  b_(n-1) .. b_(0)
-        */
-       res = d;
-       if ((cnt = s % 8) != 0) {           /* not a typo, do nada if cnt==0 */
-        /* B_(7) .. B_(8-n) <-  b_(n-1) .. b_(0) */
-        res = (d << (8 - cnt));
-
-        /* B_(8-(n+1)) .. B_(0)  <-  b_(7) .. b_(n) */
-        mask = (1 << (8 - cnt)) - 1;
-        res |= (d >> (cnt)) & mask;
-
-        /* set the new carry flag, Note that it is the low order 
-           bit of the result!!!                               */
-               CONDITIONAL_SET_FLAG(res & 0x80, F_CF);
-               /* OVERFLOW is set *IFF* s==1, then it is the
-           xor of the two most significant bits.  Blecck. */
-               CONDITIONAL_SET_FLAG(s == 1 && XOR2(res >> 6), F_OF);
-       } else if (s != 0) {
-               /* set the new carry flag, Note that it is the low order
-                  bit of the result!!!                               */
-               CONDITIONAL_SET_FLAG(res & 0x80, F_CF);
-       }
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the ROR instruction and side effects.
-****************************************************************************/
-u16 ror_word(u16 d, u8 s)
-{
-    register unsigned int res, cnt, mask;
-
-       res = d;
-       if ((cnt = s % 16) != 0) {
-               res = (d << (16 - cnt));
-               mask = (1 << (16 - cnt)) - 1;
-               res |= (d >> (cnt)) & mask;
-               CONDITIONAL_SET_FLAG(res & 0x8000, F_CF);
-               CONDITIONAL_SET_FLAG(s == 1 && XOR2(res >> 14), F_OF);
-       } else if (s != 0) {
-               /* set the new carry flag, Note that it is the low order
-                  bit of the result!!!                               */
-               CONDITIONAL_SET_FLAG(res & 0x8000, F_CF);
-       }
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the ROR instruction and side effects.
-****************************************************************************/
-u32 ror_long(u32 d, u8 s)
-{
-       register u32 res, cnt, mask;
-
-       res = d;
-       if ((cnt = s % 32) != 0) {
-               res = (d << (32 - cnt));
-               mask = (1 << (32 - cnt)) - 1;
-               res |= (d >> (cnt)) & mask;
-               CONDITIONAL_SET_FLAG(res & 0x80000000, F_CF);
-               CONDITIONAL_SET_FLAG(s == 1 && XOR2(res >> 30), F_OF);
-       } else if (s != 0) {
-               /* set the new carry flag, Note that it is the low order
-                  bit of the result!!!                               */
-               CONDITIONAL_SET_FLAG(res & 0x80000000, F_CF);
-       }
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SHL instruction and side effects.
-****************************************************************************/
-u8 shl_byte(u8 d, u8 s)
-{
-       unsigned int cnt, res, cf;
-
-       if (s < 8) {
-               cnt = s % 8;
-
-               /* last bit shifted out goes into carry flag */
-               if (cnt > 0) {
-                       res = d << cnt;
-                       cf = d & (1 << (8 - cnt));
-                       CONDITIONAL_SET_FLAG(cf, F_CF);
-                       CONDITIONAL_SET_FLAG((res & 0xff) == 0, F_ZF);
-                       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-                       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-               } else {
-                       res = (u8) d;
-               }
-
-               if (cnt == 1) {
-                       /* Needs simplification. */
-                       CONDITIONAL_SET_FLAG(
-                                                                       (((res & 0x80) == 0x80) ^
-                                                                        (ACCESS_FLAG(F_CF) != 0)),
-                       /* was (M.x86.R_FLG&F_CF)==F_CF)), */
-                                                                       F_OF);
-               } else {
-                       CLEAR_FLAG(F_OF);
-               }
-       } else {
-               res = 0;
-               CONDITIONAL_SET_FLAG((d << (s-1)) & 0x80, F_CF);
-               CLEAR_FLAG(F_OF);
-               CLEAR_FLAG(F_SF);
-               SET_FLAG(F_PF);
-               SET_FLAG(F_ZF);
-    }
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SHL instruction and side effects.
-****************************************************************************/
-u16 shl_word(u16 d, u8 s)
-{
-    unsigned int cnt, res, cf;
-
-       if (s < 16) {
-               cnt = s % 16;
-               if (cnt > 0) {
-                       res = d << cnt;
-                       cf = d & (1 << (16 - cnt));
-                       CONDITIONAL_SET_FLAG(cf, F_CF);
-                       CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
-                       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-                       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-               } else {
-                       res = (u16) d;
-               }
-
-               if (cnt == 1) {
-                       CONDITIONAL_SET_FLAG(
-                                                                       (((res & 0x8000) == 0x8000) ^
-                                                                        (ACCESS_FLAG(F_CF) != 0)),
-                                                                       F_OF);
-        } else {
-                       CLEAR_FLAG(F_OF);
-        }
-    } else {
-               res = 0;
-               CONDITIONAL_SET_FLAG((d << (s-1)) & 0x8000, F_CF);
-               CLEAR_FLAG(F_OF);
-               CLEAR_FLAG(F_SF);
-               SET_FLAG(F_PF);
-               SET_FLAG(F_ZF);
-       }
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SHL instruction and side effects.
-****************************************************************************/
-u32 shl_long(u32 d, u8 s)
-{
-       unsigned int cnt, res, cf;
-
-       if (s < 32) {
-               cnt = s % 32;
-               if (cnt > 0) {
-                       res = d << cnt;
-                       cf = d & (1 << (32 - cnt));
-                       CONDITIONAL_SET_FLAG(cf, F_CF);
-                       CONDITIONAL_SET_FLAG((res & 0xffffffff) == 0, F_ZF);
-                       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-                       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-               } else {
-                       res = d;
-               }
-               if (cnt == 1) {
-                       CONDITIONAL_SET_FLAG((((res & 0x80000000) == 0x80000000) ^
-                                                                 (ACCESS_FLAG(F_CF) != 0)), F_OF);
-               } else {
-                       CLEAR_FLAG(F_OF);
-               }
-       } else {
-               res = 0;
-               CONDITIONAL_SET_FLAG((d << (s-1)) & 0x80000000, F_CF);
-               CLEAR_FLAG(F_OF);
-               CLEAR_FLAG(F_SF);
-               SET_FLAG(F_PF);
-               SET_FLAG(F_ZF);
-       }
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SHR instruction and side effects.
-****************************************************************************/
-u8 shr_byte(u8 d, u8 s)
-{
-       unsigned int cnt, res, cf;
-
-       if (s < 8) {
-               cnt = s % 8;
-               if (cnt > 0) {
-                       cf = d & (1 << (cnt - 1));
-                       res = d >> cnt;
-                       CONDITIONAL_SET_FLAG(cf, F_CF);
-                       CONDITIONAL_SET_FLAG((res & 0xff) == 0, F_ZF);
-                       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-                       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-               } else {
-                       res = (u8) d;
-               }
-
-               if (cnt == 1) {
-                       CONDITIONAL_SET_FLAG(XOR2(res >> 6), F_OF);
-               } else {
-                       CLEAR_FLAG(F_OF);
-               }
-       } else {
-               res = 0;
-               CONDITIONAL_SET_FLAG((d >> (s-1)) & 0x1, F_CF);
-               CLEAR_FLAG(F_OF);
-               CLEAR_FLAG(F_SF);
-               SET_FLAG(F_PF);
-               SET_FLAG(F_ZF);
-       }
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SHR instruction and side effects.
-****************************************************************************/
-u16 shr_word(u16 d, u8 s)
-{
-       unsigned int cnt, res, cf;
-
-       if (s < 16) {
-               cnt = s % 16;
-               if (cnt > 0) {
-                       cf = d & (1 << (cnt - 1));
-                       res = d >> cnt;
-                       CONDITIONAL_SET_FLAG(cf, F_CF);
-                       CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
-                       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-                       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-               } else {
-                       res = d;
-               }
-
-               if (cnt == 1) {
-                       CONDITIONAL_SET_FLAG(XOR2(res >> 14), F_OF);
-        } else {
-                       CLEAR_FLAG(F_OF);
-        }
-       } else {
-               res = 0;
-               CLEAR_FLAG(F_CF);
-               CLEAR_FLAG(F_OF);
-               SET_FLAG(F_ZF);
-               CLEAR_FLAG(F_SF);
-               CLEAR_FLAG(F_PF);
-    }
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SHR instruction and side effects.
-****************************************************************************/
-u32 shr_long(u32 d, u8 s)
-{
-       unsigned int cnt, res, cf;
-
-       if (s < 32) {
-               cnt = s % 32;
-               if (cnt > 0) {
-                       cf = d & (1 << (cnt - 1));
-                       res = d >> cnt;
-                       CONDITIONAL_SET_FLAG(cf, F_CF);
-                       CONDITIONAL_SET_FLAG((res & 0xffffffff) == 0, F_ZF);
-                       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-                       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-        } else {
-            res = d;
-        }
-        if (cnt == 1) {
-                       CONDITIONAL_SET_FLAG(XOR2(res >> 30), F_OF);
-        } else {
-                       CLEAR_FLAG(F_OF);
-        }
-    } else {
-        res = 0;
-               CLEAR_FLAG(F_CF);
-               CLEAR_FLAG(F_OF);
-               SET_FLAG(F_ZF);
-               CLEAR_FLAG(F_SF);
-               CLEAR_FLAG(F_PF);
-    }
-    return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SAR instruction and side effects.
-****************************************************************************/
-u8 sar_byte(u8 d, u8 s)
-{
-       unsigned int cnt, res, cf, mask, sf;
-
-       res = d;
-       sf = d & 0x80;
-    cnt = s % 8;
-       if (cnt > 0 && cnt < 8) {
-               mask = (1 << (8 - cnt)) - 1;
-               cf = d & (1 << (cnt - 1));
-               res = (d >> cnt) & mask;
-               CONDITIONAL_SET_FLAG(cf, F_CF);
-               if (sf) {
-                       res |= ~mask;
-               }
-               CONDITIONAL_SET_FLAG((res & 0xff) == 0, F_ZF);
-               CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-               CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-    } else if (cnt >= 8) {
-        if (sf) {
-            res = 0xff;
-                       SET_FLAG(F_CF);
-                       CLEAR_FLAG(F_ZF);
-                       SET_FLAG(F_SF);
-                       SET_FLAG(F_PF);
-               } else {
-                       res = 0;
-                       CLEAR_FLAG(F_CF);
-                       SET_FLAG(F_ZF);
-                       CLEAR_FLAG(F_SF);
-                       CLEAR_FLAG(F_PF);
-               }
-       }
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SAR instruction and side effects.
-****************************************************************************/
-u16 sar_word(u16 d, u8 s)
-{
-    unsigned int cnt, res, cf, mask, sf;
-
-    sf = d & 0x8000;
-    cnt = s % 16;
-       res = d;
-       if (cnt > 0 && cnt < 16) {
-        mask = (1 << (16 - cnt)) - 1;
-        cf = d & (1 << (cnt - 1));
-        res = (d >> cnt) & mask;
-               CONDITIONAL_SET_FLAG(cf, F_CF);
-        if (sf) {
-            res |= ~mask;
-        }
-               CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
-               CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-               CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-    } else if (cnt >= 16) {
-        if (sf) {
-            res = 0xffff;
-                       SET_FLAG(F_CF);
-                       CLEAR_FLAG(F_ZF);
-                       SET_FLAG(F_SF);
-                       SET_FLAG(F_PF);
-        } else {
-            res = 0;
-                       CLEAR_FLAG(F_CF);
-                       SET_FLAG(F_ZF);
-                       CLEAR_FLAG(F_SF);
-                       CLEAR_FLAG(F_PF);
-        }
-    }
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SAR instruction and side effects.
-****************************************************************************/
-u32 sar_long(u32 d, u8 s)
-{
-    u32 cnt, res, cf, mask, sf;
-
-    sf = d & 0x80000000;
-    cnt = s % 32;
-       res = d;
-       if (cnt > 0 && cnt < 32) {
-        mask = (1 << (32 - cnt)) - 1;
-               cf = d & (1 << (cnt - 1));
-        res = (d >> cnt) & mask;
-               CONDITIONAL_SET_FLAG(cf, F_CF);
-        if (sf) {
-            res |= ~mask;
-        }
-               CONDITIONAL_SET_FLAG((res & 0xffffffff) == 0, F_ZF);
-               CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-               CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-    } else if (cnt >= 32) {
-        if (sf) {
-            res = 0xffffffff;
-                       SET_FLAG(F_CF);
-                       CLEAR_FLAG(F_ZF);
-                       SET_FLAG(F_SF);
-                       SET_FLAG(F_PF);
-               } else {
-                       res = 0;
-                       CLEAR_FLAG(F_CF);
-                       SET_FLAG(F_ZF);
-                       CLEAR_FLAG(F_SF);
-                       CLEAR_FLAG(F_PF);
-               }
-       }
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SHLD instruction and side effects.
-****************************************************************************/
-u16 shld_word (u16 d, u16 fill, u8 s)
-{
-       unsigned int cnt, res, cf;
-
-       if (s < 16) {
-               cnt = s % 16;
-               if (cnt > 0) {
-                       res = (d << cnt) | (fill >> (16-cnt));
-                       cf = d & (1 << (16 - cnt));
-                       CONDITIONAL_SET_FLAG(cf, F_CF);
-                       CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
-                       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-                       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-               } else {
-                       res = d;
-               }
-               if (cnt == 1) {
-                       CONDITIONAL_SET_FLAG((((res & 0x8000) == 0x8000) ^
-                                                                 (ACCESS_FLAG(F_CF) != 0)), F_OF);
-               } else {
-                       CLEAR_FLAG(F_OF);
-               }
-       } else {
-               res = 0;
-               CONDITIONAL_SET_FLAG((d << (s-1)) & 0x8000, F_CF);
-               CLEAR_FLAG(F_OF);
-               CLEAR_FLAG(F_SF);
-               SET_FLAG(F_PF);
-               SET_FLAG(F_ZF);
-       }
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SHLD instruction and side effects.
-****************************************************************************/
-u32 shld_long (u32 d, u32 fill, u8 s)
-{
-       unsigned int cnt, res, cf;
-
-       if (s < 32) {
-               cnt = s % 32;
-               if (cnt > 0) {
-                       res = (d << cnt) | (fill >> (32-cnt));
-                       cf = d & (1 << (32 - cnt));
-                       CONDITIONAL_SET_FLAG(cf, F_CF);
-                       CONDITIONAL_SET_FLAG((res & 0xffffffff) == 0, F_ZF);
-                       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-                       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-               } else {
-                       res = d;
-               }
-               if (cnt == 1) {
-                       CONDITIONAL_SET_FLAG((((res & 0x80000000) == 0x80000000) ^
-                                                                 (ACCESS_FLAG(F_CF) != 0)), F_OF);
-               } else {
-                       CLEAR_FLAG(F_OF);
-               }
-       } else {
-               res = 0;
-               CONDITIONAL_SET_FLAG((d << (s-1)) & 0x80000000, F_CF);
-               CLEAR_FLAG(F_OF);
-               CLEAR_FLAG(F_SF);
-               SET_FLAG(F_PF);
-               SET_FLAG(F_ZF);
-       }
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SHRD instruction and side effects.
-****************************************************************************/
-u16 shrd_word (u16 d, u16 fill, u8 s)
-{
-       unsigned int cnt, res, cf;
-
-       if (s < 16) {
-               cnt = s % 16;
-               if (cnt > 0) {
-                       cf = d & (1 << (cnt - 1));
-                       res = (d >> cnt) | (fill << (16 - cnt));
-                       CONDITIONAL_SET_FLAG(cf, F_CF);
-                       CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
-                       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-                       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-               } else {
-                       res = d;
-               }
-
-               if (cnt == 1) {
-                       CONDITIONAL_SET_FLAG(XOR2(res >> 14), F_OF);
-        } else {
-                       CLEAR_FLAG(F_OF);
-        }
-       } else {
-               res = 0;
-               CLEAR_FLAG(F_CF);
-               CLEAR_FLAG(F_OF);
-               SET_FLAG(F_ZF);
-               CLEAR_FLAG(F_SF);
-               CLEAR_FLAG(F_PF);
-    }
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SHRD instruction and side effects.
-****************************************************************************/
-u32 shrd_long (u32 d, u32 fill, u8 s)
-{
-       unsigned int cnt, res, cf;
-
-       if (s < 32) {
-               cnt = s % 32;
-               if (cnt > 0) {
-                       cf = d & (1 << (cnt - 1));
-                       res = (d >> cnt) | (fill << (32 - cnt));
-                       CONDITIONAL_SET_FLAG(cf, F_CF);
-                       CONDITIONAL_SET_FLAG((res & 0xffffffff) == 0, F_ZF);
-                       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-                       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-               } else {
-                       res = d;
-               }
-               if (cnt == 1) {
-                       CONDITIONAL_SET_FLAG(XOR2(res >> 30), F_OF);
-        } else {
-                       CLEAR_FLAG(F_OF);
-        }
-       } else {
-               res = 0;
-               CLEAR_FLAG(F_CF);
-               CLEAR_FLAG(F_OF);
-               SET_FLAG(F_ZF);
-               CLEAR_FLAG(F_SF);
-               CLEAR_FLAG(F_PF);
-    }
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SBB instruction and side effects.
-****************************************************************************/
-u8 sbb_byte(u8 d, u8 s)
-{
-    register u32 res;   /* all operands in native machine order */
-    register u32 bc;
-
-       if (ACCESS_FLAG(F_CF))
-               res = d - s - 1;
-       else
-               res = d - s;
-       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG((res & 0xff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the borrow chain.  See note at top */
-       bc = (res & (~d | s)) | (~d & s);
-       CONDITIONAL_SET_FLAG(bc & 0x80, F_CF);
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 6), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SBB instruction and side effects.
-****************************************************************************/
-u16 sbb_word(u16 d, u16 s)
-{
-    register u32 res;   /* all operands in native machine order */
-    register u32 bc;
-
-       if (ACCESS_FLAG(F_CF))
-        res = d - s - 1;
-    else
-        res = d - s;
-       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-       CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the borrow chain.  See note at top */
-       bc = (res & (~d | s)) | (~d & s);
-       CONDITIONAL_SET_FLAG(bc & 0x8000, F_CF);
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 14), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SBB instruction and side effects.
-****************************************************************************/
-u32 sbb_long(u32 d, u32 s)
-{
-       register u32 res;   /* all operands in native machine order */
-       register u32 bc;
-
-       if (ACCESS_FLAG(F_CF))
-        res = d - s - 1;
-    else
-        res = d - s;
-       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-       CONDITIONAL_SET_FLAG((res & 0xffffffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the borrow chain.  See note at top */
-       bc = (res & (~d | s)) | (~d & s);
-       CONDITIONAL_SET_FLAG(bc & 0x80000000, F_CF);
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 30), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SUB instruction and side effects.
-****************************************************************************/
-u8 sub_byte(u8 d, u8 s)
-{
-       register u32 res;   /* all operands in native machine order */
-       register u32 bc;
-
-       res = d - s;
-       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG((res & 0xff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the borrow chain.  See note at top */
-       bc = (res & (~d | s)) | (~d & s);
-       CONDITIONAL_SET_FLAG(bc & 0x80, F_CF);
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 6), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return (u8)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SUB instruction and side effects.
-****************************************************************************/
-u16 sub_word(u16 d, u16 s)
-{
-    register u32 res;   /* all operands in native machine order */
-    register u32 bc;
-
-    res = d - s;
-       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-       CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the borrow chain.  See note at top */
-       bc = (res & (~d | s)) | (~d & s);
-       CONDITIONAL_SET_FLAG(bc & 0x8000, F_CF);
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 14), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return (u16)res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the SUB instruction and side effects.
-****************************************************************************/
-u32 sub_long(u32 d, u32 s)
-{
-       register u32 res;   /* all operands in native machine order */
-       register u32 bc;
-
-       res = d - s;
-       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-       CONDITIONAL_SET_FLAG((res & 0xffffffff) == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-
-       /* calculate the borrow chain.  See note at top */
-       bc = (res & (~d | s)) | (~d & s);
-       CONDITIONAL_SET_FLAG(bc & 0x80000000, F_CF);
-       CONDITIONAL_SET_FLAG(XOR2(bc >> 30), F_OF);
-       CONDITIONAL_SET_FLAG(bc & 0x8, F_AF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the TEST instruction and side effects.
-****************************************************************************/
-void test_byte(u8 d, u8 s)
-{
-    register u32 res;   /* all operands in native machine order */
-
-    res = d & s;
-
-       CLEAR_FLAG(F_OF);
-       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-    /* AF == dont care */
-       CLEAR_FLAG(F_CF);
-}
-
-/****************************************************************************
-REMARKS:
-Implements the TEST instruction and side effects.
-****************************************************************************/
-void test_word(u16 d, u16 s)
-{
-       register u32 res;   /* all operands in native machine order */
-
-       res = d & s;
-
-       CLEAR_FLAG(F_OF);
-       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-       /* AF == dont care */
-       CLEAR_FLAG(F_CF);
-}
-
-/****************************************************************************
-REMARKS:
-Implements the TEST instruction and side effects.
-****************************************************************************/
-void test_long(u32 d, u32 s)
-{
-       register u32 res;   /* all operands in native machine order */
-
-       res = d & s;
-
-       CLEAR_FLAG(F_OF);
-       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-       /* AF == dont care */
-       CLEAR_FLAG(F_CF);
-}
-
-/****************************************************************************
-REMARKS:
-Implements the XOR instruction and side effects.
-****************************************************************************/
-u8 xor_byte(u8 d, u8 s)
-{
-       register u8 res;    /* all operands in native machine order */
-
-       res = d ^ s;
-       CLEAR_FLAG(F_OF);
-       CONDITIONAL_SET_FLAG(res & 0x80, F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res), F_PF);
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_AF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the XOR instruction and side effects.
-****************************************************************************/
-u16 xor_word(u16 d, u16 s)
-{
-       register u16 res;   /* all operands in native machine order */
-
-       res = d ^ s;
-       CLEAR_FLAG(F_OF);
-       CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_AF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the XOR instruction and side effects.
-****************************************************************************/
-u32 xor_long(u32 d, u32 s)
-{
-       register u32 res;   /* all operands in native machine order */
-
-       res = d ^ s;
-       CLEAR_FLAG(F_OF);
-       CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
-       CONDITIONAL_SET_FLAG(res == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_AF);
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the IMUL instruction and side effects.
-****************************************************************************/
-void imul_byte(u8 s)
-{
-       s16 res = (s16)((s8)M.x86.R_AL * (s8)s);
-
-       M.x86.R_AX = res;
-       if (((M.x86.R_AL & 0x80) == 0 && M.x86.R_AH == 0x00) ||
-               ((M.x86.R_AL & 0x80) != 0 && M.x86.R_AH == 0xFF)) {
-               CLEAR_FLAG(F_CF);
-               CLEAR_FLAG(F_OF);
-       } else {
-               SET_FLAG(F_CF);
-               SET_FLAG(F_OF);
-       }
-}
-
-/****************************************************************************
-REMARKS:
-Implements the IMUL instruction and side effects.
-****************************************************************************/
-void imul_word(u16 s)
-{
-       s32 res = (s16)M.x86.R_AX * (s16)s;
-
-       M.x86.R_AX = (u16)res;
-       M.x86.R_DX = (u16)(res >> 16);
-       if (((M.x86.R_AX & 0x8000) == 0 && M.x86.R_DX == 0x00) ||
-               ((M.x86.R_AX & 0x8000) != 0 && M.x86.R_DX == 0xFF)) {
-               CLEAR_FLAG(F_CF);
-               CLEAR_FLAG(F_OF);
-       } else {
-               SET_FLAG(F_CF);
-               SET_FLAG(F_OF);
-       }
-}
-
-/****************************************************************************
-REMARKS:
-Implements the IMUL instruction and side effects.
-****************************************************************************/
-void imul_long_direct(u32 *res_lo, u32* res_hi,u32 d, u32 s)
-{
-#ifdef __HAS_LONG_LONG__
-       s64 res = (s32)d * (s32)s;
-
-       *res_lo = (u32)res;
-       *res_hi = (u32)(res >> 32);
-#else
-       u32     d_lo,d_hi,d_sign;
-       u32     s_lo,s_hi,s_sign;
-       u32     rlo_lo,rlo_hi,rhi_lo;
-
-       if ((d_sign = d & 0x80000000) != 0)
-               d = -d;
-       d_lo = d & 0xFFFF;
-       d_hi = d >> 16;
-       if ((s_sign = s & 0x80000000) != 0)
-               s = -s;
-       s_lo = s & 0xFFFF;
-       s_hi = s >> 16;
-       rlo_lo = d_lo * s_lo;
-       rlo_hi = (d_hi * s_lo + d_lo * s_hi) + (rlo_lo >> 16);
-       rhi_lo = d_hi * s_hi + (rlo_hi >> 16);
-       *res_lo = (rlo_hi << 16) | (rlo_lo & 0xFFFF);
-       *res_hi = rhi_lo;
-       if (d_sign != s_sign) {
-               d = ~*res_lo;
-               s = (((d & 0xFFFF) + 1) >> 16) + (d >> 16);
-               *res_lo = ~*res_lo+1;
-               *res_hi = ~*res_hi+(s >> 16);
-               }
-#endif
-}
-
-/****************************************************************************
-REMARKS:
-Implements the IMUL instruction and side effects.
-****************************************************************************/
-void imul_long(u32 s)
-{
-       imul_long_direct(&M.x86.R_EAX,&M.x86.R_EDX,M.x86.R_EAX,s);
-       if (((M.x86.R_EAX & 0x80000000) == 0 && M.x86.R_EDX == 0x00) ||
-               ((M.x86.R_EAX & 0x80000000) != 0 && M.x86.R_EDX == 0xFF)) {
-               CLEAR_FLAG(F_CF);
-               CLEAR_FLAG(F_OF);
-       } else {
-               SET_FLAG(F_CF);
-               SET_FLAG(F_OF);
-       }
-}
-
-/****************************************************************************
-REMARKS:
-Implements the MUL instruction and side effects.
-****************************************************************************/
-void mul_byte(u8 s)
-{
-       u16 res = (u16)(M.x86.R_AL * s);
-
-       M.x86.R_AX = res;
-       if (M.x86.R_AH == 0) {
-               CLEAR_FLAG(F_CF);
-               CLEAR_FLAG(F_OF);
-       } else {
-               SET_FLAG(F_CF);
-               SET_FLAG(F_OF);
-       }
-}
-
-/****************************************************************************
-REMARKS:
-Implements the MUL instruction and side effects.
-****************************************************************************/
-void mul_word(u16 s)
-{
-       u32 res = M.x86.R_AX * s;
-
-       M.x86.R_AX = (u16)res;
-       M.x86.R_DX = (u16)(res >> 16);
-       if (M.x86.R_DX == 0) {
-               CLEAR_FLAG(F_CF);
-               CLEAR_FLAG(F_OF);
-    } else {
-               SET_FLAG(F_CF);
-               SET_FLAG(F_OF);
-    }
-}
-
-/****************************************************************************
-REMARKS:
-Implements the MUL instruction and side effects.
-****************************************************************************/
-void mul_long(u32 s)
-{
-#ifdef __HAS_LONG_LONG__
-       u64 res = (u32)M.x86.R_EAX * (u32)s;
-
-       M.x86.R_EAX = (u32)res;
-       M.x86.R_EDX = (u32)(res >> 32);
-#else
-       u32     a,a_lo,a_hi;
-       u32     s_lo,s_hi;
-       u32     rlo_lo,rlo_hi,rhi_lo;
-
-       a = M.x86.R_EAX;
-       a_lo = a & 0xFFFF;
-       a_hi = a >> 16;
-       s_lo = s & 0xFFFF;
-       s_hi = s >> 16;
-       rlo_lo = a_lo * s_lo;
-       rlo_hi = (a_hi * s_lo + a_lo * s_hi) + (rlo_lo >> 16);
-       rhi_lo = a_hi * s_hi + (rlo_hi >> 16);
-       M.x86.R_EAX = (rlo_hi << 16) | (rlo_lo & 0xFFFF);
-       M.x86.R_EDX = rhi_lo;
-#endif
-
-       if (M.x86.R_EDX == 0) {
-               CLEAR_FLAG(F_CF);
-               CLEAR_FLAG(F_OF);
-       } else {
-               SET_FLAG(F_CF);
-               SET_FLAG(F_OF);
-    }
-}
-
-/****************************************************************************
-REMARKS:
-Implements the IDIV instruction and side effects.
-****************************************************************************/
-void idiv_byte(u8 s)
-{
-    s32 dvd, div, mod;
-
-       dvd = (s16)M.x86.R_AX;
-       if (s == 0) {
-               x86emu_intr_raise(0);
-        return;
-       }
-       div = dvd / (s8)s;
-       mod = dvd % (s8)s;
-       if (abs(div) > 0x7f) {
-               x86emu_intr_raise(0);
-               return;
-       }
-       M.x86.R_AL = (s8) div;
-       M.x86.R_AH = (s8) mod;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the IDIV instruction and side effects.
-****************************************************************************/
-void idiv_word(u16 s)
-{
-       s32 dvd, div, mod;
-
-       dvd = (((s32)M.x86.R_DX) << 16) | M.x86.R_AX;
-       if (s == 0) {
-               x86emu_intr_raise(0);
-               return;
-       }
-       div = dvd / (s16)s;
-       mod = dvd % (s16)s;
-       if (abs(div) > 0x7fff) {
-               x86emu_intr_raise(0);
-               return;
-       }
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_SF);
-       CONDITIONAL_SET_FLAG(div == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(mod & 0xff), F_PF);
-
-       M.x86.R_AX = (u16)div;
-       M.x86.R_DX = (u16)mod;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the IDIV instruction and side effects.
-****************************************************************************/
-void idiv_long(u32 s)
-{
-#ifdef __HAS_LONG_LONG__
-       s64 dvd, div, mod;
-
-       dvd = (((s64)M.x86.R_EDX) << 32) | M.x86.R_EAX;
-       if (s == 0) {
-               x86emu_intr_raise(0);
-               return;
-       }
-       div = dvd / (s32)s;
-       mod = dvd % (s32)s;
-       if (abs(div) > 0x7fffffff) {
-               x86emu_intr_raise(0);
-               return;
-       }
-#else
-       s32 div = 0, mod;
-       s32 h_dvd = M.x86.R_EDX;
-       u32 l_dvd = M.x86.R_EAX;
-       u32 abs_s = s & 0x7FFFFFFF;
-       u32 abs_h_dvd = h_dvd & 0x7FFFFFFF;
-       u32 h_s = abs_s >> 1;
-       u32 l_s = abs_s << 31;
-       int counter = 31;
-       int carry;
-
-       if (s == 0) {
-               x86emu_intr_raise(0);
-               return;
-       }
-       do {
-               div <<= 1;
-               carry = (l_dvd >= l_s) ? 0 : 1;
-               
-               if (abs_h_dvd < (h_s + carry)) {
-                       h_s >>= 1;
-                       l_s = abs_s << (--counter);
-                       continue;
-               } else {
-                       abs_h_dvd -= (h_s + carry);
-                       l_dvd = carry ? ((0xFFFFFFFF - l_s) + l_dvd + 1)
-                               : (l_dvd - l_s);
-                       h_s >>= 1;
-                       l_s = abs_s << (--counter);
-                       div |= 1;
-                       continue;
-               }
-               
-       } while (counter > -1);
-       /* overflow */
-       if (abs_h_dvd || (l_dvd > abs_s)) {
-               x86emu_intr_raise(0);
-               return;
-       }
-       /* sign */
-       div |= ((h_dvd & 0x10000000) ^ (s & 0x10000000));
-       mod = l_dvd;
-
-#endif
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_AF);
-       CLEAR_FLAG(F_SF);
-       SET_FLAG(F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(mod & 0xff), F_PF);
-
-       M.x86.R_EAX = (u32)div;
-       M.x86.R_EDX = (u32)mod;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the DIV instruction and side effects.
-****************************************************************************/
-void div_byte(u8 s)
-{
-       u32 dvd, div, mod;
-
-       dvd = M.x86.R_AX;
-    if (s == 0) {
-               x86emu_intr_raise(0);
-        return;
-    }
-       div = dvd / (u8)s;
-       mod = dvd % (u8)s;
-       if (abs(div) > 0xff) {
-               x86emu_intr_raise(0);
-        return;
-       }
-       M.x86.R_AL = (u8)div;
-       M.x86.R_AH = (u8)mod;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the DIV instruction and side effects.
-****************************************************************************/
-void div_word(u16 s)
-{
-       u32 dvd, div, mod;
-
-       dvd = (((u32)M.x86.R_DX) << 16) | M.x86.R_AX;
-       if (s == 0) {
-               x86emu_intr_raise(0);
-        return;
-    }
-       div = dvd / (u16)s;
-       mod = dvd % (u16)s;
-       if (abs(div) > 0xffff) {
-               x86emu_intr_raise(0);
-               return;
-       }
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_SF);
-       CONDITIONAL_SET_FLAG(div == 0, F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(mod & 0xff), F_PF);
-
-       M.x86.R_AX = (u16)div;
-       M.x86.R_DX = (u16)mod;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the DIV instruction and side effects.
-****************************************************************************/
-void div_long(u32 s)
-{
-#ifdef __HAS_LONG_LONG__
-       u64 dvd, div, mod;
-
-       dvd = (((u64)M.x86.R_EDX) << 32) | M.x86.R_EAX;
-       if (s == 0) {
-               x86emu_intr_raise(0);
-               return;
-       }
-       div = dvd / (u32)s;
-       mod = dvd % (u32)s;
-       if (abs(div) > 0xffffffff) {
-               x86emu_intr_raise(0);
-               return;
-       }
-#else
-       s32 div = 0, mod;
-       s32 h_dvd = M.x86.R_EDX;
-       u32 l_dvd = M.x86.R_EAX;
-
-       u32 h_s = s;
-       u32 l_s = 0;
-       int counter = 32;
-       int carry;
-               
-       if (s == 0) {
-               x86emu_intr_raise(0);
-               return;
-       }
-       do {
-               div <<= 1;
-               carry = (l_dvd >= l_s) ? 0 : 1;
-               
-               if (h_dvd < (h_s + carry)) {
-                       h_s >>= 1;
-                       l_s = s << (--counter);
-                       continue;
-               } else {
-                       h_dvd -= (h_s + carry);
-                       l_dvd = carry ? ((0xFFFFFFFF - l_s) + l_dvd + 1)
-                               : (l_dvd - l_s);
-                       h_s >>= 1;
-                       l_s = s << (--counter);
-                       div |= 1;
-                       continue;
-               }
-               
-       } while (counter > -1);
-       /* overflow */
-       if (h_dvd || (l_dvd > s)) {
-               x86emu_intr_raise(0);
-               return;
-       }
-       mod = l_dvd;
-#endif
-       CLEAR_FLAG(F_CF);
-       CLEAR_FLAG(F_AF);
-       CLEAR_FLAG(F_SF);
-       SET_FLAG(F_ZF);
-       CONDITIONAL_SET_FLAG(PARITY(mod & 0xff), F_PF);
-
-       M.x86.R_EAX = (u32)div;
-       M.x86.R_EDX = (u32)mod;
-}
-
-/****************************************************************************
-REMARKS:
-Implements the IN string instruction and side effects.
-****************************************************************************/
-void ins(int size)
-{
-       int inc = size;
-
-       if (ACCESS_FLAG(F_DF)) {
-               inc = -size;
-       }
-       if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
-        /* dont care whether REPE or REPNE */
-        /* in until CX is ZERO. */
-               u32 count = ((M.x86.mode & SYSMODE_PREFIX_DATA) ?
-                                        M.x86.R_ECX : M.x86.R_CX);
-        switch (size) {
-          case 1:
-            while (count--) {
-                               store_data_byte_abs(M.x86.R_ES, M.x86.R_DI,
-                                                                       (*sys_inb)(M.x86.R_DX));
-                               M.x86.R_DI += inc;
-            }
-            break;
-
-          case 2:
-            while (count--) {
-                               store_data_word_abs(M.x86.R_ES, M.x86.R_DI,
-                                                                       (*sys_inw)(M.x86.R_DX));
-                               M.x86.R_DI += inc;
-            }
-            break;
-          case 4:
-            while (count--) {
-                               store_data_long_abs(M.x86.R_ES, M.x86.R_DI,
-                                                                       (*sys_inl)(M.x86.R_DX));
-                               M.x86.R_DI += inc;
-                break;
-            }
-        }
-               M.x86.R_CX = 0;
-               if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                       M.x86.R_ECX = 0;
-        }
-               M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
-    } else {
-        switch (size) {
-          case 1:
-                       store_data_byte_abs(M.x86.R_ES, M.x86.R_DI,
-                                                               (*sys_inb)(M.x86.R_DX));
-            break;
-          case 2:
-                       store_data_word_abs(M.x86.R_ES, M.x86.R_DI,
-                                                               (*sys_inw)(M.x86.R_DX));
-            break;
-          case 4:
-                       store_data_long_abs(M.x86.R_ES, M.x86.R_DI,
-                                                               (*sys_inl)(M.x86.R_DX));
-            break;
-        }
-               M.x86.R_DI += inc;
-    }
-}
-
-/****************************************************************************
-REMARKS:
-Implements the OUT string instruction and side effects.
-****************************************************************************/
-void outs(int size)
-{
-    int inc = size;
-
-       if (ACCESS_FLAG(F_DF)) {
-        inc = -size;
-    }
-       if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
-        /* dont care whether REPE or REPNE */
-        /* out until CX is ZERO. */
-               u32 count = ((M.x86.mode & SYSMODE_PREFIX_DATA) ?
-                                        M.x86.R_ECX : M.x86.R_CX);
-        switch (size) {
-          case 1:
-            while (count--) {
-                               (*sys_outb)(M.x86.R_DX,
-                                                fetch_data_byte_abs(M.x86.R_ES, M.x86.R_SI));
-                               M.x86.R_SI += inc;
-            }
-            break;
-
-          case 2:
-            while (count--) {
-                               (*sys_outw)(M.x86.R_DX,
-                                                fetch_data_word_abs(M.x86.R_ES, M.x86.R_SI));
-                               M.x86.R_SI += inc;
-            }
-            break;
-          case 4:
-            while (count--) {
-                               (*sys_outl)(M.x86.R_DX,
-                                                fetch_data_long_abs(M.x86.R_ES, M.x86.R_SI));
-                               M.x86.R_SI += inc;
-                break;
-            }
-        }
-               M.x86.R_CX = 0;
-               if (M.x86.mode & SYSMODE_PREFIX_DATA) {
-                       M.x86.R_ECX = 0;
-        }
-               M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
-    } else {
-        switch (size) {
-          case 1:
-                       (*sys_outb)(M.x86.R_DX,
-                                        fetch_data_byte_abs(M.x86.R_ES, M.x86.R_SI));
-            break;
-          case 2:
-                       (*sys_outw)(M.x86.R_DX,
-                                        fetch_data_word_abs(M.x86.R_ES, M.x86.R_SI));
-            break;
-          case 4:
-                       (*sys_outl)(M.x86.R_DX,
-                                        fetch_data_long_abs(M.x86.R_ES, M.x86.R_SI));
-            break;
-        }
-               M.x86.R_SI += inc;
-    }
-}
-
-/****************************************************************************
-PARAMETERS:
-addr   - Address to fetch word from
-
-REMARKS:
-Fetches a word from emulator memory using an absolute address.
-****************************************************************************/
-u16 mem_access_word(int addr)
-{
-DB(    if (CHECK_MEM_ACCESS())
-         x86emu_check_mem_access(addr);)
-       return (*sys_rdw)(addr);
-}
-
-/****************************************************************************
-REMARKS:
-Pushes a word onto the stack.
-
-NOTE: Do not inline this, as (*sys_wrX) is already inline!
-****************************************************************************/
-void push_word(u16 w)
-{
-DB(    if (CHECK_SP_ACCESS())
-         x86emu_check_sp_access();)
-       M.x86.R_SP -= 2;
-       (*sys_wrw)(((u32)M.x86.R_SS << 4)  + M.x86.R_SP, w);
-}
-
-/****************************************************************************
-REMARKS:
-Pushes a long onto the stack.
-
-NOTE: Do not inline this, as (*sys_wrX) is already inline!
-****************************************************************************/
-void push_long(u32 w)
-{
-DB(    if (CHECK_SP_ACCESS())
-         x86emu_check_sp_access();)
-       M.x86.R_SP -= 4;
-       (*sys_wrl)(((u32)M.x86.R_SS << 4)  + M.x86.R_SP, w);
-}
-
-/****************************************************************************
-REMARKS:
-Pops a word from the stack.
-
-NOTE: Do not inline this, as (*sys_rdX) is already inline!
-****************************************************************************/
-u16 pop_word(void)
-{
-       register u16 res;
-
-DB(    if (CHECK_SP_ACCESS())
-         x86emu_check_sp_access();)
-       res = (*sys_rdw)(((u32)M.x86.R_SS << 4)  + M.x86.R_SP);
-       M.x86.R_SP += 2;
-       return res;
-}
-
-/****************************************************************************
-REMARKS:
-Pops a long from the stack.
-
-NOTE: Do not inline this, as (*sys_rdX) is already inline!
-****************************************************************************/
-u32 pop_long(void)
-{
-    register u32 res;
-
-DB(    if (CHECK_SP_ACCESS())
-         x86emu_check_sp_access();)
-       res = (*sys_rdl)(((u32)M.x86.R_SS << 4)  + M.x86.R_SP);
-       M.x86.R_SP += 4;
-    return res;
-}
-
diff --git a/src/hwinfo/src/x86emu/sys.c b/src/hwinfo/src/x86emu/sys.c
deleted file mode 100644 (file)
index cf13517..0000000
+++ /dev/null
@@ -1,666 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  This file includes subroutines which are related to
-*                              programmed I/O and memory access. Included in this module
-*                              are default functions with limited usefulness. For real
-*                              uses these functions will most likely be overriden by the
-*                              user library.
-*
-****************************************************************************/
-/* $XFree86: xc/extras/x86emu/src/x86emu/sys.c,v 1.6 2002/09/16 18:05:18 eich Exp $ */
-
-#include "x86emu.h"
-#include "x86emu/x86emui.h"
-#include "x86emu/regs.h"
-#include "x86emu/debug.h"
-#include "x86emu/prim_ops.h"
-#ifdef IN_MODULE
-#include "xf86_ansic.h"
-#else
-#include <string.h>
-#endif                                                                                           
-/*------------------------- Global Variables ------------------------------*/
-
-X86EMU_sysEnv          _X86EMU_env;            /* Global emulator machine state */
-X86EMU_intrFuncs       _X86EMU_intrTab[256];
-
-/*----------------------------- Implementation ----------------------------*/
-#if defined(__alpha__) || defined(__alpha)
-/* to cope with broken egcs-1.1.2 :-(((( */
-
-#define ALPHA_UALOADS
-/*
- * inline functions to do unaligned accesses
- * from linux/include/asm-alpha/unaligned.h
- */
-
-/*
- * EGCS 1.1 knows about arbitrary unaligned loads.  Define some
- * packed structures to talk about such things with.
- */
-
-#if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
-struct __una_u64 { unsigned long  x __attribute__((packed)); };
-struct __una_u32 { unsigned int   x __attribute__((packed)); };
-struct __una_u16 { unsigned short x __attribute__((packed)); };
-#endif
-
-static __inline__ unsigned long ldq_u(unsigned long * r11)
-{
-#if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
-       const struct __una_u64 *ptr = (const struct __una_u64 *) r11;
-       return ptr->x;
-#else
-       unsigned long r1,r2;
-       __asm__("ldq_u %0,%3\n\t"
-               "ldq_u %1,%4\n\t"
-               "extql %0,%2,%0\n\t"
-               "extqh %1,%2,%1"
-               :"=&r" (r1), "=&r" (r2)
-               :"r" (r11),
-                "m" (*r11),
-                "m" (*(const unsigned long *)(7+(char *) r11)));
-       return r1 | r2;
-#endif
-}
-
-static __inline__ unsigned long ldl_u(unsigned int * r11)
-{
-#if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
-       const struct __una_u32 *ptr = (const struct __una_u32 *) r11;
-       return ptr->x;
-#else
-       unsigned long r1,r2;
-       __asm__("ldq_u %0,%3\n\t"
-               "ldq_u %1,%4\n\t"
-               "extll %0,%2,%0\n\t"
-               "extlh %1,%2,%1"
-               :"=&r" (r1), "=&r" (r2)
-               :"r" (r11),
-                "m" (*r11),
-                "m" (*(const unsigned long *)(3+(char *) r11)));
-       return r1 | r2;
-#endif
-}
-
-static __inline__ unsigned long ldw_u(unsigned short * r11)
-{
-#if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
-       const struct __una_u16 *ptr = (const struct __una_u16 *) r11;
-       return ptr->x;
-#else
-       unsigned long r1,r2;
-       __asm__("ldq_u %0,%3\n\t"
-               "ldq_u %1,%4\n\t"
-               "extwl %0,%2,%0\n\t"
-               "extwh %1,%2,%1"
-               :"=&r" (r1), "=&r" (r2)
-               :"r" (r11),
-                "m" (*r11),
-                "m" (*(const unsigned long *)(1+(char *) r11)));
-       return r1 | r2;
-#endif
-}
-
-/*
- * Elemental unaligned stores 
- */
-
-static __inline__ void stq_u(unsigned long r5, unsigned long * r11)
-{
-#if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
-       struct __una_u64 *ptr = (struct __una_u64 *) r11;
-       ptr->x = r5;
-#else
-       unsigned long r1,r2,r3,r4;
-
-       __asm__("ldq_u %3,%1\n\t"
-               "ldq_u %2,%0\n\t"
-               "insqh %6,%7,%5\n\t"
-               "insql %6,%7,%4\n\t"
-               "mskqh %3,%7,%3\n\t"
-               "mskql %2,%7,%2\n\t"
-               "bis %3,%5,%3\n\t"
-               "bis %2,%4,%2\n\t"
-               "stq_u %3,%1\n\t"
-               "stq_u %2,%0"
-               :"=m" (*r11),
-                "=m" (*(unsigned long *)(7+(char *) r11)),
-                "=&r" (r1), "=&r" (r2), "=&r" (r3), "=&r" (r4)
-               :"r" (r5), "r" (r11));
-#endif
-}
-
-static __inline__ void stl_u(unsigned long r5, unsigned int * r11)
-{
-#if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
-       struct __una_u32 *ptr = (struct __una_u32 *) r11;
-       ptr->x = r5;
-#else
-       unsigned long r1,r2,r3,r4;
-
-       __asm__("ldq_u %3,%1\n\t"
-               "ldq_u %2,%0\n\t"
-               "inslh %6,%7,%5\n\t"
-               "insll %6,%7,%4\n\t"
-               "msklh %3,%7,%3\n\t"
-               "mskll %2,%7,%2\n\t"
-               "bis %3,%5,%3\n\t"
-               "bis %2,%4,%2\n\t"
-               "stq_u %3,%1\n\t"
-               "stq_u %2,%0"
-               :"=m" (*r11),
-                "=m" (*(unsigned long *)(3+(char *) r11)),
-                "=&r" (r1), "=&r" (r2), "=&r" (r3), "=&r" (r4)
-               :"r" (r5), "r" (r11));
-#endif
-}
-
-static __inline__ void stw_u(unsigned long r5, unsigned short * r11)
-{
-#if defined(__GNUC__) && ((__GNUC__ > 2) || (__GNUC_MINOR__ >= 91))
-       struct __una_u16 *ptr = (struct __una_u16 *) r11;
-       ptr->x = r5;
-#else
-       unsigned long r1,r2,r3,r4;
-
-       __asm__("ldq_u %3,%1\n\t"
-               "ldq_u %2,%0\n\t"
-               "inswh %6,%7,%5\n\t"
-               "inswl %6,%7,%4\n\t"
-               "mskwh %3,%7,%3\n\t"
-               "mskwl %2,%7,%2\n\t"
-               "bis %3,%5,%3\n\t"
-               "bis %2,%4,%2\n\t"
-               "stq_u %3,%1\n\t"
-               "stq_u %2,%0"
-               :"=m" (*r11),
-                "=m" (*(unsigned long *)(1+(char *) r11)),
-                "=&r" (r1), "=&r" (r2), "=&r" (r3), "=&r" (r4)
-               :"r" (r5), "r" (r11));
-#endif
-}
-
-#elif defined(__GNUC__) && ((__GNUC__ < 3)) && \
-             (defined (__ia64__) || defined (ia64__))
-#define IA64_UALOADS
-/*
- * EGCS 1.1 knows about arbitrary unaligned loads.  Define some
- * packed structures to talk about such things with.
- */
-struct __una_u64 { unsigned long  x __attribute__((packed)); };
-struct __una_u32 { unsigned int   x __attribute__((packed)); };
-struct __una_u16 { unsigned short x __attribute__((packed)); };
-
-static __inline__ unsigned long
-__uldq (const unsigned long * r11)
-{
-    const struct __una_u64 *ptr = (const struct __una_u64 *) r11;
-    return ptr->x;
-}
-
-static __inline__ unsigned long
-uldl (const unsigned int * r11)
-{
-    const struct __una_u32 *ptr = (const struct __una_u32 *) r11;
-    return ptr->x;
-}
-
-static __inline__ unsigned long
-uldw (const unsigned short * r11)
-{
-    const struct __una_u16 *ptr = (const struct __una_u16 *) r11;
-    return ptr->x;
-}
-
-static __inline__ void
-ustq (unsigned long r5, unsigned long * r11)
-{
-    struct __una_u64 *ptr = (struct __una_u64 *) r11;
-    ptr->x = r5;
-}
-
-static __inline__ void
-ustl (unsigned long r5, unsigned int * r11)
-{
-    struct __una_u32 *ptr = (struct __una_u32 *) r11;
-    ptr->x = r5;
-}
-
-static __inline__ void
-ustw (unsigned long r5, unsigned short * r11)
-{
-    struct __una_u16 *ptr = (struct __una_u16 *) r11;
-    ptr->x = r5;
-}
-
-#endif
-
-/****************************************************************************
-PARAMETERS:
-addr   - Emulator memory address to read
-
-RETURNS:
-Byte value read from emulator memory.
-
-REMARKS:
-Reads a byte value from the emulator memory. 
-****************************************************************************/
-u8 X86API rdb(
-    u32 addr)
-{
-       u8 val;
-
-       if (addr > M.mem_size - 1) {
-               DB(printk("mem_read: address %#lx out of range!\n", addr);)
-               HALT_SYS();
-               }
-       val = *(u8*)(M.mem_base + addr);
-DB(    if (DEBUG_MEM_TRACE())
-               printk("%#08x 1 -> %#x\n", addr, val);)
-       return val;
-}
-
-/****************************************************************************
-PARAMETERS:
-addr   - Emulator memory address to read
-
-RETURNS:
-Word value read from emulator memory.
-
-REMARKS:
-Reads a word value from the emulator memory.
-****************************************************************************/
-u16 X86API rdw(
-       u32 addr)
-{
-       u16 val = 0;
-
-       if (addr > M.mem_size - 2) {
-               DB(printk("mem_read: address %#lx out of range!\n", addr);)
-               HALT_SYS();
-               }
-#ifdef __BIG_ENDIAN__
-       if (addr & 0x1) {
-               val = (*(u8*)(M.mem_base + addr) |
-                         (*(u8*)(M.mem_base + addr + 1) << 8));
-               }
-       else
-#endif
-#if defined(ALPHA_UALOADS)
-               val = ldw_u((u16*)(M.mem_base + addr));
-#elif  defined(IA64_UALOADS)
-      val = uldw((u16*)(M.mem_base + addr));
-#else
-               val = *(u16*)(M.mem_base + addr);
-#endif
-               DB(     if (DEBUG_MEM_TRACE())
-               printk("%#08x 2 -> %#x\n", addr, val);)
-    return val;
-}
-
-/****************************************************************************
-PARAMETERS:
-addr   - Emulator memory address to read
-
-RETURNS:
-Long value read from emulator memory.
-REMARKS:
-Reads a long value from the emulator memory. 
-****************************************************************************/
-u32 X86API rdl(
-       u32 addr)
-{
-       u32 val = 0;
-
-       if (addr > M.mem_size - 4) {
-               DB(printk("mem_read: address %#lx out of range!\n", addr);)
-               HALT_SYS();
-               }
-#ifdef __BIG_ENDIAN__
-       if (addr & 0x3) {
-               val = (*(u8*)(M.mem_base + addr + 0) |
-                         (*(u8*)(M.mem_base + addr + 1) << 8) |
-                         (*(u8*)(M.mem_base + addr + 2) << 16) |
-                         (*(u8*)(M.mem_base + addr + 3) << 24));
-               }
-       else
-#endif
-#if defined(ALPHA_UALOADS)
-               val = ldl_u((u32*)(M.mem_base + addr));
-#elif  defined(IA64_UALOADS)
-        val = uldl((u32*)(M.mem_base + addr));
-#else
-               val = *(u32*)(M.mem_base + addr);
-#endif
-DB(    if (DEBUG_MEM_TRACE())
-               printk("%#08x 4 -> %#x\n", addr, val);)
-       return val;
-}
-
-/****************************************************************************
-PARAMETERS:
-addr   - Emulator memory address to read
-val            - Value to store
-
-REMARKS:
-Writes a byte value to emulator memory.
-****************************************************************************/
-void X86API wrb(
-       u32 addr,
-       u8 val)
-{
-DB(    if (DEBUG_MEM_TRACE())
-               printk("%#08x 1 <- %#x\n", addr, val);)
-    if (addr > M.mem_size - 1) {
-               DB(printk("mem_write: address %#lx out of range!\n", addr);)
-               HALT_SYS();
-               }
-       *(u8*)(M.mem_base + addr) = val;
-}
-
-/****************************************************************************
-PARAMETERS:
-addr   - Emulator memory address to read
-val            - Value to store
-
-REMARKS:
-Writes a word value to emulator memory.
-****************************************************************************/
-void X86API wrw(
-       u32 addr,
-       u16 val)
-{
-DB(    if (DEBUG_MEM_TRACE())
-               printk("%#08x 2 <- %#x\n", addr, val);)
-       if (addr > M.mem_size - 2) {
-               DB(printk("mem_write: address %#lx out of range!\n", addr);)
-               HALT_SYS();
-               }
-#ifdef __BIG_ENDIAN__
-       if (addr & 0x1) {
-               *(u8*)(M.mem_base + addr + 0) = (val >> 0) & 0xff;
-               *(u8*)(M.mem_base + addr + 1) = (val >> 8) & 0xff;
-               }
-       else
-#endif
-#if defined(ALPHA_UALOADS)
-        stw_u(val,(u16*)(M.mem_base + addr));
-#elif defined(IA64_UALOADS)
-     ustw(val,(u16*)(M.mem_base + addr));
-#else
-        *(u16*)(M.mem_base + addr) = val;
-#endif
-}
-
-/****************************************************************************
-PARAMETERS:
-addr   - Emulator memory address to read
-val            - Value to store
-
-REMARKS:
-Writes a long value to emulator memory. 
-****************************************************************************/
-void X86API wrl(
-       u32 addr,
-       u32 val)
-{
-DB(    if (DEBUG_MEM_TRACE())
-               printk("%#08x 4 <- %#x\n", addr, val);)
-       if (addr > M.mem_size - 4) {
-               DB(printk("mem_write: address %#lx out of range!\n", addr);)
-               HALT_SYS();
-               }
-#ifdef __BIG_ENDIAN__
-       if (addr & 0x1) {
-               *(u8*)(M.mem_base + addr + 0) = (val >>  0) & 0xff;
-               *(u8*)(M.mem_base + addr + 1) = (val >>  8) & 0xff;
-               *(u8*)(M.mem_base + addr + 2) = (val >> 16) & 0xff;
-               *(u8*)(M.mem_base + addr + 3) = (val >> 24) & 0xff;
-               }
-       else
-#endif
-#if defined(ALPHA_UALOADS)
-        stl_u(val,(u32*)(M.mem_base + addr));
-#elif defined(IA64_UALOADS)
-     ustl(val,(u32*)(M.mem_base + addr));
-#else
-        *(u32*)(M.mem_base + addr) = val;
-#endif
-}
-
-/****************************************************************************
-PARAMETERS:
-addr   - PIO address to read
-RETURN:
-0
-REMARKS:
-Default PIO byte read function. Doesn't perform real inb.
-****************************************************************************/
-static u8 X86API p_inb(
-       X86EMU_pioAddr addr)
-{
-DB(    if (DEBUG_IO_TRACE())
-               printk("inb %#04x \n", addr);)
-       return 0;
-}
-
-/****************************************************************************
-PARAMETERS:
-addr   - PIO address to read
-RETURN:
-0
-REMARKS:
-Default PIO word read function. Doesn't perform real inw.
-****************************************************************************/
-static u16 X86API p_inw(
-       X86EMU_pioAddr addr)
-{
-DB(    if (DEBUG_IO_TRACE())
-               printk("inw %#04x \n", addr);)
-       return 0;
-}
-
-/****************************************************************************
-PARAMETERS:
-addr   - PIO address to read
-RETURN:
-0
-REMARKS:
-Default PIO long read function. Doesn't perform real inl.
-****************************************************************************/
-static u32 X86API p_inl(
-       X86EMU_pioAddr addr)
-{
-DB(    if (DEBUG_IO_TRACE())
-               printk("inl %#04x \n", addr);)
-       return 0;
-}
-
-/****************************************************************************
-PARAMETERS:
-addr   - PIO address to write
-val     - Value to store
-REMARKS:
-Default PIO byte write function. Doesn't perform real outb.
-****************************************************************************/
-static void X86API p_outb(
-       X86EMU_pioAddr addr,
-       u8 val)
-{
-DB(    if (DEBUG_IO_TRACE())
-               printk("outb %#02x -> %#04x \n", val, addr);)
-    return;
-}
-
-/****************************************************************************
-PARAMETERS:
-addr   - PIO address to write
-val     - Value to store
-REMARKS:
-Default PIO word write function. Doesn't perform real outw.
-****************************************************************************/
-static void X86API p_outw(
-       X86EMU_pioAddr addr,
-       u16 val)
-{
-DB(    if (DEBUG_IO_TRACE())
-               printk("outw %#04x -> %#04x \n", val, addr);)
-       return;
-}
-
-/****************************************************************************
-PARAMETERS:
-addr   - PIO address to write
-val     - Value to store
-REMARKS:
-Default PIO ;ong write function. Doesn't perform real outl.
-****************************************************************************/
-static void X86API p_outl(
-       X86EMU_pioAddr addr,
-       u32 val)
-{
-DB(    if (DEBUG_IO_TRACE())
-               printk("outl %#08x -> %#04x \n", val, addr);)
-    return;
-}
-
-/*------------------------- Global Variables ------------------------------*/
-
-u8     (X86APIP sys_rdb)(u32 addr)                                 = rdb;
-u16    (X86APIP sys_rdw)(u32 addr)                                 = rdw;
-u32    (X86APIP sys_rdl)(u32 addr)                                 = rdl;
-void   (X86APIP sys_wrb)(u32 addr,u8 val)                          = wrb;
-void   (X86APIP sys_wrw)(u32 addr,u16 val)                 = wrw;
-void   (X86APIP sys_wrl)(u32 addr,u32 val)                 = wrl;
-u8     (X86APIP sys_inb)(X86EMU_pioAddr addr)              = p_inb;
-u16    (X86APIP sys_inw)(X86EMU_pioAddr addr)              = p_inw;
-u32    (X86APIP sys_inl)(X86EMU_pioAddr addr)              = p_inl;
-void   (X86APIP sys_outb)(X86EMU_pioAddr addr, u8 val)         = p_outb;
-void   (X86APIP sys_outw)(X86EMU_pioAddr addr, u16 val)        = p_outw;
-void   (X86APIP sys_outl)(X86EMU_pioAddr addr, u32 val)        = p_outl;
-
-/*----------------------------- Setup -------------------------------------*/
-
-/****************************************************************************
-PARAMETERS:
-funcs  - New memory function pointers to make active
-
-REMARKS:
-This function is used to set the pointers to functions which access
-memory space, allowing the user application to override these functions
-and hook them out as necessary for their application.
-****************************************************************************/
-void X86EMU_setupMemFuncs(
-       X86EMU_memFuncs *funcs)
-{
-    sys_rdb = funcs->rdb;
-    sys_rdw = funcs->rdw;
-    sys_rdl = funcs->rdl;
-    sys_wrb = funcs->wrb;
-    sys_wrw = funcs->wrw;
-    sys_wrl = funcs->wrl;
-}
-
-/****************************************************************************
-PARAMETERS:
-funcs  - New programmed I/O function pointers to make active
-
-REMARKS:
-This function is used to set the pointers to functions which access
-I/O space, allowing the user application to override these functions
-and hook them out as necessary for their application.
-****************************************************************************/
-void X86EMU_setupPioFuncs(
-       X86EMU_pioFuncs *funcs)
-{
-    sys_inb = funcs->inb;
-    sys_inw = funcs->inw;
-    sys_inl = funcs->inl;
-    sys_outb = funcs->outb;
-    sys_outw = funcs->outw;
-    sys_outl = funcs->outl;
-}
-
-/****************************************************************************
-PARAMETERS:
-funcs  - New interrupt vector table to make active
-
-REMARKS:
-This function is used to set the pointers to functions which handle
-interrupt processing in the emulator, allowing the user application to
-hook interrupts as necessary for their application. Any interrupts that
-are not hooked by the user application, and reflected and handled internally
-in the emulator via the interrupt vector table. This allows the application
-to get control when the code being emulated executes specific software
-interrupts.
-****************************************************************************/
-void X86EMU_setupIntrFuncs(
-       X86EMU_intrFuncs funcs[])
-{
-    int i;
-    
-       for (i=0; i < 256; i++)
-               _X86EMU_intrTab[i] = NULL;
-       if (funcs) {
-               for (i = 0; i < 256; i++)
-                       _X86EMU_intrTab[i] = funcs[i];
-               }
-}
-
-/****************************************************************************
-PARAMETERS:
-int    - New software interrupt to prepare for
-
-REMARKS:
-This function is used to set up the emulator state to exceute a software
-interrupt. This can be used by the user application code to allow an
-interrupt to be hooked, examined and then reflected back to the emulator
-so that the code in the emulator will continue processing the software
-interrupt as per normal. This essentially allows system code to actively
-hook and handle certain software interrupts as necessary.
-****************************************************************************/
-void X86EMU_prepareForInt(
-       int num)
-{
-    push_word((u16)M.x86.R_FLG);
-    CLEAR_FLAG(F_IF);
-    CLEAR_FLAG(F_TF);
-    push_word(M.x86.R_CS);
-    M.x86.R_CS = mem_access_word(num * 4 + 2);
-    push_word(M.x86.R_IP);
-    M.x86.R_IP = mem_access_word(num * 4);
-       M.x86.intr = 0;
-}
diff --git a/src/hwinfo/src/x86emu/validate.c b/src/hwinfo/src/x86emu/validate.c
deleted file mode 100644 (file)
index 239f6c1..0000000
+++ /dev/null
@@ -1,765 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:     Watcom C 10.6 or later
-* Environment:  32-bit DOS
-* Developer:    Kendall Bennett
-*
-* Description:  Program to validate the x86 emulator library for
-*               correctness. We run the emulator primitive operations
-*               functions against the real x86 CPU, and compare the result
-*               and flags to ensure correctness.
-*
-*               We use inline assembler to compile and build this program.
-*
-****************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-#include "x86emu.h"
-#include "x86emu/prim_asm.h"
-
-/*-------------------------- Implementation -------------------------------*/
-
-#define true 1
-#define false 0
-
-#define ALL_FLAGS   (F_CF | F_PF | F_AF | F_ZF | F_SF | F_OF)
-
-#define VAL_START_BINARY(parm_type,res_type,dmax,smax,dincr,sincr)  \
-{                                                                   \
-    parm_type   d,s;                                                \
-    res_type    r,r_asm;                                            \
-       ulong           flags,inflags;                                      \
-       int         f,failed = false;                                   \
-    char        buf1[80],buf2[80];                                  \
-    for (d = 0; d < dmax; d += dincr) {                             \
-        for (s = 0; s < smax; s += sincr) {                         \
-            M.x86.R_EFLG = inflags = flags = def_flags;             \
-            for (f = 0; f < 2; f++) {
-
-#define VAL_TEST_BINARY(name)                                           \
-                r_asm = name##_asm(&flags,d,s);                         \
-                r = name(d,s);                                  \
-                if (r != r_asm || M.x86.R_EFLG != flags)                \
-                    failed = true;                                      \
-                if (failed || trace) {
-
-#define VAL_TEST_BINARY_VOID(name)                                      \
-                name##_asm(&flags,d,s);                                 \
-                name(d,s);                                      \
-                r = r_asm = 0;                                          \
-                if (M.x86.R_EFLG != flags)                              \
-                    failed = true;                                      \
-                if (failed || trace) {
-
-#define VAL_FAIL_BYTE_BYTE_BINARY(name)                                                                 \
-                    if (failed)                                                                         \
-                        printk("fail\n");                                                               \
-                    printk("0x%02X = %-15s(0x%02X,0x%02X), flags = %s -> %s\n",                         \
-                        r, #name, d, s, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG));     \
-                    printk("0x%02X = %-15s(0x%02X,0x%02X), flags = %s -> %s\n",                         \
-                        r_asm, #name"_asm", d, s, print_flags(buf1,inflags), print_flags(buf2,flags));
-
-#define VAL_FAIL_WORD_WORD_BINARY(name)                                                                 \
-                    if (failed)                                                                         \
-                        printk("fail\n");                                                               \
-                    printk("0x%04X = %-15s(0x%04X,0x%04X), flags = %s -> %s\n",                         \
-                        r, #name, d, s, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG));   \
-                    printk("0x%04X = %-15s(0x%04X,0x%04X), flags = %s -> %s\n",                         \
-                        r_asm, #name"_asm", d, s, print_flags(buf1,inflags), print_flags(buf2,flags));
-
-#define VAL_FAIL_LONG_LONG_BINARY(name)                                                                 \
-                    if (failed)                                                                         \
-                        printk("fail\n");                                                               \
-                    printk("0x%08X = %-15s(0x%08X,0x%08X), flags = %s -> %s\n",                         \
-                        r, #name, d, s, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG)); \
-                    printk("0x%08X = %-15s(0x%08X,0x%08X), flags = %s -> %s\n",                         \
-                        r_asm, #name"_asm", d, s, print_flags(buf1,inflags), print_flags(buf2,flags));
-
-#define VAL_END_BINARY()                                                    \
-                    }                                                       \
-                M.x86.R_EFLG = inflags = flags = def_flags | (ALL_FLAGS & ~F_OF);   \
-                if (failed)                                                 \
-                    break;                                                  \
-                }                                                           \
-            if (failed)                                                     \
-                break;                                                      \
-            }                                                               \
-        if (failed)                                                         \
-            break;                                                          \
-        }                                                                   \
-    if (!failed)                                                            \
-        printk("passed\n");                                                 \
-}
-
-#define VAL_BYTE_BYTE_BINARY(name)          \
-    printk("Validating %s ... ", #name);    \
-    VAL_START_BINARY(u8,u8,0xFF,0xFF,1,1)   \
-    VAL_TEST_BINARY(name)                   \
-    VAL_FAIL_BYTE_BYTE_BINARY(name)         \
-    VAL_END_BINARY()
-
-#define VAL_WORD_WORD_BINARY(name)                      \
-    printk("Validating %s ... ", #name);                \
-    VAL_START_BINARY(u16,u16,0xFF00,0xFF00,0x100,0x100) \
-    VAL_TEST_BINARY(name)                               \
-    VAL_FAIL_WORD_WORD_BINARY(name)                     \
-    VAL_END_BINARY()
-
-#define VAL_LONG_LONG_BINARY(name)                                      \
-    printk("Validating %s ... ", #name);                                \
-    VAL_START_BINARY(u32,u32,0xFF000000,0xFF000000,0x1000000,0x1000000) \
-    VAL_TEST_BINARY(name)                                               \
-    VAL_FAIL_LONG_LONG_BINARY(name)                                     \
-    VAL_END_BINARY()
-
-#define VAL_VOID_BYTE_BINARY(name)          \
-    printk("Validating %s ... ", #name);    \
-    VAL_START_BINARY(u8,u8,0xFF,0xFF,1,1)   \
-    VAL_TEST_BINARY_VOID(name)              \
-    VAL_FAIL_BYTE_BYTE_BINARY(name)         \
-    VAL_END_BINARY()
-
-#define VAL_VOID_WORD_BINARY(name)                      \
-    printk("Validating %s ... ", #name);                \
-    VAL_START_BINARY(u16,u16,0xFF00,0xFF00,0x100,0x100) \
-    VAL_TEST_BINARY_VOID(name)                          \
-    VAL_FAIL_WORD_WORD_BINARY(name)                     \
-    VAL_END_BINARY()
-
-#define VAL_VOID_LONG_BINARY(name)                                      \
-    printk("Validating %s ... ", #name);                                \
-    VAL_START_BINARY(u32,u32,0xFF000000,0xFF000000,0x1000000,0x1000000) \
-    VAL_TEST_BINARY_VOID(name)                                          \
-    VAL_FAIL_LONG_LONG_BINARY(name)                                     \
-    VAL_END_BINARY()
-
-#define VAL_BYTE_ROTATE(name)               \
-    printk("Validating %s ... ", #name);    \
-    VAL_START_BINARY(u8,u8,0xFF,8,1,1)      \
-    VAL_TEST_BINARY(name)                   \
-    VAL_FAIL_BYTE_BYTE_BINARY(name)         \
-    VAL_END_BINARY()
-
-#define VAL_WORD_ROTATE(name)                           \
-    printk("Validating %s ... ", #name);                \
-    VAL_START_BINARY(u16,u16,0xFF00,16,0x100,1)         \
-    VAL_TEST_BINARY(name)                               \
-    VAL_FAIL_WORD_WORD_BINARY(name)                     \
-    VAL_END_BINARY()
-
-#define VAL_LONG_ROTATE(name)                                           \
-    printk("Validating %s ... ", #name);                                \
-    VAL_START_BINARY(u32,u32,0xFF000000,32,0x1000000,1)                 \
-    VAL_TEST_BINARY(name)                                               \
-    VAL_FAIL_LONG_LONG_BINARY(name)                                     \
-    VAL_END_BINARY()
-
-#define VAL_START_TERNARY(parm_type,res_type,dmax,smax,dincr,sincr,maxshift)\
-{                                                                   \
-    parm_type   d,s;                                                \
-    res_type    r,r_asm;                                            \
-    u8          shift;                                              \
-       u32         flags,inflags;                                      \
-    int         f,failed = false;                                   \
-    char        buf1[80],buf2[80];                                  \
-    for (d = 0; d < dmax; d += dincr) {                             \
-        for (s = 0; s < smax; s += sincr) {                         \
-            for (shift = 0; shift < maxshift; shift += 1) {        \
-                M.x86.R_EFLG = inflags = flags = def_flags;         \
-                for (f = 0; f < 2; f++) {
-
-#define VAL_TEST_TERNARY(name)                                          \
-                    r_asm = name##_asm(&flags,d,s,shift);               \
-                    r = name(d,s,shift);                           \
-                    if (r != r_asm || M.x86.R_EFLG != flags)            \
-                        failed = true;                                  \
-                    if (failed || trace) {
-
-#define VAL_FAIL_WORD_WORD_TERNARY(name)                                                                \
-                        if (failed)                                                                         \
-                            printk("fail\n");                                                               \
-                        printk("0x%04X = %-15s(0x%04X,0x%04X,%d), flags = %s -> %s\n",                      \
-                            r, #name, d, s, shift, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG));   \
-                        printk("0x%04X = %-15s(0x%04X,0x%04X,%d), flags = %s -> %s\n",                      \
-                            r_asm, #name"_asm", d, s, shift, print_flags(buf1,inflags), print_flags(buf2,flags));
-
-#define VAL_FAIL_LONG_LONG_TERNARY(name)                                                                \
-                        if (failed)                                                                         \
-                            printk("fail\n");                                                               \
-                        printk("0x%08X = %-15s(0x%08X,0x%08X,%d), flags = %s -> %s\n",                      \
-                            r, #name, d, s, shift, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG));  \
-                        printk("0x%08X = %-15s(0x%08X,0x%08X,%d), flags = %s -> %s\n",                      \
-                            r_asm, #name"_asm", d, s, shift, print_flags(buf1,inflags), print_flags(buf2,flags));
-
-#define VAL_END_TERNARY()                                                   \
-                        }                                                       \
-                    M.x86.R_EFLG = inflags = flags = def_flags | (ALL_FLAGS & ~F_OF);   \
-                    if (failed)                                                 \
-                        break;                                                  \
-                    }                                                           \
-                if (failed)                                                     \
-                    break;                                                      \
-                }                                                               \
-            if (failed)                                                     \
-                break;                                                      \
-            }                                                               \
-        if (failed)                                                         \
-            break;                                                          \
-        }                                                                   \
-    if (!failed)                                                            \
-        printk("passed\n");                                                 \
-}
-
-#define VAL_WORD_ROTATE_DBL(name)                           \
-    printk("Validating %s ... ", #name);                    \
-    VAL_START_TERNARY(u16,u16,0xFF00,0xFF00,0x100,0x100,16) \
-    VAL_TEST_TERNARY(name)                                  \
-    VAL_FAIL_WORD_WORD_TERNARY(name)                        \
-    VAL_END_TERNARY()
-
-#define VAL_LONG_ROTATE_DBL(name)                                           \
-    printk("Validating %s ... ", #name);                                    \
-    VAL_START_TERNARY(u32,u32,0xFF000000,0xFF000000,0x1000000,0x1000000,32) \
-    VAL_TEST_TERNARY(name)                                                  \
-    VAL_FAIL_LONG_LONG_TERNARY(name)                                        \
-    VAL_END_TERNARY()
-
-#define VAL_START_UNARY(parm_type,max,incr)                 \
-{                                                           \
-    parm_type   d,r,r_asm;                                  \
-       u32         flags,inflags;                              \
-    int         f,failed = false;                           \
-    char        buf1[80],buf2[80];                          \
-    for (d = 0; d < max; d += incr) {                       \
-        M.x86.R_EFLG = inflags = flags = def_flags;         \
-        for (f = 0; f < 2; f++) {
-
-#define VAL_TEST_UNARY(name)                                \
-            r_asm = name##_asm(&flags,d);                   \
-            r = name(d);                                \
-            if (r != r_asm || M.x86.R_EFLG != flags) {      \
-                failed = true;
-
-#define VAL_FAIL_BYTE_UNARY(name)                                                               \
-                printk("fail\n");                                                               \
-                printk("0x%02X = %-15s(0x%02X), flags = %s -> %s\n",                            \
-                    r, #name, d, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG));    \
-                printk("0x%02X = %-15s(0x%02X), flags = %s -> %s\n",                            \
-                    r_asm, #name"_asm", d, print_flags(buf1,inflags), print_flags(buf2,flags));
-
-#define VAL_FAIL_WORD_UNARY(name)                                                               \
-                printk("fail\n");                                                               \
-                printk("0x%04X = %-15s(0x%04X), flags = %s -> %s\n",                            \
-                    r, #name, d, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG));  \
-                printk("0x%04X = %-15s(0x%04X), flags = %s -> %s\n",                            \
-                    r_asm, #name"_asm", d, print_flags(buf1,inflags), print_flags(buf2,flags));
-
-#define VAL_FAIL_LONG_UNARY(name)                                                               \
-                printk("fail\n");                                                               \
-                printk("0x%08X = %-15s(0x%08X), flags = %s -> %s\n",                            \
-                    r, #name, d, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG));    \
-                printk("0x%08X = %-15s(0x%08X), flags = %s -> %s\n",                            \
-                    r_asm, #name"_asm", d, print_flags(buf1,inflags), print_flags(buf2,flags));
-
-#define VAL_END_UNARY()                                                 \
-                }                                                       \
-            M.x86.R_EFLG = inflags = flags = def_flags | ALL_FLAGS;     \
-            if (failed)                                                 \
-                break;                                                  \
-            }                                                           \
-        if (failed)                                                     \
-            break;                                                      \
-        }                                                               \
-    if (!failed)                                                        \
-        printk("passed\n");                                             \
-}
-
-#define VAL_BYTE_UNARY(name)                \
-    printk("Validating %s ... ", #name);    \
-    VAL_START_UNARY(u8,0xFF,0x1)            \
-    VAL_TEST_UNARY(name)                    \
-    VAL_FAIL_BYTE_UNARY(name)               \
-    VAL_END_UNARY()
-
-#define VAL_WORD_UNARY(name)                \
-    printk("Validating %s ... ", #name);    \
-    VAL_START_UNARY(u16,0xFF00,0x100)       \
-    VAL_TEST_UNARY(name)                    \
-    VAL_FAIL_WORD_UNARY(name)               \
-    VAL_END_UNARY()
-
-#define VAL_WORD_BYTE_UNARY(name)           \
-    printk("Validating %s ... ", #name);    \
-    VAL_START_UNARY(u16,0xFF,0x1)           \
-    VAL_TEST_UNARY(name)                    \
-    VAL_FAIL_WORD_UNARY(name)               \
-    VAL_END_UNARY()
-
-#define VAL_LONG_UNARY(name)                \
-    printk("Validating %s ... ", #name);    \
-    VAL_START_UNARY(u32,0xFF000000,0x1000000) \
-    VAL_TEST_UNARY(name)                    \
-    VAL_FAIL_LONG_UNARY(name)               \
-    VAL_END_UNARY()
-
-#define VAL_BYTE_MUL(name)                                              \
-    printk("Validating %s ... ", #name);                                \
-{                                                                       \
-    u8          d,s;                                                    \
-    u16         r,r_asm;                                                \
-       u32         flags,inflags;                                          \
-    int         f,failed = false;                                       \
-    char        buf1[80],buf2[80];                                      \
-    for (d = 0; d < 0xFF; d += 1) {                                     \
-        for (s = 0; s < 0xFF; s += 1) {                                 \
-            M.x86.R_EFLG = inflags = flags = def_flags;                 \
-            for (f = 0; f < 2; f++) {                                   \
-                name##_asm(&flags,&r_asm,d,s);                          \
-                M.x86.R_AL = d;                                         \
-                name(s);                                            \
-                r = M.x86.R_AX;                                         \
-                if (r != r_asm || M.x86.R_EFLG != flags)                \
-                    failed = true;                                      \
-                if (failed || trace) {                                  \
-                    if (failed)                                         \
-                        printk("fail\n");                               \
-                    printk("0x%04X = %-15s(0x%02X,0x%02X), flags = %s -> %s\n",                         \
-                        r, #name, d, s, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG));     \
-                    printk("0x%04X = %-15s(0x%02X,0x%02X), flags = %s -> %s\n",                         \
-                        r_asm, #name"_asm", d, s, print_flags(buf1,inflags), print_flags(buf2,flags));  \
-                    }                                                       \
-                M.x86.R_EFLG = inflags = flags = def_flags | (ALL_FLAGS & ~F_OF);   \
-                if (failed)                                                 \
-                    break;                                                  \
-                }                                                           \
-            if (failed)                                                     \
-                break;                                                      \
-            }                                                               \
-        if (failed)                                                         \
-            break;                                                          \
-        }                                                                   \
-    if (!failed)                                                            \
-        printk("passed\n");                                                 \
-}
-
-#define VAL_WORD_MUL(name)                                              \
-    printk("Validating %s ... ", #name);                                \
-{                                                                       \
-    u16         d,s;                                                    \
-    u16         r_lo,r_asm_lo;                                          \
-    u16         r_hi,r_asm_hi;                                          \
-       u32         flags,inflags;                                          \
-    int         f,failed = false;                                       \
-    char        buf1[80],buf2[80];                                      \
-    for (d = 0; d < 0xFF00; d += 0x100) {                               \
-        for (s = 0; s < 0xFF00; s += 0x100) {                           \
-            M.x86.R_EFLG = inflags = flags = def_flags;                 \
-            for (f = 0; f < 2; f++) {                                   \
-                name##_asm(&flags,&r_asm_lo,&r_asm_hi,d,s);             \
-                M.x86.R_AX = d;                                         \
-                name(s);                                            \
-                r_lo = M.x86.R_AX;                                      \
-                r_hi = M.x86.R_DX;                                      \
-                if (r_lo != r_asm_lo || r_hi != r_asm_hi || M.x86.R_EFLG != flags)\
-                    failed = true;                                      \
-                if (failed || trace) {                                  \
-                    if (failed)                                         \
-                        printk("fail\n");                               \
-                    printk("0x%04X:0x%04X = %-15s(0x%04X,0x%04X), flags = %s -> %s\n",                              \
-                        r_hi,r_lo, #name, d, s, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG));       \
-                    printk("0x%04X:0x%04X = %-15s(0x%04X,0x%04X), flags = %s -> %s\n",                              \
-                        r_asm_hi,r_asm_lo, #name"_asm", d, s, print_flags(buf1,inflags), print_flags(buf2,flags));  \
-                    }                                                                                               \
-                M.x86.R_EFLG = inflags = flags = def_flags | (ALL_FLAGS & ~F_OF);   \
-                if (failed)                                                 \
-                    break;                                                  \
-                }                                                           \
-            if (failed)                                                     \
-                break;                                                      \
-            }                                                               \
-        if (failed)                                                         \
-            break;                                                          \
-        }                                                                   \
-    if (!failed)                                                            \
-        printk("passed\n");                                                 \
-}
-
-#define VAL_LONG_MUL(name)                                              \
-    printk("Validating %s ... ", #name);                                \
-{                                                                       \
-    u32         d,s;                                                    \
-    u32         r_lo,r_asm_lo;                                          \
-    u32         r_hi,r_asm_hi;                                          \
-       u32         flags,inflags;                                          \
-    int         f,failed = false;                                       \
-    char        buf1[80],buf2[80];                                      \
-    for (d = 0; d < 0xFF000000; d += 0x1000000) {                       \
-        for (s = 0; s < 0xFF000000; s += 0x1000000) {                   \
-            M.x86.R_EFLG = inflags = flags = def_flags;                 \
-            for (f = 0; f < 2; f++) {                                   \
-                name##_asm(&flags,&r_asm_lo,&r_asm_hi,d,s);             \
-                M.x86.R_EAX = d;                                        \
-                name(s);                                            \
-                r_lo = M.x86.R_EAX;                                     \
-                r_hi = M.x86.R_EDX;                                     \
-                if (r_lo != r_asm_lo || r_hi != r_asm_hi || M.x86.R_EFLG != flags)\
-                    failed = true;                                      \
-                if (failed || trace) {                                  \
-                    if (failed)                                         \
-                        printk("fail\n");                               \
-                    printk("0x%08X:0x%08X = %-15s(0x%08X,0x%08X), flags = %s -> %s\n",                              \
-                        r_hi,r_lo, #name, d, s, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG));       \
-                    printk("0x%08X:0x%08X = %-15s(0x%08X,0x%08X), flags = %s -> %s\n",                              \
-                        r_asm_hi,r_asm_lo, #name"_asm", d, s, print_flags(buf1,inflags), print_flags(buf2,flags));  \
-                    }                                                                                               \
-                M.x86.R_EFLG = inflags = flags = def_flags | (ALL_FLAGS & ~F_OF);   \
-                if (failed)                                                 \
-                    break;                                                  \
-                }                                                           \
-            if (failed)                                                     \
-                break;                                                      \
-            }                                                               \
-        if (failed)                                                         \
-            break;                                                          \
-        }                                                                   \
-    if (!failed)                                                            \
-        printk("passed\n");                                                 \
-}
-
-#define VAL_BYTE_DIV(name)                                              \
-    printk("Validating %s ... ", #name);                                \
-{                                                                       \
-    u16         d,s;                                                    \
-    u8          r_quot,r_rem,r_asm_quot,r_asm_rem;                      \
-       u32         flags,inflags;                                          \
-    int         f,failed = false;                                       \
-    char        buf1[80],buf2[80];                                      \
-    for (d = 0; d < 0xFF00; d += 0x100) {                               \
-        for (s = 1; s < 0xFF; s += 1) {                                 \
-            M.x86.R_EFLG = inflags = flags = def_flags;                 \
-            for (f = 0; f < 2; f++) {                                   \
-                M.x86.intr = 0;                                         \
-                M.x86.R_AX = d;                                         \
-                name(s);                                            \
-                r_quot = M.x86.R_AL;                                    \
-                r_rem = M.x86.R_AH;                                     \
-                if (M.x86.intr & INTR_SYNCH)                            \
-                    continue;                                           \
-                name##_asm(&flags,&r_asm_quot,&r_asm_rem,d,s);          \
-                if (r_quot != r_asm_quot || r_rem != r_asm_rem || M.x86.R_EFLG != flags) \
-                    failed = true;                                      \
-                if (failed || trace) {                                  \
-                    if (failed)                                         \
-                        printk("fail\n");                               \
-                    printk("0x%02X:0x%02X = %-15s(0x%04X,0x%02X), flags = %s -> %s\n",                      \
-                        r_quot, r_rem, #name, d, s, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG));     \
-                    printk("0x%02X:0x%02X = %-15s(0x%04X,0x%02X), flags = %s -> %s\n",                      \
-                        r_asm_quot, r_asm_rem, #name"_asm", d, s, print_flags(buf1,inflags), print_flags(buf2,flags));  \
-                    }                                                       \
-                M.x86.R_EFLG = inflags = flags = def_flags | (ALL_FLAGS & ~F_OF);   \
-                if (failed)                                                 \
-                    break;                                                  \
-                }                                                           \
-            if (failed)                                                     \
-                break;                                                      \
-            }                                                               \
-        if (failed)                                                         \
-            break;                                                          \
-        }                                                                   \
-    if (!failed)                                                            \
-        printk("passed\n");                                                 \
-}
-
-#define VAL_WORD_DIV(name)                                              \
-    printk("Validating %s ... ", #name);                                \
-{                                                                       \
-    u32         d,s;                                                    \
-    u16         r_quot,r_rem,r_asm_quot,r_asm_rem;                      \
-       u32         flags,inflags;                                          \
-    int         f,failed = false;                                       \
-    char        buf1[80],buf2[80];                                      \
-    for (d = 0; d < 0xFF000000; d += 0x1000000) {                       \
-        for (s = 0x100; s < 0xFF00; s += 0x100) {                       \
-            M.x86.R_EFLG = inflags = flags = def_flags;                 \
-            for (f = 0; f < 2; f++) {                                   \
-                M.x86.intr = 0;                                         \
-                M.x86.R_AX = d & 0xFFFF;                                \
-                M.x86.R_DX = d >> 16;                                   \
-                name(s);                                            \
-                r_quot = M.x86.R_AX;                                    \
-                r_rem = M.x86.R_DX;                                     \
-                if (M.x86.intr & INTR_SYNCH)                            \
-                    continue;                                           \
-                name##_asm(&flags,&r_asm_quot,&r_asm_rem,d & 0xFFFF,d >> 16,s);\
-                if (r_quot != r_asm_quot || r_rem != r_asm_rem || M.x86.R_EFLG != flags) \
-                    failed = true;                                      \
-                if (failed || trace) {                                  \
-                    if (failed)                                         \
-                        printk("fail\n");                               \
-                    printk("0x%04X:0x%04X = %-15s(0x%08X,0x%04X), flags = %s -> %s\n",                      \
-                        r_quot, r_rem, #name, d, s, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG));     \
-                    printk("0x%04X:0x%04X = %-15s(0x%08X,0x%04X), flags = %s -> %s\n",                      \
-                        r_asm_quot, r_asm_rem, #name"_asm", d, s, print_flags(buf1,inflags), print_flags(buf2,flags));  \
-                    }                                                       \
-                M.x86.R_EFLG = inflags = flags = def_flags | (ALL_FLAGS & ~F_OF);   \
-                if (failed)                                                 \
-                    break;                                                  \
-                }                                                           \
-            if (failed)                                                     \
-                break;                                                      \
-            }                                                               \
-        if (failed)                                                         \
-            break;                                                          \
-        }                                                                   \
-    if (!failed)                                                            \
-        printk("passed\n");                                                 \
-}
-
-#define VAL_LONG_DIV(name)                                              \
-    printk("Validating %s ... ", #name);                                \
-{                                                                       \
-    u32         d,s;                                                    \
-    u32         r_quot,r_rem,r_asm_quot,r_asm_rem;                      \
-       u32         flags,inflags;                                          \
-    int         f,failed = false;                                       \
-    char        buf1[80],buf2[80];                                      \
-    for (d = 0; d < 0xFF000000; d += 0x1000000) {                       \
-        for (s = 0x100; s < 0xFF00; s += 0x100) {                       \
-            M.x86.R_EFLG = inflags = flags = def_flags;                 \
-            for (f = 0; f < 2; f++) {                                   \
-                M.x86.intr = 0;                                         \
-                M.x86.R_EAX = d;                                        \
-                M.x86.R_EDX = 0;                                        \
-                name(s);                                            \
-                r_quot = M.x86.R_EAX;                                   \
-                r_rem = M.x86.R_EDX;                                    \
-                if (M.x86.intr & INTR_SYNCH)                            \
-                    continue;                                           \
-                name##_asm(&flags,&r_asm_quot,&r_asm_rem,d,0,s);        \
-                if (r_quot != r_asm_quot || r_rem != r_asm_rem || M.x86.R_EFLG != flags) \
-                    failed = true;                                      \
-                if (failed || trace) {                                  \
-                    if (failed)                                         \
-                        printk("fail\n");                               \
-                    printk("0x%08X:0x%08X = %-15s(0x%08X:0x%08X,0x%08X), flags = %s -> %s\n",                       \
-                        r_quot, r_rem, #name, 0, d, s, print_flags(buf1,inflags), print_flags(buf2,M.x86.R_EFLG));  \
-                    printk("0x%08X:0x%08X = %-15s(0x%08X:0x%08X,0x%08X), flags = %s -> %s\n",                       \
-                        r_asm_quot, r_asm_rem, #name"_asm", 0, d, s, print_flags(buf1,inflags), print_flags(buf2,flags));   \
-                    }                                                       \
-                M.x86.R_EFLG = inflags = flags = def_flags | (ALL_FLAGS & ~F_OF);   \
-                if (failed)                                                 \
-                    break;                                                  \
-                }                                                           \
-            if (failed)                                                     \
-                break;                                                      \
-            }                                                               \
-        if (failed)                                                         \
-            break;                                                          \
-        }                                                                   \
-    if (!failed)                                                            \
-        printk("passed\n");                                                 \
-}
-
-void printk(const char *fmt, ...)
-{
-    va_list argptr;
-    va_start(argptr, fmt);
-    vfprintf(stdout, fmt, argptr);
-    fflush(stdout);
-    va_end(argptr);
-}
-
-char * print_flags(char *buf,ulong flags)
-{
-    char *separator = "";
-
-    buf[0] = 0;
-    if (flags & F_CF) {
-        strcat(buf,separator);
-        strcat(buf,"CF");
-        separator = ",";
-        }
-    if (flags & F_PF) {
-        strcat(buf,separator);
-        strcat(buf,"PF");
-        separator = ",";
-        }
-    if (flags & F_AF) {
-        strcat(buf,separator);
-        strcat(buf,"AF");
-        separator = ",";
-        }
-    if (flags & F_ZF) {
-        strcat(buf,separator);
-        strcat(buf,"ZF");
-        separator = ",";
-        }
-    if (flags & F_SF) {
-        strcat(buf,separator);
-        strcat(buf,"SF");
-        separator = ",";
-        }
-    if (flags & F_OF) {
-        strcat(buf,separator);
-        strcat(buf,"OF");
-        separator = ",";
-        }
-    if (separator[0] == 0)
-        strcpy(buf,"None");
-    return buf;
-}
-
-int main(int argc)
-{
-    ulong   def_flags;
-    int trace = false;
-
-    if (argc > 1)
-        trace = true;
-    memset(&M, 0, sizeof(M));
-    def_flags = get_flags_asm() & ~ALL_FLAGS;
-
-    VAL_WORD_UNARY(aaa_word);
-    VAL_WORD_UNARY(aas_word);
-
-    VAL_WORD_UNARY(aad_word);
-    VAL_WORD_UNARY(aam_word);
-
-    VAL_BYTE_BYTE_BINARY(adc_byte);
-    VAL_WORD_WORD_BINARY(adc_word);
-    VAL_LONG_LONG_BINARY(adc_long);
-
-    VAL_BYTE_BYTE_BINARY(add_byte);
-    VAL_WORD_WORD_BINARY(add_word);
-    VAL_LONG_LONG_BINARY(add_long);
-
-    VAL_BYTE_BYTE_BINARY(and_byte);
-    VAL_WORD_WORD_BINARY(and_word);
-    VAL_LONG_LONG_BINARY(and_long);
-
-    VAL_BYTE_BYTE_BINARY(cmp_byte);
-    VAL_WORD_WORD_BINARY(cmp_word);
-    VAL_LONG_LONG_BINARY(cmp_long);
-
-    VAL_BYTE_UNARY(daa_byte);
-    VAL_BYTE_UNARY(das_byte);   // Fails for 0x9A (out of range anyway)
-
-    VAL_BYTE_UNARY(dec_byte);
-    VAL_WORD_UNARY(dec_word);
-    VAL_LONG_UNARY(dec_long);
-
-    VAL_BYTE_UNARY(inc_byte);
-    VAL_WORD_UNARY(inc_word);
-    VAL_LONG_UNARY(inc_long);
-
-    VAL_BYTE_BYTE_BINARY(or_byte);
-    VAL_WORD_WORD_BINARY(or_word);
-    VAL_LONG_LONG_BINARY(or_long);
-
-    VAL_BYTE_UNARY(neg_byte);
-    VAL_WORD_UNARY(neg_word);
-    VAL_LONG_UNARY(neg_long);
-
-    VAL_BYTE_UNARY(not_byte);
-    VAL_WORD_UNARY(not_word);
-    VAL_LONG_UNARY(not_long);
-
-    VAL_BYTE_ROTATE(rcl_byte);
-    VAL_WORD_ROTATE(rcl_word);
-    VAL_LONG_ROTATE(rcl_long);
-
-    VAL_BYTE_ROTATE(rcr_byte);
-    VAL_WORD_ROTATE(rcr_word);
-    VAL_LONG_ROTATE(rcr_long);
-
-    VAL_BYTE_ROTATE(rol_byte);
-    VAL_WORD_ROTATE(rol_word);
-    VAL_LONG_ROTATE(rol_long);
-
-    VAL_BYTE_ROTATE(ror_byte);
-    VAL_WORD_ROTATE(ror_word);
-    VAL_LONG_ROTATE(ror_long);
-
-    VAL_BYTE_ROTATE(shl_byte);
-    VAL_WORD_ROTATE(shl_word);
-    VAL_LONG_ROTATE(shl_long);
-
-    VAL_BYTE_ROTATE(shr_byte);
-    VAL_WORD_ROTATE(shr_word);
-    VAL_LONG_ROTATE(shr_long);
-
-    VAL_BYTE_ROTATE(sar_byte);
-    VAL_WORD_ROTATE(sar_word);
-    VAL_LONG_ROTATE(sar_long);
-
-    VAL_WORD_ROTATE_DBL(shld_word);
-    VAL_LONG_ROTATE_DBL(shld_long);
-
-    VAL_WORD_ROTATE_DBL(shrd_word);
-    VAL_LONG_ROTATE_DBL(shrd_long);
-
-    VAL_BYTE_BYTE_BINARY(sbb_byte);
-    VAL_WORD_WORD_BINARY(sbb_word);
-    VAL_LONG_LONG_BINARY(sbb_long);
-
-    VAL_BYTE_BYTE_BINARY(sub_byte);
-    VAL_WORD_WORD_BINARY(sub_word);
-    VAL_LONG_LONG_BINARY(sub_long);
-
-    VAL_BYTE_BYTE_BINARY(xor_byte);
-    VAL_WORD_WORD_BINARY(xor_word);
-    VAL_LONG_LONG_BINARY(xor_long);
-
-    VAL_VOID_BYTE_BINARY(test_byte);
-    VAL_VOID_WORD_BINARY(test_word);
-    VAL_VOID_LONG_BINARY(test_long);
-
-    VAL_BYTE_MUL(imul_byte);
-    VAL_WORD_MUL(imul_word);
-    VAL_LONG_MUL(imul_long);
-
-    VAL_BYTE_MUL(mul_byte);
-    VAL_WORD_MUL(mul_word);
-    VAL_LONG_MUL(mul_long);
-
-    VAL_BYTE_DIV(idiv_byte);
-    VAL_WORD_DIV(idiv_word);
-    VAL_LONG_DIV(idiv_long);
-
-    VAL_BYTE_DIV(div_byte);
-    VAL_WORD_DIV(div_word);
-    VAL_LONG_DIV(div_long);
-
-    return 0;
-}
diff --git a/src/hwinfo/src/x86emu/x86emu/debug.h b/src/hwinfo/src/x86emu/x86emu/debug.h
deleted file mode 100644 (file)
index 8abedf6..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  Header file for debug definitions.
-*
-****************************************************************************/
-/* $XFree86: xc/extras/x86emu/src/x86emu/x86emu/debug.h,v 1.3 2000/04/19 15:48:15 tsi Exp $ */
-
-#ifndef __X86EMU_DEBUG_H
-#define __X86EMU_DEBUG_H
-
-/*---------------------- Macros and type definitions ----------------------*/
-
-/* checks to be enabled for "runtime" */
-
-#define CHECK_IP_FETCH_F                0x1
-#define CHECK_SP_ACCESS_F               0x2
-#define CHECK_MEM_ACCESS_F              0x4 /*using regular linear pointer */
-#define CHECK_DATA_ACCESS_F             0x8 /*using segment:offset*/
-
-#ifdef DEBUG
-# define CHECK_IP_FETCH()                      (M.x86.check & CHECK_IP_FETCH_F)
-# define CHECK_SP_ACCESS()                     (M.x86.check & CHECK_SP_ACCESS_F)
-# define CHECK_MEM_ACCESS()                    (M.x86.check & CHECK_MEM_ACCESS_F)
-# define CHECK_DATA_ACCESS()                   (M.x86.check & CHECK_DATA_ACCESS_F)
-#else
-# define CHECK_IP_FETCH()
-# define CHECK_SP_ACCESS()
-# define CHECK_MEM_ACCESS()
-# define CHECK_DATA_ACCESS()
-#endif
-
-#ifdef DEBUG
-# define DEBUG_INSTRUMENT()            (M.x86.debug & DEBUG_INSTRUMENT_F)
-# define DEBUG_DECODE()                (M.x86.debug & DEBUG_DECODE_F)
-# define DEBUG_TRACE()                 (M.x86.debug & DEBUG_TRACE_F)
-# define DEBUG_STEP()                  (M.x86.debug & DEBUG_STEP_F)
-# define DEBUG_DISASSEMBLE()           (M.x86.debug & DEBUG_DISASSEMBLE_F)
-# define DEBUG_BREAK()                 (M.x86.debug & DEBUG_BREAK_F)
-# define DEBUG_SVC()                   (M.x86.debug & DEBUG_SVC_F)
-# define DEBUG_SAVE_IP_CS()     (M.x86.debug & DEBUG_SAVE_IP_CS_F)
-
-# define DEBUG_FS()                    (M.x86.debug & DEBUG_FS_F)
-# define DEBUG_PROC()                  (M.x86.debug & DEBUG_PROC_F)
-# define DEBUG_SYSINT()                (M.x86.debug & DEBUG_SYSINT_F)
-# define DEBUG_TRACECALL()             (M.x86.debug & DEBUG_TRACECALL_F)
-# define DEBUG_TRACECALLREGS()         (M.x86.debug & DEBUG_TRACECALL_REGS_F)
-# define DEBUG_SYS()                   (M.x86.debug & DEBUG_SYS_F)
-# define DEBUG_MEM_TRACE()             (M.x86.debug & DEBUG_MEM_TRACE_F)
-# define DEBUG_IO_TRACE()              (M.x86.debug & DEBUG_IO_TRACE_F)
-# define DEBUG_DECODE_NOPRINT() (M.x86.debug & DEBUG_DECODE_NOPRINT_F)
-#else
-# define DEBUG_INSTRUMENT()            0
-# define DEBUG_DECODE()                0
-# define DEBUG_TRACE()                 0
-# define DEBUG_STEP()                  0
-# define DEBUG_DISASSEMBLE()           0
-# define DEBUG_BREAK()                 0
-# define DEBUG_SVC()                   0
-# define DEBUG_SAVE_IP_CS()     0
-# define DEBUG_FS()                    0
-# define DEBUG_PROC()                  0
-# define DEBUG_SYSINT()                0
-# define DEBUG_TRACECALL()             0
-# define DEBUG_TRACECALLREGS()         0
-# define DEBUG_SYS()                   0
-# define DEBUG_MEM_TRACE()             0
-# define DEBUG_IO_TRACE()              0
-# define DEBUG_DECODE_NOPRINT() 0
-#endif
-
-#ifdef DEBUG
-
-# define DECODE_PRINTF(x)      if (DEBUG_DECODE()) \
-                                                                       x86emu_decode_printf(x)
-# define DECODE_PRINTF2(x,y)   if (DEBUG_DECODE()) \
-                                                                       x86emu_decode_printf2(x,y)
-
-/*
- * The following allow us to look at the bytes of an instruction.  The
- * first INCR_INSTRN_LEN, is called everytime bytes are consumed in
- * the decoding process.  The SAVE_IP_CS is called initially when the
- * major opcode of the instruction is accessed.
- */
-#define INC_DECODED_INST_LEN(x)                        \
-       if (DEBUG_DECODE())                             \
-               x86emu_inc_decoded_inst_len(x)
-
-#define SAVE_IP_CS(x,y)                                                \
-       if (DEBUG_DECODE() | DEBUG_TRACECALL() | DEBUG_BREAK() \
-              | DEBUG_IO_TRACE() | DEBUG_SAVE_IP_CS()) { \
-               M.x86.saved_cs = x;                                             \
-               M.x86.saved_ip = y;                                             \
-       }
-#else
-# define INC_DECODED_INST_LEN(x)
-# define DECODE_PRINTF(x)
-# define DECODE_PRINTF2(x,y)
-# define SAVE_IP_CS(x,y)
-#endif
-
-#ifdef DEBUG
-#define TRACE_REGS()                                                   \
-       if (DEBUG_DISASSEMBLE()) {                                      \
-               x86emu_just_disassemble();                              \
-               goto EndOfTheInstructionProcedure;                      \
-       }                                                       \
-       if (DEBUG_TRACE() || DEBUG_DECODE()) X86EMU_trace_regs()
-#else
-# define TRACE_REGS()
-#endif
-
-#ifdef DEBUG
-# define SINGLE_STEP()         if (DEBUG_STEP()) x86emu_single_step()
-#else
-# define SINGLE_STEP()
-#endif
-
-#define TRACE_AND_STEP()       \
-       TRACE_REGS();                   \
-       SINGLE_STEP()
-
-#ifdef DEBUG
-# define START_OF_INSTR()
-# define END_OF_INSTR()                EndOfTheInstructionProcedure: x86emu_end_instr();
-# define END_OF_INSTR_NO_TRACE()       x86emu_end_instr();
-#else
-# define START_OF_INSTR()
-# define END_OF_INSTR()
-# define END_OF_INSTR_NO_TRACE()
-#endif
-
-#ifdef DEBUG
-# define  CALL_TRACE(u,v,w,x,s)                                 \
-       if (DEBUG_TRACECALLREGS())                                                                      \
-               x86emu_dump_regs();                                     \
-       if (DEBUG_TRACECALL())                                          \
-               printk("%04x:%04x: CALL %s%04x:%04x\n", u , v, s, w, x);
-# define RETURN_TRACE(n,u,v)                                    \
-       if (DEBUG_TRACECALLREGS())                                                                      \
-               x86emu_dump_regs();                                     \
-       if (DEBUG_TRACECALL())                                          \
-               printk("%04x:%04x: %s\n",u,v,n);
-#else
-# define CALL_TRACE(u,v,w,x,s)
-# define RETURN_TRACE(n,u,v)
-#endif
-
-#ifdef DEBUG
-#define        DB(x)   x
-#else
-#define        DB(x)
-#endif
-
-/*-------------------------- Function Prototypes --------------------------*/
-
-#ifdef  __cplusplus
-extern "C" {                                   /* Use "C" linkage when in C++ mode */
-#endif
-
-extern void x86emu_inc_decoded_inst_len (int x);
-extern void x86emu_decode_printf (char *x);
-extern void x86emu_decode_printf2 (char *x, int y);
-extern void x86emu_just_disassemble (void);
-extern void x86emu_single_step (void);
-extern void x86emu_end_instr (void);
-extern void x86emu_dump_regs (void);
-extern void x86emu_dump_xregs (void);
-extern void x86emu_print_int_vect (u16 iv);
-extern void x86emu_instrument_instruction (void);
-extern void x86emu_check_ip_access (void);
-extern void x86emu_check_sp_access (void);
-extern void x86emu_check_mem_access (u32 p);
-extern void x86emu_check_data_access (uint s, uint o);
-
-#ifdef  __cplusplus
-}                                              /* End of "C" linkage for C++           */
-#endif
-
-#endif /* __X86EMU_DEBUG_H */
diff --git a/src/hwinfo/src/x86emu/x86emu/decode.h b/src/hwinfo/src/x86emu/x86emu/decode.h
deleted file mode 100644 (file)
index bb2bc0b..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  Header file for instruction decoding logic.
-*
-****************************************************************************/
-/* $XFree86$ */
-
-#ifndef __X86EMU_DECODE_H
-#define __X86EMU_DECODE_H
-
-/*---------------------- Macros and type definitions ----------------------*/
-
-/* Instruction Decoding Stuff */
-
-#define FETCH_DECODE_MODRM(mod,rh,rl)  fetch_decode_modrm(&mod,&rh,&rl)
-#define DECODE_RM_BYTE_REGISTER(r)     decode_rm_byte_register(r)
-#define DECODE_RM_WORD_REGISTER(r)     decode_rm_word_register(r)
-#define DECODE_RM_LONG_REGISTER(r)     decode_rm_long_register(r)
-#define DECODE_CLEAR_SEGOVR()          M.x86.mode &= ~SYSMODE_CLRMASK
-
-/*-------------------------- Function Prototypes --------------------------*/
-
-#ifdef  __cplusplus
-extern "C" {                                   /* Use "C" linkage when in C++ mode */
-#endif
-
-void   x86emu_intr_raise (u8 type);
-void    fetch_decode_modrm (int *mod,int *regh,int *regl);
-u8      fetch_byte_imm (void);
-u16     fetch_word_imm (void);
-u32     fetch_long_imm (void);
-u8      fetch_data_byte (uint offset);
-u8      fetch_data_byte_abs (uint segment, uint offset);
-u16     fetch_data_word (uint offset);
-u16     fetch_data_word_abs (uint segment, uint offset);
-u32     fetch_data_long (uint offset);
-u32     fetch_data_long_abs (uint segment, uint offset);
-void    store_data_byte (uint offset, u8 val);
-void    store_data_byte_abs (uint segment, uint offset, u8 val);
-void    store_data_word (uint offset, u16 val);
-void    store_data_word_abs (uint segment, uint offset, u16 val);
-void    store_data_long (uint offset, u32 val);
-void    store_data_long_abs (uint segment, uint offset, u32 val);
-u8*    decode_rm_byte_register(int reg);
-u16*   decode_rm_word_register(int reg);
-u32*   decode_rm_long_register(int reg);
-u16*   decode_rm_seg_register(int reg);
-u32    decode_rm00_address(int rm);
-u32    decode_rm01_address(int rm);
-u32    decode_rm10_address(int rm);
-u32    decode_sib_address(int sib, int mod);
-
-#ifdef  __cplusplus
-}                                              /* End of "C" linkage for C++           */
-#endif
-
-#endif /* __X86EMU_DECODE_H */
diff --git a/src/hwinfo/src/x86emu/x86emu/fpu.h b/src/hwinfo/src/x86emu/x86emu/fpu.h
deleted file mode 100644 (file)
index 5fb2714..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  Header file for FPU instruction decoding.
-*
-****************************************************************************/
-
-#ifndef __X86EMU_FPU_H
-#define __X86EMU_FPU_H
-
-#ifdef  __cplusplus
-extern "C" {                                   /* Use "C" linkage when in C++ mode */
-#endif
-
-/* these have to be defined, whether 8087 support compiled in or not. */
-
-extern void x86emuOp_esc_coprocess_d8 (u8 op1);
-extern void x86emuOp_esc_coprocess_d9 (u8 op1);
-extern void x86emuOp_esc_coprocess_da (u8 op1);
-extern void x86emuOp_esc_coprocess_db (u8 op1);
-extern void x86emuOp_esc_coprocess_dc (u8 op1);
-extern void x86emuOp_esc_coprocess_dd (u8 op1);
-extern void x86emuOp_esc_coprocess_de (u8 op1);
-extern void x86emuOp_esc_coprocess_df (u8 op1);
-
-#ifdef  __cplusplus
-}                                              /* End of "C" linkage for C++           */
-#endif
-
-#endif /* __X86EMU_FPU_H */
diff --git a/src/hwinfo/src/x86emu/x86emu/ops.h b/src/hwinfo/src/x86emu/x86emu/ops.h
deleted file mode 100644 (file)
index 65ea676..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  Header file for operand decoding functions.
-*
-****************************************************************************/
-
-#ifndef __X86EMU_OPS_H
-#define __X86EMU_OPS_H
-
-extern void (*x86emu_optab[0x100])(u8 op1);
-extern void (*x86emu_optab2[0x100])(u8 op2);
-
-#endif /* __X86EMU_OPS_H */
diff --git a/src/hwinfo/src/x86emu/x86emu/prim_asm.h b/src/hwinfo/src/x86emu/x86emu/prim_asm.h
deleted file mode 100644 (file)
index 041255f..0000000
+++ /dev/null
@@ -1,971 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            Watcom C++ 10.6 or later
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  Inline assembler versions of the primitive operand
-*                              functions for faster performance. At the moment this is
-*                              x86 inline assembler, but these functions could be replaced
-*                              with native inline assembler for each supported processor
-*                              platform.
-*
-****************************************************************************/
-/* $XFree86$ */
-
-#ifndef        __X86EMU_PRIM_ASM_H
-#define        __X86EMU_PRIM_ASM_H
-
-#ifdef __WATCOMC__
-
-#ifndef        VALIDATE
-#define        __HAVE_INLINE_ASSEMBLER__
-#endif
-
-u32            get_flags_asm(void);
-#pragma aux get_flags_asm =                    \
-       "pushf"                         \
-       "pop    eax"                    \
-       value [eax]                     \
-       modify exact [eax];
-
-u16     aaa_word_asm(u32 *flags,u16 d);
-#pragma aux aaa_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "aaa"                                   \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax]                                 \
-       value [ax]                      \
-       modify exact [ax];
-
-u16     aas_word_asm(u32 *flags,u16 d);
-#pragma aux aas_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "aas"                                   \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax]                                 \
-       value [ax]                      \
-       modify exact [ax];
-
-u16     aad_word_asm(u32 *flags,u16 d);
-#pragma aux aad_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "aad"                                   \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax]                                 \
-       value [ax]                      \
-       modify exact [ax];
-
-u16     aam_word_asm(u32 *flags,u8 d);
-#pragma aux aam_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "aam"                                   \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al]                                 \
-       value [ax]                      \
-       modify exact [ax];
-
-u8      adc_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux adc_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "adc    al,bl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [bl]            \
-       value [al]                      \
-       modify exact [al bl];
-
-u16     adc_word_asm(u32 *flags,u16 d, u16 s);
-#pragma aux adc_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "adc    ax,bx"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [bx]            \
-       value [ax]                      \
-       modify exact [ax bx];
-
-u32     adc_long_asm(u32 *flags,u32 d, u32 s);
-#pragma aux adc_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "adc    eax,ebx"                \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [ebx]          \
-       value [eax]                     \
-       modify exact [eax ebx];
-
-u8      add_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux add_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "add    al,bl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [bl]            \
-       value [al]                      \
-       modify exact [al bl];
-
-u16     add_word_asm(u32 *flags,u16 d, u16 s);
-#pragma aux add_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "add    ax,bx"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [bx]            \
-       value [ax]                      \
-       modify exact [ax bx];
-
-u32     add_long_asm(u32 *flags,u32 d, u32 s);
-#pragma aux add_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "add    eax,ebx"                \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [ebx]          \
-       value [eax]                     \
-       modify exact [eax ebx];
-
-u8      and_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux and_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "and    al,bl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [bl]            \
-       value [al]                      \
-       modify exact [al bl];
-
-u16     and_word_asm(u32 *flags,u16 d, u16 s);
-#pragma aux and_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "and    ax,bx"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [bx]            \
-       value [ax]                      \
-       modify exact [ax bx];
-
-u32     and_long_asm(u32 *flags,u32 d, u32 s);
-#pragma aux and_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "and    eax,ebx"                \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [ebx]          \
-       value [eax]                     \
-       modify exact [eax ebx];
-
-u8      cmp_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux cmp_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "cmp    al,bl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [bl]            \
-       value [al]                      \
-       modify exact [al bl];
-
-u16     cmp_word_asm(u32 *flags,u16 d, u16 s);
-#pragma aux cmp_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "cmp    ax,bx"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [bx]            \
-       value [ax]                      \
-       modify exact [ax bx];
-
-u32     cmp_long_asm(u32 *flags,u32 d, u32 s);
-#pragma aux cmp_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "cmp    eax,ebx"                \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [ebx]          \
-       value [eax]                     \
-       modify exact [eax ebx];
-
-u8      daa_byte_asm(u32 *flags,u8 d);
-#pragma aux daa_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "daa"                                   \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al]                         \
-       value [al]                      \
-       modify exact [al];
-
-u8      das_byte_asm(u32 *flags,u8 d);
-#pragma aux das_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "das"                                   \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al]                         \
-       value [al]                      \
-       modify exact [al];
-
-u8      dec_byte_asm(u32 *flags,u8 d);
-#pragma aux dec_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "dec    al"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al]                         \
-       value [al]                      \
-       modify exact [al];
-
-u16     dec_word_asm(u32 *flags,u16 d);
-#pragma aux dec_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "dec    ax"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax]                         \
-       value [ax]                      \
-       modify exact [ax];
-
-u32     dec_long_asm(u32 *flags,u32 d);
-#pragma aux dec_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "dec    eax"                    \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax]                        \
-       value [eax]                     \
-       modify exact [eax];
-
-u8      inc_byte_asm(u32 *flags,u8 d);
-#pragma aux inc_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "inc    al"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al]                         \
-       value [al]                      \
-       modify exact [al];
-
-u16     inc_word_asm(u32 *flags,u16 d);
-#pragma aux inc_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "inc    ax"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax]                         \
-       value [ax]                      \
-       modify exact [ax];
-
-u32     inc_long_asm(u32 *flags,u32 d);
-#pragma aux inc_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "inc    eax"                    \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax]                        \
-       value [eax]                     \
-       modify exact [eax];
-
-u8      or_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux or_byte_asm =                      \
-       "push   [edi]"                          \
-       "popf"                          \
-       "or     al,bl"                          \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [bl]            \
-       value [al]                      \
-       modify exact [al bl];
-
-u16     or_word_asm(u32 *flags,u16 d, u16 s);
-#pragma aux or_word_asm =                      \
-       "push   [edi]"                          \
-       "popf"                          \
-       "or     ax,bx"                          \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [bx]            \
-       value [ax]                      \
-       modify exact [ax bx];
-
-u32     or_long_asm(u32 *flags,u32 d, u32 s);
-#pragma aux or_long_asm =                      \
-       "push   [edi]"                          \
-       "popf"                          \
-       "or     eax,ebx"                        \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [ebx]          \
-       value [eax]                     \
-       modify exact [eax ebx];
-
-u8      neg_byte_asm(u32 *flags,u8 d);
-#pragma aux neg_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "neg    al"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al]                         \
-       value [al]                      \
-       modify exact [al];
-
-u16     neg_word_asm(u32 *flags,u16 d);
-#pragma aux neg_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "neg    ax"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax]                         \
-       value [ax]                      \
-       modify exact [ax];
-
-u32     neg_long_asm(u32 *flags,u32 d);
-#pragma aux neg_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "neg    eax"                    \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax]                        \
-       value [eax]                     \
-       modify exact [eax];
-
-u8      not_byte_asm(u32 *flags,u8 d);
-#pragma aux not_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "not    al"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al]                         \
-       value [al]                      \
-       modify exact [al];
-
-u16     not_word_asm(u32 *flags,u16 d);
-#pragma aux not_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "not    ax"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax]                         \
-       value [ax]                      \
-       modify exact [ax];
-
-u32     not_long_asm(u32 *flags,u32 d);
-#pragma aux not_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "not    eax"                    \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax]                        \
-       value [eax]                     \
-       modify exact [eax];
-
-u8      rcl_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux rcl_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "rcl    al,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [cl]            \
-       value [al]                      \
-       modify exact [al cl];
-
-u16     rcl_word_asm(u32 *flags,u16 d, u8 s);
-#pragma aux rcl_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "rcl    ax,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [cl]            \
-       value [ax]                      \
-       modify exact [ax cl];
-
-u32     rcl_long_asm(u32 *flags,u32 d, u8 s);
-#pragma aux rcl_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "rcl    eax,cl"                 \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [cl]           \
-       value [eax]                     \
-       modify exact [eax cl];
-
-u8      rcr_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux rcr_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "rcr    al,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [cl]            \
-       value [al]                      \
-       modify exact [al cl];
-
-u16     rcr_word_asm(u32 *flags,u16 d, u8 s);
-#pragma aux rcr_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "rcr    ax,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [cl]            \
-       value [ax]                      \
-       modify exact [ax cl];
-
-u32     rcr_long_asm(u32 *flags,u32 d, u8 s);
-#pragma aux rcr_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "rcr    eax,cl"                 \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [cl]           \
-       value [eax]                     \
-       modify exact [eax cl];
-
-u8      rol_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux rol_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "rol    al,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [cl]            \
-       value [al]                      \
-       modify exact [al cl];
-
-u16     rol_word_asm(u32 *flags,u16 d, u8 s);
-#pragma aux rol_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "rol    ax,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [cl]            \
-       value [ax]                      \
-       modify exact [ax cl];
-
-u32     rol_long_asm(u32 *flags,u32 d, u8 s);
-#pragma aux rol_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "rol    eax,cl"                 \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [cl]           \
-       value [eax]                     \
-       modify exact [eax cl];
-
-u8      ror_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux ror_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "ror    al,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [cl]            \
-       value [al]                      \
-       modify exact [al cl];
-
-u16     ror_word_asm(u32 *flags,u16 d, u8 s);
-#pragma aux ror_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "ror    ax,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [cl]            \
-       value [ax]                      \
-       modify exact [ax cl];
-
-u32     ror_long_asm(u32 *flags,u32 d, u8 s);
-#pragma aux ror_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "ror    eax,cl"                 \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [cl]           \
-       value [eax]                     \
-       modify exact [eax cl];
-
-u8      shl_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux shl_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "shl    al,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [cl]            \
-       value [al]                      \
-       modify exact [al cl];
-
-u16     shl_word_asm(u32 *flags,u16 d, u8 s);
-#pragma aux shl_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "shl    ax,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [cl]            \
-       value [ax]                      \
-       modify exact [ax cl];
-
-u32     shl_long_asm(u32 *flags,u32 d, u8 s);
-#pragma aux shl_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "shl    eax,cl"                 \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [cl]           \
-       value [eax]                     \
-       modify exact [eax cl];
-
-u8      shr_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux shr_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "shr    al,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [cl]            \
-       value [al]                      \
-       modify exact [al cl];
-
-u16     shr_word_asm(u32 *flags,u16 d, u8 s);
-#pragma aux shr_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "shr    ax,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [cl]            \
-       value [ax]                      \
-       modify exact [ax cl];
-
-u32     shr_long_asm(u32 *flags,u32 d, u8 s);
-#pragma aux shr_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "shr    eax,cl"                 \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [cl]           \
-       value [eax]                     \
-       modify exact [eax cl];
-
-u8      sar_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux sar_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "sar    al,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [cl]            \
-       value [al]                      \
-       modify exact [al cl];
-
-u16     sar_word_asm(u32 *flags,u16 d, u8 s);
-#pragma aux sar_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "sar    ax,cl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [cl]            \
-       value [ax]                      \
-       modify exact [ax cl];
-
-u32     sar_long_asm(u32 *flags,u32 d, u8 s);
-#pragma aux sar_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "sar    eax,cl"                 \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [cl]           \
-       value [eax]                     \
-       modify exact [eax cl];
-
-u16            shld_word_asm(u32 *flags,u16 d, u16 fill, u8 s);
-#pragma aux shld_word_asm =                    \
-       "push   [edi]"                          \
-       "popf"                          \
-       "shld   ax,dx,cl"               \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [dx] [cl]       \
-       value [ax]                      \
-       modify exact [ax dx cl];
-
-u32     shld_long_asm(u32 *flags,u32 d, u32 fill, u8 s);
-#pragma aux shld_long_asm =                    \
-       "push   [edi]"                          \
-       "popf"                          \
-       "shld   eax,edx,cl"             \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [edx] [cl]     \
-       value [eax]                     \
-       modify exact [eax edx cl];
-
-u16            shrd_word_asm(u32 *flags,u16 d, u16 fill, u8 s);
-#pragma aux shrd_word_asm =                    \
-       "push   [edi]"                          \
-       "popf"                          \
-       "shrd   ax,dx,cl"               \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [dx] [cl]       \
-       value [ax]                      \
-       modify exact [ax dx cl];
-
-u32     shrd_long_asm(u32 *flags,u32 d, u32 fill, u8 s);
-#pragma aux shrd_long_asm =                    \
-       "push   [edi]"                          \
-       "popf"                          \
-       "shrd   eax,edx,cl"             \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [edx] [cl]     \
-       value [eax]                     \
-       modify exact [eax edx cl];
-
-u8      sbb_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux sbb_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "sbb    al,bl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [bl]            \
-       value [al]                      \
-       modify exact [al bl];
-
-u16     sbb_word_asm(u32 *flags,u16 d, u16 s);
-#pragma aux sbb_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "sbb    ax,bx"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [bx]            \
-       value [ax]                      \
-       modify exact [ax bx];
-
-u32     sbb_long_asm(u32 *flags,u32 d, u32 s);
-#pragma aux sbb_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "sbb    eax,ebx"                \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [ebx]          \
-       value [eax]                     \
-       modify exact [eax ebx];
-
-u8      sub_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux sub_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "sub    al,bl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [bl]            \
-       value [al]                      \
-       modify exact [al bl];
-
-u16     sub_word_asm(u32 *flags,u16 d, u16 s);
-#pragma aux sub_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "sub    ax,bx"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [bx]            \
-       value [ax]                      \
-       modify exact [ax bx];
-
-u32     sub_long_asm(u32 *flags,u32 d, u32 s);
-#pragma aux sub_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "sub    eax,ebx"                \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [ebx]          \
-       value [eax]                     \
-       modify exact [eax ebx];
-
-void   test_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux test_byte_asm =                    \
-       "push   [edi]"                          \
-       "popf"                          \
-       "test   al,bl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [bl]            \
-       modify exact [al bl];
-
-void   test_word_asm(u32 *flags,u16 d, u16 s);
-#pragma aux test_word_asm =                    \
-       "push   [edi]"                          \
-       "popf"                          \
-       "test   ax,bx"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [bx]            \
-       modify exact [ax bx];
-
-void   test_long_asm(u32 *flags,u32 d, u32 s);
-#pragma aux test_long_asm =                    \
-       "push   [edi]"                          \
-       "popf"                          \
-       "test   eax,ebx"                \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [ebx]          \
-       modify exact [eax ebx];
-
-u8      xor_byte_asm(u32 *flags,u8 d, u8 s);
-#pragma aux xor_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "xor    al,bl"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [al] [bl]            \
-       value [al]                      \
-       modify exact [al bl];
-
-u16     xor_word_asm(u32 *flags,u16 d, u16 s);
-#pragma aux xor_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "xor    ax,bx"                  \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [ax] [bx]            \
-       value [ax]                      \
-       modify exact [ax bx];
-
-u32     xor_long_asm(u32 *flags,u32 d, u32 s);
-#pragma aux xor_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "xor    eax,ebx"                \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       parm [edi] [eax] [ebx]          \
-       value [eax]                     \
-       modify exact [eax ebx];
-
-void    imul_byte_asm(u32 *flags,u16 *ax,u8 d,u8 s);
-#pragma aux imul_byte_asm =                    \
-       "push   [edi]"                          \
-       "popf"                          \
-       "imul   bl"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       "mov    [esi],ax"                               \
-       parm [edi] [esi] [al] [bl]      \
-       modify exact [esi ax bl];
-
-void    imul_word_asm(u32 *flags,u16 *ax,u16 *dx,u16 d,u16 s);
-#pragma aux imul_word_asm =                    \
-       "push   [edi]"                          \
-       "popf"                          \
-       "imul   bx"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       "mov    [esi],ax"                               \
-       "mov    [ecx],dx"                               \
-       parm [edi] [esi] [ecx] [ax] [bx]\
-       modify exact [esi edi ax bx dx];
-
-void    imul_long_asm(u32 *flags,u32 *eax,u32 *edx,u32 d,u32 s);
-#pragma aux imul_long_asm =                    \
-       "push   [edi]"                          \
-       "popf"                          \
-       "imul   ebx"                    \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       "mov    [esi],eax"                              \
-       "mov    [ecx],edx"                              \
-       parm [edi] [esi] [ecx] [eax] [ebx] \
-       modify exact [esi edi eax ebx edx];
-
-void    mul_byte_asm(u32 *flags,u16 *ax,u8 d,u8 s);
-#pragma aux mul_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "mul    bl"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       "mov    [esi],ax"                               \
-       parm [edi] [esi] [al] [bl]      \
-       modify exact [esi ax bl];
-
-void    mul_word_asm(u32 *flags,u16 *ax,u16 *dx,u16 d,u16 s);
-#pragma aux mul_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "mul    bx"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       "mov    [esi],ax"                               \
-       "mov    [ecx],dx"                               \
-       parm [edi] [esi] [ecx] [ax] [bx]\
-       modify exact [esi edi ax bx dx];
-
-void    mul_long_asm(u32 *flags,u32 *eax,u32 *edx,u32 d,u32 s);
-#pragma aux mul_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "mul    ebx"                    \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       "mov    [esi],eax"                              \
-       "mov    [ecx],edx"                              \
-       parm [edi] [esi] [ecx] [eax] [ebx] \
-       modify exact [esi edi eax ebx edx];
-
-void   idiv_byte_asm(u32 *flags,u8 *al,u8 *ah,u16 d,u8 s);
-#pragma aux idiv_byte_asm =                    \
-       "push   [edi]"                          \
-       "popf"                          \
-       "idiv   bl"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       "mov    [esi],al"                               \
-       "mov    [ecx],ah"                               \
-       parm [edi] [esi] [ecx] [ax] [bl]\
-       modify exact [esi edi ax bl];
-
-void   idiv_word_asm(u32 *flags,u16 *ax,u16 *dx,u16 dlo,u16 dhi,u16 s);
-#pragma aux idiv_word_asm =                    \
-       "push   [edi]"                          \
-       "popf"                          \
-       "idiv   bx"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       "mov    [esi],ax"                               \
-       "mov    [ecx],dx"                               \
-       parm [edi] [esi] [ecx] [ax] [dx] [bx]\
-       modify exact [esi edi ax dx bx];
-
-void   idiv_long_asm(u32 *flags,u32 *eax,u32 *edx,u32 dlo,u32 dhi,u32 s);
-#pragma aux idiv_long_asm =                    \
-       "push   [edi]"                          \
-       "popf"                          \
-       "idiv   ebx"                    \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       "mov    [esi],eax"                              \
-       "mov    [ecx],edx"                              \
-       parm [edi] [esi] [ecx] [eax] [edx] [ebx]\
-       modify exact [esi edi eax edx ebx];
-
-void   div_byte_asm(u32 *flags,u8 *al,u8 *ah,u16 d,u8 s);
-#pragma aux div_byte_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "div    bl"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       "mov    [esi],al"                               \
-       "mov    [ecx],ah"                               \
-       parm [edi] [esi] [ecx] [ax] [bl]\
-       modify exact [esi edi ax bl];
-
-void   div_word_asm(u32 *flags,u16 *ax,u16 *dx,u16 dlo,u16 dhi,u16 s);
-#pragma aux div_word_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "div    bx"                     \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       "mov    [esi],ax"                               \
-       "mov    [ecx],dx"                               \
-       parm [edi] [esi] [ecx] [ax] [dx] [bx]\
-       modify exact [esi edi ax dx bx];
-
-void   div_long_asm(u32 *flags,u32 *eax,u32 *edx,u32 dlo,u32 dhi,u32 s);
-#pragma aux div_long_asm =                     \
-       "push   [edi]"                          \
-       "popf"                          \
-       "div    ebx"                    \
-       "pushf"                         \
-       "pop    [edi]"                          \
-       "mov    [esi],eax"                              \
-       "mov    [ecx],edx"                              \
-       parm [edi] [esi] [ecx] [eax] [edx] [ebx]\
-       modify exact [esi edi eax edx ebx];
-
-#endif
-
-#endif /* __X86EMU_PRIM_ASM_H */
diff --git a/src/hwinfo/src/x86emu/x86emu/prim_ops.h b/src/hwinfo/src/x86emu/x86emu/prim_ops.h
deleted file mode 100644 (file)
index 21ab145..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  Header file for primitive operation functions.
-*
-****************************************************************************/
-
-#ifndef __X86EMU_PRIM_OPS_H
-#define __X86EMU_PRIM_OPS_H
-
-#include "x86emu/prim_asm.h"
-
-#ifdef  __cplusplus
-extern "C" {                                   /* Use "C" linkage when in C++ mode */
-#endif
-
-u16     aaa_word (u16 d);
-u16     aas_word (u16 d);
-u16     aad_word (u16 d);
-u16     aam_word (u8 d);
-u8      adc_byte (u8 d, u8 s);
-u16     adc_word (u16 d, u16 s);
-u32     adc_long (u32 d, u32 s);
-u8      add_byte (u8 d, u8 s);
-u16     add_word (u16 d, u16 s);
-u32     add_long (u32 d, u32 s);
-u8      and_byte (u8 d, u8 s);
-u16     and_word (u16 d, u16 s);
-u32     and_long (u32 d, u32 s);
-u8      cmp_byte (u8 d, u8 s);
-u16     cmp_word (u16 d, u16 s);
-u32     cmp_long (u32 d, u32 s);
-u8      daa_byte (u8 d);
-u8      das_byte (u8 d);
-u8      dec_byte (u8 d);
-u16     dec_word (u16 d);
-u32     dec_long (u32 d);
-u8      inc_byte (u8 d);
-u16     inc_word (u16 d);
-u32     inc_long (u32 d);
-u8      or_byte (u8 d, u8 s);
-u16     or_word (u16 d, u16 s);
-u32     or_long (u32 d, u32 s);
-u8      neg_byte (u8 s);
-u16     neg_word (u16 s);
-u32     neg_long (u32 s);
-u8      not_byte (u8 s);
-u16     not_word (u16 s);
-u32     not_long (u32 s);
-u8      rcl_byte (u8 d, u8 s);
-u16     rcl_word (u16 d, u8 s);
-u32     rcl_long (u32 d, u8 s);
-u8      rcr_byte (u8 d, u8 s);
-u16     rcr_word (u16 d, u8 s);
-u32     rcr_long (u32 d, u8 s);
-u8      rol_byte (u8 d, u8 s);
-u16     rol_word (u16 d, u8 s);
-u32     rol_long (u32 d, u8 s);
-u8      ror_byte (u8 d, u8 s);
-u16     ror_word (u16 d, u8 s);
-u32     ror_long (u32 d, u8 s);
-u8      shl_byte (u8 d, u8 s);
-u16     shl_word (u16 d, u8 s);
-u32     shl_long (u32 d, u8 s);
-u8      shr_byte (u8 d, u8 s);
-u16     shr_word (u16 d, u8 s);
-u32     shr_long (u32 d, u8 s);
-u8      sar_byte (u8 d, u8 s);
-u16     sar_word (u16 d, u8 s);
-u32     sar_long (u32 d, u8 s);
-u16     shld_word (u16 d, u16 fill, u8 s);
-u32     shld_long (u32 d, u32 fill, u8 s);
-u16     shrd_word (u16 d, u16 fill, u8 s);
-u32     shrd_long (u32 d, u32 fill, u8 s);
-u8      sbb_byte (u8 d, u8 s);
-u16     sbb_word (u16 d, u16 s);
-u32     sbb_long (u32 d, u32 s);
-u8      sub_byte (u8 d, u8 s);
-u16     sub_word (u16 d, u16 s);
-u32     sub_long (u32 d, u32 s);
-void    test_byte (u8 d, u8 s);
-void    test_word (u16 d, u16 s);
-void    test_long (u32 d, u32 s);
-u8      xor_byte (u8 d, u8 s);
-u16     xor_word (u16 d, u16 s);
-u32     xor_long (u32 d, u32 s);
-void    imul_byte (u8 s);
-void    imul_word (u16 s);
-void    imul_long (u32 s);
-void   imul_long_direct(u32 *res_lo, u32* res_hi,u32 d, u32 s);
-void    mul_byte (u8 s);
-void    mul_word (u16 s);
-void    mul_long (u32 s);
-void    idiv_byte (u8 s);
-void    idiv_word (u16 s);
-void    idiv_long (u32 s);
-void    div_byte (u8 s);
-void    div_word (u16 s);
-void    div_long (u32 s);
-void    ins (int size);
-void    outs (int size);
-u16     mem_access_word (int addr);
-void    push_word (u16 w);
-void    push_long (u32 w);
-u16     pop_word (void);
-u32            pop_long (void);
-
-#ifdef  __cplusplus
-}                                              /* End of "C" linkage for C++           */
-#endif
-
-#endif /* __X86EMU_PRIM_OPS_H */
diff --git a/src/hwinfo/src/x86emu/x86emu/x86emui.h b/src/hwinfo/src/x86emu/x86emu/x86emui.h
deleted file mode 100644 (file)
index 3adf61e..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/****************************************************************************
-*
-*                                              Realmode X86 Emulator Library
-*
-*              Copyright (C) 1996-1999 SciTech Software, Inc.
-*                                   Copyright (C) David Mosberger-Tang
-*                                         Copyright (C) 1999 Egbert Eich
-*
-*  ========================================================================
-*
-*  Permission to use, copy, modify, distribute, and sell this software and
-*  its documentation for any purpose is hereby granted without fee,
-*  provided that the above copyright notice appear in all copies and that
-*  both that copyright notice and this permission notice appear in
-*  supporting documentation, and that the name of the authors not be used
-*  in advertising or publicity pertaining to distribution of the software
-*  without specific, written prior permission.  The authors makes no
-*  representations about the suitability of this software for any purpose.
-*  It is provided "as is" without express or implied warranty.
-*
-*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-*  PERFORMANCE OF THIS SOFTWARE.
-*
-*  ========================================================================
-*
-* Language:            ANSI C
-* Environment: Any
-* Developer:    Kendall Bennett
-*
-* Description:  Header file for system specific functions. These functions
-*                              are always compiled and linked in the OS depedent libraries,
-*                              and never in a binary portable driver.
-*
-****************************************************************************/
-
-/* $XFree86: xc/extras/x86emu/src/x86emu/x86emu/x86emui.h,v 1.3 2000/04/17 16:29:47 eich Exp $ */
-
-#ifndef __X86EMU_X86EMUI_H
-#define __X86EMU_X86EMUI_H
-
-/* If we are compiling in C++ mode, we can compile some functions as
- * inline to increase performance (however the code size increases quite
- * dramatically in this case).
- */
-
-#if    defined(__cplusplus) && !defined(_NO_INLINE)
-#define        _INLINE inline
-#else
-#define        _INLINE static
-#endif
-
-/* Get rid of unused parameters in C++ compilation mode */
-
-#ifdef __cplusplus
-#define        X86EMU_UNUSED(v)
-#else
-#define        X86EMU_UNUSED(v)        v
-#endif
-
-#include "x86emu.h"
-#include "x86emu/regs.h"
-#include "x86emu/debug.h"
-#include "x86emu/decode.h"
-#include "x86emu/ops.h"
-#include "x86emu/prim_ops.h"
-#include "x86emu/fpu.h"
-#include "x86emu/fpu_regs.h"
-
-#ifdef IN_MODULE
-#include <xf86_ansic.h>
-#else
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#endif                                                                                           
-/*--------------------------- Inline Functions ----------------------------*/
-
-#ifdef  __cplusplus
-extern "C" {                                   /* Use "C" linkage when in C++ mode */
-#endif
-
-extern u8      (X86APIP sys_rdb)(u32 addr);
-extern u16     (X86APIP sys_rdw)(u32 addr);
-extern u32     (X86APIP sys_rdl)(u32 addr);
-extern void (X86APIP sys_wrb)(u32 addr,u8 val);
-extern void (X86APIP sys_wrw)(u32 addr,u16 val);
-extern void (X86APIP sys_wrl)(u32 addr,u32 val);
-
-extern u8      (X86APIP sys_inb)(X86EMU_pioAddr addr);
-extern u16     (X86APIP sys_inw)(X86EMU_pioAddr addr);
-extern u32     (X86APIP sys_inl)(X86EMU_pioAddr addr);
-extern void (X86APIP sys_outb)(X86EMU_pioAddr addr,u8 val);
-extern void (X86APIP sys_outw)(X86EMU_pioAddr addr,u16 val);
-extern void    (X86APIP sys_outl)(X86EMU_pioAddr addr,u32 val);
-
-#ifdef  __cplusplus
-}                                              /* End of "C" linkage for C++           */
-#endif
-
-#endif /* __X86EMU_X86EMUI_H */
index af9a2f4f9f0656c65e84c82ebad7bc3e7b85030a..0305003c418d50067d3c0f2ebc8d45cfe2ae9cc5 100644 (file)
@@ -7,7 +7,7 @@ PROGS = iowrap
 SUID_PROGS = setdmzholes setportfw setfilters setxtaccess \
        restartsquid restartssh ipfirereboot setaliases \
        ipsecctrl restartntpd restartdhcp restartsnort \
 SUID_PROGS = setdmzholes setportfw setfilters setxtaccess \
        restartsquid restartssh ipfirereboot setaliases \
        ipsecctrl restartntpd restartdhcp restartsnort \
-       restartapplejuice setdate rebuildhosts \
+       restartapplejuice rebuildhosts \
        restartsyslogd logwatch openvpnctrl timecheckctrl \
        restartwireless getipstat qosctrl launch-ether-wake \
        redctrl extrahdctrl sambactrl upnpctrl tripwirectrl \
        restartsyslogd logwatch openvpnctrl timecheckctrl \
        restartwireless getipstat qosctrl launch-ether-wake \
        redctrl extrahdctrl sambactrl upnpctrl tripwirectrl \
index 2a573b6e5b2d9313a98b158809afbc6461fd649e..9991ee646de59af81fbf0c6572d6277100bc8b53 100644 (file)
@@ -174,8 +174,6 @@ if (strcmp(argv[1], "enable")==0)
 {
 safe_system("touch /var/ipfire/samba/enable");
 safe_system("/etc/rc.d/init.d/samba start ");
 {
 safe_system("touch /var/ipfire/samba/enable");
 safe_system("/etc/rc.d/init.d/samba start ");
-safe_system("ln -snf /etc/rc.d/init.d/samba /etc/rc.d/rc2.d/S50samba");
-safe_system("ln -snf /etc/rc.d/init.d/samba /etc/rc.d/rc2.d/K50samba");
 safe_system("ln -snf /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/S50samba");
 safe_system("ln -snf /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/K50samba");
 return 0;
 safe_system("ln -snf /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/S50samba");
 safe_system("ln -snf /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/K50samba");
 return 0;
@@ -183,12 +181,8 @@ return 0;
 
 if (strcmp(argv[1], "disable")==0)
 {
 
 if (strcmp(argv[1], "disable")==0)
 {
-safe_system("unlink /var/ipfire/samba/enable");
 safe_system("/etc/rc.d/init.d/samba stop");
 safe_system("/etc/rc.d/init.d/samba stop");
-safe_system("unlink /etc/rc.d/rc2.d/S50samba");
-safe_system("unlink /etc/rc.d/rc2.d/K50samba");
-safe_system("unlink /etc/rc.d/rc3.d/S50samba");
-safe_system("unlink /etc/rc.d/rc3.d/K50samba");
+safe_system("rm -f /etc/rc.d/rc3.d/*samba /var/ipfire/samba/enable 2>/dev/null");
 return 0;
 }
 return 0;
 return 0;
 }
 return 0;
diff --git a/src/misc-progs/setdate.c b/src/misc-progs/setdate.c
deleted file mode 100644 (file)
index e3019a0..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Ipcop helper program - setdate.c\r
- *\r
- * Sets the date and time\r
- *\r
- * (c) Darren Critchley 2003\r
- * \r
- * $Id: setdate.c,v 1.2 2003/12/11 11:25:54 riddles Exp $\r
- * \r
- */\r
-         \r
-#include <stdio.h>\r
-#include <string.h>\r
-#include <unistd.h>\r
-#include <stdlib.h>\r
-#include <sys/types.h>\r
-#include "setuid.h"\r
-\r
-int main(int argc, char *argv[])\r
-{\r
-       char command[STRING_SIZE];\r
-       int a,b,c;\r
-       \r
-       if (!(initsetuid()))\r
-               exit(1);\r
-       \r
-       if (argc < 3)\r
-       {\r
-               fprintf(stderr, "Missing arg\n");\r
-               exit(1);\r
-       }\r
-       \r
-       if (! (strlen(argv[1]) < 11 && sscanf(argv[1], "%d-%d-%d", &a, &b, &c) == 3)\r
-          || (strspn(argv[1], NUMBERS "-" ) != strlen(argv[1])))\r
-       {\r
-               fprintf(stderr, "Bad arg\n");\r
-               exit(1);\r
-       }\r
-\r
-       if (! (strlen(argv[2]) < 6 && sscanf(argv[2], "%d:%d", &a, &b) == 2)\r
-          || (strspn(argv[2], NUMBERS ":" ) != strlen(argv[2])))\r
-       {\r
-               fprintf(stderr, "Bad arg\n");\r
-               exit(1);\r
-       }\r
-\r
-       memset(command, 0, STRING_SIZE);\r
-       snprintf(command, STRING_SIZE - 1, "/bin/date -s '%s %s' >/dev/null", argv[1], argv[2]);\r
-       fprintf(stderr, "Setting Date: %s %s\n", argv[1], argv[2]);\r
-       safe_system(command);\r
-       \r
-       return 0;\r
-}\r
diff --git a/src/paks/amavisd/ROOTFILES b/src/paks/amavisd/ROOTFILES
deleted file mode 100644 (file)
index abe6f56..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-etc/amavisd.conf
-usr/local/bin/amavisd
-var/amavis
-var/virusmails
diff --git a/src/paks/amavisd/depends.txt b/src/paks/amavisd/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/amavisd/install.sh b/src/paks/amavisd/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/amavisd/uninstall.sh b/src/paks/amavisd/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/applejuice/ROOTFILES b/src/paks/applejuice/ROOTFILES
deleted file mode 100644 (file)
index 82fc43f..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-etc/init.d/applejuice
-opt/applejuice
-opt/applejuice/ajcore.jar
-opt/applejuice/libajnetmask.so
-home/httpd/phpaj
-home/httpd/phpaj/export
-home/httpd/phpaj/export/Default.php
-home/httpd/phpaj/export/ajl.php
-home/httpd/phpaj/export/bb.php
-home/httpd/phpaj/export/html.php
-home/httpd/phpaj/index.php
-home/httpd/phpaj/language
-home/httpd/phpaj/language/deutsch.xml
-home/httpd/phpaj/language/english.xml
-home/httpd/phpaj/main
-home/httpd/phpaj/main/classes
-home/httpd/phpaj/main/classes/class_core.php
-home/httpd/phpaj/main/classes/class_downloads.php
-home/httpd/phpaj/main/classes/class_icons.php
-home/httpd/phpaj/main/classes/class_search.php
-home/httpd/phpaj/main/classes/class_server.php
-home/httpd/phpaj/main/classes/class_share.php
-home/httpd/phpaj/main/classes/class_uploads.php
-home/httpd/phpaj/main/directory.php
-home/httpd/phpaj/main/dl_parts.php
-home/httpd/phpaj/main/dl_users.php
-home/httpd/phpaj/main/downloads.php
-home/httpd/phpaj/main/extras.php
-home/httpd/phpaj/main/index.php
-home/httpd/phpaj/main/progressbar.php
-home/httpd/phpaj/main/search.php
-home/httpd/phpaj/main/server.php
-home/httpd/phpaj/main/settings.php
-home/httpd/phpaj/main/shareexport.php
-home/httpd/phpaj/main/sharefiles.php
-home/httpd/phpaj/main/shares.php
-home/httpd/phpaj/main/showparts.php
-home/httpd/phpaj/main/start.php
-home/httpd/phpaj/main/status.php
-home/httpd/phpaj/main/subs.php
-home/httpd/phpaj/main/top.php
-home/httpd/phpaj/main/uploads.php
-home/httpd/phpaj/minigui
-home/httpd/phpaj/minigui/downloads.php
-home/httpd/phpaj/minigui/index.php
-home/httpd/phpaj/minigui/minigui.php
-home/httpd/phpaj/plugins
-home/httpd/phpaj/plugins/ajl
-home/httpd/phpaj/plugins/ajl/ajl.php
-home/httpd/phpaj/plugins/ajl/icon.gif
-home/httpd/phpaj/plugins/ajl/info.php
-home/httpd/phpaj/plugins/register.php
-home/httpd/phpaj/plugins/sharestats
-home/httpd/phpaj/plugins/sharestats/info.php
-home/httpd/phpaj/plugins/sharestats/sharestats.php
-home/httpd/phpaj/plugins/versionchecker
-home/httpd/phpaj/plugins/versionchecker/info.php
-home/httpd/phpaj/plugins/versionchecker/versionchecker.php
-home/httpd/phpaj/plugins/wizard
-home/httpd/phpaj/plugins/wizard/icon.gif
-home/httpd/phpaj/plugins/wizard/info.php
-home/httpd/phpaj/plugins/wizard/wizard.php
-home/httpd/phpaj/plugins/wizard/wizard.xml
-home/httpd/phpaj/style
-home/httpd/phpaj/style/default
-home/httpd/phpaj/style/default/default_blue.css
-home/httpd/phpaj/style/default/default_green.css
-home/httpd/phpaj/style/default/default_grey.css
-home/httpd/phpaj/style/default/info.png
-home/httpd/phpaj/style/default/minus.png
-home/httpd/phpaj/style/default/os
-home/httpd/phpaj/style/default/os/bsd.png
-home/httpd/phpaj/style/default/os/linux.png
-home/httpd/phpaj/style/default/os/mac.png
-home/httpd/phpaj/style/default/os/na.png
-home/httpd/phpaj/style/default/os/netware.png
-home/httpd/phpaj/style/default/os/os2.png
-home/httpd/phpaj/style/default/os/solaris.png
-home/httpd/phpaj/style/default/os/win.png
-home/httpd/phpaj/style/default/plus.png
-home/httpd/phpaj/style/default/server
-home/httpd/phpaj/style/default/server/alt.gif
-home/httpd/phpaj/style/default/server/neu.gif
-home/httpd/phpaj/style/default/server/verbinde.gif
-home/httpd/phpaj/style/default/server/verbunden.gif
-home/httpd/phpaj/style/default/stop.png
-home/httpd/phpaj/style/default/tabs
-home/httpd/phpaj/style/default/tabs/download.gif
-home/httpd/phpaj/style/default/tabs/extras.gif
-home/httpd/phpaj/style/default/tabs/kill.gif
-home/httpd/phpaj/style/default/tabs/logout.gif
-home/httpd/phpaj/style/default/tabs/meinshare.gif
-home/httpd/phpaj/style/default/tabs/optionen.gif
-home/httpd/phpaj/style/default/tabs/server.gif
-home/httpd/phpaj/style/default/tabs/start.gif
-home/httpd/phpaj/style/default/tabs/suchen.gif
-home/httpd/phpaj/style/default/tabs/upload.gif
-home/httpd/phpaj/style/default/user
-home/httpd/phpaj/style/default/user/direct.png
-home/httpd/phpaj/style/default/user/indirect.png
-home/httpd/phpaj/style/default/user/tryindirect.png
-home/httpd/phpaj/style/default/user/unknown.png
-home/httpd/phpaj/style/default/warnung.gif
-home/httpd/phpaj/style/default/x.png
-home/httpd/phpaj/style/default_blue.php
-home/httpd/phpaj/style/default_green.php
-home/httpd/phpaj/style/default_grey.php
-home/httpd/phpaj/style/new
-home/httpd/phpaj/style/new.php
-home/httpd/phpaj/style/new/bg.png
-home/httpd/phpaj/style/new/new.css
-home/httpd/phpaj/style/tango
-home/httpd/phpaj/style/tango.php
-home/httpd/phpaj/style/tango/bg.png
-home/httpd/phpaj/style/tango/icons
-home/httpd/phpaj/style/tango/icons/direct.png
-home/httpd/phpaj/style/tango/icons/down.png
-home/httpd/phpaj/style/tango/icons/empty.png
-home/httpd/phpaj/style/tango/icons/extras.png
-home/httpd/phpaj/style/tango/icons/home.png
-home/httpd/phpaj/style/tango/icons/indirect.png
-home/httpd/phpaj/style/tango/icons/info.png
-home/httpd/phpaj/style/tango/icons/kill.png
-home/httpd/phpaj/style/tango/icons/logout.png
-home/httpd/phpaj/style/tango/icons/minus.png
-home/httpd/phpaj/style/tango/icons/plus.png
-home/httpd/phpaj/style/tango/icons/preferences.png
-home/httpd/phpaj/style/tango/icons/search.png
-home/httpd/phpaj/style/tango/icons/server.png
-home/httpd/phpaj/style/tango/icons/share.png
-home/httpd/phpaj/style/tango/icons/stop.png
-home/httpd/phpaj/style/tango/icons/up.png
-home/httpd/phpaj/style/tango/icons/warning.png
-home/httpd/phpaj/style/tango/icons/x.png
-home/httpd/phpaj/style/tango/tango.css
-home/httpd/phpaj/vars.php
-var/ipfire/applejuice
\ No newline at end of file
diff --git a/src/paks/applejuice/depends.txt b/src/paks/applejuice/depends.txt
deleted file mode 100644 (file)
index f3d360b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-java
diff --git a/src/paks/applejuice/install.sh b/src/paks/applejuice/install.sh
deleted file mode 100644 (file)
index 2f78907..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
diff --git a/src/paks/applejuice/uninstall.sh b/src/paks/applejuice/uninstall.sh
deleted file mode 100644 (file)
index 7ee2885..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
diff --git a/src/paks/asterisk/ROOTFILES b/src/paks/asterisk/ROOTFILES
deleted file mode 100644 (file)
index c4de9b4..0000000
+++ /dev/null
@@ -1,2011 +0,0 @@
-#usr/include/asterisk
-#usr/include/asterisk/acl.h
-#usr/include/asterisk/adsi.h
-#usr/include/asterisk/aes.h
-#usr/include/asterisk/agi.h
-#usr/include/asterisk/alaw.h
-#usr/include/asterisk/app.h
-#usr/include/asterisk/ast_expr.h
-#usr/include/asterisk/astdb.h
-#usr/include/asterisk/astmm.h
-#usr/include/asterisk/astobj.h
-#usr/include/asterisk/astosp.h
-#usr/include/asterisk/build.h
-#usr/include/asterisk/callerid.h
-#usr/include/asterisk/causes.h
-#usr/include/asterisk/cdr.h
-#usr/include/asterisk/chan_capi.h
-#usr/include/asterisk/chan_capi_app.h
-#usr/include/asterisk/channel.h
-#usr/include/asterisk/chanspy.h
-#usr/include/asterisk/chanvars.h
-#usr/include/asterisk/cli.h
-#usr/include/asterisk/compat.h
-#usr/include/asterisk/compiler.h
-#usr/include/asterisk/config.h
-#usr/include/asterisk/crypto.h
-#usr/include/asterisk/devicestate.h
-#usr/include/asterisk/dlfcn-compat.h
-#usr/include/asterisk/dns.h
-#usr/include/asterisk/dnsmgr.h
-#usr/include/asterisk/doxyref.h
-#usr/include/asterisk/dsp.h
-#usr/include/asterisk/dundi.h
-#usr/include/asterisk/endian.h
-#usr/include/asterisk/enum.h
-#usr/include/asterisk/features.h
-#usr/include/asterisk/file.h
-#usr/include/asterisk/frame.h
-#usr/include/asterisk/fskmodem.h
-#usr/include/asterisk/image.h
-#usr/include/asterisk/indications.h
-#usr/include/asterisk/inline_api.h
-#usr/include/asterisk/io.h
-#usr/include/asterisk/linkedlists.h
-#usr/include/asterisk/localtime.h
-#usr/include/asterisk/lock.h
-#usr/include/asterisk/logger.h
-#usr/include/asterisk/manager.h
-#usr/include/asterisk/md5.h
-#usr/include/asterisk/module.h
-#usr/include/asterisk/monitor.h
-#usr/include/asterisk/musiconhold.h
-#usr/include/asterisk/netsock.h
-#usr/include/asterisk/options.h
-#usr/include/asterisk/pbx.h
-#usr/include/asterisk/plc.h
-#usr/include/asterisk/poll-compat.h
-#usr/include/asterisk/privacy.h
-#usr/include/asterisk/res_odbc.h
-#usr/include/asterisk/rtp.h
-#usr/include/asterisk/say.h
-#usr/include/asterisk/sched.h
-#usr/include/asterisk/slinfactory.h
-#usr/include/asterisk/srv.h
-#usr/include/asterisk/strings.h
-#usr/include/asterisk/tdd.h
-#usr/include/asterisk/term.h
-#usr/include/asterisk/time.h
-#usr/include/asterisk/transcap.h
-#usr/include/asterisk/translate.h
-#usr/include/asterisk/ulaw.h
-#usr/include/asterisk/unaligned.h
-#usr/include/asterisk/utils.h
-#usr/include/asterisk/version.h
-#usr/include/asterisk/vmodem.h
-#usr/include/asterisk/xlaw.h
-#usr/lib/asterisk
-usr/lib/asterisk/modules
-#usr/lib/asterisk/modules/app_adsiprog.so
-#usr/lib/asterisk/modules/app_alarmreceiver.so
-#usr/lib/asterisk/modules/app_authenticate.so
-#usr/lib/asterisk/modules/app_callingpres.so
-#usr/lib/asterisk/modules/app_capiCD.so
-#usr/lib/asterisk/modules/app_capiECT.so
-#usr/lib/asterisk/modules/app_capiNoES.so
-#usr/lib/asterisk/modules/app_cdr.so
-#usr/lib/asterisk/modules/app_chanisavail.so
-#usr/lib/asterisk/modules/app_chanspy.so
-#usr/lib/asterisk/modules/app_controlplayback.so
-#usr/lib/asterisk/modules/app_cut.so
-#usr/lib/asterisk/modules/app_db.so
-#usr/lib/asterisk/modules/app_devstate.so
-#usr/lib/asterisk/modules/app_dial.so
-#usr/lib/asterisk/modules/app_dictate.so
-#usr/lib/asterisk/modules/app_directed_pickup.so
-#usr/lib/asterisk/modules/app_directory.so
-#usr/lib/asterisk/modules/app_disa.so
-#usr/lib/asterisk/modules/app_dumpchan.so
-#usr/lib/asterisk/modules/app_echo.so
-#usr/lib/asterisk/modules/app_enumlookup.so
-#usr/lib/asterisk/modules/app_eval.so
-#usr/lib/asterisk/modules/app_exec.so
-#usr/lib/asterisk/modules/app_externalivr.so
-#usr/lib/asterisk/modules/app_festival.so
-#usr/lib/asterisk/modules/app_flash.so
-#usr/lib/asterisk/modules/app_forkcdr.so
-#usr/lib/asterisk/modules/app_getcpeid.so
-#usr/lib/asterisk/modules/app_groupcount.so
-#usr/lib/asterisk/modules/app_hasnewvoicemail.so
-#usr/lib/asterisk/modules/app_ices.so
-#usr/lib/asterisk/modules/app_image.so
-#usr/lib/asterisk/modules/app_lookupblacklist.so
-#usr/lib/asterisk/modules/app_lookupcidname.so
-#usr/lib/asterisk/modules/app_macro.so
-#usr/lib/asterisk/modules/app_math.so
-#usr/lib/asterisk/modules/app_md5.so
-#usr/lib/asterisk/modules/app_meetme.so
-#usr/lib/asterisk/modules/app_milliwatt.so
-#usr/lib/asterisk/modules/app_mixmonitor.so
-#usr/lib/asterisk/modules/app_mp3.so
-#usr/lib/asterisk/modules/app_nbscat.so
-#usr/lib/asterisk/modules/app_page.so
-#usr/lib/asterisk/modules/app_parkandannounce.so
-#usr/lib/asterisk/modules/app_pickup.so
-#usr/lib/asterisk/modules/app_playback.so
-#usr/lib/asterisk/modules/app_privacy.so
-#usr/lib/asterisk/modules/app_queue.so
-#usr/lib/asterisk/modules/app_random.so
-#usr/lib/asterisk/modules/app_read.so
-#usr/lib/asterisk/modules/app_readfile.so
-#usr/lib/asterisk/modules/app_realtime.so
-#usr/lib/asterisk/modules/app_record.so
-#usr/lib/asterisk/modules/app_sayunixtime.so
-#usr/lib/asterisk/modules/app_segfault.so
-#usr/lib/asterisk/modules/app_senddtmf.so
-#usr/lib/asterisk/modules/app_sendtext.so
-#usr/lib/asterisk/modules/app_setcallerid.so
-#usr/lib/asterisk/modules/app_setcdruserfield.so
-#usr/lib/asterisk/modules/app_setcidname.so
-#usr/lib/asterisk/modules/app_setcidnum.so
-#usr/lib/asterisk/modules/app_setrdnis.so
-#usr/lib/asterisk/modules/app_settransfercapability.so
-#usr/lib/asterisk/modules/app_sms.so
-#usr/lib/asterisk/modules/app_softhangup.so
-#usr/lib/asterisk/modules/app_stack.so
-#usr/lib/asterisk/modules/app_system.so
-#usr/lib/asterisk/modules/app_talkdetect.so
-#usr/lib/asterisk/modules/app_test.so
-#usr/lib/asterisk/modules/app_transfer.so
-#usr/lib/asterisk/modules/app_txtcidname.so
-#usr/lib/asterisk/modules/app_url.so
-#usr/lib/asterisk/modules/app_userevent.so
-#usr/lib/asterisk/modules/app_verbose.so
-#usr/lib/asterisk/modules/app_voicemail.so
-#usr/lib/asterisk/modules/app_waitforring.so
-#usr/lib/asterisk/modules/app_waitforsilence.so
-#usr/lib/asterisk/modules/app_while.so
-#usr/lib/asterisk/modules/app_zapateller.so
-#usr/lib/asterisk/modules/app_zapbarge.so
-#usr/lib/asterisk/modules/app_zapras.so
-#usr/lib/asterisk/modules/app_zapscan.so
-#usr/lib/asterisk/modules/cdr_csv.so
-#usr/lib/asterisk/modules/cdr_custom.so
-#usr/lib/asterisk/modules/cdr_manager.so
-#usr/lib/asterisk/modules/chan_agent.so
-#usr/lib/asterisk/modules/chan_capi.so
-#usr/lib/asterisk/modules/chan_features.so
-#usr/lib/asterisk/modules/chan_iax2.so
-#usr/lib/asterisk/modules/chan_local.so
-#usr/lib/asterisk/modules/chan_mgcp.so
-#usr/lib/asterisk/modules/chan_oss.so
-#usr/lib/asterisk/modules/chan_phone.so
-#usr/lib/asterisk/modules/chan_sip.so
-#usr/lib/asterisk/modules/chan_skinny.so
-#usr/lib/asterisk/modules/chan_zap.so
-#usr/lib/asterisk/modules/codec_a_mu.so
-#usr/lib/asterisk/modules/codec_adpcm.so
-#usr/lib/asterisk/modules/codec_alaw.so
-#usr/lib/asterisk/modules/codec_g726.so
-#usr/lib/asterisk/modules/codec_gsm.so
-#usr/lib/asterisk/modules/codec_ilbc.so
-#usr/lib/asterisk/modules/codec_lpc10.so
-#usr/lib/asterisk/modules/codec_ulaw.so
-#usr/lib/asterisk/modules/format_au.so
-#usr/lib/asterisk/modules/format_g723.so
-#usr/lib/asterisk/modules/format_g726.so
-#usr/lib/asterisk/modules/format_g729.so
-#usr/lib/asterisk/modules/format_gsm.so
-#usr/lib/asterisk/modules/format_h263.so
-#usr/lib/asterisk/modules/format_ilbc.so
-#usr/lib/asterisk/modules/format_jpeg.so
-#usr/lib/asterisk/modules/format_pcm.so
-#usr/lib/asterisk/modules/format_pcm_alaw.so
-#usr/lib/asterisk/modules/format_sln.so
-#usr/lib/asterisk/modules/format_vox.so
-#usr/lib/asterisk/modules/format_wav.so
-#usr/lib/asterisk/modules/format_wav_gsm.so
-#usr/lib/asterisk/modules/func_callerid.so
-#usr/lib/asterisk/modules/func_enum.so
-#usr/lib/asterisk/modules/func_uri.so
-#usr/lib/asterisk/modules/pbx_ael.so
-#usr/lib/asterisk/modules/pbx_config.so
-#usr/lib/asterisk/modules/pbx_dundi.so
-#usr/lib/asterisk/modules/pbx_functions.so
-#usr/lib/asterisk/modules/pbx_loopback.so
-#usr/lib/asterisk/modules/pbx_realtime.so
-#usr/lib/asterisk/modules/pbx_spool.so
-#usr/lib/asterisk/modules/res_adsi.so
-#usr/lib/asterisk/modules/res_agi.so
-#usr/lib/asterisk/modules/res_crypto.so
-#usr/lib/asterisk/modules/res_features.so
-#usr/lib/asterisk/modules/res_indications.so
-#usr/lib/asterisk/modules/res_monitor.so
-#usr/lib/asterisk/modules/res_musiconhold.so
-#usr/lib/asterisk/modules/res_watchdog.so
-#usr/lib/asterisk/modules/app_saycountpl.so
-#usr/lib/asterisk/modules/format_mp3.so
-#usr/lib/asterisk/modules/format_ogg_vorbis.so
-#usr/lib/pkgconfig/asterisk.pc
-usr/sbin/asterisk
-usr/sbin/astgenkey
-usr/sbin/astman
-usr/sbin/autosupport
-usr/sbin/rasterisk
-usr/sbin/safe_asterisk
-usr/sbin/smsq
-usr/sbin/stereorize
-usr/sbin/streamplayer
-#usr/share/man/man8/asterisk.8
-#usr/share/man/man8/astgenkey.8
-#usr/share/man/man8/autosupport.8
-#usr/share/man/man8/safe_asterisk.8
-var/ipfire/asterisk
-#var/ipfire/asterisk/adsi.conf
-#var/ipfire/asterisk/adtranvofr.conf
-#var/ipfire/asterisk/agents.conf
-#var/ipfire/asterisk/alarmreceiver.conf
-#var/ipfire/asterisk/alsa.conf
-#var/ipfire/asterisk/asterisk.adsi
-#var/ipfire/asterisk/asterisk.conf
-#var/ipfire/asterisk/capi.conf
-#var/ipfire/asterisk/cdr.conf
-#var/ipfire/asterisk/cdr_custom.conf
-#var/ipfire/asterisk/cdr_manager.conf
-#var/ipfire/asterisk/cdr_odbc.conf
-#var/ipfire/asterisk/cdr_pgsql.conf
-#var/ipfire/asterisk/cdr_tds.conf
-#var/ipfire/asterisk/codecs.conf
-#var/ipfire/asterisk/dnsmgr.conf
-#var/ipfire/asterisk/dundi.conf
-#var/ipfire/asterisk/enum.conf
-#var/ipfire/asterisk/extconfig.conf
-#var/ipfire/asterisk/extensions.ael
-#var/ipfire/asterisk/extensions.conf
-#var/ipfire/asterisk/features.conf
-#var/ipfire/asterisk/festival.conf
-#var/ipfire/asterisk/iax.conf
-#var/ipfire/asterisk/iaxprov.conf
-#var/ipfire/asterisk/indications.conf
-#var/ipfire/asterisk/logger.conf
-#var/ipfire/asterisk/manager.conf
-#var/ipfire/asterisk/meetme.conf
-#var/ipfire/asterisk/mgcp.conf
-#var/ipfire/asterisk/misdn.conf
-#var/ipfire/asterisk/modem.conf
-#var/ipfire/asterisk/modules.conf
-#var/ipfire/asterisk/musiconhold.conf
-#var/ipfire/asterisk/osp.conf
-#var/ipfire/asterisk/oss.conf
-#var/ipfire/asterisk/phone.conf
-#var/ipfire/asterisk/privacy.conf
-#var/ipfire/asterisk/queues.conf
-#var/ipfire/asterisk/res_odbc.conf
-#var/ipfire/asterisk/rpt.conf
-#var/ipfire/asterisk/rtp.conf
-#var/ipfire/asterisk/sip.conf
-#var/ipfire/asterisk/sip_notify.conf
-#var/ipfire/asterisk/skinny.conf
-#var/ipfire/asterisk/telcordia-1.adsi
-#var/ipfire/asterisk/voicemail.conf
-#var/ipfire/asterisk/vpb.conf
-#var/ipfire/asterisk/watchdog.conf
-#var/ipfire/asterisk/zapata.conf
-#var/lib/asterisk
-var/lib/asterisk/agi-bin
-#var/lib/asterisk/agi-bin/agi-test.agi
-#var/lib/asterisk/agi-bin/eagi-sphinx-test
-#var/lib/asterisk/agi-bin/eagi-test
-#var/lib/asterisk/agi-bin/xagi-test
-#var/lib/asterisk/firmware
-#var/lib/asterisk/firmware/iax
-#var/lib/asterisk/firmware/iax/iaxy.bin
-#var/lib/asterisk/images
-#var/lib/asterisk/images/asterisk-intro.jpg
-var/lib/asterisk/keys
-#var/lib/asterisk/keys/freeworlddialup.pub
-#var/lib/asterisk/keys/iaxtel.pub
-var/lib/asterisk/mohmp3
-#var/lib/asterisk/mohmp3/fpm-calm-river.mp3
-#var/lib/asterisk/mohmp3/fpm-sunshine.mp3
-#var/lib/asterisk/mohmp3/fpm-world-mix.mp3
-var/lib/asterisk/sounds
-#var/lib/asterisk/sounds/agent-alreadyon.gsm
-#var/lib/asterisk/sounds/agent-incorrect.gsm
-#var/lib/asterisk/sounds/agent-loggedoff.gsm
-#var/lib/asterisk/sounds/agent-loginok.gsm
-#var/lib/asterisk/sounds/agent-newlocation.gsm
-#var/lib/asterisk/sounds/agent-pass.gsm
-#var/lib/asterisk/sounds/agent-user.gsm
-#var/lib/asterisk/sounds/auth-incorrect.gsm
-#var/lib/asterisk/sounds/auth-thankyou.gsm
-#var/lib/asterisk/sounds/beep.gsm
-#var/lib/asterisk/sounds/beeperr.gsm
-#var/lib/asterisk/sounds/conf-adminmenu.gsm
-#var/lib/asterisk/sounds/conf-enteringno.gsm
-#var/lib/asterisk/sounds/conf-errormenu.gsm
-#var/lib/asterisk/sounds/conf-getchannel.gsm
-#var/lib/asterisk/sounds/conf-getconfno.gsm
-#var/lib/asterisk/sounds/conf-getpin.gsm
-#var/lib/asterisk/sounds/conf-hasjoin.gsm
-#var/lib/asterisk/sounds/conf-hasleft.gsm
-#var/lib/asterisk/sounds/conf-invalid.gsm
-#var/lib/asterisk/sounds/conf-invalidpin.gsm
-#var/lib/asterisk/sounds/conf-kicked.gsm
-#var/lib/asterisk/sounds/conf-leaderhasleft.gsm
-#var/lib/asterisk/sounds/conf-locked.gsm
-#var/lib/asterisk/sounds/conf-lockednow.gsm
-#var/lib/asterisk/sounds/conf-muted.gsm
-#var/lib/asterisk/sounds/conf-noempty.gsm
-#var/lib/asterisk/sounds/conf-onlyone.gsm
-#var/lib/asterisk/sounds/conf-onlyperson.gsm
-#var/lib/asterisk/sounds/conf-otherinparty.gsm
-#var/lib/asterisk/sounds/conf-placeintoconf.gsm
-#var/lib/asterisk/sounds/conf-thereare.gsm
-#var/lib/asterisk/sounds/conf-unlockednow.gsm
-#var/lib/asterisk/sounds/conf-unmuted.gsm
-#var/lib/asterisk/sounds/conf-usermenu.gsm
-#var/lib/asterisk/sounds/conf-userswilljoin.gsm
-#var/lib/asterisk/sounds/conf-userwilljoin.gsm
-#var/lib/asterisk/sounds/conf-waitforleader.gsm
-#var/lib/asterisk/sounds/demo-abouttotry.gsm
-#var/lib/asterisk/sounds/demo-congrats.gsm
-#var/lib/asterisk/sounds/demo-echodone.gsm
-#var/lib/asterisk/sounds/demo-echotest.gsm
-#var/lib/asterisk/sounds/demo-enterkeywords.gsm
-#var/lib/asterisk/sounds/demo-instruct.gsm
-#var/lib/asterisk/sounds/demo-moreinfo.gsm
-#var/lib/asterisk/sounds/demo-nogo.gsm
-#var/lib/asterisk/sounds/demo-nomatch.gsm
-#var/lib/asterisk/sounds/demo-thanks.gsm
-#var/lib/asterisk/sounds/dictate
-#var/lib/asterisk/sounds/dictate/both_help.gsm
-#var/lib/asterisk/sounds/dictate/enter_filename.gsm
-#var/lib/asterisk/sounds/dictate/forhelp.gsm
-#var/lib/asterisk/sounds/dictate/pause.gsm
-#var/lib/asterisk/sounds/dictate/paused.gsm
-#var/lib/asterisk/sounds/dictate/play_help.gsm
-#var/lib/asterisk/sounds/dictate/playback.gsm
-#var/lib/asterisk/sounds/dictate/playback_mode.gsm
-#var/lib/asterisk/sounds/dictate/record.gsm
-#var/lib/asterisk/sounds/dictate/record_help.gsm
-#var/lib/asterisk/sounds/dictate/record_mode.gsm
-#var/lib/asterisk/sounds/dictate/truncating_audio.gsm
-#var/lib/asterisk/sounds/digits
-#var/lib/asterisk/sounds/digits/0.gsm
-#var/lib/asterisk/sounds/digits/1.gsm
-#var/lib/asterisk/sounds/digits/10.gsm
-#var/lib/asterisk/sounds/digits/11.gsm
-#var/lib/asterisk/sounds/digits/12.gsm
-#var/lib/asterisk/sounds/digits/13.gsm
-#var/lib/asterisk/sounds/digits/14.gsm
-#var/lib/asterisk/sounds/digits/15.gsm
-#var/lib/asterisk/sounds/digits/16.gsm
-#var/lib/asterisk/sounds/digits/17.gsm
-#var/lib/asterisk/sounds/digits/18.gsm
-#var/lib/asterisk/sounds/digits/19.gsm
-#var/lib/asterisk/sounds/digits/2.gsm
-#var/lib/asterisk/sounds/digits/20.gsm
-#var/lib/asterisk/sounds/digits/3.gsm
-#var/lib/asterisk/sounds/digits/30.gsm
-#var/lib/asterisk/sounds/digits/4.gsm
-#var/lib/asterisk/sounds/digits/40.gsm
-#var/lib/asterisk/sounds/digits/5.gsm
-#var/lib/asterisk/sounds/digits/50.gsm
-#var/lib/asterisk/sounds/digits/6.gsm
-#var/lib/asterisk/sounds/digits/60.gsm
-#var/lib/asterisk/sounds/digits/7.gsm
-#var/lib/asterisk/sounds/digits/70.gsm
-#var/lib/asterisk/sounds/digits/8.gsm
-#var/lib/asterisk/sounds/digits/80.gsm
-#var/lib/asterisk/sounds/digits/9.gsm
-#var/lib/asterisk/sounds/digits/90.gsm
-#var/lib/asterisk/sounds/digits/a-m.gsm
-#var/lib/asterisk/sounds/digits/at.gsm
-#var/lib/asterisk/sounds/digits/day-0.gsm
-#var/lib/asterisk/sounds/digits/day-1.gsm
-#var/lib/asterisk/sounds/digits/day-2.gsm
-#var/lib/asterisk/sounds/digits/day-3.gsm
-#var/lib/asterisk/sounds/digits/day-4.gsm
-#var/lib/asterisk/sounds/digits/day-5.gsm
-#var/lib/asterisk/sounds/digits/day-6.gsm
-#var/lib/asterisk/sounds/digits/dollars.gsm
-#var/lib/asterisk/sounds/digits/h-1.gsm
-#var/lib/asterisk/sounds/digits/h-10.gsm
-#var/lib/asterisk/sounds/digits/h-11.gsm
-#var/lib/asterisk/sounds/digits/h-12.gsm
-#var/lib/asterisk/sounds/digits/h-13.gsm
-#var/lib/asterisk/sounds/digits/h-14.gsm
-#var/lib/asterisk/sounds/digits/h-15.gsm
-#var/lib/asterisk/sounds/digits/h-16.gsm
-#var/lib/asterisk/sounds/digits/h-17.gsm
-#var/lib/asterisk/sounds/digits/h-18.gsm
-#var/lib/asterisk/sounds/digits/h-19.gsm
-#var/lib/asterisk/sounds/digits/h-2.gsm
-#var/lib/asterisk/sounds/digits/h-20.gsm
-#var/lib/asterisk/sounds/digits/h-3.gsm
-#var/lib/asterisk/sounds/digits/h-30.gsm
-#var/lib/asterisk/sounds/digits/h-4.gsm
-#var/lib/asterisk/sounds/digits/h-5.gsm
-#var/lib/asterisk/sounds/digits/h-6.gsm
-#var/lib/asterisk/sounds/digits/h-7.gsm
-#var/lib/asterisk/sounds/digits/h-8.gsm
-#var/lib/asterisk/sounds/digits/h-9.gsm
-#var/lib/asterisk/sounds/digits/hundred.gsm
-#var/lib/asterisk/sounds/digits/million.gsm
-#var/lib/asterisk/sounds/digits/minus.gsm
-#var/lib/asterisk/sounds/digits/mon-0.gsm
-#var/lib/asterisk/sounds/digits/mon-1.gsm
-#var/lib/asterisk/sounds/digits/mon-10.gsm
-#var/lib/asterisk/sounds/digits/mon-11.gsm
-#var/lib/asterisk/sounds/digits/mon-2.gsm
-#var/lib/asterisk/sounds/digits/mon-3.gsm
-#var/lib/asterisk/sounds/digits/mon-4.gsm
-#var/lib/asterisk/sounds/digits/mon-5.gsm
-#var/lib/asterisk/sounds/digits/mon-6.gsm
-#var/lib/asterisk/sounds/digits/mon-7.gsm
-#var/lib/asterisk/sounds/digits/mon-8.gsm
-#var/lib/asterisk/sounds/digits/mon-9.gsm
-#var/lib/asterisk/sounds/digits/oclock.gsm
-#var/lib/asterisk/sounds/digits/oh.gsm
-#var/lib/asterisk/sounds/digits/p-m.gsm
-#var/lib/asterisk/sounds/digits/pound.gsm
-#var/lib/asterisk/sounds/digits/star.gsm
-#var/lib/asterisk/sounds/digits/thousand.gsm
-#var/lib/asterisk/sounds/digits/today.gsm
-#var/lib/asterisk/sounds/digits/tomorrow.gsm
-#var/lib/asterisk/sounds/digits/yesterday.gsm
-#var/lib/asterisk/sounds/dir-instr.gsm
-#var/lib/asterisk/sounds/dir-intro-fn.gsm
-#var/lib/asterisk/sounds/dir-intro.gsm
-#var/lib/asterisk/sounds/dir-nomatch.gsm
-#var/lib/asterisk/sounds/dir-nomore.gsm
-#var/lib/asterisk/sounds/hello-world.gsm
-#var/lib/asterisk/sounds/invalid.gsm
-#var/lib/asterisk/sounds/letters
-#var/lib/asterisk/sounds/letters/a.gsm
-#var/lib/asterisk/sounds/letters/at.gsm
-#var/lib/asterisk/sounds/letters/b.gsm
-#var/lib/asterisk/sounds/letters/c.gsm
-#var/lib/asterisk/sounds/letters/d.gsm
-#var/lib/asterisk/sounds/letters/dash.gsm
-#var/lib/asterisk/sounds/letters/dollar.gsm
-#var/lib/asterisk/sounds/letters/dot.gsm
-#var/lib/asterisk/sounds/letters/e.gsm
-#var/lib/asterisk/sounds/letters/equals.gsm
-#var/lib/asterisk/sounds/letters/exclaimation-point.gsm
-#var/lib/asterisk/sounds/letters/f.gsm
-#var/lib/asterisk/sounds/letters/g.gsm
-#var/lib/asterisk/sounds/letters/h.gsm
-#var/lib/asterisk/sounds/letters/i.gsm
-#var/lib/asterisk/sounds/letters/j.gsm
-#var/lib/asterisk/sounds/letters/k.gsm
-#var/lib/asterisk/sounds/letters/l.gsm
-#var/lib/asterisk/sounds/letters/m.gsm
-#var/lib/asterisk/sounds/letters/n.gsm
-#var/lib/asterisk/sounds/letters/o.gsm
-#var/lib/asterisk/sounds/letters/p.gsm
-#var/lib/asterisk/sounds/letters/plus.gsm
-#var/lib/asterisk/sounds/letters/q.gsm
-#var/lib/asterisk/sounds/letters/r.gsm
-#var/lib/asterisk/sounds/letters/s.gsm
-#var/lib/asterisk/sounds/letters/slash.gsm
-#var/lib/asterisk/sounds/letters/space.gsm
-#var/lib/asterisk/sounds/letters/t.gsm
-#var/lib/asterisk/sounds/letters/u.gsm
-#var/lib/asterisk/sounds/letters/v.gsm
-#var/lib/asterisk/sounds/letters/w.gsm
-#var/lib/asterisk/sounds/letters/x.gsm
-#var/lib/asterisk/sounds/letters/y.gsm
-#var/lib/asterisk/sounds/letters/z.gsm
-#var/lib/asterisk/sounds/letters/zed.gsm
-#var/lib/asterisk/sounds/pbx-invalid.gsm
-#var/lib/asterisk/sounds/pbx-invalidpark.gsm
-#var/lib/asterisk/sounds/pbx-transfer.gsm
-#var/lib/asterisk/sounds/phonetic
-#var/lib/asterisk/sounds/phonetic/9_p.gsm
-#var/lib/asterisk/sounds/phonetic/a_p.gsm
-#var/lib/asterisk/sounds/phonetic/b_p.gsm
-#var/lib/asterisk/sounds/phonetic/c_p.gsm
-#var/lib/asterisk/sounds/phonetic/d_p.gsm
-#var/lib/asterisk/sounds/phonetic/e_p.gsm
-#var/lib/asterisk/sounds/phonetic/f_p.gsm
-#var/lib/asterisk/sounds/phonetic/g_p.gsm
-#var/lib/asterisk/sounds/phonetic/h_p.gsm
-#var/lib/asterisk/sounds/phonetic/i_p.gsm
-#var/lib/asterisk/sounds/phonetic/j_p.gsm
-#var/lib/asterisk/sounds/phonetic/k_p.gsm
-#var/lib/asterisk/sounds/phonetic/l_p.gsm
-#var/lib/asterisk/sounds/phonetic/m_p.gsm
-#var/lib/asterisk/sounds/phonetic/n_p.gsm
-#var/lib/asterisk/sounds/phonetic/o_p.gsm
-#var/lib/asterisk/sounds/phonetic/p_p.gsm
-#var/lib/asterisk/sounds/phonetic/q_p.gsm
-#var/lib/asterisk/sounds/phonetic/r_p.gsm
-#var/lib/asterisk/sounds/phonetic/s_p.gsm
-#var/lib/asterisk/sounds/phonetic/t_p.gsm
-#var/lib/asterisk/sounds/phonetic/u_p.gsm
-#var/lib/asterisk/sounds/phonetic/v_p.gsm
-#var/lib/asterisk/sounds/phonetic/w_p.gsm
-#var/lib/asterisk/sounds/phonetic/x_p.gsm
-#var/lib/asterisk/sounds/phonetic/y_p.gsm
-#var/lib/asterisk/sounds/phonetic/z_p.gsm
-#var/lib/asterisk/sounds/priv-callee-options.gsm
-#var/lib/asterisk/sounds/priv-callerintros
-#var/lib/asterisk/sounds/priv-callpending.gsm
-#var/lib/asterisk/sounds/priv-introsaved.gsm
-#var/lib/asterisk/sounds/priv-recordintro.gsm
-#var/lib/asterisk/sounds/privacy-incorrect.gsm
-#var/lib/asterisk/sounds/privacy-prompt.gsm
-#var/lib/asterisk/sounds/privacy-thankyou.gsm
-#var/lib/asterisk/sounds/privacy-unident.gsm
-#var/lib/asterisk/sounds/queue-callswaiting.gsm
-#var/lib/asterisk/sounds/queue-holdtime.gsm
-#var/lib/asterisk/sounds/queue-less-than.gsm
-#var/lib/asterisk/sounds/queue-minutes.gsm
-#var/lib/asterisk/sounds/queue-periodic-announce.gsm
-#var/lib/asterisk/sounds/queue-reporthold.gsm
-#var/lib/asterisk/sounds/queue-seconds.gsm
-#var/lib/asterisk/sounds/queue-thankyou.gsm
-#var/lib/asterisk/sounds/queue-thereare.gsm
-#var/lib/asterisk/sounds/queue-youarenext.gsm
-#var/lib/asterisk/sounds/screen-callee-options.gsm
-#var/lib/asterisk/sounds/spy-agent.gsm
-#var/lib/asterisk/sounds/spy-h323.gsm
-#var/lib/asterisk/sounds/spy-iax.gsm
-#var/lib/asterisk/sounds/spy-iax2.gsm
-#var/lib/asterisk/sounds/spy-mgcp.gsm
-#var/lib/asterisk/sounds/spy-sip.gsm
-#var/lib/asterisk/sounds/spy-skinny.gsm
-#var/lib/asterisk/sounds/spy-zap.gsm
-#var/lib/asterisk/sounds/ss-noservice.gsm
-#var/lib/asterisk/sounds/transfer.gsm
-#var/lib/asterisk/sounds/tt-allbusy.gsm
-#var/lib/asterisk/sounds/tt-monkeys.gsm
-#var/lib/asterisk/sounds/tt-monkeysintro.gsm
-#var/lib/asterisk/sounds/tt-somethingwrong.gsm
-#var/lib/asterisk/sounds/tt-weasels.gsm
-#var/lib/asterisk/sounds/vm-Cust1.gsm
-#var/lib/asterisk/sounds/vm-Cust2.gsm
-#var/lib/asterisk/sounds/vm-Cust3.gsm
-#var/lib/asterisk/sounds/vm-Cust4.gsm
-#var/lib/asterisk/sounds/vm-Cust5.gsm
-#var/lib/asterisk/sounds/vm-Family.gsm
-#var/lib/asterisk/sounds/vm-Friends.gsm
-#var/lib/asterisk/sounds/vm-INBOX.gsm
-#var/lib/asterisk/sounds/vm-Old.gsm
-#var/lib/asterisk/sounds/vm-Work.gsm
-#var/lib/asterisk/sounds/vm-advopts.gsm
-#var/lib/asterisk/sounds/vm-and.gsm
-#var/lib/asterisk/sounds/vm-calldiffnum.gsm
-#var/lib/asterisk/sounds/vm-changeto.gsm
-#var/lib/asterisk/sounds/vm-delete.gsm
-#var/lib/asterisk/sounds/vm-deleted.gsm
-#var/lib/asterisk/sounds/vm-dialout.gsm
-#var/lib/asterisk/sounds/vm-enter-num-to-call.gsm
-#var/lib/asterisk/sounds/vm-extension.gsm
-#var/lib/asterisk/sounds/vm-first.gsm
-#var/lib/asterisk/sounds/vm-for.gsm
-#var/lib/asterisk/sounds/vm-forward.gsm
-#var/lib/asterisk/sounds/vm-forwardoptions.gsm
-#var/lib/asterisk/sounds/vm-from-extension.gsm
-#var/lib/asterisk/sounds/vm-from-phonenumber.gsm
-#var/lib/asterisk/sounds/vm-from.gsm
-#var/lib/asterisk/sounds/vm-goodbye.gsm
-#var/lib/asterisk/sounds/vm-helpexit.gsm
-#var/lib/asterisk/sounds/vm-incorrect-mailbox.gsm
-#var/lib/asterisk/sounds/vm-incorrect.gsm
-#var/lib/asterisk/sounds/vm-instructions.gsm
-#var/lib/asterisk/sounds/vm-intro.gsm
-#var/lib/asterisk/sounds/vm-isonphone.gsm
-#var/lib/asterisk/sounds/vm-isunavail.gsm
-#var/lib/asterisk/sounds/vm-last.gsm
-#var/lib/asterisk/sounds/vm-leavemsg.gsm
-#var/lib/asterisk/sounds/vm-login.gsm
-#var/lib/asterisk/sounds/vm-mailboxfull.gsm
-#var/lib/asterisk/sounds/vm-message.gsm
-#var/lib/asterisk/sounds/vm-messages.gsm
-#var/lib/asterisk/sounds/vm-minutes.gsm
-#var/lib/asterisk/sounds/vm-mismatch.gsm
-#var/lib/asterisk/sounds/vm-msginstruct.gsm
-#var/lib/asterisk/sounds/vm-msgsaved.gsm
-#var/lib/asterisk/sounds/vm-newpassword.gsm
-#var/lib/asterisk/sounds/vm-newuser.gsm
-#var/lib/asterisk/sounds/vm-next.gsm
-#var/lib/asterisk/sounds/vm-no.gsm
-#var/lib/asterisk/sounds/vm-nobodyavail.gsm
-#var/lib/asterisk/sounds/vm-nobox.gsm
-#var/lib/asterisk/sounds/vm-nomore.gsm
-#var/lib/asterisk/sounds/vm-nonumber.gsm
-#var/lib/asterisk/sounds/vm-num-i-have.gsm
-#var/lib/asterisk/sounds/vm-onefor.gsm
-#var/lib/asterisk/sounds/vm-options.gsm
-#var/lib/asterisk/sounds/vm-opts.gsm
-#var/lib/asterisk/sounds/vm-passchanged.gsm
-#var/lib/asterisk/sounds/vm-password.gsm
-#var/lib/asterisk/sounds/vm-press.gsm
-#var/lib/asterisk/sounds/vm-prev.gsm
-#var/lib/asterisk/sounds/vm-reachoper.gsm
-#var/lib/asterisk/sounds/vm-rec-busy.gsm
-#var/lib/asterisk/sounds/vm-rec-name.gsm
-#var/lib/asterisk/sounds/vm-rec-temp.gsm
-#var/lib/asterisk/sounds/vm-rec-unv.gsm
-#var/lib/asterisk/sounds/vm-received.gsm
-#var/lib/asterisk/sounds/vm-reenterpassword.gsm
-#var/lib/asterisk/sounds/vm-repeat.gsm
-#var/lib/asterisk/sounds/vm-review.gsm
-#var/lib/asterisk/sounds/vm-saved.gsm
-#var/lib/asterisk/sounds/vm-savedto.gsm
-#var/lib/asterisk/sounds/vm-savefolder.gsm
-#var/lib/asterisk/sounds/vm-savemessage.gsm
-#var/lib/asterisk/sounds/vm-saveoper.gsm
-#var/lib/asterisk/sounds/vm-sorry.gsm
-#var/lib/asterisk/sounds/vm-star-cancel.gsm
-#var/lib/asterisk/sounds/vm-starmain.gsm
-#var/lib/asterisk/sounds/vm-tempgreeting.gsm
-#var/lib/asterisk/sounds/vm-tempgreeting2.gsm
-#var/lib/asterisk/sounds/vm-tempremoved.gsm
-#var/lib/asterisk/sounds/vm-then-pound.gsm
-#var/lib/asterisk/sounds/vm-theperson.gsm
-#var/lib/asterisk/sounds/vm-tocallback.gsm
-#var/lib/asterisk/sounds/vm-tocallnum.gsm
-#var/lib/asterisk/sounds/vm-tocancel.gsm
-#var/lib/asterisk/sounds/vm-tocancelmsg.gsm
-#var/lib/asterisk/sounds/vm-toenternumber.gsm
-#var/lib/asterisk/sounds/vm-toforward.gsm
-#var/lib/asterisk/sounds/vm-tohearenv.gsm
-#var/lib/asterisk/sounds/vm-tomakecall.gsm
-#var/lib/asterisk/sounds/vm-tooshort.gsm
-#var/lib/asterisk/sounds/vm-toreply.gsm
-#var/lib/asterisk/sounds/vm-torerecord.gsm
-#var/lib/asterisk/sounds/vm-undelete.gsm
-#var/lib/asterisk/sounds/vm-undeleted.gsm
-#var/lib/asterisk/sounds/vm-unknown-caller.gsm
-#var/lib/asterisk/sounds/vm-whichbox.gsm
-#var/lib/asterisk/sounds/vm-youhave.gsm
-#var/lib/asterisk/sounds/1-for-am-2-for-pm.gsm
-#var/lib/asterisk/sounds/1-yes-2-no.gsm
-#var/lib/asterisk/sounds/T-changed-to.gsm
-#var/lib/asterisk/sounds/T-is-not-available.gsm
-#var/lib/asterisk/sounds/T-to-disable-ancmnt.gsm
-#var/lib/asterisk/sounds/T-to-enable-ancmnt.gsm
-#var/lib/asterisk/sounds/T-to-hear-cur-ancmnt.gsm
-#var/lib/asterisk/sounds/T-to-leave-msg.gsm
-#var/lib/asterisk/sounds/T-to-reach-main-office.gsm
-#var/lib/asterisk/sounds/T-to-rec-ancmnt.gsm
-#var/lib/asterisk/sounds/T-to-rtrn-to-main-menu.gsm
-#var/lib/asterisk/sounds/a-charge-for-this-svc.gsm
-#var/lib/asterisk/sounds/a-collect-charge-of.gsm
-#var/lib/asterisk/sounds/a-collect-charge.gsm
-#var/lib/asterisk/sounds/a-connect-charge-of.gsm
-#var/lib/asterisk/sounds/a-connect-charge.gsm
-#var/lib/asterisk/sounds/abandon-all-hope.gsm
-#var/lib/asterisk/sounds/abandons.gsm
-#var/lib/asterisk/sounds/academic-support.gsm
-#var/lib/asterisk/sounds/access-code.gsm
-#var/lib/asterisk/sounds/accessible-through-system.gsm
-#var/lib/asterisk/sounds/account-balance-is.gsm
-#var/lib/asterisk/sounds/accounting.gsm
-#var/lib/asterisk/sounds/accounts-payable.gsm
-#var/lib/asterisk/sounds/accounts-receivable.gsm
-#var/lib/asterisk/sounds/activated.gsm
-#var/lib/asterisk/sounds/added-to.gsm
-#var/lib/asterisk/sounds/added.gsm
-#var/lib/asterisk/sounds/address.gsm
-#var/lib/asterisk/sounds/administration.gsm
-#var/lib/asterisk/sounds/advised-to-seek-shelter.gsm
-#var/lib/asterisk/sounds/after-the-tone.gsm
-#var/lib/asterisk/sounds/afternoon.gsm
-#var/lib/asterisk/sounds/airport.gsm
-#var/lib/asterisk/sounds/alabama.gsm
-#var/lib/asterisk/sounds/alaska.gsm
-#var/lib/asterisk/sounds/albuquerque.gsm
-#var/lib/asterisk/sounds/all-circuits-busy-now.gsm
-#var/lib/asterisk/sounds/all-outgoing-lines-unavailable.gsm
-#var/lib/asterisk/sounds/all-reps-busy.gsm
-#var/lib/asterisk/sounds/all-your-base.gsm
-#var/lib/asterisk/sounds/altitude.gsm
-#var/lib/asterisk/sounds/ampersand.gsm
-#var/lib/asterisk/sounds/an-error-has-occured.gsm
-#var/lib/asterisk/sounds/and-area-code.gsm
-#var/lib/asterisk/sounds/and-or.gsm
-#var/lib/asterisk/sounds/and-prs-pound-whn-finished.gsm
-#var/lib/asterisk/sounds/and.gsm
-#var/lib/asterisk/sounds/another-time.gsm
-#var/lib/asterisk/sounds/approaching.gsm
-#var/lib/asterisk/sounds/approximately.gsm
-#var/lib/asterisk/sounds/are-you-still-there.gsm
-#var/lib/asterisk/sounds/are-you-still-there2.gsm
-#var/lib/asterisk/sounds/arizona.gsm
-#var/lib/asterisk/sounds/arkansas.gsm
-#var/lib/asterisk/sounds/arlington.gsm
-#var/lib/asterisk/sounds/astcc-account-balance-is.gsm
-#var/lib/asterisk/sounds/astcc-account-number-invalid.gsm
-#var/lib/asterisk/sounds/astcc-balance-of-account-is.gsm
-#var/lib/asterisk/sounds/astcc-card-number-invalid.gsm
-#var/lib/asterisk/sounds/astcc-digit-account-number.gsm
-#var/lib/asterisk/sounds/astcc-followed-by-pound.gsm
-#var/lib/asterisk/sounds/astcc-followed-by-the-hash-key.gsm
-#var/lib/asterisk/sounds/astcc-followed-by-the-pound-key.gsm
-#var/lib/asterisk/sounds/astcc-login12pound.gsm
-#var/lib/asterisk/sounds/astcc-please-enter-your.gsm
-#var/lib/asterisk/sounds/astcc-skipping-any-punctuation.gsm
-#var/lib/asterisk/sounds/asterisk-friend.gsm
-#var/lib/asterisk/sounds/at-any-time.gsm
-#var/lib/asterisk/sounds/at-customers-request.gsm
-#var/lib/asterisk/sounds/at-following-number.gsm
-#var/lib/asterisk/sounds/at-sign.gsm
-#var/lib/asterisk/sounds/at-tone-time-exactly.gsm
-#var/lib/asterisk/sounds/at.gsm
-#var/lib/asterisk/sounds/athletics.gsm
-#var/lib/asterisk/sounds/atlanta.gsm
-#var/lib/asterisk/sounds/atlantic.gsm
-#var/lib/asterisk/sounds/attention-required.gsm
-#var/lib/asterisk/sounds/auditing.gsm
-#var/lib/asterisk/sounds/austin.gsm
-#var/lib/asterisk/sounds/available-options.gsm
-#var/lib/asterisk/sounds/available.gsm
-#var/lib/asterisk/sounds/avg-speed-answer.gsm
-#var/lib/asterisk/sounds/away-naughty-boy.gsm
-#var/lib/asterisk/sounds/away-naughty-girl.gsm
-#var/lib/asterisk/sounds/backslash.gsm
-#var/lib/asterisk/sounds/bad.gsm
-#var/lib/asterisk/sounds/baltimore.gsm
-#var/lib/asterisk/sounds/bar.gsm
-#var/lib/asterisk/sounds/barn.gsm
-#var/lib/asterisk/sounds/barns.gsm
-#var/lib/asterisk/sounds/barometric.gsm
-#var/lib/asterisk/sounds/bearing.gsm
-#var/lib/asterisk/sounds/beaufort.gsm
-#var/lib/asterisk/sounds/because-paranoid.gsm
-#var/lib/asterisk/sounds/before-the-number.gsm
-#var/lib/asterisk/sounds/believe-its-free.gsm
-#var/lib/asterisk/sounds/billing-and-collections.gsm
-#var/lib/asterisk/sounds/billing.gsm
-#var/lib/asterisk/sounds/billionth.gsm
-#var/lib/asterisk/sounds/bits.gsm
-#var/lib/asterisk/sounds/blue-eyed-polar-bear.gsm
-#var/lib/asterisk/sounds/bookstore.gsm
-#var/lib/asterisk/sounds/boston.gsm
-#var/lib/asterisk/sounds/box.gsm
-#var/lib/asterisk/sounds/brian.gsm
-#var/lib/asterisk/sounds/business-development.gsm
-#var/lib/asterisk/sounds/busy-hangovers.gsm
-#var/lib/asterisk/sounds/busy-pls-hold.gsm
-#var/lib/asterisk/sounds/but.gsm
-#var/lib/asterisk/sounds/by.gsm
-#var/lib/asterisk/sounds/bytes.gsm
-#var/lib/asterisk/sounds/cafeteria.gsm
-#var/lib/asterisk/sounds/california.gsm
-#var/lib/asterisk/sounds/call-forward.gsm
-#var/lib/asterisk/sounds/call-forwarding.gsm
-#var/lib/asterisk/sounds/call-fwd-cancelled.gsm
-#var/lib/asterisk/sounds/call-fwd-no-ans.gsm
-#var/lib/asterisk/sounds/call-fwd-on-busy.gsm
-#var/lib/asterisk/sounds/call-fwd-parallel.gsm
-#var/lib/asterisk/sounds/call-fwd-unconditional.gsm
-#var/lib/asterisk/sounds/call-preempted.gsm
-#var/lib/asterisk/sounds/call-quality-menu.gsm
-#var/lib/asterisk/sounds/call-requres.gsm
-#var/lib/asterisk/sounds/call-terminated.gsm
-#var/lib/asterisk/sounds/call-waiting.gsm
-#var/lib/asterisk/sounds/call.gsm
-#var/lib/asterisk/sounds/calls-taken-by.gsm
-#var/lib/asterisk/sounds/calls-waiting-for-rep.gsm
-#var/lib/asterisk/sounds/calls.gsm
-#var/lib/asterisk/sounds/campground-office.gsm
-#var/lib/asterisk/sounds/cancelled.gsm
-#var/lib/asterisk/sounds/cannot-complete-as-dialed.gsm
-#var/lib/asterisk/sounds/cannot-complete-network-error.gsm
-#var/lib/asterisk/sounds/cannot-complete-otherend-error.gsm
-#var/lib/asterisk/sounds/cannot-complete-temp-error.gsm
-#var/lib/asterisk/sounds/card-balance-is.gsm
-#var/lib/asterisk/sounds/card-is-invalid.gsm
-#var/lib/asterisk/sounds/card-number.gsm
-#var/lib/asterisk/sounds/carried-away-by-monkeys.gsm
-#var/lib/asterisk/sounds/cause-code.gsm
-#var/lib/asterisk/sounds/celsius.gsm
-#var/lib/asterisk/sounds/cent.gsm
-#var/lib/asterisk/sounds/central.gsm
-#var/lib/asterisk/sounds/cents-per-minute.gsm
-#var/lib/asterisk/sounds/cents.gsm
-#var/lib/asterisk/sounds/ceo-office.gsm
-#var/lib/asterisk/sounds/chance-of.gsm
-#var/lib/asterisk/sounds/changing.gsm
-#var/lib/asterisk/sounds/channel-insecure-warn.gsm
-#var/lib/asterisk/sounds/channel-secure.gsm
-#var/lib/asterisk/sounds/channel.gsm
-#var/lib/asterisk/sounds/charlotte.gsm
-#var/lib/asterisk/sounds/chat-room.gsm
-#var/lib/asterisk/sounds/check-number-dial-again.gsm
-#var/lib/asterisk/sounds/chemistry.gsm
-#var/lib/asterisk/sounds/chicago.gsm
-#var/lib/asterisk/sounds/chris.gsm
-#var/lib/asterisk/sounds/claims.gsm
-#var/lib/asterisk/sounds/clear.gsm
-#var/lib/asterisk/sounds/clearing.gsm
-#var/lib/asterisk/sounds/cleveland.gsm
-#var/lib/asterisk/sounds/clli.gsm
-#var/lib/asterisk/sounds/close-parenthesis.gsm
-#var/lib/asterisk/sounds/clouds.gsm
-#var/lib/asterisk/sounds/cloudy.gsm
-#var/lib/asterisk/sounds/collections.gsm
-#var/lib/asterisk/sounds/colorado-springs.gsm
-#var/lib/asterisk/sounds/colorado.gsm
-#var/lib/asterisk/sounds/columbus.gsm
-#var/lib/asterisk/sounds/comma.gsm
-#var/lib/asterisk/sounds/communications.gsm
-#var/lib/asterisk/sounds/company-dir-411.gsm
-#var/lib/asterisk/sounds/complaint.gsm
-#var/lib/asterisk/sounds/compliance.gsm
-#var/lib/asterisk/sounds/computer-friend1.gsm
-#var/lib/asterisk/sounds/computer-friend2.gsm
-#var/lib/asterisk/sounds/conditions.gsm
-#var/lib/asterisk/sounds/conf-banned.gsm
-#var/lib/asterisk/sounds/conf-full.gsm
-#var/lib/asterisk/sounds/conf-hasentered.gsm
-#var/lib/asterisk/sounds/conf-onlypersonleft.gsm
-#var/lib/asterisk/sounds/conf-peopleinconf.gsm
-#var/lib/asterisk/sounds/conf-sysop.gsm
-#var/lib/asterisk/sounds/conf-sysopreq.gsm
-#var/lib/asterisk/sounds/conf-sysopreqcancelled.gsm
-#var/lib/asterisk/sounds/conf-youareinconfnum.gsm
-#var/lib/asterisk/sounds/conference-call.gsm
-#var/lib/asterisk/sounds/conference-reservations.gsm
-#var/lib/asterisk/sounds/conference.gsm
-#var/lib/asterisk/sounds/confirm-number-is.gsm
-#var/lib/asterisk/sounds/connected.gsm
-#var/lib/asterisk/sounds/connecticut.gsm
-#var/lib/asterisk/sounds/connecting.gsm
-#var/lib/asterisk/sounds/connection-failed.gsm
-#var/lib/asterisk/sounds/connection-timed-out.gsm
-#var/lib/asterisk/sounds/continue-english-press.gsm
-#var/lib/asterisk/sounds/continue-in-english.gsm
-#var/lib/asterisk/sounds/copy-center.gsm
-#var/lib/asterisk/sounds/could-lose-a-few-pounds.gsm
-#var/lib/asterisk/sounds/counseling-services.gsm
-#var/lib/asterisk/sounds/count.gsm
-#var/lib/asterisk/sounds/crash.gsm
-#var/lib/asterisk/sounds/current-time-is.gsm
-#var/lib/asterisk/sounds/currently.gsm
-#var/lib/asterisk/sounds/customer-accounts.gsm
-#var/lib/asterisk/sounds/customer-relations.gsm
-#var/lib/asterisk/sounds/customer-service.gsm
-#var/lib/asterisk/sounds/cyclone.gsm
-#var/lib/asterisk/sounds/dallas.gsm
-#var/lib/asterisk/sounds/dash.gsm
-#var/lib/asterisk/sounds/date.gsm
-#var/lib/asterisk/sounds/day.gsm
-#var/lib/asterisk/sounds/daylight.gsm
-#var/lib/asterisk/sounds/days.gsm
-#var/lib/asterisk/sounds/de-activated.gsm
-#var/lib/asterisk/sounds/deadbeat.gsm
-#var/lib/asterisk/sounds/decode.gsm
-#var/lib/asterisk/sounds/default-attendant.gsm
-#var/lib/asterisk/sounds/degrees.gsm
-#var/lib/asterisk/sounds/delaware.gsm
-#var/lib/asterisk/sounds/denial-of-service.gsm
-#var/lib/asterisk/sounds/denver.gsm
-#var/lib/asterisk/sounds/department-administrator.gsm
-#var/lib/asterisk/sounds/department.gsm
-#var/lib/asterisk/sounds/deposit.gsm
-#var/lib/asterisk/sounds/design.gsm
-#var/lib/asterisk/sounds/detroit.gsm
-#var/lib/asterisk/sounds/development.gsm
-#var/lib/asterisk/sounds/dial-here-often.gsm
-#var/lib/asterisk/sounds/digit.gsm
-#var/lib/asterisk/sounds/digits.gsm
-#var/lib/asterisk/sounds/directory-assistance.gsm
-#var/lib/asterisk/sounds/directory.gsm
-#var/lib/asterisk/sounds/disabled.gsm
-#var/lib/asterisk/sounds/discon-or-out-of-service.gsm
-#var/lib/asterisk/sounds/disconnected.gsm
-#var/lib/asterisk/sounds/disk.gsm
-#var/lib/asterisk/sounds/distribution.gsm
-#var/lib/asterisk/sounds/divided-by.gsm
-#var/lib/asterisk/sounds/dns.gsm
-#var/lib/asterisk/sounds/do-not-disturb.gsm
-#var/lib/asterisk/sounds/doing-enum-lookup.gsm
-#var/lib/asterisk/sounds/dollar.gsm
-#var/lib/asterisk/sounds/dollars.gsm
-#var/lib/asterisk/sounds/dont-know-who-sent.gsm
-#var/lib/asterisk/sounds/doppler-radar.gsm
-#var/lib/asterisk/sounds/dot.gsm
-#var/lib/asterisk/sounds/down.gsm
-#var/lib/asterisk/sounds/driving-directions.gsm
-#var/lib/asterisk/sounds/duplex.gsm
-#var/lib/asterisk/sounds/duplication.gsm
-#var/lib/asterisk/sounds/early.gsm
-#var/lib/asterisk/sounds/east.gsm
-#var/lib/asterisk/sounds/easterly.gsm
-#var/lib/asterisk/sounds/eastern.gsm
-#var/lib/asterisk/sounds/echo-test.gsm
-#var/lib/asterisk/sounds/ed.gsm
-#var/lib/asterisk/sounds/eighteenth.gsm
-#var/lib/asterisk/sounds/eighth.gsm
-#var/lib/asterisk/sounds/eightieth.gsm
-#var/lib/asterisk/sounds/el-paso.gsm
-#var/lib/asterisk/sounds/eleventh.gsm
-#var/lib/asterisk/sounds/email.gsm
-#var/lib/asterisk/sounds/emergency.gsm
-#var/lib/asterisk/sounds/enabled.gsm
-#var/lib/asterisk/sounds/encode.gsm
-#var/lib/asterisk/sounds/engineering.gsm
-#var/lib/asterisk/sounds/ent-target-attendant.gsm
-#var/lib/asterisk/sounds/enter-a-time.gsm
-#var/lib/asterisk/sounds/enter-conf-call-number.gsm
-#var/lib/asterisk/sounds/enter-conf-pin-number.gsm
-#var/lib/asterisk/sounds/enter-ext-of-person.gsm
-#var/lib/asterisk/sounds/enter-num-blacklist.gsm
-#var/lib/asterisk/sounds/enter-password.gsm
-#var/lib/asterisk/sounds/enter-phone-number10.gsm
-#var/lib/asterisk/sounds/entering-conf-number.gsm
-#var/lib/asterisk/sounds/entr-num-rmv-blklist.gsm
-#var/lib/asterisk/sounds/enum-lookup-failed.gsm
-#var/lib/asterisk/sounds/enum-lookup-successful.gsm
-#var/lib/asterisk/sounds/equals.gsm
-#var/lib/asterisk/sounds/error-number.gsm
-#var/lib/asterisk/sounds/est-hold-time-is.gsm
-#var/lib/asterisk/sounds/euro.gsm
-#var/lib/asterisk/sounds/european.gsm
-#var/lib/asterisk/sounds/euros.gsm
-#var/lib/asterisk/sounds/evening.gsm
-#var/lib/asterisk/sounds/exclaimation-point.gsm
-#var/lib/asterisk/sounds/explanation.gsm
-#var/lib/asterisk/sounds/ext-or-zero.gsm
-#var/lib/asterisk/sounds/extension.gsm
-#var/lib/asterisk/sounds/extensions.gsm
-#var/lib/asterisk/sounds/facilities.gsm
-#var/lib/asterisk/sounds/fahrenheit.gsm
-#var/lib/asterisk/sounds/falling.gsm
-#var/lib/asterisk/sounds/fast.gsm
-#var/lib/asterisk/sounds/feature-not-avail-line.gsm
-#var/lib/asterisk/sounds/feet.gsm
-#var/lib/asterisk/sounds/female.gsm
-#var/lib/asterisk/sounds/fifteenth.gsm
-#var/lib/asterisk/sounds/fifth.gsm
-#var/lib/asterisk/sounds/fiftieth.gsm
-#var/lib/asterisk/sounds/finals.gsm
-#var/lib/asterisk/sounds/finance.gsm
-#var/lib/asterisk/sounds/first-in-line.gsm
-#var/lib/asterisk/sounds/first.gsm
-#var/lib/asterisk/sounds/flagged-for-lea.gsm
-#var/lib/asterisk/sounds/flooding.gsm
-#var/lib/asterisk/sounds/florida.gsm
-#var/lib/asterisk/sounds/fog.gsm
-#var/lib/asterisk/sounds/foggy.gsm
-#var/lib/asterisk/sounds/followed-by.gsm
-#var/lib/asterisk/sounds/food-service.gsm
-#var/lib/asterisk/sounds/food-services.gsm
-#var/lib/asterisk/sounds/for-a-daily-wakeup-call.gsm
-#var/lib/asterisk/sounds/for-a-list-of.gsm
-#var/lib/asterisk/sounds/for-accounting.gsm
-#var/lib/asterisk/sounds/for-billing.gsm
-#var/lib/asterisk/sounds/for-english-press.gsm
-#var/lib/asterisk/sounds/for-investor-relations.gsm
-#var/lib/asterisk/sounds/for-louie-louie.gsm
-#var/lib/asterisk/sounds/for-no-press.gsm
-#var/lib/asterisk/sounds/for-qc-and-training-purposes.gsm
-#var/lib/asterisk/sounds/for-quality-purposes.gsm
-#var/lib/asterisk/sounds/for-sales.gsm
-#var/lib/asterisk/sounds/for-service.gsm
-#var/lib/asterisk/sounds/for-tech-support.gsm
-#var/lib/asterisk/sounds/for-the-first.gsm
-#var/lib/asterisk/sounds/for-the-weather.gsm
-#var/lib/asterisk/sounds/for-wakeup-call.gsm
-#var/lib/asterisk/sounds/for-yes-press.gsm
-#var/lib/asterisk/sounds/for.gsm
-#var/lib/asterisk/sounds/fort-worth.gsm
-#var/lib/asterisk/sounds/fortieth.gsm
-#var/lib/asterisk/sounds/fourteenth.gsm
-#var/lib/asterisk/sounds/fourth.gsm
-#var/lib/asterisk/sounds/freeze.gsm
-#var/lib/asterisk/sounds/freezing.gsm
-#var/lib/asterisk/sounds/frequency.gsm
-#var/lib/asterisk/sounds/fresno.gsm
-#var/lib/asterisk/sounds/from-unknown-caller.gsm
-#var/lib/asterisk/sounds/from.gsm
-#var/lib/asterisk/sounds/ftp.gsm
-#var/lib/asterisk/sounds/gale.gsm
-#var/lib/asterisk/sounds/gambling-drunk.gsm
-#var/lib/asterisk/sounds/georgia.gsm
-#var/lib/asterisk/sounds/gigabits.gsm
-#var/lib/asterisk/sounds/gigabytes.gsm
-#var/lib/asterisk/sounds/gigahertz.gsm
-#var/lib/asterisk/sounds/giggle1.gsm
-#var/lib/asterisk/sounds/gmt.gsm
-#var/lib/asterisk/sounds/go-away1.gsm
-#var/lib/asterisk/sounds/go-away2.gsm
-#var/lib/asterisk/sounds/good.gsm
-#var/lib/asterisk/sounds/goodbye.gsm
-#var/lib/asterisk/sounds/greater-than.gsm
-#var/lib/asterisk/sounds/groovy.gsm
-#var/lib/asterisk/sounds/ha
-#var/lib/asterisk/sounds/ha/ac.gsm
-#var/lib/asterisk/sounds/ha/air-conditioner.gsm
-#var/lib/asterisk/sounds/ha/alarm.gsm
-#var/lib/asterisk/sounds/ha/amp.gsm
-#var/lib/asterisk/sounds/ha/amps.gsm
-#var/lib/asterisk/sounds/ha/attic.gsm
-#var/lib/asterisk/sounds/ha/baby-sleeping-mode.gsm
-#var/lib/asterisk/sounds/ha/back.gsm
-#var/lib/asterisk/sounds/ha/basement.gsm
-#var/lib/asterisk/sounds/ha/bathroom.gsm
-#var/lib/asterisk/sounds/ha/bedroom.gsm
-#var/lib/asterisk/sounds/ha/bright.gsm
-#var/lib/asterisk/sounds/ha/callerid.gsm
-#var/lib/asterisk/sounds/ha/carport.gsm
-#var/lib/asterisk/sounds/ha/closet.gsm
-#var/lib/asterisk/sounds/ha/coffee-pot.gsm
-#var/lib/asterisk/sounds/ha/cool.gsm
-#var/lib/asterisk/sounds/ha/cooling.gsm
-#var/lib/asterisk/sounds/ha/dc.gsm
-#var/lib/asterisk/sounds/ha/decibel.gsm
-#var/lib/asterisk/sounds/ha/decibels.gsm
-#var/lib/asterisk/sounds/ha/deck.gsm
-#var/lib/asterisk/sounds/ha/degree.gsm
-#var/lib/asterisk/sounds/ha/degrees.gsm
-#var/lib/asterisk/sounds/ha/den.gsm
-#var/lib/asterisk/sounds/ha/dim.gsm
-#var/lib/asterisk/sounds/ha/dining-room.gsm
-#var/lib/asterisk/sounds/ha/door.gsm
-#var/lib/asterisk/sounds/ha/doors.gsm
-#var/lib/asterisk/sounds/ha/down.gsm
-#var/lib/asterisk/sounds/ha/driveway.gsm
-#var/lib/asterisk/sounds/ha/dryer.gsm
-#var/lib/asterisk/sounds/ha/fan.gsm
-#var/lib/asterisk/sounds/ha/farad.gsm
-#var/lib/asterisk/sounds/ha/farads.gsm
-#var/lib/asterisk/sounds/ha/first-floor.gsm
-#var/lib/asterisk/sounds/ha/floor.gsm
-#var/lib/asterisk/sounds/ha/floors.gsm
-#var/lib/asterisk/sounds/ha/for-extended-status-report.gsm
-#var/lib/asterisk/sounds/ha/for-quick-status-report.gsm
-#var/lib/asterisk/sounds/ha/for-wx-report.gsm
-#var/lib/asterisk/sounds/ha/fountain.gsm
-#var/lib/asterisk/sounds/ha/foyer.gsm
-#var/lib/asterisk/sounds/ha/front.gsm
-#var/lib/asterisk/sounds/ha/furnace.gsm
-#var/lib/asterisk/sounds/ha/game-room.gsm
-#var/lib/asterisk/sounds/ha/garage.gsm
-#var/lib/asterisk/sounds/ha/great-room.gsm
-#var/lib/asterisk/sounds/ha/guest-room.gsm
-#var/lib/asterisk/sounds/ha/hall.gsm
-#var/lib/asterisk/sounds/ha/has-been-left.gsm
-#var/lib/asterisk/sounds/ha/heat-pump.gsm
-#var/lib/asterisk/sounds/ha/heat.gsm
-#var/lib/asterisk/sounds/ha/heating.gsm
-#var/lib/asterisk/sounds/ha/hot-tub.gsm
-#var/lib/asterisk/sounds/ha/house.gsm
-#var/lib/asterisk/sounds/ha/intruder.gsm
-#var/lib/asterisk/sounds/ha/is.gsm
-#var/lib/asterisk/sounds/ha/kelvin.gsm
-#var/lib/asterisk/sounds/ha/kitchen.gsm
-#var/lib/asterisk/sounds/ha/lamp.gsm
-#var/lib/asterisk/sounds/ha/lamps.gsm
-#var/lib/asterisk/sounds/ha/landscape.gsm
-#var/lib/asterisk/sounds/ha/laundry.gsm
-#var/lib/asterisk/sounds/ha/library.gsm
-#var/lib/asterisk/sounds/ha/light.gsm
-#var/lib/asterisk/sounds/ha/lights.gsm
-#var/lib/asterisk/sounds/ha/living-room.gsm
-#var/lib/asterisk/sounds/ha/locked.gsm
-#var/lib/asterisk/sounds/ha/locking.gsm
-#var/lib/asterisk/sounds/ha/mailbox.gsm
-#var/lib/asterisk/sounds/ha/master.gsm
-#var/lib/asterisk/sounds/ha/off.gsm
-#var/lib/asterisk/sounds/ha/office.gsm
-#var/lib/asterisk/sounds/ha/ohm.gsm
-#var/lib/asterisk/sounds/ha/ohms.gsm
-#var/lib/asterisk/sounds/ha/on.gsm
-#var/lib/asterisk/sounds/ha/open.gsm
-#var/lib/asterisk/sounds/ha/patio.gsm
-#var/lib/asterisk/sounds/ha/phone.gsm
-#var/lib/asterisk/sounds/ha/play-room.gsm
-#var/lib/asterisk/sounds/ha/play.gsm
-#var/lib/asterisk/sounds/ha/pool.gsm
-#var/lib/asterisk/sounds/ha/porch.gsm
-#var/lib/asterisk/sounds/ha/power-failure.gsm
-#var/lib/asterisk/sounds/ha/pressure.gsm
-#var/lib/asterisk/sounds/ha/psi.gsm
-#var/lib/asterisk/sounds/ha/quiet-mode.gsm
-#var/lib/asterisk/sounds/ha/reset.gsm
-#var/lib/asterisk/sounds/ha/roof.gsm
-#var/lib/asterisk/sounds/ha/room.gsm
-#var/lib/asterisk/sounds/ha/rooms.gsm
-#var/lib/asterisk/sounds/ha/second-floor.gsm
-#var/lib/asterisk/sounds/ha/secure.gsm
-#var/lib/asterisk/sounds/ha/security-system.gsm
-#var/lib/asterisk/sounds/ha/set.gsm
-#var/lib/asterisk/sounds/ha/side.gsm
-#var/lib/asterisk/sounds/ha/solar.gsm
-#var/lib/asterisk/sounds/ha/sprinklers.gsm
-#var/lib/asterisk/sounds/ha/still.gsm
-#var/lib/asterisk/sounds/ha/stove.gsm
-#var/lib/asterisk/sounds/ha/sump-pump.gsm
-#var/lib/asterisk/sounds/ha/sun-room.gsm
-#var/lib/asterisk/sounds/ha/system.gsm
-#var/lib/asterisk/sounds/ha/systems.gsm
-#var/lib/asterisk/sounds/ha/thermostat.gsm
-#var/lib/asterisk/sounds/ha/to-control-environ-sys.gsm
-#var/lib/asterisk/sounds/ha/to-control-lights-appl.gsm
-#var/lib/asterisk/sounds/ha/tower.gsm
-#var/lib/asterisk/sounds/ha/unlocked.gsm
-#var/lib/asterisk/sounds/ha/unlocking.gsm
-#var/lib/asterisk/sounds/ha/up.gsm
-#var/lib/asterisk/sounds/ha/volt.gsm
-#var/lib/asterisk/sounds/ha/volts.gsm
-#var/lib/asterisk/sounds/ha/washing-machine.gsm
-#var/lib/asterisk/sounds/ha/water-heater.gsm
-#var/lib/asterisk/sounds/ha/watt.gsm
-#var/lib/asterisk/sounds/ha/watts.gsm
-#var/lib/asterisk/sounds/ha/well-pump.gsm
-#var/lib/asterisk/sounds/ha/window.gsm
-#var/lib/asterisk/sounds/ha/windows.gsm
-#var/lib/asterisk/sounds/ha/xmas-lights.gsm
-#var/lib/asterisk/sounds/ha/xmas-tree.gsm
-#var/lib/asterisk/sounds/ha/yard.gsm
-#var/lib/asterisk/sounds/hail.gsm
-#var/lib/asterisk/sounds/half.gsm
-#var/lib/asterisk/sounds/hang-on-a-second-angry.gsm
-#var/lib/asterisk/sounds/hang-on-a-second.gsm
-#var/lib/asterisk/sounds/hangup-try-again.gsm
-#var/lib/asterisk/sounds/has-arrived-at.gsm
-#var/lib/asterisk/sounds/has-been-changed-to.gsm
-#var/lib/asterisk/sounds/has-been-cleared.gsm
-#var/lib/asterisk/sounds/has-been-disconnected.gsm
-#var/lib/asterisk/sounds/has-been-set-to.gsm
-#var/lib/asterisk/sounds/has-been.gsm
-#var/lib/asterisk/sounds/has-expired.gsm
-#var/lib/asterisk/sounds/has-issued-a.gsm
-#var/lib/asterisk/sounds/has-not-been-seen-for.gsm
-#var/lib/asterisk/sounds/has.gsm
-#var/lib/asterisk/sounds/hash.gsm
-#var/lib/asterisk/sounds/hawaii.gsm
-#var/lib/asterisk/sounds/headed-towards.gsm
-#var/lib/asterisk/sounds/heading.gsm
-#var/lib/asterisk/sounds/health-center.gsm
-#var/lib/asterisk/sounds/hear-odd-noise.gsm
-#var/lib/asterisk/sounds/hear-toilet-flush.gsm
-#var/lib/asterisk/sounds/hectopascal.gsm
-#var/lib/asterisk/sounds/helpdesk.gsm
-#var/lib/asterisk/sounds/hertz.gsm
-#var/lib/asterisk/sounds/high.gsm
-#var/lib/asterisk/sounds/highway.gsm
-#var/lib/asterisk/sounds/hit.gsm
-#var/lib/asterisk/sounds/hold-or-dial-0.gsm
-#var/lib/asterisk/sounds/home.gsm
-#var/lib/asterisk/sounds/honolulu.gsm
-#var/lib/asterisk/sounds/hours.gsm
-#var/lib/asterisk/sounds/housekeeping.gsm
-#var/lib/asterisk/sounds/houston.gsm
-#var/lib/asterisk/sounds/http.gsm
-#var/lib/asterisk/sounds/human-resources.gsm
-#var/lib/asterisk/sounds/humidity.gsm
-#var/lib/asterisk/sounds/hundredth.gsm
-#var/lib/asterisk/sounds/hurricane.gsm
-#var/lib/asterisk/sounds/hz.gsm
-#var/lib/asterisk/sounds/i-dont-understand.gsm
-#var/lib/asterisk/sounds/i-dont-understand2.gsm
-#var/lib/asterisk/sounds/i-dont-understand3.gsm
-#var/lib/asterisk/sounds/i-dont-understand4.gsm
-#var/lib/asterisk/sounds/i-dont-understand5.gsm
-#var/lib/asterisk/sounds/i-grow-bored.gsm
-#var/lib/asterisk/sounds/ice.gsm
-#var/lib/asterisk/sounds/icmp.gsm
-#var/lib/asterisk/sounds/icy.gsm
-#var/lib/asterisk/sounds/idaho.gsm
-#var/lib/asterisk/sounds/if-correct-press.gsm
-#var/lib/asterisk/sounds/if-grtg-played-indefinately.gsm
-#var/lib/asterisk/sounds/if-grtg-should-expire-at.gsm
-#var/lib/asterisk/sounds/if-maint-contract-or-emergency.gsm
-#var/lib/asterisk/sounds/if-rotary-phone.gsm
-#var/lib/asterisk/sounds/if-this-is-correct-press.gsm
-#var/lib/asterisk/sounds/if-this-is-correct.gsm
-#var/lib/asterisk/sounds/if-this-is-not-correct.gsm
-#var/lib/asterisk/sounds/if-u-know-ext-dial.gsm
-#var/lib/asterisk/sounds/if-unsuccessful-speak-to.gsm
-#var/lib/asterisk/sounds/if-you-know-the.gsm
-#var/lib/asterisk/sounds/if-you-need-help.gsm
-#var/lib/asterisk/sounds/if-youd-like-to-make-a-call.gsm
-#var/lib/asterisk/sounds/illinois.gsm
-#var/lib/asterisk/sounds/im-sorry-unable-to-connect-to-eng.gsm
-#var/lib/asterisk/sounds/im-sorry.gsm
-#var/lib/asterisk/sounds/imap.gsm
-#var/lib/asterisk/sounds/in-service.gsm
-#var/lib/asterisk/sounds/in-the-line.gsm
-#var/lib/asterisk/sounds/in-the-queue.gsm
-#var/lib/asterisk/sounds/in-the.gsm
-#var/lib/asterisk/sounds/in-your-city.gsm
-#var/lib/asterisk/sounds/in-your-zip-code.gsm
-#var/lib/asterisk/sounds/inbound.gsm
-#var/lib/asterisk/sounds/indiana.gsm
-#var/lib/asterisk/sounds/indianapolis.gsm
-#var/lib/asterisk/sounds/indicated.gsm
-#var/lib/asterisk/sounds/info-about-last-call.gsm
-#var/lib/asterisk/sounds/information-technology.gsm
-#var/lib/asterisk/sounds/information.gsm
-#var/lib/asterisk/sounds/infuriate-tech-staff.gsm
-#var/lib/asterisk/sounds/initiated.gsm
-#var/lib/asterisk/sounds/initiating.gsm
-#var/lib/asterisk/sounds/inside-sales.gsm
-#var/lib/asterisk/sounds/internal-audit.gsm
-#var/lib/asterisk/sounds/international-call.gsm
-#var/lib/asterisk/sounds/interstate.gsm
-#var/lib/asterisk/sounds/invalid-date.gsm
-#var/lib/asterisk/sounds/investor-relations.gsm
-#var/lib/asterisk/sounds/iowa.gsm
-#var/lib/asterisk/sounds/is-at.gsm
-#var/lib/asterisk/sounds/is-curntly-busy.gsm
-#var/lib/asterisk/sounds/is-curntly-unavail.gsm
-#var/lib/asterisk/sounds/is-currently.gsm
-#var/lib/asterisk/sounds/is-in-use.gsm
-#var/lib/asterisk/sounds/is-not-in-the.gsm
-#var/lib/asterisk/sounds/is-not-set.gsm
-#var/lib/asterisk/sounds/is-now-being-recorded.gsm
-#var/lib/asterisk/sounds/is-set-to.gsm
-#var/lib/asterisk/sounds/is.gsm
-#var/lib/asterisk/sounds/it-now.gsm
-#var/lib/asterisk/sounds/it-services.gsm
-#var/lib/asterisk/sounds/jacksonville.gsm
-#var/lib/asterisk/sounds/janitorial.gsm
-#var/lib/asterisk/sounds/jason.gsm
-#var/lib/asterisk/sounds/jedi-extension-trick.gsm
-#var/lib/asterisk/sounds/john.gsm
-#var/lib/asterisk/sounds/just-kidding-not-upset.gsm
-#var/lib/asterisk/sounds/just-kidding-not-upset2.gsm
-#var/lib/asterisk/sounds/kansas-city.gsm
-#var/lib/asterisk/sounds/kansas.gsm
-#var/lib/asterisk/sounds/kentucky.gsm
-#var/lib/asterisk/sounds/kilobits.gsm
-#var/lib/asterisk/sounds/kilobytes.gsm
-#var/lib/asterisk/sounds/kilohertz.gsm
-#var/lib/asterisk/sounds/kilometer.gsm
-#var/lib/asterisk/sounds/kilometers-per-hour.gsm
-#var/lib/asterisk/sounds/knock-knock.gsm
-#var/lib/asterisk/sounds/knots.gsm
-#var/lib/asterisk/sounds/language.gsm
-#var/lib/asterisk/sounds/las-vegas.gsm
-#var/lib/asterisk/sounds/last-error-was.gsm
-#var/lib/asterisk/sounds/last-num-to-call.gsm
-#var/lib/asterisk/sounds/late.gsm
-#var/lib/asterisk/sounds/later.gsm
-#var/lib/asterisk/sounds/lea-may-request-info.gsm
-#var/lib/asterisk/sounds/left-bracket.gsm
-#var/lib/asterisk/sounds/legal.gsm
-#var/lib/asterisk/sounds/len.gsm
-#var/lib/asterisk/sounds/less-than.gsm
-#var/lib/asterisk/sounds/library.gsm
-#var/lib/asterisk/sounds/lightning.gsm
-#var/lib/asterisk/sounds/limit-simul-calls.gsm
-#var/lib/asterisk/sounds/lines-complaining-customers.gsm
-#var/lib/asterisk/sounds/linux.gsm
-#var/lib/asterisk/sounds/list.gsm
-#var/lib/asterisk/sounds/load-average.gsm
-#var/lib/asterisk/sounds/local-authorities.gsm
-#var/lib/asterisk/sounds/location.gsm
-#var/lib/asterisk/sounds/login-fail.gsm
-#var/lib/asterisk/sounds/long-beach.gsm
-#var/lib/asterisk/sounds/los-angeles.gsm
-#var/lib/asterisk/sounds/loss-prevention.gsm
-#var/lib/asterisk/sounds/loss.gsm
-#var/lib/asterisk/sounds/lots-o-monkeys.gsm
-#var/lib/asterisk/sounds/louisiana.gsm
-#var/lib/asterisk/sounds/low.gsm
-#var/lib/asterisk/sounds/lunch.gsm
-#var/lib/asterisk/sounds/lyrics-louie-louie.gsm
-#var/lib/asterisk/sounds/machine.gsm
-#var/lib/asterisk/sounds/made-it-up.gsm
-#var/lib/asterisk/sounds/mail.gsm
-#var/lib/asterisk/sounds/mailroom.gsm
-#var/lib/asterisk/sounds/main-menu.gsm
-#var/lib/asterisk/sounds/maine.gsm
-#var/lib/asterisk/sounds/maintenance.gsm
-#var/lib/asterisk/sounds/male.gsm
-#var/lib/asterisk/sounds/management.gsm
-#var/lib/asterisk/sounds/manufacturing.gsm
-#var/lib/asterisk/sounds/marketing.gsm
-#var/lib/asterisk/sounds/marryme.gsm
-#var/lib/asterisk/sounds/maryland.gsm
-#var/lib/asterisk/sounds/massachusetts.gsm
-#var/lib/asterisk/sounds/mathematics.gsm
-#var/lib/asterisk/sounds/maximum.gsm
-#var/lib/asterisk/sounds/megabits.gsm
-#var/lib/asterisk/sounds/megabytes.gsm
-#var/lib/asterisk/sounds/megahertz.gsm
-#var/lib/asterisk/sounds/memory.gsm
-#var/lib/asterisk/sounds/memphis.gsm
-#var/lib/asterisk/sounds/menu.gsm
-#var/lib/asterisk/sounds/mesa.gsm
-#var/lib/asterisk/sounds/message-from.gsm
-#var/lib/asterisk/sounds/message-number.gsm
-#var/lib/asterisk/sounds/meter.gsm
-#var/lib/asterisk/sounds/meters.gsm
-#var/lib/asterisk/sounds/miami.gsm
-#var/lib/asterisk/sounds/michigan.gsm
-#var/lib/asterisk/sounds/midnight-tomorrow-night.gsm
-#var/lib/asterisk/sounds/midnight-tonight.gsm
-#var/lib/asterisk/sounds/midnight.gsm
-#var/lib/asterisk/sounds/mike.gsm
-#var/lib/asterisk/sounds/miles-per-hour.gsm
-#var/lib/asterisk/sounds/miles.gsm
-#var/lib/asterisk/sounds/millionth.gsm
-#var/lib/asterisk/sounds/milwaukee.gsm
-#var/lib/asterisk/sounds/minimum.gsm
-#var/lib/asterisk/sounds/minneapolis.gsm
-#var/lib/asterisk/sounds/minnesota.gsm
-#var/lib/asterisk/sounds/minus.gsm
-#var/lib/asterisk/sounds/minute.gsm
-#var/lib/asterisk/sounds/minutes.gsm
-#var/lib/asterisk/sounds/missed.gsm
-#var/lib/asterisk/sounds/mississippi.gsm
-#var/lib/asterisk/sounds/missouri.gsm
-#var/lib/asterisk/sounds/misty.gsm
-#var/lib/asterisk/sounds/monitored.gsm
-#var/lib/asterisk/sounds/montana.gsm
-#var/lib/asterisk/sounds/month.gsm
-#var/lib/asterisk/sounds/months.gsm
-#var/lib/asterisk/sounds/moo1.gsm
-#var/lib/asterisk/sounds/moo2.gsm
-#var/lib/asterisk/sounds/morning.gsm
-#var/lib/asterisk/sounds/moron.gsm
-#var/lib/asterisk/sounds/mostly.gsm
-#var/lib/asterisk/sounds/motor-pool.gsm
-#var/lib/asterisk/sounds/mountain.gsm
-#var/lib/asterisk/sounds/moving.gsm
-#var/lib/asterisk/sounds/ms.gsm
-#var/lib/asterisk/sounds/nashville.gsm
-#var/lib/asterisk/sounds/national-weather-service.gsm
-#var/lib/asterisk/sounds/nautical-miles.gsm
-#var/lib/asterisk/sounds/nbdy-avail-to-take-call.gsm
-#var/lib/asterisk/sounds/near.gsm
-#var/lib/asterisk/sounds/nebraska.gsm
-#var/lib/asterisk/sounds/negative.gsm
-#var/lib/asterisk/sounds/network-operations-center.gsm
-#var/lib/asterisk/sounds/network-operations.gsm
-#var/lib/asterisk/sounds/nevada.gsm
-#var/lib/asterisk/sounds/new-accounts.gsm
-#var/lib/asterisk/sounds/new-hampshire.gsm
-#var/lib/asterisk/sounds/new-jersey.gsm
-#var/lib/asterisk/sounds/new-mexico.gsm
-#var/lib/asterisk/sounds/new-orleans.gsm
-#var/lib/asterisk/sounds/new-york.gsm
-#var/lib/asterisk/sounds/nineteenth.gsm
-#var/lib/asterisk/sounds/ninetieth.gsm
-#var/lib/asterisk/sounds/ninth.gsm
-#var/lib/asterisk/sounds/no-112-1.gsm
-#var/lib/asterisk/sounds/no-112-2.gsm
-#var/lib/asterisk/sounds/no-911-1.gsm
-#var/lib/asterisk/sounds/no-911-2.gsm
-#var/lib/asterisk/sounds/no-empty-conferences.gsm
-#var/lib/asterisk/sounds/no-info-about-number.gsm
-#var/lib/asterisk/sounds/no-longer-in-service.gsm
-#var/lib/asterisk/sounds/no-reply-no-mailbox.gsm
-#var/lib/asterisk/sounds/no-route-exists-to-dest.gsm
-#var/lib/asterisk/sounds/nobody-but-chickens.gsm
-#var/lib/asterisk/sounds/node.gsm
-#var/lib/asterisk/sounds/north-carolina.gsm
-#var/lib/asterisk/sounds/north-dakota.gsm
-#var/lib/asterisk/sounds/north.gsm
-#var/lib/asterisk/sounds/northerly.gsm
-#var/lib/asterisk/sounds/not-auth-pstn.gsm
-#var/lib/asterisk/sounds/not-enough-credit.gsm
-#var/lib/asterisk/sounds/not-necessary-1.gsm
-#var/lib/asterisk/sounds/not-necessary-ac.gsm
-#var/lib/asterisk/sounds/not-necessary-dial-1-or-ac.gsm
-#var/lib/asterisk/sounds/not-rqsted-wakeup.gsm
-#var/lib/asterisk/sounds/not-taking-your-call.gsm
-#var/lib/asterisk/sounds/not-yet-assigned.gsm
-#var/lib/asterisk/sounds/not-yet-connected.gsm
-#var/lib/asterisk/sounds/nothing-recorded.gsm
-#var/lib/asterisk/sounds/now.gsm
-#var/lib/asterisk/sounds/num-not-in-db.gsm
-#var/lib/asterisk/sounds/num-outside-area.gsm
-#var/lib/asterisk/sounds/num-was-successfully.gsm
-#var/lib/asterisk/sounds/number-not-answering.gsm
-#var/lib/asterisk/sounds/number.gsm
-#var/lib/asterisk/sounds/oakland.gsm
-#var/lib/asterisk/sounds/octothorpe.gsm
-#var/lib/asterisk/sounds/off-duty.gsm
-#var/lib/asterisk/sounds/office-code.gsm
-#var/lib/asterisk/sounds/office-iguanas.gsm
-#var/lib/asterisk/sounds/office.gsm
-#var/lib/asterisk/sounds/ohio.gsm
-#var/lib/asterisk/sounds/oklahoma-city.gsm
-#var/lib/asterisk/sounds/oklahoma.gsm
-#var/lib/asterisk/sounds/omaha.gsm
-#var/lib/asterisk/sounds/on-busy.gsm
-#var/lib/asterisk/sounds/on-monthly-tel-stment.gsm
-#var/lib/asterisk/sounds/on-no-answer.gsm
-#var/lib/asterisk/sounds/on.gsm
-#var/lib/asterisk/sounds/one-moment-please.gsm
-#var/lib/asterisk/sounds/one-small-step.gsm
-#var/lib/asterisk/sounds/one-small-step2.gsm
-#var/lib/asterisk/sounds/oops1.gsm
-#var/lib/asterisk/sounds/oops2.gsm
-#var/lib/asterisk/sounds/oops3.gsm
-#var/lib/asterisk/sounds/open-parenthesis.gsm
-#var/lib/asterisk/sounds/operations.gsm
-#var/lib/asterisk/sounds/option-not-implemented.gsm
-#var/lib/asterisk/sounds/or-press.gsm
-#var/lib/asterisk/sounds/or.gsm
-#var/lib/asterisk/sounds/order-desk.gsm
-#var/lib/asterisk/sounds/orders.gsm
-#var/lib/asterisk/sounds/oregon.gsm
-#var/lib/asterisk/sounds/other-options-exercise.gsm
-#var/lib/asterisk/sounds/otherwise-press.gsm
-#var/lib/asterisk/sounds/otherwise.gsm
-#var/lib/asterisk/sounds/our-business-hours-are.gsm
-#var/lib/asterisk/sounds/outbound.gsm
-#var/lib/asterisk/sounds/outside-sales.gsm
-#var/lib/asterisk/sounds/outside-transfer.gsm
-#var/lib/asterisk/sounds/p.gsm
-#var/lib/asterisk/sounds/pacific.gsm
-#var/lib/asterisk/sounds/packet.gsm
-#var/lib/asterisk/sounds/panic.gsm
-#var/lib/asterisk/sounds/partially.gsm
-#var/lib/asterisk/sounds/partly.gsm
-#var/lib/asterisk/sounds/pascal.gsm
-#var/lib/asterisk/sounds/pascal2.gsm
-#var/lib/asterisk/sounds/patchy.gsm
-#var/lib/asterisk/sounds/pence.gsm
-#var/lib/asterisk/sounds/pennies.gsm
-#var/lib/asterisk/sounds/pennsylvania.gsm
-#var/lib/asterisk/sounds/penny.gsm
-#var/lib/asterisk/sounds/percent.gsm
-#var/lib/asterisk/sounds/perhaps-we-are.gsm
-#var/lib/asterisk/sounds/perhaps-we-are2.gsm
-#var/lib/asterisk/sounds/period.gsm
-#var/lib/asterisk/sounds/personnel.gsm
-#var/lib/asterisk/sounds/persons-in-path-of.gsm
-#var/lib/asterisk/sounds/philadelphia.gsm
-#var/lib/asterisk/sounds/phoenix.gsm
-#var/lib/asterisk/sounds/phonetic/alpha.gsm
-#var/lib/asterisk/sounds/phonetic/bravo.gsm
-#var/lib/asterisk/sounds/phonetic/charlie.gsm
-#var/lib/asterisk/sounds/phonetic/delta.gsm
-#var/lib/asterisk/sounds/phonetic/echo.gsm
-#var/lib/asterisk/sounds/phonetic/foxtrot.gsm
-#var/lib/asterisk/sounds/phonetic/golf.gsm
-#var/lib/asterisk/sounds/phonetic/hotel.gsm
-#var/lib/asterisk/sounds/phonetic/india.gsm
-#var/lib/asterisk/sounds/phonetic/juliet.gsm
-#var/lib/asterisk/sounds/phonetic/kilo.gsm
-#var/lib/asterisk/sounds/phonetic/lima.gsm
-#var/lib/asterisk/sounds/phonetic/mike.gsm
-#var/lib/asterisk/sounds/phonetic/niner.gsm
-#var/lib/asterisk/sounds/phonetic/november.gsm
-#var/lib/asterisk/sounds/phonetic/oscar.gsm
-#var/lib/asterisk/sounds/phonetic/papa.gsm
-#var/lib/asterisk/sounds/phonetic/quebec.gsm
-#var/lib/asterisk/sounds/phonetic/romeo.gsm
-#var/lib/asterisk/sounds/phonetic/sierra.gsm
-#var/lib/asterisk/sounds/phonetic/tango.gsm
-#var/lib/asterisk/sounds/phonetic/uniform.gsm
-#var/lib/asterisk/sounds/phonetic/victor.gsm
-#var/lib/asterisk/sounds/phonetic/whiskey.gsm
-#var/lib/asterisk/sounds/phonetic/xray.gsm
-#var/lib/asterisk/sounds/phonetic/yankee.gsm
-#var/lib/asterisk/sounds/phonetic/zulu.gsm
-#var/lib/asterisk/sounds/physics.gsm
-#var/lib/asterisk/sounds/pin-invalid.gsm
-#var/lib/asterisk/sounds/pin-number-accepted.gsm
-#var/lib/asterisk/sounds/ping.gsm
-#var/lib/asterisk/sounds/pipe.gsm
-#var/lib/asterisk/sounds/planning.gsm
-#var/lib/asterisk/sounds/please-answer-the-following.gsm
-#var/lib/asterisk/sounds/please-contact-tech-supt.gsm
-#var/lib/asterisk/sounds/please-enter-first-three-letters.gsm
-#var/lib/asterisk/sounds/please-enter-the.gsm
-#var/lib/asterisk/sounds/please-enter-your.gsm
-#var/lib/asterisk/sounds/please-hang-up-and-dial-operator.gsm
-#var/lib/asterisk/sounds/please-hang-up-and-try-again.gsm
-#var/lib/asterisk/sounds/please-try-again-later.gsm
-#var/lib/asterisk/sounds/please-try-again.gsm
-#var/lib/asterisk/sounds/please-try.gsm
-#var/lib/asterisk/sounds/please-wait-connect-oncall-eng.gsm
-#var/lib/asterisk/sounds/pls-ent-num-transfer.gsm
-#var/lib/asterisk/sounds/pls-enter-conf-password.gsm
-#var/lib/asterisk/sounds/pls-enter-num-message-after-tone.gsm
-#var/lib/asterisk/sounds/pls-enter-vm-password.gsm
-#var/lib/asterisk/sounds/pls-entr-num-uwish2-call.gsm
-#var/lib/asterisk/sounds/pls-hold-silent30.gsm
-#var/lib/asterisk/sounds/pls-hold-while-try.gsm
-#var/lib/asterisk/sounds/pls-lv-msg-will-contact.gsm
-#var/lib/asterisk/sounds/pls-rcrd-name-at-tone.gsm
-#var/lib/asterisk/sounds/pls-stay-on-line.gsm
-#var/lib/asterisk/sounds/pls-try-again.gsm
-#var/lib/asterisk/sounds/pls-try-area-code.gsm
-#var/lib/asterisk/sounds/pls-try-call-later.gsm
-#var/lib/asterisk/sounds/pls-try-manually.gsm
-#var/lib/asterisk/sounds/pls-wait-connect-call.gsm
-#var/lib/asterisk/sounds/plugh.gsm
-#var/lib/asterisk/sounds/plus.gsm
-#var/lib/asterisk/sounds/pm-announcement-number.gsm
-#var/lib/asterisk/sounds/pm-invalid-option.gsm
-#var/lib/asterisk/sounds/pm-phrase-management.gsm
-#var/lib/asterisk/sounds/pm-prompt-number.gsm
-#var/lib/asterisk/sounds/pm-to-record-phrase.gsm
-#var/lib/asterisk/sounds/pm-to-review-phrase.gsm
-#var/lib/asterisk/sounds/point.gsm
-#var/lib/asterisk/sounds/pop.gsm
-#var/lib/asterisk/sounds/port.gsm
-#var/lib/asterisk/sounds/portland.gsm
-#var/lib/asterisk/sounds/portnumber.gsm
-#var/lib/asterisk/sounds/position.gsm
-#var/lib/asterisk/sounds/post-entry-pound.gsm
-#var/lib/asterisk/sounds/pound.gsm
-#var/lib/asterisk/sounds/pounds.gsm
-#var/lib/asterisk/sounds/presales-support.gsm
-#var/lib/asterisk/sounds/presidents-office.gsm
-#var/lib/asterisk/sounds/press-0.gsm
-#var/lib/asterisk/sounds/press-1.gsm
-#var/lib/asterisk/sounds/press-2.gsm
-#var/lib/asterisk/sounds/press-3.gsm
-#var/lib/asterisk/sounds/press-4.gsm
-#var/lib/asterisk/sounds/press-5.gsm
-#var/lib/asterisk/sounds/press-6-to-eject.gsm
-#var/lib/asterisk/sounds/press-6.gsm
-#var/lib/asterisk/sounds/press-7.gsm
-#var/lib/asterisk/sounds/press-8.gsm
-#var/lib/asterisk/sounds/press-9.gsm
-#var/lib/asterisk/sounds/press-button-again.gsm
-#var/lib/asterisk/sounds/press-enter.gsm
-#var/lib/asterisk/sounds/press-escape.gsm
-#var/lib/asterisk/sounds/press-hash.gsm
-#var/lib/asterisk/sounds/press-pound-save-changes.gsm
-#var/lib/asterisk/sounds/press-pound-to-login-star-to-hangup.gsm
-#var/lib/asterisk/sounds/press-pound.gsm
-#var/lib/asterisk/sounds/press-return.gsm
-#var/lib/asterisk/sounds/press-star-cancel.gsm
-#var/lib/asterisk/sounds/press-star.gsm
-#var/lib/asterisk/sounds/press-the-space-bar.gsm
-#var/lib/asterisk/sounds/press-tilde.gsm
-#var/lib/asterisk/sounds/press.gsm
-#var/lib/asterisk/sounds/pressure.gsm
-#var/lib/asterisk/sounds/printing.gsm
-#var/lib/asterisk/sounds/privacy-blacklisted.gsm
-#var/lib/asterisk/sounds/privacy-blocked.gsm
-#var/lib/asterisk/sounds/privacy-if-error-leave-message-or-hangup.gsm
-#var/lib/asterisk/sounds/privacy-if-error.gsm
-#var/lib/asterisk/sounds/privacy-if-sales-call-contact-in-writing.gsm
-#var/lib/asterisk/sounds/privacy-last-caller-was.gsm
-#var/lib/asterisk/sounds/privacy-not.gsm
-#var/lib/asterisk/sounds/privacy-please-dial.gsm
-#var/lib/asterisk/sounds/privacy-please-stay-on-line-to-be-connected.gsm
-#var/lib/asterisk/sounds/privacy-screening-unidentified-calls.gsm
-#var/lib/asterisk/sounds/privacy-stop-calling-not-welcome.gsm
-#var/lib/asterisk/sounds/privacy-stop-calling-not-welcome2.gsm
-#var/lib/asterisk/sounds/privacy-this-number-is.gsm
-#var/lib/asterisk/sounds/privacy-to-blacklist-last-caller.gsm
-#var/lib/asterisk/sounds/privacy-to-blacklist-this-number.gsm
-#var/lib/asterisk/sounds/privacy-to-hear-our-contact-details.gsm
-#var/lib/asterisk/sounds/privacy-to-whitelist-last-caller.gsm
-#var/lib/asterisk/sounds/privacy-to-whitelist-this-number.gsm
-#var/lib/asterisk/sounds/privacy-whitelisted.gsm
-#var/lib/asterisk/sounds/privacy-you-are-blacklisted.gsm
-#var/lib/asterisk/sounds/privacy-you-are-calling-from.gsm
-#var/lib/asterisk/sounds/privacy-your-callerid-is.gsm
-#var/lib/asterisk/sounds/product.gsm
-#var/lib/asterisk/sounds/production.gsm
-#var/lib/asterisk/sounds/projects.gsm
-#var/lib/asterisk/sounds/protocol.gsm
-#var/lib/asterisk/sounds/public-relations.gsm
-#var/lib/asterisk/sounds/purchasing.gsm
-#var/lib/asterisk/sounds/purposes.gsm
-#var/lib/asterisk/sounds/q-dot-931.gsm
-#var/lib/asterisk/sounds/q-dot-9thirty1.gsm
-#var/lib/asterisk/sounds/quality-assurance.gsm
-#var/lib/asterisk/sounds/quality-control.gsm
-#var/lib/asterisk/sounds/quarter.gsm
-#var/lib/asterisk/sounds/quickly.gsm
-#var/lib/asterisk/sounds/quote.gsm
-#var/lib/asterisk/sounds/race.gsm
-#var/lib/asterisk/sounds/rain.gsm
-#var/lib/asterisk/sounds/rainfall.gsm
-#var/lib/asterisk/sounds/rainy.gsm
-#var/lib/asterisk/sounds/range.gsm
-#var/lib/asterisk/sounds/reassigned-new-areacode.gsm
-#var/lib/asterisk/sounds/rebates.gsm
-#var/lib/asterisk/sounds/received.gsm
-#var/lib/asterisk/sounds/receiving.gsm
-#var/lib/asterisk/sounds/reception.gsm
-#var/lib/asterisk/sounds/recorded.gsm
-#var/lib/asterisk/sounds/registrar.gsm
-#var/lib/asterisk/sounds/remote-already-in-this-mode-2.gsm
-#var/lib/asterisk/sounds/remote-already-in-this-mode.gsm
-#var/lib/asterisk/sounds/remote-base.gsm
-#var/lib/asterisk/sounds/removed.gsm
-#var/lib/asterisk/sounds/repair.gsm
-#var/lib/asterisk/sounds/repeat-only.gsm
-#var/lib/asterisk/sounds/repeater.gsm
-#var/lib/asterisk/sounds/research-and-development.gsm
-#var/lib/asterisk/sounds/research.gsm
-#var/lib/asterisk/sounds/reservations.gsm
-#var/lib/asterisk/sounds/restarting.gsm
-#var/lib/asterisk/sounds/rhode-island.gsm
-#var/lib/asterisk/sounds/right-bracket.gsm
-#var/lib/asterisk/sounds/rising.gsm
-#var/lib/asterisk/sounds/risk-management.gsm
-#var/lib/asterisk/sounds/roaming.gsm
-#var/lib/asterisk/sounds/room-service.gsm
-#var/lib/asterisk/sounds/route-sip.gsm
-#var/lib/asterisk/sounds/rqsted-wakeup-for.gsm
-#var/lib/asterisk/sounds/sacramento.gsm
-#var/lib/asterisk/sounds/saint-louis.gsm
-#var/lib/asterisk/sounds/sales-floor.gsm
-#var/lib/asterisk/sounds/sales.gsm
-#var/lib/asterisk/sounds/san-antonio.gsm
-#var/lib/asterisk/sounds/san-diego.gsm
-#var/lib/asterisk/sounds/san-francisco.gsm
-#var/lib/asterisk/sounds/san-jose.gsm
-#var/lib/asterisk/sounds/save-announce-press.gsm
-#var/lib/asterisk/sounds/say-temp-msg-prs-pound.gsm
-#var/lib/asterisk/sounds/says-thats-stupid.gsm
-#var/lib/asterisk/sounds/scattered.gsm
-#var/lib/asterisk/sounds/sciences.gsm
-#var/lib/asterisk/sounds/seattle.gsm
-#var/lib/asterisk/sounds/second.gsm
-#var/lib/asterisk/sounds/seconds.gsm
-#var/lib/asterisk/sounds/secretary.gsm
-#var/lib/asterisk/sounds/security.gsm
-#var/lib/asterisk/sounds/self-destruct-in.gsm
-#var/lib/asterisk/sounds/self-destruct.gsm
-#var/lib/asterisk/sounds/server.gsm
-#var/lib/asterisk/sounds/service-not-implemented.gsm
-#var/lib/asterisk/sounds/service.gsm
-#var/lib/asterisk/sounds/seventeenth.gsm
-#var/lib/asterisk/sounds/seventh.gsm
-#var/lib/asterisk/sounds/seventieth.gsm
-#var/lib/asterisk/sounds/severe.gsm
-#var/lib/asterisk/sounds/shall-i-try-again.gsm
-#var/lib/asterisk/sounds/shiny-brass-lamp.gsm
-#var/lib/asterisk/sounds/shipping.gsm
-#var/lib/asterisk/sounds/shop.gsm
-#var/lib/asterisk/sounds/show-office.gsm
-#var/lib/asterisk/sounds/sighted.gsm
-#var/lib/asterisk/sounds/silence
-#var/lib/asterisk/sounds/silence/1.gsm
-#var/lib/asterisk/sounds/silence/10.gsm
-#var/lib/asterisk/sounds/silence/2.gsm
-#var/lib/asterisk/sounds/silence/3.gsm
-#var/lib/asterisk/sounds/silence/4.gsm
-#var/lib/asterisk/sounds/silence/5.gsm
-#var/lib/asterisk/sounds/silence/6.gsm
-#var/lib/asterisk/sounds/silence/7.gsm
-#var/lib/asterisk/sounds/silence/8.gsm
-#var/lib/asterisk/sounds/silence/9.gsm
-#var/lib/asterisk/sounds/simplex.gsm
-#var/lib/asterisk/sounds/simul-call-limit-reached.gsm
-#var/lib/asterisk/sounds/sixteenth.gsm
-#var/lib/asterisk/sounds/sixth.gsm
-#var/lib/asterisk/sounds/sixtieth.gsm
-#var/lib/asterisk/sounds/slash.gsm
-#var/lib/asterisk/sounds/sleet.gsm
-#var/lib/asterisk/sounds/sleeting.gsm
-#var/lib/asterisk/sounds/slow.gsm
-#var/lib/asterisk/sounds/slowly.gsm
-#var/lib/asterisk/sounds/snow.gsm
-#var/lib/asterisk/sounds/snowing.gsm
-#var/lib/asterisk/sounds/snowy.gsm
-#var/lib/asterisk/sounds/software.gsm
-#var/lib/asterisk/sounds/someone-you-trust1.gsm
-#var/lib/asterisk/sounds/someone-you-trust2.gsm
-#var/lib/asterisk/sounds/someone-you-trust3.gsm
-#var/lib/asterisk/sounds/something-terribly-wrong.gsm
-#var/lib/asterisk/sounds/sorry-cant-let-you-do-that.gsm
-#var/lib/asterisk/sounds/sorry-cant-let-you-do-that2.gsm
-#var/lib/asterisk/sounds/sorry-cant-let-you-do-that3.gsm
-#var/lib/asterisk/sounds/sorry-mailbox-full.gsm
-#var/lib/asterisk/sounds/sorry-youre-having-problems.gsm
-#var/lib/asterisk/sounds/sorry.gsm
-#var/lib/asterisk/sounds/sorry2.gsm
-#var/lib/asterisk/sounds/south-carolina.gsm
-#var/lib/asterisk/sounds/south-dakota.gsm
-#var/lib/asterisk/sounds/south.gsm
-#var/lib/asterisk/sounds/southerly.gsm
-#var/lib/asterisk/sounds/space.gsm
-#var/lib/asterisk/sounds/spam.gsm
-#var/lib/asterisk/sounds/spam2.gsm
-#var/lib/asterisk/sounds/speak-louder-into-phone.gsm
-#var/lib/asterisk/sounds/speak-louder.gsm
-#var/lib/asterisk/sounds/speak-to-the-operator.gsm
-#var/lib/asterisk/sounds/speed-dial-empty.gsm
-#var/lib/asterisk/sounds/speed-dial.gsm
-#var/lib/asterisk/sounds/speed.gsm
-#var/lib/asterisk/sounds/splat.gsm
-#var/lib/asterisk/sounds/ssh.gsm
-#var/lib/asterisk/sounds/staff.gsm
-#var/lib/asterisk/sounds/staffing.gsm
-#var/lib/asterisk/sounds/standard.gsm
-#var/lib/asterisk/sounds/star-for-menu-again.gsm
-#var/lib/asterisk/sounds/star.gsm
-#var/lib/asterisk/sounds/starting-with-either.gsm
-#var/lib/asterisk/sounds/station.gsm
-#var/lib/asterisk/sounds/status.gsm
-#var/lib/asterisk/sounds/step-in-stream.gsm
-#var/lib/asterisk/sounds/sterling.gsm
-#var/lib/asterisk/sounds/store-accounting.gsm
-#var/lib/asterisk/sounds/storm.gsm
-#var/lib/asterisk/sounds/sun.gsm
-#var/lib/asterisk/sounds/sunny.gsm
-#var/lib/asterisk/sounds/support.gsm
-#var/lib/asterisk/sounds/swap.gsm
-#var/lib/asterisk/sounds/system-crashed.gsm
-#var/lib/asterisk/sounds/system-status-msg.gsm
-#var/lib/asterisk/sounds/system.gsm
-#var/lib/asterisk/sounds/systems.gsm
-#var/lib/asterisk/sounds/talking-to-myself.gsm
-#var/lib/asterisk/sounds/target-attendant.gsm
-#var/lib/asterisk/sounds/tcp.gsm
-#var/lib/asterisk/sounds/technical-support.gsm
-#var/lib/asterisk/sounds/telephone-in-your-pocket.gsm
-#var/lib/asterisk/sounds/telephone-in-your-pocket2.gsm
-#var/lib/asterisk/sounds/telephone-number.gsm
-#var/lib/asterisk/sounds/telesales.gsm
-#var/lib/asterisk/sounds/teletubbie-murder.gsm
-#var/lib/asterisk/sounds/telnet.gsm
-#var/lib/asterisk/sounds/temp-disconnected.gsm
-#var/lib/asterisk/sounds/temperature.gsm
-#var/lib/asterisk/sounds/tennessee.gsm
-#var/lib/asterisk/sounds/tenth.gsm
-#var/lib/asterisk/sounds/terabits.gsm
-#var/lib/asterisk/sounds/terabytes.gsm
-#var/lib/asterisk/sounds/terminated.gsm
-#var/lib/asterisk/sounds/terminating.gsm
-#var/lib/asterisk/sounds/test-tones-follow.gsm
-#var/lib/asterisk/sounds/texas.gsm
-#var/lib/asterisk/sounds/thank-you-cooperation.gsm
-#var/lib/asterisk/sounds/thank-you-for-calling.gsm
-#var/lib/asterisk/sounds/thanks-for-calling-today.gsm
-#var/lib/asterisk/sounds/thanks-for-using.gsm
-#var/lib/asterisk/sounds/that-is-not-rec-phn-num.gsm
-#var/lib/asterisk/sounds/that-number.gsm
-#var/lib/asterisk/sounds/that-tickles.gsm
-#var/lib/asterisk/sounds/that-you-require.gsm
-#var/lib/asterisk/sounds/the-mailbox.gsm
-#var/lib/asterisk/sounds/the-monkeys-twice.gsm
-#var/lib/asterisk/sounds/the-new-number-is.gsm
-#var/lib/asterisk/sounds/the-next.gsm
-#var/lib/asterisk/sounds/the-num-i-have-is.gsm
-#var/lib/asterisk/sounds/the-number-u-dialed.gsm
-#var/lib/asterisk/sounds/the-party-you-are-calling.gsm
-#var/lib/asterisk/sounds/the-weather-at.gsm
-#var/lib/asterisk/sounds/then-press-pound.gsm
-#var/lib/asterisk/sounds/there-is-no-customer-support.gsm
-#var/lib/asterisk/sounds/these-are-currently.gsm
-#var/lib/asterisk/sounds/third.gsm
-#var/lib/asterisk/sounds/thirteenth.gsm
-#var/lib/asterisk/sounds/thirtieth.gsm
-#var/lib/asterisk/sounds/this-call-may-be-monitored-or-recorded.gsm
-#var/lib/asterisk/sounds/this-call-may-be.gsm
-#var/lib/asterisk/sounds/this-call-will-cost.gsm
-#var/lib/asterisk/sounds/this-call-will-end-in.gsm
-#var/lib/asterisk/sounds/this-is-the-voice-mail-system.gsm
-#var/lib/asterisk/sounds/this-is-yr-wakeup-call.gsm
-#var/lib/asterisk/sounds/this.gsm
-#var/lib/asterisk/sounds/thnk-u-for-patience.gsm
-#var/lib/asterisk/sounds/thousandth.gsm
-#var/lib/asterisk/sounds/through.gsm
-#var/lib/asterisk/sounds/thunderstorm.gsm
-#var/lib/asterisk/sounds/tide.gsm
-#var/lib/asterisk/sounds/time.gsm
-#var/lib/asterisk/sounds/times.gsm
-#var/lib/asterisk/sounds/to-accept-recording.gsm
-#var/lib/asterisk/sounds/to-be-called-back.gsm
-#var/lib/asterisk/sounds/to-blklist-last-caller.gsm
-#var/lib/asterisk/sounds/to-blklist-last-num.gsm
-#var/lib/asterisk/sounds/to-call-num-press.gsm
-#var/lib/asterisk/sounds/to-call-prson-w-sent-msg.gsm
-#var/lib/asterisk/sounds/to-call-this-number.gsm
-#var/lib/asterisk/sounds/to-cancel-this-msg.gsm
-#var/lib/asterisk/sounds/to-cancel-wakeup.gsm
-#var/lib/asterisk/sounds/to-change-exp-date.gsm
-#var/lib/asterisk/sounds/to-change-your-pin-number.gsm
-#var/lib/asterisk/sounds/to-collect-voicemail.gsm
-#var/lib/asterisk/sounds/to-compose-a-message.gsm
-#var/lib/asterisk/sounds/to-confirm-wakeup.gsm
-#var/lib/asterisk/sounds/to-dial-by-name-press.gsm
-#var/lib/asterisk/sounds/to-dial-by-name.gsm
-#var/lib/asterisk/sounds/to-enter-a-diff-number.gsm
-#var/lib/asterisk/sounds/to-enter-a-number.gsm
-#var/lib/asterisk/sounds/to-erase-yr-temp-grtg.gsm
-#var/lib/asterisk/sounds/to-extension.gsm
-#var/lib/asterisk/sounds/to-hang-up-2.gsm
-#var/lib/asterisk/sounds/to-hang-up.gsm
-#var/lib/asterisk/sounds/to-hear-callerid.gsm
-#var/lib/asterisk/sounds/to-hear-menu-again.gsm
-#var/lib/asterisk/sounds/to-hear-msg-again.gsm
-#var/lib/asterisk/sounds/to-hear-msg-envelope.gsm
-#var/lib/asterisk/sounds/to-hear-net-status.gsm
-#var/lib/asterisk/sounds/to-hear-weather-status.gsm
-#var/lib/asterisk/sounds/to-hear-your-account-balance.gsm
-#var/lib/asterisk/sounds/to-join-a-meeting.gsm
-#var/lib/asterisk/sounds/to-leave-message-for.gsm
-#var/lib/asterisk/sounds/to-listen-to-it.gsm
-#var/lib/asterisk/sounds/to-log-in-to-voice-mail.gsm
-#var/lib/asterisk/sounds/to-place-outgoing-call.gsm
-#var/lib/asterisk/sounds/to-reach-first-rep.gsm
-#var/lib/asterisk/sounds/to-reach-operator.gsm
-#var/lib/asterisk/sounds/to-rec-yr-temp-grtg.gsm
-#var/lib/asterisk/sounds/to-record-call.gsm
-#var/lib/asterisk/sounds/to-redial-the-last-number-you-called.gsm
-#var/lib/asterisk/sounds/to-report-emergency.gsm
-#var/lib/asterisk/sounds/to-report-system-network-down.gsm
-#var/lib/asterisk/sounds/to-rerecord-announce.gsm
-#var/lib/asterisk/sounds/to-rerecord-it.gsm
-#var/lib/asterisk/sounds/to-rerecord-yr-message.gsm
-#var/lib/asterisk/sounds/to-rmv-num-blklist.gsm
-#var/lib/asterisk/sounds/to-rqst-wakeup-call.gsm
-#var/lib/asterisk/sounds/to-send-a-reply.gsm
-#var/lib/asterisk/sounds/to-snooze-for.gsm
-#var/lib/asterisk/sounds/to-use-def-attendant.gsm
-#var/lib/asterisk/sounds/today.gsm
-#var/lib/asterisk/sounds/tomorrow-night.gsm
-#var/lib/asterisk/sounds/tomorrow.gsm
-#var/lib/asterisk/sounds/tones-that-follow-are-for-the-deaf.gsm
-#var/lib/asterisk/sounds/tonight.gsm
-#var/lib/asterisk/sounds/too-low.gsm
-#var/lib/asterisk/sounds/tornado.gsm
-#var/lib/asterisk/sounds/touchtone1.gsm
-#var/lib/asterisk/sounds/touchtone2.gsm
-#var/lib/asterisk/sounds/touchtone3.gsm
-#var/lib/asterisk/sounds/towards.gsm
-#var/lib/asterisk/sounds/trading-desk.gsm
-#var/lib/asterisk/sounds/traffic.gsm
-#var/lib/asterisk/sounds/training.gsm
-#var/lib/asterisk/sounds/transportation.gsm
-#var/lib/asterisk/sounds/travel.gsm
-#var/lib/asterisk/sounds/treasury.gsm
-#var/lib/asterisk/sounds/tucson.gsm
-#var/lib/asterisk/sounds/tulsa.gsm
-#var/lib/asterisk/sounds/turn-off-recording.gsm
-#var/lib/asterisk/sounds/turning-to.gsm
-#var/lib/asterisk/sounds/twelveth.gsm
-#var/lib/asterisk/sounds/twentieth.gsm
-#var/lib/asterisk/sounds/twisty-maze.gsm
-#var/lib/asterisk/sounds/typhoon.gsm
-#var/lib/asterisk/sounds/udp.gsm
-#var/lib/asterisk/sounds/uh-oh1.gsm
-#var/lib/asterisk/sounds/uh-oh2.gsm
-#var/lib/asterisk/sounds/uk.gsm
-#var/lib/asterisk/sounds/unavailable.gsm
-#var/lib/asterisk/sounds/unconditional.gsm
-#var/lib/asterisk/sounds/unidentified-no-callback.gsm
-#var/lib/asterisk/sounds/units.gsm
-#var/lib/asterisk/sounds/unix.gsm
-#var/lib/asterisk/sounds/up.gsm
-#var/lib/asterisk/sounds/uptime.gsm
-#var/lib/asterisk/sounds/user.gsm
-#var/lib/asterisk/sounds/users.gsm
-#var/lib/asterisk/sounds/utah.gsm
-#var/lib/asterisk/sounds/variable.gsm
-#var/lib/asterisk/sounds/vermont.gsm
-#var/lib/asterisk/sounds/virginia-beach.gsm
-#var/lib/asterisk/sounds/virginia.gsm
-#var/lib/asterisk/sounds/visibility.gsm
-#var/lib/asterisk/sounds/visit-asterisk-website.gsm
-#var/lib/asterisk/sounds/voice-mail-system.gsm
-#var/lib/asterisk/sounds/wait-moment.gsm
-#var/lib/asterisk/sounds/wait-offensive-sounds.gsm
-#var/lib/asterisk/sounds/wakeup-call-cancelled.gsm
-#var/lib/asterisk/sounds/wakeup-call.gsm
-#var/lib/asterisk/sounds/wakeup-daily.gsm
-#var/lib/asterisk/sounds/wakeup-for-daily.gsm
-#var/lib/asterisk/sounds/wakeup-for-one-time.gsm
-#var/lib/asterisk/sounds/wakeup-onetime.gsm
-#var/lib/asterisk/sounds/walks-into-bar-mail.gsm
-#var/lib/asterisk/sounds/warning.gsm
-#var/lib/asterisk/sounds/was-last-seen.gsm
-#var/lib/asterisk/sounds/was.gsm
-#var/lib/asterisk/sounds/washington-dc.gsm
-#var/lib/asterisk/sounds/washington.gsm
-#var/lib/asterisk/sounds/watch.gsm
-#var/lib/asterisk/sounds/we-apologize.gsm
-#var/lib/asterisk/sounds/we-dont-have-tech-support.gsm
-#var/lib/asterisk/sounds/weasels-eaten-phonesys.gsm
-#var/lib/asterisk/sounds/weather-station.gsm
-#var/lib/asterisk/sounds/weather.gsm
-#var/lib/asterisk/sounds/web.gsm
-#var/lib/asterisk/sounds/weeks.gsm
-#var/lib/asterisk/sounds/welcome.gsm
-#var/lib/asterisk/sounds/were-sorry.gsm
-#var/lib/asterisk/sounds/west-virginia.gsm
-#var/lib/asterisk/sounds/west.gsm
-#var/lib/asterisk/sounds/westerly.gsm
-#var/lib/asterisk/sounds/what-are-you-wearing.gsm
-#var/lib/asterisk/sounds/what-time-it-is.gsm
-#var/lib/asterisk/sounds/what-time-it-is2.gsm
-#var/lib/asterisk/sounds/when-dialing-this-number.gsm
-#var/lib/asterisk/sounds/who-would-you-like-to-call.gsm
-#var/lib/asterisk/sounds/why-no-answer-mystery.gsm
-#var/lib/asterisk/sounds/wichita.gsm
-#var/lib/asterisk/sounds/will-apply.gsm
-#var/lib/asterisk/sounds/will-expire.gsm
-#var/lib/asterisk/sounds/will-not-expire.gsm
-#var/lib/asterisk/sounds/will-reflect-charge-of.gsm
-#var/lib/asterisk/sounds/wind.gsm
-#var/lib/asterisk/sounds/windows.gsm
-#var/lib/asterisk/sounds/windy.gsm
-#var/lib/asterisk/sounds/wisconsin.gsm
-#var/lib/asterisk/sounds/wish-to-continue.gsm
-#var/lib/asterisk/sounds/with.gsm
-#var/lib/asterisk/sounds/within.gsm
-#var/lib/asterisk/sounds/work.gsm
-#var/lib/asterisk/sounds/wrong-try-again-smarty.gsm
-#var/lib/asterisk/sounds/wtng-to-spk-w-rep.gsm
-#var/lib/asterisk/sounds/www-switchboard-com.gsm
-#var/lib/asterisk/sounds/wx
-#var/lib/asterisk/sounds/wx/around.gsm
-#var/lib/asterisk/sounds/wx/barometer.gsm
-#var/lib/asterisk/sounds/wx/ceiling.gsm
-#var/lib/asterisk/sounds/wx/dew-point.gsm
-#var/lib/asterisk/sounds/wx/falling.gsm
-#var/lib/asterisk/sounds/wx/feet.gsm
-#var/lib/asterisk/sounds/wx/foot.gsm
-#var/lib/asterisk/sounds/wx/gust.gsm
-#var/lib/asterisk/sounds/wx/gusting-to.gsm
-#var/lib/asterisk/sounds/wx/gusts.gsm
-#var/lib/asterisk/sounds/wx/gusty.gsm
-#var/lib/asterisk/sounds/wx/heat-index.gsm
-#var/lib/asterisk/sounds/wx/humidity.gsm
-#var/lib/asterisk/sounds/wx/inch.gsm
-#var/lib/asterisk/sounds/wx/inches.gsm
-#var/lib/asterisk/sounds/wx/kilometer.gsm
-#var/lib/asterisk/sounds/wx/large.gsm
-#var/lib/asterisk/sounds/wx/meter.gsm
-#var/lib/asterisk/sounds/wx/mist.gsm
-#var/lib/asterisk/sounds/wx/northeast.gsm
-#var/lib/asterisk/sounds/wx/northwest.gsm
-#var/lib/asterisk/sounds/wx/percent.gsm
-#var/lib/asterisk/sounds/wx/point.gsm
-#var/lib/asterisk/sounds/wx/rising.gsm
-#var/lib/asterisk/sounds/wx/southeast.gsm
-#var/lib/asterisk/sounds/wx/southwest.gsm
-#var/lib/asterisk/sounds/wx/steady.gsm
-#var/lib/asterisk/sounds/wx/temperature.gsm
-#var/lib/asterisk/sounds/wx/wind-chill.gsm
-#var/lib/asterisk/sounds/wx/winds.gsm
-#var/lib/asterisk/sounds/wyoming.gsm
-#var/lib/asterisk/sounds/yeah.gsm
-#var/lib/asterisk/sounds/year.gsm
-#var/lib/asterisk/sounds/years.gsm
-#var/lib/asterisk/sounds/yes-dear.gsm
-#var/lib/asterisk/sounds/yes-dear2.gsm
-#var/lib/asterisk/sounds/yesterday.gsm
-#var/lib/asterisk/sounds/you-are-caller-num.gsm
-#var/lib/asterisk/sounds/you-are-curr-call-num.gsm
-#var/lib/asterisk/sounds/you-can-press.gsm
-#var/lib/asterisk/sounds/you-dialed-wrong-number.gsm
-#var/lib/asterisk/sounds/you-entered.gsm
-#var/lib/asterisk/sounds/you-have-dialed.gsm
-#var/lib/asterisk/sounds/you-have-reached-a-test-number.gsm
-#var/lib/asterisk/sounds/you-have-these-options.gsm
-#var/lib/asterisk/sounds/you-must-first-dial.gsm
-#var/lib/asterisk/sounds/you-seem-impatient.gsm
-#var/lib/asterisk/sounds/you-sound-cute.gsm
-#var/lib/asterisk/sounds/you-wish-to-join.gsm
-#var/lib/asterisk/sounds/your-account.gsm
-#var/lib/asterisk/sounds/your-msg-has-been-saved.gsm
-#var/lib/asterisk/sounds/your-msg-is-too-short.gsm
-#var/lib/asterisk/sounds/your-temp-greeting.gsm
-#var/lib/asterisk/sounds/your.gsm
-#var/lib/asterisk/sounds/zip-code.gsm
-var/log/asterisk
-#var/log/asterisk/cdr-csv
-#var/log/asterisk/cdr-custom
-var/spool/asterisk
-#var/spool/asterisk/dictate
-#var/spool/asterisk/meetme
-#var/spool/asterisk/monitor
-#var/spool/asterisk/system
-#var/spool/asterisk/tmp
-#var/spool/asterisk/voicemail
-#var/spool/asterisk/voicemail/default
-#var/spool/asterisk/voicemail/default/1234
-#var/spool/asterisk/voicemail/default/1234/INBOX
-#var/spool/asterisk/voicemail/default/1234/busy.gsm
-#var/spool/asterisk/voicemail/default/1234/unavail.gsm
-usr/lib/perl5/site_perl/5.8.5/Asterisk
-usr/lib/perl5/site_perl/5.8.5/Asterisk.pm
-#usr/lib/perl5/site_perl/5.8.5/Asterisk/AGI.pm
-#usr/lib/perl5/site_perl/5.8.5/Asterisk/Manager.pm
-#usr/lib/perl5/site_perl/5.8.5/Asterisk/Outgoing.pm
-#usr/lib/perl5/site_perl/5.8.5/Asterisk/QCall.pm
-#usr/lib/perl5/site_perl/5.8.5/Asterisk/Voicemail.pm
-#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/asterisk-perl
-#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/asterisk-perl/.packlist
-#usr/share/man/man3/Asterisk::AGI.3
-#usr/share/man/man3/Asterisk::Manager.3
-#usr/share/man/man3/Asterisk::Outgoing.3
-#usr/share/man/man3/Asterisk::Voicemail.3
diff --git a/src/paks/asterisk/depends.txt b/src/paks/asterisk/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/asterisk/install.sh b/src/paks/asterisk/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/asterisk/uninstall.sh b/src/paks/asterisk/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/bristuff/ROOTFILES b/src/paks/bristuff/ROOTFILES
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/bristuff/depends.txt b/src/paks/bristuff/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/bristuff/install.sh b/src/paks/bristuff/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/bristuff/uninstall.sh b/src/paks/bristuff/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/cftp/ROOTFILES b/src/paks/cftp/ROOTFILES
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/cftp/depends.txt b/src/paks/cftp/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/cftp/install.sh b/src/paks/cftp/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/cftp/uninstall.sh b/src/paks/cftp/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/clamav/ROOTFILES b/src/paks/clamav/ROOTFILES
deleted file mode 100644 (file)
index 712f814..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-usr/bin/clamav-config
-usr/bin/clamdscan
-usr/bin/clamscan
-usr/bin/freshclam
-usr/bin/sigtool
-#usr/include/clamav.h
-#usr/lib/libclamav.a
-#usr/lib/libclamav.la
-usr/lib/libclamav.so
-usr/lib/libclamav.so.1
-usr/lib/libclamav.so.1.0.17
-#usr/lib/pkgconfig/libclamav.pc
-usr/sbin/clamd
-usr/share/clamav
-usr/share/clamav/daily.cvd
-usr/share/clamav/main.cvd
-#usr/share/man/man1/clamdscan.1
-#usr/share/man/man1/clamscan.1
-#usr/share/man/man1/freshclam.1
-#usr/share/man/man1/sigtool.1
-#usr/share/man/man5/clamd.conf.5
-#usr/share/man/man5/freshclam.conf.5
-#usr/share/man/man8/clamav-milter.8
-#usr/share/man/man8/clamd.8
-var/ipfire/clamav
-var/ipfire/clamav/clamd.conf
-var/ipfire/clamav/freshclam.conf
diff --git a/src/paks/clamav/depends.txt b/src/paks/clamav/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/clamav/install.sh b/src/paks/clamav/install.sh
deleted file mode 100644 (file)
index 2f78907..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
diff --git a/src/paks/clamav/uninstall.sh b/src/paks/clamav/uninstall.sh
deleted file mode 100644 (file)
index 7ee2885..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
diff --git a/src/paks/cups/ROOTFILES b/src/paks/cups/ROOTFILES
deleted file mode 100644 (file)
index d07ef95..0000000
+++ /dev/null
@@ -1,1032 +0,0 @@
-#etc/pam.d/cups
-#etc/rc0.d
-#etc/rc0.d/K00cups
-#etc/rc2.d
-#etc/rc2.d/S99cups
-#etc/rc3.d
-#etc/rc3.d/S99cups
-#etc/rc5.d
-#etc/rc5.d/S99cups
-usr/bin/cancel
-usr/bin/cups-config
-usr/bin/cupstestdsc
-usr/bin/cupstestppd
-usr/bin/lp
-usr/bin/lpoptions
-usr/bin/lppasswd
-usr/bin/lpq
-usr/bin/lpr
-usr/bin/lprm
-usr/bin/lpstat
-#usr/include/cups
-#usr/include/cups/adminutil.h
-#usr/include/cups/array.h
-#usr/include/cups/cups.h
-#usr/include/cups/dir.h
-#usr/include/cups/file.h
-#usr/include/cups/http.h
-#usr/include/cups/i18n.h
-#usr/include/cups/image.h
-#usr/include/cups/ipp.h
-#usr/include/cups/language.h
-#usr/include/cups/md5.h
-#usr/include/cups/ppd.h
-#usr/include/cups/raster.h
-#usr/include/cups/transcode.h
-usr/lib/cups
-#usr/lib/cups/backend
-#usr/lib/cups/backend/http
-#usr/lib/cups/backend/ipp
-#usr/lib/cups/backend/lpd
-#usr/lib/cups/backend/parallel
-#usr/lib/cups/backend/scsi
-#usr/lib/cups/backend/serial
-#usr/lib/cups/backend/smb
-#usr/lib/cups/backend/snmp
-#usr/lib/cups/backend/socket
-#usr/lib/cups/backend/usb
-#usr/lib/cups/cgi-bin
-#usr/lib/cups/cgi-bin/admin.cgi
-#usr/lib/cups/cgi-bin/classes.cgi
-#usr/lib/cups/cgi-bin/help.cgi
-#usr/lib/cups/cgi-bin/jobs.cgi
-#usr/lib/cups/cgi-bin/printers.cgi
-#usr/lib/cups/daemon
-#usr/lib/cups/daemon/cups-deviced
-#usr/lib/cups/daemon/cups-driverd
-#usr/lib/cups/daemon/cups-lpd
-#usr/lib/cups/daemon/cups-polld
-#usr/lib/cups/driver
-#usr/lib/cups/filter
-#usr/lib/cups/filter/gziptoany
-#usr/lib/cups/filter/hpgltops
-#usr/lib/cups/filter/imagetops
-#usr/lib/cups/filter/imagetoraster
-#usr/lib/cups/filter/pdftops
-#usr/lib/cups/filter/pstops
-#usr/lib/cups/filter/rastertodymo
-#usr/lib/cups/filter/rastertoepson
-#usr/lib/cups/filter/rastertohp
-#usr/lib/cups/filter/rastertolabel
-#usr/lib/cups/filter/texttops
-#usr/lib/cups/monitor
-#usr/lib/cups/monitor/bcp
-#usr/lib/cups/monitor/tbcp
-#usr/lib/cups/notifier
-#usr/lib/cups/notifier/mailto
-#usr/lib/cups/notifier/testnotify
-usr/lib/libcups.so
-usr/lib/libcups.so.2
-usr/lib/libcupsimage.so
-usr/lib/libcupsimage.so.2
-usr/sbin/accept
-usr/sbin/cupsaddsmb
-usr/sbin/cupsd
-usr/sbin/cupsdisable
-usr/sbin/cupsenable
-usr/sbin/lpadmin
-usr/sbin/lpc
-usr/sbin/lpinfo
-usr/sbin/lpmove
-usr/sbin/reject
-usr/share/cups
-#usr/share/cups/banners
-#usr/share/cups/banners/classified
-#usr/share/cups/banners/confidential
-#usr/share/cups/banners/secret
-#usr/share/cups/banners/standard
-#usr/share/cups/banners/topsecret
-#usr/share/cups/banners/unclassified
-#usr/share/cups/charmaps
-#usr/share/cups/charmaps/euc-cn.txt
-#usr/share/cups/charmaps/euc-jp.txt
-#usr/share/cups/charmaps/euc-kr.txt
-#usr/share/cups/charmaps/euc-tw.txt
-#usr/share/cups/charmaps/iso-8859-1.txt
-#usr/share/cups/charmaps/iso-8859-10.txt
-#usr/share/cups/charmaps/iso-8859-11.txt
-#usr/share/cups/charmaps/iso-8859-13.txt
-#usr/share/cups/charmaps/iso-8859-14.txt
-#usr/share/cups/charmaps/iso-8859-15.txt
-#usr/share/cups/charmaps/iso-8859-16.txt
-#usr/share/cups/charmaps/iso-8859-2.txt
-#usr/share/cups/charmaps/iso-8859-3.txt
-#usr/share/cups/charmaps/iso-8859-4.txt
-#usr/share/cups/charmaps/iso-8859-5.txt
-#usr/share/cups/charmaps/iso-8859-6.txt
-#usr/share/cups/charmaps/iso-8859-7.txt
-#usr/share/cups/charmaps/iso-8859-8.txt
-#usr/share/cups/charmaps/iso-8859-9.txt
-#usr/share/cups/charmaps/koi8-r.txt
-#usr/share/cups/charmaps/koi8-u.txt
-#usr/share/cups/charmaps/mac-roman.txt
-#usr/share/cups/charmaps/windows-1250.txt
-#usr/share/cups/charmaps/windows-1251.txt
-#usr/share/cups/charmaps/windows-1252.txt
-#usr/share/cups/charmaps/windows-1253.txt
-#usr/share/cups/charmaps/windows-1254.txt
-#usr/share/cups/charmaps/windows-1255.txt
-#usr/share/cups/charmaps/windows-1256.txt
-#usr/share/cups/charmaps/windows-1257.txt
-#usr/share/cups/charmaps/windows-1258.txt
-#usr/share/cups/charmaps/windows-1361.txt
-#usr/share/cups/charmaps/windows-874.txt
-#usr/share/cups/charmaps/windows-932.txt
-#usr/share/cups/charmaps/windows-936.txt
-#usr/share/cups/charmaps/windows-949.txt
-#usr/share/cups/charmaps/windows-950.txt
-#usr/share/cups/charsets
-#usr/share/cups/charsets/iso-8859-1
-#usr/share/cups/charsets/iso-8859-10
-#usr/share/cups/charsets/iso-8859-13
-#usr/share/cups/charsets/iso-8859-14
-#usr/share/cups/charsets/iso-8859-15
-#usr/share/cups/charsets/iso-8859-2
-#usr/share/cups/charsets/iso-8859-3
-#usr/share/cups/charsets/iso-8859-4
-#usr/share/cups/charsets/iso-8859-5
-#usr/share/cups/charsets/iso-8859-6
-#usr/share/cups/charsets/iso-8859-7
-#usr/share/cups/charsets/iso-8859-8
-#usr/share/cups/charsets/iso-8859-9
-#usr/share/cups/charsets/koi8-r
-#usr/share/cups/charsets/koi8-u
-#usr/share/cups/charsets/utf-8
-#usr/share/cups/charsets/windows-1250
-#usr/share/cups/charsets/windows-1251
-#usr/share/cups/charsets/windows-1252
-#usr/share/cups/charsets/windows-1253
-#usr/share/cups/charsets/windows-1254
-#usr/share/cups/charsets/windows-1255
-#usr/share/cups/charsets/windows-1256
-#usr/share/cups/charsets/windows-1257
-#usr/share/cups/charsets/windows-1258
-#usr/share/cups/charsets/windows-874
-#usr/share/cups/data
-#usr/share/cups/data/HPGLprolog
-#usr/share/cups/data/psglyphs
-#usr/share/cups/data/testprint.ps
-#usr/share/cups/fonts
-#usr/share/cups/fonts/Courier
-#usr/share/cups/fonts/Courier-Bold
-#usr/share/cups/fonts/Courier-BoldOblique
-#usr/share/cups/fonts/Courier-Oblique
-#usr/share/cups/fonts/Symbol
-#usr/share/cups/model
-#usr/share/cups/model/deskjet.ppd
-#usr/share/cups/model/deskjet2.ppd
-#usr/share/cups/model/dymo.ppd
-#usr/share/cups/model/epson24.ppd
-#usr/share/cups/model/epson9.ppd
-#usr/share/cups/model/laserjet.ppd
-#usr/share/cups/model/okidat24.ppd
-#usr/share/cups/model/okidata9.ppd
-#usr/share/cups/model/stcolor.ppd
-#usr/share/cups/model/stcolor2.ppd
-#usr/share/cups/model/stphoto.ppd
-#usr/share/cups/model/stphoto2.ppd
-#usr/share/cups/model/zebra.ppd
-#usr/share/cups/model/zebraep1.ppd
-#usr/share/cups/model/zebraep2.ppd
-#usr/share/cups/profiles
-#usr/share/cups/templates
-#usr/share/cups/templates/add-class.tmpl
-#usr/share/cups/templates/add-printer.tmpl
-#usr/share/cups/templates/admin.tmpl
-#usr/share/cups/templates/choose-device.tmpl
-#usr/share/cups/templates/choose-make.tmpl
-#usr/share/cups/templates/choose-model.tmpl
-#usr/share/cups/templates/choose-serial.tmpl
-#usr/share/cups/templates/choose-uri.tmpl
-#usr/share/cups/templates/class-added.tmpl
-#usr/share/cups/templates/class-confirm.tmpl
-#usr/share/cups/templates/class-deleted.tmpl
-#usr/share/cups/templates/class-jobs-header.tmpl
-#usr/share/cups/templates/class-modified.tmpl
-#usr/share/cups/templates/classes-header.tmpl
-#usr/share/cups/templates/classes.tmpl
-#usr/share/cups/templates/de
-#usr/share/cups/templates/de/add-class.tmpl
-#usr/share/cups/templates/de/add-printer.tmpl
-#usr/share/cups/templates/de/admin.tmpl
-#usr/share/cups/templates/de/choose-device.tmpl
-#usr/share/cups/templates/de/choose-make.tmpl
-#usr/share/cups/templates/de/choose-model.tmpl
-#usr/share/cups/templates/de/choose-serial.tmpl
-#usr/share/cups/templates/de/choose-uri.tmpl
-#usr/share/cups/templates/de/class-added.tmpl
-#usr/share/cups/templates/de/class-confirm.tmpl
-#usr/share/cups/templates/de/class-deleted.tmpl
-#usr/share/cups/templates/de/class-jobs-header.tmpl
-#usr/share/cups/templates/de/class-modified.tmpl
-#usr/share/cups/templates/de/classes-header.tmpl
-#usr/share/cups/templates/de/classes.tmpl
-#usr/share/cups/templates/de/edit-config.tmpl
-#usr/share/cups/templates/de/error-op.tmpl
-#usr/share/cups/templates/de/error.tmpl
-#usr/share/cups/templates/de/header.tmpl
-#usr/share/cups/templates/de/help-header.tmpl
-#usr/share/cups/templates/de/help-printable.tmpl
-#usr/share/cups/templates/de/job-cancel.tmpl
-#usr/share/cups/templates/de/job-hold.tmpl
-#usr/share/cups/templates/de/job-move.tmpl
-#usr/share/cups/templates/de/job-moved.tmpl
-#usr/share/cups/templates/de/job-release.tmpl
-#usr/share/cups/templates/de/job-restart.tmpl
-#usr/share/cups/templates/de/jobs-header.tmpl
-#usr/share/cups/templates/de/jobs.tmpl
-#usr/share/cups/templates/de/maintenance.tmpl
-#usr/share/cups/templates/de/modify-class.tmpl
-#usr/share/cups/templates/de/modify-printer.tmpl
-#usr/share/cups/templates/de/option-boolean.tmpl
-#usr/share/cups/templates/de/option-conflict.tmpl
-#usr/share/cups/templates/de/option-header.tmpl
-#usr/share/cups/templates/de/option-pickmany.tmpl
-#usr/share/cups/templates/de/option-pickone.tmpl
-#usr/share/cups/templates/de/option-trailer.tmpl
-#usr/share/cups/templates/de/pager.tmpl
-#usr/share/cups/templates/de/printer-accept.tmpl
-#usr/share/cups/templates/de/printer-added.tmpl
-#usr/share/cups/templates/de/printer-configured.tmpl
-#usr/share/cups/templates/de/printer-confirm.tmpl
-#usr/share/cups/templates/de/printer-default.tmpl
-#usr/share/cups/templates/de/printer-deleted.tmpl
-#usr/share/cups/templates/de/printer-jobs-header.tmpl
-#usr/share/cups/templates/de/printer-modified.tmpl
-#usr/share/cups/templates/de/printer-purge.tmpl
-#usr/share/cups/templates/de/printer-reject.tmpl
-#usr/share/cups/templates/de/printer-start.tmpl
-#usr/share/cups/templates/de/printer-stop.tmpl
-#usr/share/cups/templates/de/printers-header.tmpl
-#usr/share/cups/templates/de/printers.tmpl
-#usr/share/cups/templates/de/restart.tmpl
-#usr/share/cups/templates/de/samba-export.tmpl
-#usr/share/cups/templates/de/samba-exported.tmpl
-#usr/share/cups/templates/de/search.tmpl
-#usr/share/cups/templates/de/set-printer-options-header.tmpl
-#usr/share/cups/templates/de/set-printer-options-trailer.tmpl
-#usr/share/cups/templates/de/test-page.tmpl
-#usr/share/cups/templates/de/trailer.tmpl
-#usr/share/cups/templates/de/users.tmpl
-#usr/share/cups/templates/edit-config.tmpl
-#usr/share/cups/templates/error-op.tmpl
-#usr/share/cups/templates/error.tmpl
-#usr/share/cups/templates/es
-#usr/share/cups/templates/es/add-class.tmpl
-#usr/share/cups/templates/es/add-printer.tmpl
-#usr/share/cups/templates/es/admin.tmpl
-#usr/share/cups/templates/es/choose-device.tmpl
-#usr/share/cups/templates/es/choose-make.tmpl
-#usr/share/cups/templates/es/choose-model.tmpl
-#usr/share/cups/templates/es/choose-serial.tmpl
-#usr/share/cups/templates/es/choose-uri.tmpl
-#usr/share/cups/templates/es/class-added.tmpl
-#usr/share/cups/templates/es/class-confirm.tmpl
-#usr/share/cups/templates/es/class-deleted.tmpl
-#usr/share/cups/templates/es/class-jobs-header.tmpl
-#usr/share/cups/templates/es/class-modified.tmpl
-#usr/share/cups/templates/es/classes-header.tmpl
-#usr/share/cups/templates/es/classes.tmpl
-#usr/share/cups/templates/es/edit-config.tmpl
-#usr/share/cups/templates/es/error-op.tmpl
-#usr/share/cups/templates/es/error.tmpl
-#usr/share/cups/templates/es/header.tmpl
-#usr/share/cups/templates/es/help-header.tmpl
-#usr/share/cups/templates/es/help-printable.tmpl
-#usr/share/cups/templates/es/job-cancel.tmpl
-#usr/share/cups/templates/es/job-hold.tmpl
-#usr/share/cups/templates/es/job-move.tmpl
-#usr/share/cups/templates/es/job-moved.tmpl
-#usr/share/cups/templates/es/job-release.tmpl
-#usr/share/cups/templates/es/job-restart.tmpl
-#usr/share/cups/templates/es/jobs-header.tmpl
-#usr/share/cups/templates/es/jobs.tmpl
-#usr/share/cups/templates/es/maintenance.tmpl
-#usr/share/cups/templates/es/modify-class.tmpl
-#usr/share/cups/templates/es/modify-printer.tmpl
-#usr/share/cups/templates/es/option-boolean.tmpl
-#usr/share/cups/templates/es/option-conflict.tmpl
-#usr/share/cups/templates/es/option-header.tmpl
-#usr/share/cups/templates/es/option-pickmany.tmpl
-#usr/share/cups/templates/es/option-pickone.tmpl
-#usr/share/cups/templates/es/option-trailer.tmpl
-#usr/share/cups/templates/es/pager.tmpl
-#usr/share/cups/templates/es/printer-accept.tmpl
-#usr/share/cups/templates/es/printer-added.tmpl
-#usr/share/cups/templates/es/printer-configured.tmpl
-#usr/share/cups/templates/es/printer-confirm.tmpl
-#usr/share/cups/templates/es/printer-default.tmpl
-#usr/share/cups/templates/es/printer-deleted.tmpl
-#usr/share/cups/templates/es/printer-jobs-header.tmpl
-#usr/share/cups/templates/es/printer-modified.tmpl
-#usr/share/cups/templates/es/printer-purge.tmpl
-#usr/share/cups/templates/es/printer-reject.tmpl
-#usr/share/cups/templates/es/printer-start.tmpl
-#usr/share/cups/templates/es/printer-stop.tmpl
-#usr/share/cups/templates/es/printers-header.tmpl
-#usr/share/cups/templates/es/printers.tmpl
-#usr/share/cups/templates/es/restart.tmpl
-#usr/share/cups/templates/es/samba-export.tmpl
-#usr/share/cups/templates/es/samba-exported.tmpl
-#usr/share/cups/templates/es/search.tmpl
-#usr/share/cups/templates/es/set-printer-options-header.tmpl
-#usr/share/cups/templates/es/set-printer-options-trailer.tmpl
-#usr/share/cups/templates/es/test-page.tmpl
-#usr/share/cups/templates/es/trailer.tmpl
-#usr/share/cups/templates/es/users.tmpl
-#usr/share/cups/templates/header.tmpl
-#usr/share/cups/templates/help-header.tmpl
-#usr/share/cups/templates/help-printable.tmpl
-#usr/share/cups/templates/ja
-#usr/share/cups/templates/ja/add-class.tmpl
-#usr/share/cups/templates/ja/add-printer.tmpl
-#usr/share/cups/templates/ja/admin.tmpl
-#usr/share/cups/templates/ja/choose-device.tmpl
-#usr/share/cups/templates/ja/choose-make.tmpl
-#usr/share/cups/templates/ja/choose-model.tmpl
-#usr/share/cups/templates/ja/choose-serial.tmpl
-#usr/share/cups/templates/ja/choose-uri.tmpl
-#usr/share/cups/templates/ja/class-added.tmpl
-#usr/share/cups/templates/ja/class-confirm.tmpl
-#usr/share/cups/templates/ja/class-deleted.tmpl
-#usr/share/cups/templates/ja/class-jobs-header.tmpl
-#usr/share/cups/templates/ja/class-modified.tmpl
-#usr/share/cups/templates/ja/classes-header.tmpl
-#usr/share/cups/templates/ja/classes.tmpl
-#usr/share/cups/templates/ja/edit-config.tmpl
-#usr/share/cups/templates/ja/error-op.tmpl
-#usr/share/cups/templates/ja/error.tmpl
-#usr/share/cups/templates/ja/header.tmpl
-#usr/share/cups/templates/ja/help-header.tmpl
-#usr/share/cups/templates/ja/job-cancel.tmpl
-#usr/share/cups/templates/ja/job-hold.tmpl
-#usr/share/cups/templates/ja/job-move.tmpl
-#usr/share/cups/templates/ja/job-moved.tmpl
-#usr/share/cups/templates/ja/job-release.tmpl
-#usr/share/cups/templates/ja/job-restart.tmpl
-#usr/share/cups/templates/ja/jobs-header.tmpl
-#usr/share/cups/templates/ja/jobs.tmpl
-#usr/share/cups/templates/ja/maintenance.tmpl
-#usr/share/cups/templates/ja/modify-class.tmpl
-#usr/share/cups/templates/ja/modify-printer.tmpl
-#usr/share/cups/templates/ja/option-conflict.tmpl
-#usr/share/cups/templates/ja/option-trailer.tmpl
-#usr/share/cups/templates/ja/pager.tmpl
-#usr/share/cups/templates/ja/printer-accept.tmpl
-#usr/share/cups/templates/ja/printer-added.tmpl
-#usr/share/cups/templates/ja/printer-configured.tmpl
-#usr/share/cups/templates/ja/printer-confirm.tmpl
-#usr/share/cups/templates/ja/printer-default.tmpl
-#usr/share/cups/templates/ja/printer-deleted.tmpl
-#usr/share/cups/templates/ja/printer-jobs-header.tmpl
-#usr/share/cups/templates/ja/printer-modified.tmpl
-#usr/share/cups/templates/ja/printer-purge.tmpl
-#usr/share/cups/templates/ja/printer-reject.tmpl
-#usr/share/cups/templates/ja/printer-start.tmpl
-#usr/share/cups/templates/ja/printer-stop.tmpl
-#usr/share/cups/templates/ja/printers-header.tmpl
-#usr/share/cups/templates/ja/printers.tmpl
-#usr/share/cups/templates/ja/restart.tmpl
-#usr/share/cups/templates/ja/samba-export.tmpl
-#usr/share/cups/templates/ja/samba-exported.tmpl
-#usr/share/cups/templates/ja/search.tmpl
-#usr/share/cups/templates/ja/test-page.tmpl
-#usr/share/cups/templates/ja/users.tmpl
-#usr/share/cups/templates/job-cancel.tmpl
-#usr/share/cups/templates/job-hold.tmpl
-#usr/share/cups/templates/job-move.tmpl
-#usr/share/cups/templates/job-moved.tmpl
-#usr/share/cups/templates/job-release.tmpl
-#usr/share/cups/templates/job-restart.tmpl
-#usr/share/cups/templates/jobs-header.tmpl
-#usr/share/cups/templates/jobs.tmpl
-#usr/share/cups/templates/maintenance.tmpl
-#usr/share/cups/templates/modify-class.tmpl
-#usr/share/cups/templates/modify-printer.tmpl
-#usr/share/cups/templates/option-boolean.tmpl
-#usr/share/cups/templates/option-conflict.tmpl
-#usr/share/cups/templates/option-header.tmpl
-#usr/share/cups/templates/option-pickmany.tmpl
-#usr/share/cups/templates/option-pickone.tmpl
-#usr/share/cups/templates/option-trailer.tmpl
-#usr/share/cups/templates/pager.tmpl
-#usr/share/cups/templates/pl
-#usr/share/cups/templates/pl/add-class.tmpl
-#usr/share/cups/templates/pl/add-printer.tmpl
-#usr/share/cups/templates/pl/admin.tmpl
-#usr/share/cups/templates/pl/choose-device.tmpl
-#usr/share/cups/templates/pl/choose-make.tmpl
-#usr/share/cups/templates/pl/choose-model.tmpl
-#usr/share/cups/templates/pl/choose-serial.tmpl
-#usr/share/cups/templates/pl/choose-uri.tmpl
-#usr/share/cups/templates/pl/class-added.tmpl
-#usr/share/cups/templates/pl/class-confirm.tmpl
-#usr/share/cups/templates/pl/class-deleted.tmpl
-#usr/share/cups/templates/pl/class-jobs-header.tmpl
-#usr/share/cups/templates/pl/class-modified.tmpl
-#usr/share/cups/templates/pl/classes-header.tmpl
-#usr/share/cups/templates/pl/classes.tmpl
-#usr/share/cups/templates/pl/edit-config.tmpl
-#usr/share/cups/templates/pl/error-op.tmpl
-#usr/share/cups/templates/pl/error.tmpl
-#usr/share/cups/templates/pl/header.tmpl
-#usr/share/cups/templates/pl/help-header.tmpl
-#usr/share/cups/templates/pl/help-printable.tmpl
-#usr/share/cups/templates/pl/job-cancel.tmpl
-#usr/share/cups/templates/pl/job-hold.tmpl
-#usr/share/cups/templates/pl/job-move.tmpl
-#usr/share/cups/templates/pl/job-moved.tmpl
-#usr/share/cups/templates/pl/job-release.tmpl
-#usr/share/cups/templates/pl/job-restart.tmpl
-#usr/share/cups/templates/pl/jobs-header.tmpl
-#usr/share/cups/templates/pl/jobs.tmpl
-#usr/share/cups/templates/pl/maintenance.tmpl
-#usr/share/cups/templates/pl/modify-class.tmpl
-#usr/share/cups/templates/pl/modify-printer.tmpl
-#usr/share/cups/templates/pl/option-boolean.tmpl
-#usr/share/cups/templates/pl/option-conflict.tmpl
-#usr/share/cups/templates/pl/option-header.tmpl
-#usr/share/cups/templates/pl/option-pickmany.tmpl
-#usr/share/cups/templates/pl/option-pickone.tmpl
-#usr/share/cups/templates/pl/option-trailer.tmpl
-#usr/share/cups/templates/pl/pager.tmpl
-#usr/share/cups/templates/pl/printer-accept.tmpl
-#usr/share/cups/templates/pl/printer-added.tmpl
-#usr/share/cups/templates/pl/printer-configured.tmpl
-#usr/share/cups/templates/pl/printer-confirm.tmpl
-#usr/share/cups/templates/pl/printer-default.tmpl
-#usr/share/cups/templates/pl/printer-deleted.tmpl
-#usr/share/cups/templates/pl/printer-jobs-header.tmpl
-#usr/share/cups/templates/pl/printer-modified.tmpl
-#usr/share/cups/templates/pl/printer-purge.tmpl
-#usr/share/cups/templates/pl/printer-reject.tmpl
-#usr/share/cups/templates/pl/printer-start.tmpl
-#usr/share/cups/templates/pl/printer-stop.tmpl
-#usr/share/cups/templates/pl/printers-header.tmpl
-#usr/share/cups/templates/pl/printers.tmpl
-#usr/share/cups/templates/pl/restart.tmpl
-#usr/share/cups/templates/pl/samba-export.tmpl
-#usr/share/cups/templates/pl/samba-exported.tmpl
-#usr/share/cups/templates/pl/search.tmpl
-#usr/share/cups/templates/pl/set-printer-options-header.tmpl
-#usr/share/cups/templates/pl/set-printer-options-trailer.tmpl
-#usr/share/cups/templates/pl/test-page.tmpl
-#usr/share/cups/templates/pl/trailer.tmpl
-#usr/share/cups/templates/pl/users.tmpl
-#usr/share/cups/templates/printer-accept.tmpl
-#usr/share/cups/templates/printer-added.tmpl
-#usr/share/cups/templates/printer-configured.tmpl
-#usr/share/cups/templates/printer-confirm.tmpl
-#usr/share/cups/templates/printer-default.tmpl
-#usr/share/cups/templates/printer-deleted.tmpl
-#usr/share/cups/templates/printer-jobs-header.tmpl
-#usr/share/cups/templates/printer-modified.tmpl
-#usr/share/cups/templates/printer-purge.tmpl
-#usr/share/cups/templates/printer-reject.tmpl
-#usr/share/cups/templates/printer-start.tmpl
-#usr/share/cups/templates/printer-stop.tmpl
-#usr/share/cups/templates/printers-header.tmpl
-#usr/share/cups/templates/printers.tmpl
-#usr/share/cups/templates/restart.tmpl
-#usr/share/cups/templates/samba-export.tmpl
-#usr/share/cups/templates/samba-exported.tmpl
-#usr/share/cups/templates/search.tmpl
-#usr/share/cups/templates/set-printer-options-header.tmpl
-#usr/share/cups/templates/set-printer-options-trailer.tmpl
-#usr/share/cups/templates/sv
-#usr/share/cups/templates/sv/add-class.tmpl
-#usr/share/cups/templates/sv/add-printer.tmpl
-#usr/share/cups/templates/sv/admin.tmpl
-#usr/share/cups/templates/sv/choose-device.tmpl
-#usr/share/cups/templates/sv/choose-make.tmpl
-#usr/share/cups/templates/sv/choose-model.tmpl
-#usr/share/cups/templates/sv/choose-serial.tmpl
-#usr/share/cups/templates/sv/choose-uri.tmpl
-#usr/share/cups/templates/sv/class-added.tmpl
-#usr/share/cups/templates/sv/class-confirm.tmpl
-#usr/share/cups/templates/sv/class-deleted.tmpl
-#usr/share/cups/templates/sv/class-jobs-header.tmpl
-#usr/share/cups/templates/sv/class-modified.tmpl
-#usr/share/cups/templates/sv/classes-header.tmpl
-#usr/share/cups/templates/sv/classes.tmpl
-#usr/share/cups/templates/sv/edit-config.tmpl
-#usr/share/cups/templates/sv/error-op.tmpl
-#usr/share/cups/templates/sv/error.tmpl
-#usr/share/cups/templates/sv/header.tmpl
-#usr/share/cups/templates/sv/help-header.tmpl
-#usr/share/cups/templates/sv/help-printable.tmpl
-#usr/share/cups/templates/sv/job-cancel.tmpl
-#usr/share/cups/templates/sv/job-hold.tmpl
-#usr/share/cups/templates/sv/job-move.tmpl
-#usr/share/cups/templates/sv/job-moved.tmpl
-#usr/share/cups/templates/sv/job-release.tmpl
-#usr/share/cups/templates/sv/job-restart.tmpl
-#usr/share/cups/templates/sv/jobs-header.tmpl
-#usr/share/cups/templates/sv/jobs.tmpl
-#usr/share/cups/templates/sv/maintenance.tmpl
-#usr/share/cups/templates/sv/modify-class.tmpl
-#usr/share/cups/templates/sv/modify-printer.tmpl
-#usr/share/cups/templates/sv/option-boolean.tmpl
-#usr/share/cups/templates/sv/option-conflict.tmpl
-#usr/share/cups/templates/sv/option-header.tmpl
-#usr/share/cups/templates/sv/option-pickmany.tmpl
-#usr/share/cups/templates/sv/option-pickone.tmpl
-#usr/share/cups/templates/sv/option-trailer.tmpl
-#usr/share/cups/templates/sv/pager.tmpl
-#usr/share/cups/templates/sv/printer-accept.tmpl
-#usr/share/cups/templates/sv/printer-added.tmpl
-#usr/share/cups/templates/sv/printer-configured.tmpl
-#usr/share/cups/templates/sv/printer-confirm.tmpl
-#usr/share/cups/templates/sv/printer-default.tmpl
-#usr/share/cups/templates/sv/printer-deleted.tmpl
-#usr/share/cups/templates/sv/printer-jobs-header.tmpl
-#usr/share/cups/templates/sv/printer-modified.tmpl
-#usr/share/cups/templates/sv/printer-purge.tmpl
-#usr/share/cups/templates/sv/printer-reject.tmpl
-#usr/share/cups/templates/sv/printer-start.tmpl
-#usr/share/cups/templates/sv/printer-stop.tmpl
-#usr/share/cups/templates/sv/printers-header.tmpl
-#usr/share/cups/templates/sv/printers.tmpl
-#usr/share/cups/templates/sv/restart.tmpl
-#usr/share/cups/templates/sv/samba-export.tmpl
-#usr/share/cups/templates/sv/samba-exported.tmpl
-#usr/share/cups/templates/sv/search.tmpl
-#usr/share/cups/templates/sv/set-printer-options-header.tmpl
-#usr/share/cups/templates/sv/set-printer-options-trailer.tmpl
-#usr/share/cups/templates/sv/test-page.tmpl
-#usr/share/cups/templates/sv/trailer.tmpl
-#usr/share/cups/templates/sv/users.tmpl
-#usr/share/cups/templates/test-page.tmpl
-#usr/share/cups/templates/trailer.tmpl
-#usr/share/cups/templates/users.tmpl
-#usr/share/doc/cups
-#usr/share/doc/cups/cups-printable.css
-#usr/share/doc/cups/cups.css
-#usr/share/doc/cups/de
-#usr/share/doc/cups/de/images
-#usr/share/doc/cups/de/images/button-accept-jobs.gif
-#usr/share/doc/cups/de/images/button-add-class.gif
-#usr/share/doc/cups/de/images/button-add-printer.gif
-#usr/share/doc/cups/de/images/button-add-this-printer.gif
-#usr/share/doc/cups/de/images/button-cancel-all-jobs.gif
-#usr/share/doc/cups/de/images/button-cancel-job.gif
-#usr/share/doc/cups/de/images/button-change-settings.gif
-#usr/share/doc/cups/de/images/button-clean-print-heads.gif
-#usr/share/doc/cups/de/images/button-clear.gif
-#usr/share/doc/cups/de/images/button-continue.gif
-#usr/share/doc/cups/de/images/button-delete-class.gif
-#usr/share/doc/cups/de/images/button-delete-printer.gif
-#usr/share/doc/cups/de/images/button-edit-configuration-file.gif
-#usr/share/doc/cups/de/images/button-export-samba.gif
-#usr/share/doc/cups/de/images/button-help.gif
-#usr/share/doc/cups/de/images/button-hold-job.gif
-#usr/share/doc/cups/de/images/button-manage-classes.gif
-#usr/share/doc/cups/de/images/button-manage-jobs.gif
-#usr/share/doc/cups/de/images/button-manage-printers.gif
-#usr/share/doc/cups/de/images/button-manage-server.gif
-#usr/share/doc/cups/de/images/button-modify-class.gif
-#usr/share/doc/cups/de/images/button-modify-printer.gif
-#usr/share/doc/cups/de/images/button-move-job.gif
-#usr/share/doc/cups/de/images/button-move-jobs.gif
-#usr/share/doc/cups/de/images/button-print-self-test-page.gif
-#usr/share/doc/cups/de/images/button-print-test-page.gif
-#usr/share/doc/cups/de/images/button-publish-printer.gif
-#usr/share/doc/cups/de/images/button-reject-jobs.gif
-#usr/share/doc/cups/de/images/button-release-job.gif
-#usr/share/doc/cups/de/images/button-restart-job.gif
-#usr/share/doc/cups/de/images/button-save-changes.gif
-#usr/share/doc/cups/de/images/button-search.gif
-#usr/share/doc/cups/de/images/button-set-allowed-users.gif
-#usr/share/doc/cups/de/images/button-set-as-default.gif
-#usr/share/doc/cups/de/images/button-set-printer-options.gif
-#usr/share/doc/cups/de/images/button-show-active.gif
-#usr/share/doc/cups/de/images/button-show-all.gif
-#usr/share/doc/cups/de/images/button-show-completed.gif
-#usr/share/doc/cups/de/images/button-show-next.gif
-#usr/share/doc/cups/de/images/button-show-previous.gif
-#usr/share/doc/cups/de/images/button-sort-ascending.gif
-#usr/share/doc/cups/de/images/button-sort-descending.gif
-#usr/share/doc/cups/de/images/button-start-class.gif
-#usr/share/doc/cups/de/images/button-start-printer.gif
-#usr/share/doc/cups/de/images/button-stop-class.gif
-#usr/share/doc/cups/de/images/button-stop-printer.gif
-#usr/share/doc/cups/de/images/button-unpublish-printer.gif
-#usr/share/doc/cups/de/images/button-view-access-log.gif
-#usr/share/doc/cups/de/images/button-view-error-log.gif
-#usr/share/doc/cups/de/images/button-view-page-log.gif
-#usr/share/doc/cups/de/images/button-view-printable-version.gif
-#usr/share/doc/cups/de/index.html
-#usr/share/doc/cups/es
-#usr/share/doc/cups/es/images
-#usr/share/doc/cups/es/images/button-accept-jobs.gif
-#usr/share/doc/cups/es/images/button-add-class.gif
-#usr/share/doc/cups/es/images/button-add-printer.gif
-#usr/share/doc/cups/es/images/button-add-this-printer.gif
-#usr/share/doc/cups/es/images/button-cancel-all-jobs.gif
-#usr/share/doc/cups/es/images/button-cancel-job.gif
-#usr/share/doc/cups/es/images/button-change-settings.gif
-#usr/share/doc/cups/es/images/button-clean-print-heads.gif
-#usr/share/doc/cups/es/images/button-clear.gif
-#usr/share/doc/cups/es/images/button-continue.gif
-#usr/share/doc/cups/es/images/button-delete-class.gif
-#usr/share/doc/cups/es/images/button-delete-printer.gif
-#usr/share/doc/cups/es/images/button-edit-configuration-file.gif
-#usr/share/doc/cups/es/images/button-export-samba.gif
-#usr/share/doc/cups/es/images/button-help.gif
-#usr/share/doc/cups/es/images/button-hold-job.gif
-#usr/share/doc/cups/es/images/button-manage-classes.gif
-#usr/share/doc/cups/es/images/button-manage-jobs.gif
-#usr/share/doc/cups/es/images/button-manage-printers.gif
-#usr/share/doc/cups/es/images/button-manage-server.gif
-#usr/share/doc/cups/es/images/button-modify-class.gif
-#usr/share/doc/cups/es/images/button-modify-printer.gif
-#usr/share/doc/cups/es/images/button-move-job.gif
-#usr/share/doc/cups/es/images/button-move-jobs.gif
-#usr/share/doc/cups/es/images/button-print-self-test-page.gif
-#usr/share/doc/cups/es/images/button-print-test-page.gif
-#usr/share/doc/cups/es/images/button-publish-printer.gif
-#usr/share/doc/cups/es/images/button-reject-jobs.gif
-#usr/share/doc/cups/es/images/button-release-job.gif
-#usr/share/doc/cups/es/images/button-restart-job.gif
-#usr/share/doc/cups/es/images/button-save-changes.gif
-#usr/share/doc/cups/es/images/button-search.gif
-#usr/share/doc/cups/es/images/button-set-allowed-users.gif
-#usr/share/doc/cups/es/images/button-set-as-default.gif
-#usr/share/doc/cups/es/images/button-set-printer-options.gif
-#usr/share/doc/cups/es/images/button-show-active.gif
-#usr/share/doc/cups/es/images/button-show-all.gif
-#usr/share/doc/cups/es/images/button-show-completed.gif
-#usr/share/doc/cups/es/images/button-show-next.gif
-#usr/share/doc/cups/es/images/button-show-previous.gif
-#usr/share/doc/cups/es/images/button-sort-ascending.gif
-#usr/share/doc/cups/es/images/button-sort-descending.gif
-#usr/share/doc/cups/es/images/button-start-class.gif
-#usr/share/doc/cups/es/images/button-start-printer.gif
-#usr/share/doc/cups/es/images/button-stop-class.gif
-#usr/share/doc/cups/es/images/button-stop-printer.gif
-#usr/share/doc/cups/es/images/button-unpublish-printer.gif
-#usr/share/doc/cups/es/images/button-use-default-config.gif
-#usr/share/doc/cups/es/images/button-view-access-log.gif
-#usr/share/doc/cups/es/images/button-view-error-log.gif
-#usr/share/doc/cups/es/images/button-view-page-log.gif
-#usr/share/doc/cups/es/images/button-view-printable-version.gif
-#usr/share/doc/cups/es/index.html
-#usr/share/doc/cups/favicon.ico
-#usr/share/doc/cups/help
-#usr/share/doc/cups/help/api-array.html
-#usr/share/doc/cups/help/api-cups.html
-#usr/share/doc/cups/help/api-filedir.html
-#usr/share/doc/cups/help/api-filter.html
-#usr/share/doc/cups/help/api-httpipp.html
-#usr/share/doc/cups/help/api-ppd.html
-#usr/share/doc/cups/help/api-raster.html
-#usr/share/doc/cups/help/cgi.html
-#usr/share/doc/cups/help/glossary.html
-#usr/share/doc/cups/help/license.html
-#usr/share/doc/cups/help/man-accept.html
-#usr/share/doc/cups/help/man-backend.html
-#usr/share/doc/cups/help/man-cancel.html
-#usr/share/doc/cups/help/man-classes.conf.html
-#usr/share/doc/cups/help/man-client.conf.html
-#usr/share/doc/cups/help/man-cups-config.html
-#usr/share/doc/cups/help/man-cups-lpd.html
-#usr/share/doc/cups/help/man-cups-polld.html
-#usr/share/doc/cups/help/man-cupsaddsmb.html
-#usr/share/doc/cups/help/man-cupsd.conf.html
-#usr/share/doc/cups/help/man-cupsd.html
-#usr/share/doc/cups/help/man-cupsenable.html
-#usr/share/doc/cups/help/man-cupstestdsc.html
-#usr/share/doc/cups/help/man-cupstestppd.html
-#usr/share/doc/cups/help/man-filter.html
-#usr/share/doc/cups/help/man-lp.html
-#usr/share/doc/cups/help/man-lpadmin.html
-#usr/share/doc/cups/help/man-lpc.html
-#usr/share/doc/cups/help/man-lpinfo.html
-#usr/share/doc/cups/help/man-lpmove.html
-#usr/share/doc/cups/help/man-lpoptions.html
-#usr/share/doc/cups/help/man-lppasswd.html
-#usr/share/doc/cups/help/man-lpq.html
-#usr/share/doc/cups/help/man-lpr.html
-#usr/share/doc/cups/help/man-lprm.html
-#usr/share/doc/cups/help/man-lpstat.html
-#usr/share/doc/cups/help/man-mime.convs.html
-#usr/share/doc/cups/help/man-mime.types.html
-#usr/share/doc/cups/help/man-printers.conf.html
-#usr/share/doc/cups/help/network.html
-#usr/share/doc/cups/help/options.html
-#usr/share/doc/cups/help/overview.html
-#usr/share/doc/cups/help/policies.html
-#usr/share/doc/cups/help/ref-access_log.html
-#usr/share/doc/cups/help/ref-classes-conf.html
-#usr/share/doc/cups/help/ref-client-conf.html
-#usr/share/doc/cups/help/ref-cupsd-conf.html
-#usr/share/doc/cups/help/ref-error_log.html
-#usr/share/doc/cups/help/ref-mailto-conf.html
-#usr/share/doc/cups/help/ref-page_log.html
-#usr/share/doc/cups/help/ref-printers-conf.html
-#usr/share/doc/cups/help/ref-snmp-conf.html
-#usr/share/doc/cups/help/ref-subscriptions-conf.html
-#usr/share/doc/cups/help/security.html
-#usr/share/doc/cups/help/spec-cmp.html
-#usr/share/doc/cups/help/spec-command.html
-#usr/share/doc/cups/help/spec-design.html
-#usr/share/doc/cups/help/spec-ipp.html
-#usr/share/doc/cups/help/spec-ppd.html
-#usr/share/doc/cups/help/spec-raster.html
-#usr/share/doc/cups/help/spec-stp.html
-#usr/share/doc/cups/help/standard.html
-#usr/share/doc/cups/help/translation.html
-#usr/share/doc/cups/help/whatsnew.html
-#usr/share/doc/cups/images
-#usr/share/doc/cups/images/bottom-left.gif
-#usr/share/doc/cups/images/bottom-right.gif
-#usr/share/doc/cups/images/button-accept-jobs.gif
-#usr/share/doc/cups/images/button-add-class.gif
-#usr/share/doc/cups/images/button-add-printer.gif
-#usr/share/doc/cups/images/button-add-this-printer.gif
-#usr/share/doc/cups/images/button-cancel-all-jobs.gif
-#usr/share/doc/cups/images/button-cancel-job.gif
-#usr/share/doc/cups/images/button-change-settings.gif
-#usr/share/doc/cups/images/button-clean-print-heads.gif
-#usr/share/doc/cups/images/button-clear.gif
-#usr/share/doc/cups/images/button-continue.gif
-#usr/share/doc/cups/images/button-delete-class.gif
-#usr/share/doc/cups/images/button-delete-printer.gif
-#usr/share/doc/cups/images/button-edit-configuration-file.gif
-#usr/share/doc/cups/images/button-export-samba.gif
-#usr/share/doc/cups/images/button-help.gif
-#usr/share/doc/cups/images/button-hold-job.gif
-#usr/share/doc/cups/images/button-manage-classes.gif
-#usr/share/doc/cups/images/button-manage-jobs.gif
-#usr/share/doc/cups/images/button-manage-printers.gif
-#usr/share/doc/cups/images/button-manage-server.gif
-#usr/share/doc/cups/images/button-modify-class.gif
-#usr/share/doc/cups/images/button-modify-printer.gif
-#usr/share/doc/cups/images/button-move-job.gif
-#usr/share/doc/cups/images/button-move-jobs.gif
-#usr/share/doc/cups/images/button-print-self-test-page.gif
-#usr/share/doc/cups/images/button-print-test-page.gif
-#usr/share/doc/cups/images/button-publish-printer.gif
-#usr/share/doc/cups/images/button-reject-jobs.gif
-#usr/share/doc/cups/images/button-release-job.gif
-#usr/share/doc/cups/images/button-restart-job.gif
-#usr/share/doc/cups/images/button-save-changes.gif
-#usr/share/doc/cups/images/button-search.gif
-#usr/share/doc/cups/images/button-set-allowed-users.gif
-#usr/share/doc/cups/images/button-set-as-default.gif
-#usr/share/doc/cups/images/button-set-printer-options.gif
-#usr/share/doc/cups/images/button-show-active.gif
-#usr/share/doc/cups/images/button-show-all.gif
-#usr/share/doc/cups/images/button-show-completed.gif
-#usr/share/doc/cups/images/button-show-next.gif
-#usr/share/doc/cups/images/button-show-previous.gif
-#usr/share/doc/cups/images/button-sort-ascending.gif
-#usr/share/doc/cups/images/button-sort-descending.gif
-#usr/share/doc/cups/images/button-start-class.gif
-#usr/share/doc/cups/images/button-start-printer.gif
-#usr/share/doc/cups/images/button-stop-class.gif
-#usr/share/doc/cups/images/button-stop-printer.gif
-#usr/share/doc/cups/images/button-unpublish-printer.gif
-#usr/share/doc/cups/images/button-use-default-config.gif
-#usr/share/doc/cups/images/button-view-access-log.gif
-#usr/share/doc/cups/images/button-view-error-log.gif
-#usr/share/doc/cups/images/button-view-page-log.gif
-#usr/share/doc/cups/images/button-view-printable-version.gif
-#usr/share/doc/cups/images/classes.gif
-#usr/share/doc/cups/images/cups-block-diagram.gif
-#usr/share/doc/cups/images/esp-logo.gif
-#usr/share/doc/cups/images/happy.gif
-#usr/share/doc/cups/images/logo.gif
-#usr/share/doc/cups/images/printer-idle.gif
-#usr/share/doc/cups/images/printer-processing.gif
-#usr/share/doc/cups/images/printer-stopped.gif
-#usr/share/doc/cups/images/smiley.jpg
-#usr/share/doc/cups/images/tab-left.gif
-#usr/share/doc/cups/images/tab-right.gif
-#usr/share/doc/cups/images/top-left.gif
-#usr/share/doc/cups/images/top-middle.gif
-#usr/share/doc/cups/images/top-right.gif
-#usr/share/doc/cups/images/web-add-this-printer.gif
-#usr/share/doc/cups/images/web-password.gif
-#usr/share/doc/cups/images/web-printer-driver.gif
-#usr/share/doc/cups/images/web-printer-status.gif
-#usr/share/doc/cups/images/web-set-printer-options.gif
-#usr/share/doc/cups/images/web-test-page.gif
-#usr/share/doc/cups/index.html
-#usr/share/doc/cups/ja
-#usr/share/doc/cups/ja/images
-#usr/share/doc/cups/ja/images/button-accept-jobs.gif
-#usr/share/doc/cups/ja/images/button-add-class.gif
-#usr/share/doc/cups/ja/images/button-add-printer.gif
-#usr/share/doc/cups/ja/images/button-add-this-printer.gif
-#usr/share/doc/cups/ja/images/button-cancel-all-jobs.gif
-#usr/share/doc/cups/ja/images/button-cancel-job.gif
-#usr/share/doc/cups/ja/images/button-change-settings.gif
-#usr/share/doc/cups/ja/images/button-continue.gif
-#usr/share/doc/cups/ja/images/button-delete-class.gif
-#usr/share/doc/cups/ja/images/button-delete-printer.gif
-#usr/share/doc/cups/ja/images/button-edit-configuration-file.gif
-#usr/share/doc/cups/ja/images/button-export-samba.gif
-#usr/share/doc/cups/ja/images/button-help.gif
-#usr/share/doc/cups/ja/images/button-hold-job.gif
-#usr/share/doc/cups/ja/images/button-manage-classes.gif
-#usr/share/doc/cups/ja/images/button-manage-jobs.gif
-#usr/share/doc/cups/ja/images/button-manage-printers.gif
-#usr/share/doc/cups/ja/images/button-manage-server.gif
-#usr/share/doc/cups/ja/images/button-modify-class.gif
-#usr/share/doc/cups/ja/images/button-modify-printer.gif
-#usr/share/doc/cups/ja/images/button-move-job.gif
-#usr/share/doc/cups/ja/images/button-move-jobs.gif
-#usr/share/doc/cups/ja/images/button-print-test-page.gif
-#usr/share/doc/cups/ja/images/button-publish-printer.gif
-#usr/share/doc/cups/ja/images/button-reject-jobs.gif
-#usr/share/doc/cups/ja/images/button-release-job.gif
-#usr/share/doc/cups/ja/images/button-restart-job.gif
-#usr/share/doc/cups/ja/images/button-save-changes.gif
-#usr/share/doc/cups/ja/images/button-search.gif
-#usr/share/doc/cups/ja/images/button-set-allowed-users.gif
-#usr/share/doc/cups/ja/images/button-set-as-default.gif
-#usr/share/doc/cups/ja/images/button-set-printer-options.gif
-#usr/share/doc/cups/ja/images/button-show-active.gif
-#usr/share/doc/cups/ja/images/button-show-all.gif
-#usr/share/doc/cups/ja/images/button-show-completed.gif
-#usr/share/doc/cups/ja/images/button-show-next.gif
-#usr/share/doc/cups/ja/images/button-show-previous.gif
-#usr/share/doc/cups/ja/images/button-sort-ascending.gif
-#usr/share/doc/cups/ja/images/button-sort-descending.gif
-#usr/share/doc/cups/ja/images/button-start-class.gif
-#usr/share/doc/cups/ja/images/button-start-printer.gif
-#usr/share/doc/cups/ja/images/button-stop-class.gif
-#usr/share/doc/cups/ja/images/button-stop-printer.gif
-#usr/share/doc/cups/ja/images/button-unpublish-printer.gif
-#usr/share/doc/cups/ja/images/button-use-default-config.gif
-#usr/share/doc/cups/ja/images/button-view-access-log.gif
-#usr/share/doc/cups/ja/images/button-view-error-log.gif
-#usr/share/doc/cups/ja/images/button-view-page-log.gif
-#usr/share/doc/cups/ja/index.html
-#usr/share/doc/cups/pl
-#usr/share/doc/cups/pl/images
-#usr/share/doc/cups/pl/images/button-accept-jobs.gif
-#usr/share/doc/cups/pl/images/button-add-class.gif
-#usr/share/doc/cups/pl/images/button-add-printer.gif
-#usr/share/doc/cups/pl/images/button-add-this-printer.gif
-#usr/share/doc/cups/pl/images/button-cancel-all-jobs.gif
-#usr/share/doc/cups/pl/images/button-cancel-job.gif
-#usr/share/doc/cups/pl/images/button-change-settings.gif
-#usr/share/doc/cups/pl/images/button-clean-print-heads.gif
-#usr/share/doc/cups/pl/images/button-clear.gif
-#usr/share/doc/cups/pl/images/button-continue.gif
-#usr/share/doc/cups/pl/images/button-delete-class.gif
-#usr/share/doc/cups/pl/images/button-delete-printer.gif
-#usr/share/doc/cups/pl/images/button-edit-configuration-file.gif
-#usr/share/doc/cups/pl/images/button-export-samba.gif
-#usr/share/doc/cups/pl/images/button-help.gif
-#usr/share/doc/cups/pl/images/button-hold-job.gif
-#usr/share/doc/cups/pl/images/button-manage-classes.gif
-#usr/share/doc/cups/pl/images/button-manage-jobs.gif
-#usr/share/doc/cups/pl/images/button-manage-printers.gif
-#usr/share/doc/cups/pl/images/button-manage-server.gif
-#usr/share/doc/cups/pl/images/button-modify-class.gif
-#usr/share/doc/cups/pl/images/button-modify-printer.gif
-#usr/share/doc/cups/pl/images/button-move-job.gif
-#usr/share/doc/cups/pl/images/button-move-jobs.gif
-#usr/share/doc/cups/pl/images/button-print-self-test-page.gif
-#usr/share/doc/cups/pl/images/button-print-test-page.gif
-#usr/share/doc/cups/pl/images/button-publish-printer.gif
-#usr/share/doc/cups/pl/images/button-reject-jobs.gif
-#usr/share/doc/cups/pl/images/button-release-job.gif
-#usr/share/doc/cups/pl/images/button-restart-job.gif
-#usr/share/doc/cups/pl/images/button-save-changes.gif
-#usr/share/doc/cups/pl/images/button-search.gif
-#usr/share/doc/cups/pl/images/button-set-allowed-users.gif
-#usr/share/doc/cups/pl/images/button-set-as-default.gif
-#usr/share/doc/cups/pl/images/button-set-printer-options.gif
-#usr/share/doc/cups/pl/images/button-show-active.gif
-#usr/share/doc/cups/pl/images/button-show-all.gif
-#usr/share/doc/cups/pl/images/button-show-completed.gif
-#usr/share/doc/cups/pl/images/button-show-next.gif
-#usr/share/doc/cups/pl/images/button-show-previous.gif
-#usr/share/doc/cups/pl/images/button-sort-ascending.gif
-#usr/share/doc/cups/pl/images/button-sort-descending.gif
-#usr/share/doc/cups/pl/images/button-start-class.gif
-#usr/share/doc/cups/pl/images/button-start-printer.gif
-#usr/share/doc/cups/pl/images/button-stop-class.gif
-#usr/share/doc/cups/pl/images/button-stop-printer.gif
-#usr/share/doc/cups/pl/images/button-unpublish-printer.gif
-#usr/share/doc/cups/pl/images/button-use-default-config.gif
-#usr/share/doc/cups/pl/images/button-view-access-log.gif
-#usr/share/doc/cups/pl/images/button-view-error-log.gif
-#usr/share/doc/cups/pl/images/button-view-page-log.gif
-#usr/share/doc/cups/pl/images/button-view-printable-version.gif
-#usr/share/doc/cups/pl/index.html
-#usr/share/doc/cups/robots.txt
-#usr/share/doc/cups/sv
-#usr/share/doc/cups/sv/images
-#usr/share/doc/cups/sv/images/button-accept-jobs.gif
-#usr/share/doc/cups/sv/images/button-add-class.gif
-#usr/share/doc/cups/sv/images/button-add-printer.gif
-#usr/share/doc/cups/sv/images/button-add-this-printer.gif
-#usr/share/doc/cups/sv/images/button-cancel-all-jobs.gif
-#usr/share/doc/cups/sv/images/button-cancel-job.gif
-#usr/share/doc/cups/sv/images/button-change-settings.gif
-#usr/share/doc/cups/sv/images/button-clean-print-heads.gif
-#usr/share/doc/cups/sv/images/button-clear.gif
-#usr/share/doc/cups/sv/images/button-continue.gif
-#usr/share/doc/cups/sv/images/button-delete-class.gif
-#usr/share/doc/cups/sv/images/button-delete-printer.gif
-#usr/share/doc/cups/sv/images/button-edit-configuration-file.gif
-#usr/share/doc/cups/sv/images/button-export-samba.gif
-#usr/share/doc/cups/sv/images/button-help.gif
-#usr/share/doc/cups/sv/images/button-hold-job.gif
-#usr/share/doc/cups/sv/images/button-manage-classes.gif
-#usr/share/doc/cups/sv/images/button-manage-jobs.gif
-#usr/share/doc/cups/sv/images/button-manage-printers.gif
-#usr/share/doc/cups/sv/images/button-manage-server.gif
-#usr/share/doc/cups/sv/images/button-modify-class.gif
-#usr/share/doc/cups/sv/images/button-modify-printer.gif
-#usr/share/doc/cups/sv/images/button-move-job.gif
-#usr/share/doc/cups/sv/images/button-move-jobs.gif
-#usr/share/doc/cups/sv/images/button-print-self-test-page.gif
-#usr/share/doc/cups/sv/images/button-print-test-page.gif
-#usr/share/doc/cups/sv/images/button-publish-printer.gif
-#usr/share/doc/cups/sv/images/button-reject-jobs.gif
-#usr/share/doc/cups/sv/images/button-release-job.gif
-#usr/share/doc/cups/sv/images/button-restart-job.gif
-#usr/share/doc/cups/sv/images/button-save-changes.gif
-#usr/share/doc/cups/sv/images/button-search.gif
-#usr/share/doc/cups/sv/images/button-set-allowed-users.gif
-#usr/share/doc/cups/sv/images/button-set-as-default.gif
-#usr/share/doc/cups/sv/images/button-set-printer-options.gif
-#usr/share/doc/cups/sv/images/button-show-active.gif
-#usr/share/doc/cups/sv/images/button-show-all.gif
-#usr/share/doc/cups/sv/images/button-show-completed.gif
-#usr/share/doc/cups/sv/images/button-show-next.gif
-#usr/share/doc/cups/sv/images/button-show-previous.gif
-#usr/share/doc/cups/sv/images/button-sort-ascending.gif
-#usr/share/doc/cups/sv/images/button-sort-descending.gif
-#usr/share/doc/cups/sv/images/button-start-class.gif
-#usr/share/doc/cups/sv/images/button-start-printer.gif
-#usr/share/doc/cups/sv/images/button-stop-class.gif
-#usr/share/doc/cups/sv/images/button-stop-printer.gif
-#usr/share/doc/cups/sv/images/button-unpublish-printer.gif
-#usr/share/doc/cups/sv/images/button-use-default-config.gif
-#usr/share/doc/cups/sv/images/button-view-access-log.gif
-#usr/share/doc/cups/sv/images/button-view-error-log.gif
-#usr/share/doc/cups/sv/images/button-view-page-log.gif
-#usr/share/doc/cups/sv/images/button-view-printable-version.gif
-#usr/share/doc/cups/sv/index.html
-#usr/share/locale/de/cups_de.po
-#usr/share/locale/es/cups_es.po
-#usr/share/locale/ja/cups_ja.po
-#usr/share/locale/pl/cups_pl.po
-#usr/share/locale/sv/cups_sv.po
-#usr/share/man/man1/cancel.1.gz
-#usr/share/man/man1/cups-config.1.gz
-#usr/share/man/man1/cupstestdsc.1.gz
-#usr/share/man/man1/cupstestppd.1.gz
-#usr/share/man/man1/lp.1.gz
-#usr/share/man/man1/lpoptions.1.gz
-#usr/share/man/man1/lppasswd.1.gz
-#usr/share/man/man1/lpq.1.gz
-#usr/share/man/man1/lpr.1.gz
-#usr/share/man/man1/lprm.1.gz
-#usr/share/man/man1/lpstat.1.gz
-#usr/share/man/man5/classes.conf.5.gz
-#usr/share/man/man5/client.conf.5.gz
-#usr/share/man/man5/cups-snmp.conf.5.gz
-#usr/share/man/man5/cupsd.conf.5.gz
-#usr/share/man/man5/mailto.conf.5.gz
-#usr/share/man/man5/mime.convs.5.gz
-#usr/share/man/man5/mime.types.5.gz
-#usr/share/man/man5/printers.conf.5.gz
-#usr/share/man/man5/subscriptions.conf.5.gz
-#usr/share/man/man7/backend.7.gz
-#usr/share/man/man7/filter.7.gz
-#usr/share/man/man8/accept.8.gz
-#usr/share/man/man8/cups-deviced.8.gz
-#usr/share/man/man8/cups-driverd.8.gz
-#usr/share/man/man8/cups-lpd.8.gz
-#usr/share/man/man8/cups-polld.8.gz
-#usr/share/man/man8/cupsaddsmb.8.gz
-#usr/share/man/man8/cupsd.8.gz
-#usr/share/man/man8/cupsdisable.8.gz
-#usr/share/man/man8/cupsenable.8.gz
-#usr/share/man/man8/lpadmin.8.gz
-#usr/share/man/man8/lpc.8.gz
-#usr/share/man/man8/lpinfo.8.gz
-#usr/share/man/man8/lpmove.8.gz
-#usr/share/man/man8/reject.8.gz
-var/cache/cups
-var/ipfire/cups
-#var/ipfire/cups/cupsd.conf
-#var/ipfire/cups/cupsd.conf.default
-#var/ipfire/cups/interfaces
-#var/ipfire/cups/mime.convs
-#var/ipfire/cups/mime.types
-#var/ipfire/cups/ppd
-#var/ipfire/cups/ssl
-var/log/cups
-var/run/cups
-var/run/cups/certs
-var/spool/cups
-var/spool/cups/tmp
diff --git a/src/paks/cups/depends.txt b/src/paks/cups/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/cups/install.sh b/src/paks/cups/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/cups/uninstall.sh b/src/paks/cups/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/cyrusimap/ROOTFILES b/src/paks/cyrusimap/ROOTFILES
deleted file mode 100644 (file)
index 3f97feb..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-usr/bin/cyradm
-usr/bin/imtest
-usr/bin/installsieve
-usr/bin/lmtptest
-usr/bin/mupdatetest
-usr/bin/nntptest
-usr/bin/pop3test
-usr/bin/sieveshell
-usr/bin/sivtest
-usr/bin/smtptest
-#usr/lib/cyrus
-usr/lib/cyrus/arbitron
-usr/lib/cyrus/chk_cyrus
-usr/lib/cyrus/compile_sieve
-usr/lib/cyrus/ctl_cyrusdb
-usr/lib/cyrus/ctl_deliver
-usr/lib/cyrus/ctl_mboxlist
-usr/lib/cyrus/cvt_cyrusdb
-usr/lib/cyrus/cyr_expire
-usr/lib/cyrus/cyrdump
-usr/lib/cyrus/deliver
-usr/lib/cyrus/fud
-usr/lib/cyrus/idled
-usr/lib/cyrus/imapd
-usr/lib/cyrus/ipurge
-usr/lib/cyrus/lmtpd
-usr/lib/cyrus/master
-usr/lib/cyrus/mbexamine
-usr/lib/cyrus/mbpath
-usr/lib/cyrus/notifyd
-usr/lib/cyrus/pop3d
-usr/lib/cyrus/pop3proxyd
-usr/lib/cyrus/quota
-usr/lib/cyrus/reconstruct
-usr/lib/cyrus/sievec
-usr/lib/cyrus/smmapd
-usr/lib/cyrus/squatter
-usr/lib/cyrus/timsieved
-usr/lib/cyrus/tls_prune
-#usr/include/cyrus/byteorder64.h
-#usr/include/cyrus
-#usr/include/cyrus/acl.h
-#usr/include/cyrus/assert.h
-#usr/include/cyrus/auth.h
-#usr/include/cyrus/bsearch.h
-#usr/include/cyrus/charset.h
-#usr/include/cyrus/cyrusdb.h
-#usr/include/cyrus/glob.h
-#usr/include/cyrus/gmtoff.h
-#usr/include/cyrus/hash.h
-#usr/include/cyrus/imapopts.h
-#usr/include/cyrus/imapurl.h
-#usr/include/cyrus/imclient.h
-#usr/include/cyrus/imparse.h
-#usr/include/cyrus/iptostring.h
-#usr/include/cyrus/libconfig.h
-#usr/include/cyrus/libcyr_cfg.h
-#usr/include/cyrus/lock.h
-#usr/include/cyrus/lsort.h
-#usr/include/cyrus/map.h
-#usr/include/cyrus/mkgmtime.h
-#usr/include/cyrus/mpool.h
-#usr/include/cyrus/nonblock.h
-#usr/include/cyrus/parseaddr.h
-#usr/include/cyrus/prot.h
-#usr/include/cyrus/retry.h
-#usr/include/cyrus/rfc822date.h
-#usr/include/cyrus/strhash.h
-#usr/include/cyrus/strhash.o
-#usr/include/cyrus/stristr.h
-#usr/include/cyrus/sysexits.h
-#usr/include/cyrus/util.h
-#usr/include/cyrus/xmalloc.h
-#usr/include/cyrus/xstrlcat.h
-#usr/include/cyrus/xstrlcpy.h
-usr/lib/libcyrus.a
-usr/lib/libcyrus_min.a
-#usr/lib/perl5/site_perl/5.8.5/i386-linux/Cyrus
-#usr/lib/perl5/site_perl/5.8.5/i386-linux/Cyrus/IMAP
-usr/lib/perl5/site_perl/5.8.5/i386-linux/Cyrus/IMAP.pm
-usr/lib/perl5/site_perl/5.8.5/i386-linux/Cyrus/IMAP/Admin.pm
-usr/lib/perl5/site_perl/5.8.5/i386-linux/Cyrus/IMAP/IMSP.pm
-usr/lib/perl5/site_perl/5.8.5/i386-linux/Cyrus/IMAP/Shell.pm
-#usr/lib/perl5/site_perl/5.8.5/i386-linux/Cyrus/SIEVE
-usr/lib/perl5/site_perl/5.8.5/i386-linux/Cyrus/SIEVE/managesieve.pm
-#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Cyrus
-#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Cyrus/IMAP
-#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Cyrus/IMAP/.packlist
-usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Cyrus/IMAP/IMAP.bs
-usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Cyrus/IMAP/IMAP.so
-#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Cyrus/SIEVE
-#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Cyrus/SIEVE/managesieve
-#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Cyrus/SIEVE/managesieve/.packlist
-usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Cyrus/SIEVE/managesieve/managesieve.bs
-usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Cyrus/SIEVE/managesieve/managesieve.so
-#usr/share/man/man1/cyradm.1
-#usr/share/man/man1/imtest.1
-#usr/share/man/man1/installsieve.1
-#usr/share/man/man1/lmtptest.1
-#usr/share/man/man1/mupdatetest.1
-#usr/share/man/man1/nntptest.1
-#usr/share/man/man1/pop3test.1
-#usr/share/man/man1/sieveshell.1
-#usr/share/man/man1/sivtest.1
-#usr/share/man/man1/smtptest.1
-#usr/share/man/man3/Cyrus::IMAP.3
-#usr/share/man/man3/Cyrus::IMAP::Admin.3
-#usr/share/man/man3/Cyrus::IMAP::IMSP.3
-#usr/share/man/man3/Cyrus::IMAP::Shell.3
-#usr/share/man/man3/Cyrus::SIEVE::managesieve.3
-#usr/share/man/man3/imclient.3
-#usr/share/man/man5/cyrus.conf.5
-#usr/share/man/man5/imapd.conf.5
-#usr/share/man/man5/krb.equiv.5
-#usr/share/man/man8/arbitron.8
-#usr/share/man/man8/chk_cyrus.8
-#usr/share/man/man8/ctl_cyrusdb.8
-#usr/share/man/man8/ctl_deliver.8
-#usr/share/man/man8/ctl_mboxlist.8
-#usr/share/man/man8/cvt_cyrusdb.8
-#usr/share/man/man8/cyr_expire.8
-#usr/share/man/man8/deliver.8
-#usr/share/man/man8/fetchnews.8
-#usr/share/man/man8/fud.8
-#usr/share/man/man8/idled.8
-#usr/share/man/man8/imapd.8
-#usr/share/man/man8/ipurge.8
-#usr/share/man/man8/lmtpd.8
-#usr/share/man/man8/mbexamine.8
-#usr/share/man/man8/mbpath.8
-#usr/share/man/man8/nntpd.8
-#usr/share/man/man8/notifyd.8
-#usr/share/man/man8/pop3d.8
-#usr/share/man/man8/quota.8
-#usr/share/man/man8/reconstruct.8
-#usr/share/man/man8/rmnews.8
-#usr/share/man/man8/smmapd.8
-#usr/share/man/man8/squatter.8
-#usr/share/man/man8/syncnews.8
-#usr/share/man/man8/timsieved.8
-#usr/share/man/man8/tls_prune.8
-var/imap
-var/log/imap
-usr/sieve
-var/ipfire/cyrusimap
diff --git a/src/paks/cyrusimap/depends.txt b/src/paks/cyrusimap/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/cyrusimap/install.sh b/src/paks/cyrusimap/install.sh
deleted file mode 100644 (file)
index 11b2c42..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-CONFIGDIR=/var/ipfire/cyrusimap
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
-
-
-
-if [ ! -f $CONFIGDIR/server.pm ]; then
-       cd /tmp && openssl req -new -nodes -out req.pem -keyout key.pem
-       cd /tmp && openssl rsa -in key.pem -out new.key.pem
-       cd /tmp && openssl x509 -in req.pem -out ca-cert -req -signkey new.key.pem -days 999
-       
-       cd /tmp && cp new.key.pem $CONFIGDIR/server.pem
-       cd /tmp && rm new.key.pem
-       cd /tmp && cat ca-cert >> $CONFIGDIR/server.pem
-       chown cyrus:mail $CONFIGDIR/server.pem
-       chmod 600 $CONFIGDIR/server.pem # Your key should be protected
-fi
diff --git a/src/paks/cyrusimap/uninstall.sh b/src/paks/cyrusimap/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/ethereal/ROOTFILES b/src/paks/ethereal/ROOTFILES
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/ethereal/depends.txt b/src/paks/ethereal/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/ethereal/install.sh b/src/paks/ethereal/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/ethereal/uninstall.sh b/src/paks/ethereal/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/fetchmail/ROOTFILES b/src/paks/fetchmail/ROOTFILES
deleted file mode 100644 (file)
index 00338a0..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-usr/bin/fetchmail
-usr/bin/fetchmailconf
-#usr/lib/python2.3/site-packages/fetchmailconf.py
-#usr/lib/python2.3/site-packages/fetchmailconf.pyc
-#usr/lib/python2.3/site-packages/fetchmailconf.pyo
-root/.fetchmailrc
\ No newline at end of file
diff --git a/src/paks/fetchmail/depends.txt b/src/paks/fetchmail/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/fetchmail/install.sh b/src/paks/fetchmail/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/fetchmail/uninstall.sh b/src/paks/fetchmail/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/ffmpeg/ROOTFILES b/src/paks/ffmpeg/ROOTFILES
deleted file mode 100644 (file)
index f30cfaf..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-usr/bin/ffmpeg
-usr/bin/ffserver
-#usr/include/ffmpeg
-#usr/include/ffmpeg/avcodec.h
-#usr/include/ffmpeg/avformat.h
-#usr/include/ffmpeg/avio.h
-#usr/include/ffmpeg/avutil.h
-#usr/include/ffmpeg/common.h
-#usr/include/ffmpeg/integer.h
-#usr/include/ffmpeg/intfloat_readwrite.h
-#usr/include/ffmpeg/mathematics.h
-#usr/include/ffmpeg/rational.h
-#usr/include/ffmpeg/rtp.h
-#usr/include/ffmpeg/rtsp.h
-#usr/include/ffmpeg/rtspcodes.h
-#usr/include/postproc
-#usr/include/postproc/postprocess.h
-#usr/lib/libavcodec-CVS.so
-usr/lib/libavcodec.so
-#usr/lib/libavformat-CVS.so
-usr/lib/libavformat.so
-#usr/lib/libavutil-CVS.so
-usr/lib/libavutil.so
-#usr/lib/pkgconfig/libavcodec.pc
-#usr/lib/pkgconfig/libavformat.pc
-#usr/lib/pkgconfig/libavutil.pc
-#usr/lib/vhook
-#usr/lib/vhook/drawtext.so
-#usr/lib/vhook/fish.so
-#usr/lib/vhook/null.so
-#usr/lib/vhook/ppm.so
-#usr/lib/vhook/watermark.so
-#usr/share/man/man1/ffmpeg.1
-#usr/share/man/man1/ffserver.1
diff --git a/src/paks/ffmpeg/depends.txt b/src/paks/ffmpeg/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/ffmpeg/install.sh b/src/paks/ffmpeg/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/ffmpeg/uninstall.sh b/src/paks/ffmpeg/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/ghostscript/ROOTFILES b/src/paks/ghostscript/ROOTFILES
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/ghostscript/depends.txt b/src/paks/ghostscript/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/ghostscript/install.sh b/src/paks/ghostscript/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/ghostscript/uninstall.sh b/src/paks/ghostscript/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/gnump3d/ROOTFILES b/src/paks/gnump3d/ROOTFILES
deleted file mode 100644 (file)
index 2ada546..0000000
+++ /dev/null
@@ -1,411 +0,0 @@
-etc/gnump3d
-etc/gnump3d/gnump3d.conf
-etc/gnump3d/mime.types
-usr/bin/gnump3d
-usr/bin/gnump3d-index
-usr/bin/gnump3d-top
-usr/bin/gnump3d2
-usr/lib/perl5/5.8.5/gnump3d
-usr/lib/perl5/5.8.5/gnump3d/IP.pm
-usr/lib/perl5/5.8.5/gnump3d/MD5.pm
-usr/lib/perl5/5.8.5/gnump3d/WMA.pm
-usr/lib/perl5/5.8.5/gnump3d/base64.pm
-usr/lib/perl5/5.8.5/gnump3d/config.pm
-usr/lib/perl5/5.8.5/gnump3d/files.pm
-usr/lib/perl5/5.8.5/gnump3d/lang
-usr/lib/perl5/5.8.5/gnump3d/lang/de.pm
-usr/lib/perl5/5.8.5/gnump3d/lang/en.pm
-usr/lib/perl5/5.8.5/gnump3d/lang/es.pm
-usr/lib/perl5/5.8.5/gnump3d/lang/fr.pm
-usr/lib/perl5/5.8.5/gnump3d/lang/lookup.pm
-usr/lib/perl5/5.8.5/gnump3d/mp3info.pm
-usr/lib/perl5/5.8.5/gnump3d/mp4info.pm
-usr/lib/perl5/5.8.5/gnump3d/ogginfo.pm
-usr/lib/perl5/5.8.5/gnump3d/oggtagreader.pm
-usr/lib/perl5/5.8.5/gnump3d/plugins
-usr/lib/perl5/5.8.5/gnump3d/plugins/bug.pm
-usr/lib/perl5/5.8.5/gnump3d/plugins/copying.pm
-usr/lib/perl5/5.8.5/gnump3d/plugins/info.pm
-usr/lib/perl5/5.8.5/gnump3d/plugins/now.pm
-usr/lib/perl5/5.8.5/gnump3d/plugins/playlist.pm
-usr/lib/perl5/5.8.5/gnump3d/plugins/prefs.pm
-usr/lib/perl5/5.8.5/gnump3d/plugins/random.pm
-usr/lib/perl5/5.8.5/gnump3d/plugins/recent.pm
-usr/lib/perl5/5.8.5/gnump3d/plugins/search.pm
-usr/lib/perl5/5.8.5/gnump3d/plugins/size.pm
-usr/lib/perl5/5.8.5/gnump3d/plugins/stats.pm
-usr/lib/perl5/5.8.5/gnump3d/plugins/tagbrowse.pm
-usr/lib/perl5/5.8.5/gnump3d/readtags.pm
-usr/lib/perl5/5.8.5/gnump3d/sorting.pm
-usr/lib/perl5/5.8.5/gnump3d/tagcache.pm
-usr/lib/perl5/5.8.5/gnump3d/url.pm
-usr/share/gnump3d
-usr/share/gnump3d/Avalon
-usr/share/gnump3d/Avalon/AUTHOR
-usr/share/gnump3d/Avalon/COPYING.html
-usr/share/gnump3d/Avalon/base.css
-usr/share/gnump3d/Avalon/bug.html
-usr/share/gnump3d/Avalon/config.ini
-usr/share/gnump3d/Avalon/error.html
-usr/share/gnump3d/Avalon/gnump3d-logo.jpg
-usr/share/gnump3d/Avalon/html_footer.tmpl
-usr/share/gnump3d/Avalon/html_header.tmpl
-usr/share/gnump3d/Avalon/index.html
-usr/share/gnump3d/Avalon/info.html
-usr/share/gnump3d/Avalon/now.html
-usr/share/gnump3d/Avalon/page_footer.tmpl
-usr/share/gnump3d/Avalon/page_header.tmpl
-usr/share/gnump3d/Avalon/playlist.html
-usr/share/gnump3d/Avalon/prefs.html
-usr/share/gnump3d/Avalon/random.html
-usr/share/gnump3d/Avalon/readme.txt
-usr/share/gnump3d/Avalon/recent.html
-usr/share/gnump3d/Avalon/results.html
-usr/share/gnump3d/Avalon/search.html
-usr/share/gnump3d/Avalon/size.html
-usr/share/gnump3d/Avalon/stats.html
-usr/share/gnump3d/Avalon/tagbrowse.html
-usr/share/gnump3d/BlueBox
-usr/share/gnump3d/BlueBox/AUTHOR
-usr/share/gnump3d/BlueBox/BlueBox.css
-usr/share/gnump3d/BlueBox/COPYING.html
-usr/share/gnump3d/BlueBox/bug.html
-usr/share/gnump3d/BlueBox/config.ini
-usr/share/gnump3d/BlueBox/error.html
-usr/share/gnump3d/BlueBox/extras.html
-usr/share/gnump3d/BlueBox/footer.tmpl
-usr/share/gnump3d/BlueBox/header.tmpl
-usr/share/gnump3d/BlueBox/index.html
-usr/share/gnump3d/BlueBox/info.html
-usr/share/gnump3d/BlueBox/now.html
-usr/share/gnump3d/BlueBox/playlist.html
-usr/share/gnump3d/BlueBox/prefs.html
-usr/share/gnump3d/BlueBox/random.html
-usr/share/gnump3d/BlueBox/recent.html
-usr/share/gnump3d/BlueBox/results.html
-usr/share/gnump3d/BlueBox/search.html
-usr/share/gnump3d/BlueBox/size.html
-usr/share/gnump3d/BlueBox/statistics.html
-usr/share/gnump3d/BlueBox/stats.html
-usr/share/gnump3d/BlueBox/tagbrowse.html
-usr/share/gnump3d/BlueBox/template.ini
-usr/share/gnump3d/Clean
-usr/share/gnump3d/Clean/AUTHOR
-usr/share/gnump3d/Clean/COPYING.html
-usr/share/gnump3d/Clean/bug.html
-usr/share/gnump3d/Clean/config.ini
-usr/share/gnump3d/Clean/error.html
-usr/share/gnump3d/Clean/index.html
-usr/share/gnump3d/Clean/info.html
-usr/share/gnump3d/Clean/layout.css
-usr/share/gnump3d/Clean/menu.tmpl
-usr/share/gnump3d/Clean/now.html
-usr/share/gnump3d/Clean/playlist.html
-usr/share/gnump3d/Clean/prefs.html
-usr/share/gnump3d/Clean/random.html
-usr/share/gnump3d/Clean/recent.html
-usr/share/gnump3d/Clean/results.html
-usr/share/gnump3d/Clean/search.html
-usr/share/gnump3d/Clean/size.html
-usr/share/gnump3d/Clean/stats.html
-usr/share/gnump3d/Clean/tagbrowse.html
-usr/share/gnump3d/LaFrere
-usr/share/gnump3d/LaFrere/AUTHOR
-usr/share/gnump3d/LaFrere/COPYING.html
-usr/share/gnump3d/LaFrere/bug.html
-usr/share/gnump3d/LaFrere/config.ini
-usr/share/gnump3d/LaFrere/error.html
-usr/share/gnump3d/LaFrere/index.html
-usr/share/gnump3d/LaFrere/info.html
-usr/share/gnump3d/LaFrere/logo.png
-usr/share/gnump3d/LaFrere/now.html
-usr/share/gnump3d/LaFrere/playlist.html
-usr/share/gnump3d/LaFrere/prefs.html
-usr/share/gnump3d/LaFrere/random.html
-usr/share/gnump3d/LaFrere/recent.html
-usr/share/gnump3d/LaFrere/results.html
-usr/share/gnump3d/LaFrere/search.html
-usr/share/gnump3d/LaFrere/size.html
-usr/share/gnump3d/LaFrere/stats.html
-usr/share/gnump3d/LaFrere/tagbrowse.html
-usr/share/gnump3d/Liquid
-usr/share/gnump3d/Liquid/AUTHOR
-usr/share/gnump3d/Liquid/COPYING.html
-usr/share/gnump3d/Liquid/bck.gif
-usr/share/gnump3d/Liquid/bug.html
-usr/share/gnump3d/Liquid/cel-bar-anthrazite-act.gif
-usr/share/gnump3d/Liquid/cel-bar-anthrazite.gif
-usr/share/gnump3d/Liquid/cel-bar-aqua-act.gif
-usr/share/gnump3d/Liquid/cel-bar-aqua.gif
-usr/share/gnump3d/Liquid/cel-bar-lime-act.gif
-usr/share/gnump3d/Liquid/cel-bar-lime.gif
-usr/share/gnump3d/Liquid/cel-bar-purple-act.gif
-usr/share/gnump3d/Liquid/cel-bar-purple.gif
-usr/share/gnump3d/Liquid/cel-bar-ruby-act.gif
-usr/share/gnump3d/Liquid/cel-bar-ruby.gif
-usr/share/gnump3d/Liquid/cel-bar-tangerine-act.gif
-usr/share/gnump3d/Liquid/cel-bar-tangerine.gif
-usr/share/gnump3d/Liquid/cel-bar-turqois-act.gif
-usr/share/gnump3d/Liquid/cel-bar-turqois.gif
-usr/share/gnump3d/Liquid/cel-bar-yellow-act.gif
-usr/share/gnump3d/Liquid/cel-bar-yellow.gif
-usr/share/gnump3d/Liquid/config.ini
-usr/share/gnump3d/Liquid/error.html
-usr/share/gnump3d/Liquid/footer.tmpl
-usr/share/gnump3d/Liquid/gnump3dskin.webprj
-usr/share/gnump3d/Liquid/header.tmpl
-usr/share/gnump3d/Liquid/index.html
-usr/share/gnump3d/Liquid/info.html
-usr/share/gnump3d/Liquid/now.html
-usr/share/gnump3d/Liquid/playlist.html
-usr/share/gnump3d/Liquid/prefs.html
-usr/share/gnump3d/Liquid/random.html
-usr/share/gnump3d/Liquid/recent.html
-usr/share/gnump3d/Liquid/results.html
-usr/share/gnump3d/Liquid/search.html
-usr/share/gnump3d/Liquid/size.html
-usr/share/gnump3d/Liquid/stats.html
-usr/share/gnump3d/Liquid/style.css
-usr/share/gnump3d/Liquid/tab-aqua-act.gif
-usr/share/gnump3d/Liquid/tab-athrazite-act.gif
-usr/share/gnump3d/Liquid/tab-lime-act.gif
-usr/share/gnump3d/Liquid/tab-purple-act.gif
-usr/share/gnump3d/Liquid/tab-ruby-act.gif
-usr/share/gnump3d/Liquid/tab-tangerine-act.gif
-usr/share/gnump3d/Liquid/tab-turqois-act.gif
-usr/share/gnump3d/Liquid/tab-white-act.gif
-usr/share/gnump3d/Liquid/tab-white-mo.gif
-usr/share/gnump3d/Liquid/tab-yellow-act.gif
-usr/share/gnump3d/Liquid/tabel-header-left-ruby.gif
-usr/share/gnump3d/Liquid/tabel-header-middle-ruby.gif
-usr/share/gnump3d/Liquid/tabel-header-middle-white.gif
-usr/share/gnump3d/Liquid/tabel-header-right-ruby.gif
-usr/share/gnump3d/Liquid/tagbrowse.html
-usr/share/gnump3d/Musicus
-usr/share/gnump3d/Musicus/AUTHOR
-usr/share/gnump3d/Musicus/COPYING.html
-usr/share/gnump3d/Musicus/bug.html
-usr/share/gnump3d/Musicus/config.ini
-usr/share/gnump3d/Musicus/error.html
-usr/share/gnump3d/Musicus/extras.html
-usr/share/gnump3d/Musicus/footer.tmpl
-usr/share/gnump3d/Musicus/index.html
-usr/share/gnump3d/Musicus/info.html
-usr/share/gnump3d/Musicus/now.html
-usr/share/gnump3d/Musicus/playlist.html
-usr/share/gnump3d/Musicus/prefs.html
-usr/share/gnump3d/Musicus/random.html
-usr/share/gnump3d/Musicus/recent.html
-usr/share/gnump3d/Musicus/results.html
-usr/share/gnump3d/Musicus/search.html
-usr/share/gnump3d/Musicus/size.html
-usr/share/gnump3d/Musicus/statistics.html
-usr/share/gnump3d/Musicus/stats.html
-usr/share/gnump3d/Musicus/style.css
-usr/share/gnump3d/Musicus/tagbrowse.html
-usr/share/gnump3d/Musicus/template.ini
-usr/share/gnump3d/Nomad
-usr/share/gnump3d/Nomad/COPYING.html
-usr/share/gnump3d/Nomad/ClubNomadLogo.gif
-usr/share/gnump3d/Nomad/GNUMP3dLogo.jpg
-usr/share/gnump3d/Nomad/Nomad_theme.css
-usr/share/gnump3d/Nomad/SmallHome.gif
-usr/share/gnump3d/Nomad/bg.gif
-usr/share/gnump3d/Nomad/bug.html
-usr/share/gnump3d/Nomad/config.ini
-usr/share/gnump3d/Nomad/error.html
-usr/share/gnump3d/Nomad/gnump3d_themes_footer.tmpl
-usr/share/gnump3d/Nomad/gnump3d_themes_header.tmpl
-usr/share/gnump3d/Nomad/index.html
-usr/share/gnump3d/Nomad/info.html
-usr/share/gnump3d/Nomad/logo.png
-usr/share/gnump3d/Nomad/now.html
-usr/share/gnump3d/Nomad/playlist.html
-usr/share/gnump3d/Nomad/prefs.html
-usr/share/gnump3d/Nomad/random.html
-usr/share/gnump3d/Nomad/recent.html
-usr/share/gnump3d/Nomad/results.html
-usr/share/gnump3d/Nomad/search.html
-usr/share/gnump3d/Nomad/size.html
-usr/share/gnump3d/Nomad/stats.html
-usr/share/gnump3d/Nomad/tagbrowse.html
-usr/share/gnump3d/README
-usr/share/gnump3d/SchwartzNGrau
-usr/share/gnump3d/SchwartzNGrau/AUTHOR
-usr/share/gnump3d/SchwartzNGrau/COPYING.html
-usr/share/gnump3d/SchwartzNGrau/bug.html
-usr/share/gnump3d/SchwartzNGrau/clear.gif
-usr/share/gnump3d/SchwartzNGrau/config.ini
-usr/share/gnump3d/SchwartzNGrau/error.html
-usr/share/gnump3d/SchwartzNGrau/index.html
-usr/share/gnump3d/SchwartzNGrau/info.html
-usr/share/gnump3d/SchwartzNGrau/master.css
-usr/share/gnump3d/SchwartzNGrau/now.html
-usr/share/gnump3d/SchwartzNGrau/playlist.html
-usr/share/gnump3d/SchwartzNGrau/prefs.html
-usr/share/gnump3d/SchwartzNGrau/random.html
-usr/share/gnump3d/SchwartzNGrau/recent.html
-usr/share/gnump3d/SchwartzNGrau/results.html
-usr/share/gnump3d/SchwartzNGrau/search.html
-usr/share/gnump3d/SchwartzNGrau/size.html
-usr/share/gnump3d/SchwartzNGrau/stats.html
-usr/share/gnump3d/SchwartzNGrau/tagbrowse.html
-usr/share/gnump3d/Tabular
-usr/share/gnump3d/Tabular/AUTHOR
-usr/share/gnump3d/Tabular/COPYING.html
-usr/share/gnump3d/Tabular/bug.html
-usr/share/gnump3d/Tabular/config.ini
-usr/share/gnump3d/Tabular/error.html
-usr/share/gnump3d/Tabular/extras.html
-usr/share/gnump3d/Tabular/footer.tmpl
-usr/share/gnump3d/Tabular/index.html
-usr/share/gnump3d/Tabular/info.html
-usr/share/gnump3d/Tabular/now.html
-usr/share/gnump3d/Tabular/playlist.html
-usr/share/gnump3d/Tabular/prefs.html
-usr/share/gnump3d/Tabular/random.html
-usr/share/gnump3d/Tabular/recent.html
-usr/share/gnump3d/Tabular/results.html
-usr/share/gnump3d/Tabular/search.html
-usr/share/gnump3d/Tabular/size.html
-usr/share/gnump3d/Tabular/statistics.html
-usr/share/gnump3d/Tabular/stats.html
-usr/share/gnump3d/Tabular/style.css
-usr/share/gnump3d/Tabular/tagbrowse.html
-usr/share/gnump3d/Tabular/template.ini
-usr/share/gnump3d/Thexder
-usr/share/gnump3d/Thexder/AUTHOR
-usr/share/gnump3d/Thexder/COPYING.html
-usr/share/gnump3d/Thexder/bug.html
-usr/share/gnump3d/Thexder/config.ini
-usr/share/gnump3d/Thexder/dig_temp2_01.jpg
-usr/share/gnump3d/Thexder/dig_temp2_02.jpg
-usr/share/gnump3d/Thexder/dig_temp2_03.gif
-usr/share/gnump3d/Thexder/dig_temp2_04.jpg
-usr/share/gnump3d/Thexder/dig_temp2_06.jpg
-usr/share/gnump3d/Thexder/dig_temp2_08.jpg
-usr/share/gnump3d/Thexder/dig_temp2_10.jpg
-usr/share/gnump3d/Thexder/dig_temp2_12.jpg
-usr/share/gnump3d/Thexder/dig_temp2_14.jpg
-usr/share/gnump3d/Thexder/error.html
-usr/share/gnump3d/Thexder/hr.gif
-usr/share/gnump3d/Thexder/index.html
-usr/share/gnump3d/Thexder/info.html
-usr/share/gnump3d/Thexder/link_1.jpg
-usr/share/gnump3d/Thexder/link_2.jpg
-usr/share/gnump3d/Thexder/link_3.jpg
-usr/share/gnump3d/Thexder/link_4.jpg
-usr/share/gnump3d/Thexder/link_5.jpg
-usr/share/gnump3d/Thexder/logo7.jpg
-usr/share/gnump3d/Thexder/now.html
-usr/share/gnump3d/Thexder/playlist.html
-usr/share/gnump3d/Thexder/prefs.html
-usr/share/gnump3d/Thexder/random.html
-usr/share/gnump3d/Thexder/recent.html
-usr/share/gnump3d/Thexder/results.html
-usr/share/gnump3d/Thexder/search.html
-usr/share/gnump3d/Thexder/spacer.gif
-usr/share/gnump3d/Thexder/stats.html
-usr/share/gnump3d/default
-usr/share/gnump3d/default/AUTHOR
-usr/share/gnump3d/default/COPYING.html
-usr/share/gnump3d/default/bug.html
-usr/share/gnump3d/default/config.ini
-usr/share/gnump3d/default/error.html
-usr/share/gnump3d/default/footer.tmpl
-usr/share/gnump3d/default/header.tmpl
-usr/share/gnump3d/default/index.html
-usr/share/gnump3d/default/info.html
-usr/share/gnump3d/default/now.html
-usr/share/gnump3d/default/playlist.html
-usr/share/gnump3d/default/prefs.html
-usr/share/gnump3d/default/random.html
-usr/share/gnump3d/default/recent.html
-usr/share/gnump3d/default/results.html
-usr/share/gnump3d/default/search.html
-usr/share/gnump3d/default/size.html
-usr/share/gnump3d/default/stats.html
-usr/share/gnump3d/default/style.css
-usr/share/gnump3d/default/tagbrowse.html
-usr/share/gnump3d/dotNET
-usr/share/gnump3d/dotNET/AUTHOR
-usr/share/gnump3d/dotNET/COPYING.html
-usr/share/gnump3d/dotNET/bug.html
-usr/share/gnump3d/dotNET/config.ini
-usr/share/gnump3d/dotNET/content.tmpl
-usr/share/gnump3d/dotNET/error.html
-usr/share/gnump3d/dotNET/header.tmpl
-usr/share/gnump3d/dotNET/images
-usr/share/gnump3d/dotNET/images/ecke_unten_links.gif
-usr/share/gnump3d/dotNET/images/ecke_unten_rechts.gif
-usr/share/gnump3d/dotNET/images/eckeor.gif
-usr/share/gnump3d/dotNET/images/eckeul.gif
-usr/share/gnump3d/dotNET/images/eckeur.gif
-usr/share/gnump3d/dotNET/images/horizontal.jpg
-usr/share/gnump3d/dotNET/images/logo7.jpg
-usr/share/gnump3d/dotNET/images/pfeilrechts.gif
-usr/share/gnump3d/dotNET/images/reiter.jpg
-usr/share/gnump3d/dotNET/images/transparent.gif
-usr/share/gnump3d/dotNET/images/vertikal.jpg
-usr/share/gnump3d/dotNET/index.html
-usr/share/gnump3d/dotNET/info.html
-usr/share/gnump3d/dotNET/now.html
-usr/share/gnump3d/dotNET/playlist.html
-usr/share/gnump3d/dotNET/prefs.html
-usr/share/gnump3d/dotNET/random.html
-usr/share/gnump3d/dotNET/recent.html
-usr/share/gnump3d/dotNET/results.html
-usr/share/gnump3d/dotNET/search.html
-usr/share/gnump3d/dotNET/stats.html
-usr/share/gnump3d/dotNET/style.css
-usr/share/gnump3d/handheld
-usr/share/gnump3d/handheld/AUTHOR
-usr/share/gnump3d/handheld/config.ini
-usr/share/gnump3d/handheld/error.html
-usr/share/gnump3d/handheld/index.html
-usr/share/gnump3d/handheld/random.html
-usr/share/gnump3d/handheld/results.html
-usr/share/gnump3d/handheld/search.html
-usr/share/gnump3d/nausicaa
-usr/share/gnump3d/nausicaa/AUTHOR
-usr/share/gnump3d/nausicaa/COPYING.html
-usr/share/gnump3d/nausicaa/bug.html
-usr/share/gnump3d/nausicaa/config.ini
-usr/share/gnump3d/nausicaa/error.html
-usr/share/gnump3d/nausicaa/extras.html
-usr/share/gnump3d/nausicaa/index.html
-usr/share/gnump3d/nausicaa/info.html
-usr/share/gnump3d/nausicaa/now.html
-usr/share/gnump3d/nausicaa/playlist.html
-usr/share/gnump3d/nausicaa/prefs.html
-usr/share/gnump3d/nausicaa/random.html
-usr/share/gnump3d/nausicaa/recent.html
-usr/share/gnump3d/nausicaa/results.html
-usr/share/gnump3d/nausicaa/search.html
-usr/share/gnump3d/nausicaa/stats.html
-usr/share/gnump3d/nausicaa/style.css
-usr/share/gnump3d/redgrey
-usr/share/gnump3d/redgrey/AUTHOR
-usr/share/gnump3d/redgrey/COPYING.html
-usr/share/gnump3d/redgrey/bug.html
-usr/share/gnump3d/redgrey/error.html
-usr/share/gnump3d/redgrey/header.tmpl
-usr/share/gnump3d/redgrey/index.html
-usr/share/gnump3d/redgrey/info.html
-usr/share/gnump3d/redgrey/now.html
-usr/share/gnump3d/redgrey/playlist.html
-usr/share/gnump3d/redgrey/prefs.html
-usr/share/gnump3d/redgrey/random.html
-usr/share/gnump3d/redgrey/recent.html
-usr/share/gnump3d/redgrey/results.html
-usr/share/gnump3d/redgrey/search.html
-usr/share/gnump3d/redgrey/stats.html
-usr/share/gnump3d/redgrey/tagbrowse.html
-usr/share/gnump3d/simple
-#usr/share/man/man1/gnump3d-index.1
-#usr/share/man/man1/gnump3d-top.1
-#usr/share/man/man1/gnump3d.1
-#usr/share/man/man1/gnump3d.conf.1
-var/cache/gnump3d
-var/cache/gnump3d/serving
-var/log/gnump3d
\ No newline at end of file
diff --git a/src/paks/gnump3d/depends.txt b/src/paks/gnump3d/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/gnump3d/install.sh b/src/paks/gnump3d/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/gnump3d/uninstall.sh b/src/paks/gnump3d/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/iptraf/ROOTFILES b/src/paks/iptraf/ROOTFILES
deleted file mode 100644 (file)
index 201b2b5..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin/iptraf
-usr/bin/rvnamed
diff --git a/src/paks/iptraf/depends.txt b/src/paks/iptraf/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/iptraf/install.sh b/src/paks/iptraf/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/iptraf/uninstall.sh b/src/paks/iptraf/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/java/ROOTFILES b/src/paks/java/ROOTFILES
deleted file mode 100644 (file)
index 14c5dfa..0000000
+++ /dev/null
@@ -1,701 +0,0 @@
-usr/bin/java
-#usr/java
-#usr/java/bin
-usr/java/bin/ControlPanel
-usr/java/bin/java
-usr/java/bin/java_vm
-usr/java/bin/javaws
-usr/java/bin/keytool
-usr/java/bin/kinit
-usr/java/bin/klist
-usr/java/bin/ktab
-usr/java/bin/orbd
-usr/java/bin/pack200
-usr/java/bin/policytool
-usr/java/bin/rmid
-usr/java/bin/rmiregistry
-usr/java/bin/servertool
-usr/java/bin/tnameserv
-usr/java/bin/unpack200
-#usr/java/javaws
-usr/java/javaws/javaws
-#usr/java/lib
-usr/java/lib/applet
-#usr/java/lib/audio
-usr/java/lib/audio/soundbank.gm
-usr/java/lib/charsets.jar
-usr/java/lib/classlist
-#usr/java/lib/cmm
-usr/java/lib/cmm/CIEXYZ.pf
-usr/java/lib/cmm/GRAY.pf
-usr/java/lib/cmm/LINEAR_RGB.pf
-usr/java/lib/cmm/PYCC.pf
-usr/java/lib/cmm/sRGB.pf
-usr/java/lib/content-types.properties
-usr/java/lib/deploy.jar
-#usr/java/lib/ext
-usr/java/lib/ext/dnsns.jar
-usr/java/lib/ext/localedata.jar
-usr/java/lib/ext/sunjce_provider.jar
-usr/java/lib/ext/sunpkcs11.jar
-usr/java/lib/flavormap.properties
-#usr/java/lib/fontconfig.RedHat.2.1.bfc
-#usr/java/lib/fontconfig.RedHat.2.1.properties.src
-#usr/java/lib/fontconfig.RedHat.3.bfc
-#usr/java/lib/fontconfig.RedHat.3.properties.src
-#usr/java/lib/fontconfig.RedHat.8.0.bfc
-#usr/java/lib/fontconfig.RedHat.8.0.properties.src
-#usr/java/lib/fontconfig.RedHat.9.0.bfc
-#usr/java/lib/fontconfig.RedHat.9.0.properties.src
-#usr/java/lib/fontconfig.RedHat.bfc
-#usr/java/lib/fontconfig.RedHat.properties.src
-#usr/java/lib/fontconfig.SuSE.bfc
-#usr/java/lib/fontconfig.SuSE.properties.src
-#usr/java/lib/fontconfig.Sun.2003.bfc
-#usr/java/lib/fontconfig.Sun.2003.properties.src
-#usr/java/lib/fontconfig.Sun.bfc
-#usr/java/lib/fontconfig.Sun.properties.src
-#usr/java/lib/fontconfig.Turbo.8.0.bfc
-#usr/java/lib/fontconfig.Turbo.8.0.properties.src
-#usr/java/lib/fontconfig.Turbo.bfc
-#usr/java/lib/fontconfig.Turbo.properties.src
-#usr/java/lib/fontconfig.bfc
-#usr/java/lib/fontconfig.properties.src
-#usr/java/lib/fonts
-#usr/java/lib/fonts/LucidaBrightDemiBold.ttf
-#usr/java/lib/fonts/LucidaBrightDemiItalic.ttf
-#usr/java/lib/fonts/LucidaBrightItalic.ttf
-#usr/java/lib/fonts/LucidaBrightRegular.ttf
-#usr/java/lib/fonts/LucidaSansDemiBold.ttf
-#usr/java/lib/fonts/LucidaSansRegular.ttf
-#usr/java/lib/fonts/LucidaTypewriterBold.ttf
-#usr/java/lib/fonts/LucidaTypewriterRegular.ttf
-#usr/java/lib/fonts/fonts.dir
-#usr/java/lib/i386
-usr/java/lib/i386/awt_robot
-#usr/java/lib/i386/client
-usr/java/lib/i386/client/Xusage.txt
-usr/java/lib/i386/client/classes.jsa
-usr/java/lib/i386/client/libjsig.so
-usr/java/lib/i386/client/libjvm.so
-usr/java/lib/i386/gtkhelper
-#usr/java/lib/i386/headless
-usr/java/lib/i386/headless/libmawt.so
-usr/java/lib/i386/jvm.cfg
-usr/java/lib/i386/libJdbcOdbc.so
-usr/java/lib/i386/libawt.so
-usr/java/lib/i386/libcmm.so
-usr/java/lib/i386/libdcpr.so
-usr/java/lib/i386/libdeploy.so
-usr/java/lib/i386/libdt_socket.so
-usr/java/lib/i386/libfontmanager.so
-usr/java/lib/i386/libhprof.so
-usr/java/lib/i386/libinstrument.so
-usr/java/lib/i386/libioser12.so
-usr/java/lib/i386/libj2pkcs11.so
-usr/java/lib/i386/libjaas_unix.so
-usr/java/lib/i386/libjava.so
-usr/java/lib/i386/libjava_crw_demo.so
-usr/java/lib/i386/libjavaplugin_jni.so
-usr/java/lib/i386/libjavaplugin_nscp.so
-usr/java/lib/i386/libjavaplugin_nscp_gcc29.so
-usr/java/lib/i386/libjawt.so
-usr/java/lib/i386/libjdwp.so
-usr/java/lib/i386/libjpeg.so
-usr/java/lib/i386/libjsig.so
-usr/java/lib/i386/libjsound.so
-usr/java/lib/i386/libjsoundalsa.so
-usr/java/lib/i386/libmanagement.so
-usr/java/lib/i386/libmlib_image.so
-usr/java/lib/i386/libnative_chmod.so
-usr/java/lib/i386/libnet.so
-usr/java/lib/i386/libnio.so
-usr/java/lib/i386/librmi.so
-usr/java/lib/i386/libunpack.so
-usr/java/lib/i386/libverify.so
-usr/java/lib/i386/libzip.so
-#usr/java/lib/i386/motif21
-usr/java/lib/i386/motif21/libmawt.so
-usr/java/lib/i386/native_threads
-usr/java/lib/i386/native_threads/libhpi.so
-#usr/java/lib/i386/server
-usr/java/lib/i386/server/Xusage.txt
-usr/java/lib/i386/server/libjsig.so
-usr/java/lib/i386/server/libjvm.so
-#usr/java/lib/i386/xawt
-#usr/java/lib/i386/xawt/libmawt.so
-usr/java/lib/im
-usr/java/lib/im/indicim.jar
-usr/java/lib/im/thaiim.jar
-#usr/java/lib/images
-#usr/java/lib/images/cursors
-usr/java/lib/images/cursors/cursors.properties
-usr/java/lib/images/cursors/invalid32x32.gif
-usr/java/lib/images/cursors/motif_CopyDrop32x32.gif
-usr/java/lib/images/cursors/motif_CopyNoDrop32x32.gif
-usr/java/lib/images/cursors/motif_LinkDrop32x32.gif
-usr/java/lib/images/cursors/motif_LinkNoDrop32x32.gif
-usr/java/lib/images/cursors/motif_MoveDrop32x32.gif
-usr/java/lib/images/cursors/motif_MoveNoDrop32x32.gif
-#usr/java/lib/images/icons
-usr/java/lib/images/icons/sun-java.png
-usr/java/lib/images/icons/sun-java_HighContrast.png
-usr/java/lib/images/icons/sun-java_HighContrastInverse.png
-usr/java/lib/images/icons/sun-java_LowContrast.png
-#usr/java/lib/javaws
-usr/java/lib/javaws.jar
-#usr/java/lib/javaws/Java1.5.ico
-usr/java/lib/javaws/messages.properties
-usr/java/lib/javaws/messages_de.properties
-usr/java/lib/javaws/messages_es.properties
-usr/java/lib/javaws/messages_fr.properties
-usr/java/lib/javaws/messages_it.properties
-usr/java/lib/javaws/messages_ja.properties
-usr/java/lib/javaws/messages_ko.properties
-usr/java/lib/javaws/messages_sv.properties
-usr/java/lib/javaws/messages_zh_CN.properties
-usr/java/lib/javaws/messages_zh_HK.properties
-usr/java/lib/javaws/messages_zh_TW.properties
-usr/java/lib/javaws/miniSplash.jpg
-usr/java/lib/jce.jar
-usr/java/lib/jsse.jar
-usr/java/lib/jvm.hprof.txt
-#usr/java/lib/locale
-usr/java/lib/locale/de
-usr/java/lib/locale/de/LC_MESSAGES
-usr/java/lib/locale/de/LC_MESSAGES/sunw_java_plugin.mo
-usr/java/lib/locale/es
-usr/java/lib/locale/es/LC_MESSAGES
-usr/java/lib/locale/es/LC_MESSAGES/sunw_java_plugin.mo
-usr/java/lib/locale/fr
-usr/java/lib/locale/fr/LC_MESSAGES
-usr/java/lib/locale/fr/LC_MESSAGES/sunw_java_plugin.mo
-usr/java/lib/locale/it
-usr/java/lib/locale/it/LC_MESSAGES
-usr/java/lib/locale/it/LC_MESSAGES/sunw_java_plugin.mo
-usr/java/lib/locale/ja
-usr/java/lib/locale/ja/LC_MESSAGES
-usr/java/lib/locale/ja/LC_MESSAGES/sunw_java_plugin.mo
-usr/java/lib/locale/ko
-usr/java/lib/locale/ko.UTF-8
-usr/java/lib/locale/ko.UTF-8/LC_MESSAGES
-usr/java/lib/locale/ko.UTF-8/LC_MESSAGES/sunw_java_plugin.mo
-usr/java/lib/locale/ko/LC_MESSAGES
-usr/java/lib/locale/ko/LC_MESSAGES/sunw_java_plugin.mo
-usr/java/lib/locale/sv
-usr/java/lib/locale/sv/LC_MESSAGES
-usr/java/lib/locale/sv/LC_MESSAGES/sunw_java_plugin.mo
-usr/java/lib/locale/zh
-usr/java/lib/locale/zh.GBK
-usr/java/lib/locale/zh.GBK/LC_MESSAGES
-usr/java/lib/locale/zh.GBK/LC_MESSAGES/sunw_java_plugin.mo
-usr/java/lib/locale/zh/LC_MESSAGES
-usr/java/lib/locale/zh/LC_MESSAGES/sunw_java_plugin.mo
-usr/java/lib/locale/zh_HK.BIG5HK
-usr/java/lib/locale/zh_HK.BIG5HK/LC_MESSAGES
-usr/java/lib/locale/zh_HK.BIG5HK/LC_MESSAGES/sunw_java_plugin.mo
-usr/java/lib/locale/zh_TW
-usr/java/lib/locale/zh_TW.BIG5
-usr/java/lib/locale/zh_TW.BIG5/LC_MESSAGES
-usr/java/lib/locale/zh_TW.BIG5/LC_MESSAGES/sunw_java_plugin.mo
-usr/java/lib/locale/zh_TW/LC_MESSAGES
-usr/java/lib/locale/zh_TW/LC_MESSAGES/sunw_java_plugin.mo
-usr/java/lib/logging.properties
-usr/java/lib/management
-usr/java/lib/management/jmxremote.access
-usr/java/lib/management/jmxremote.password.template
-usr/java/lib/management/management.properties
-usr/java/lib/management/snmp.acl.template
-usr/java/lib/net.properties
-usr/java/lib/oblique-fonts
-usr/java/lib/oblique-fonts/LucidaSansDemiOblique.ttf
-usr/java/lib/oblique-fonts/LucidaSansOblique.ttf
-usr/java/lib/oblique-fonts/LucidaTypewriterBoldOblique.ttf
-usr/java/lib/oblique-fonts/LucidaTypewriterOblique.ttf
-usr/java/lib/oblique-fonts/fonts.dir
-usr/java/lib/plugin.jar
-usr/java/lib/psfont.properties.ja
-usr/java/lib/psfontj2d.properties
-usr/java/lib/rt.jar
-usr/java/lib/security
-usr/java/lib/security/US_export_policy.jar
-usr/java/lib/security/cacerts
-usr/java/lib/security/java.policy
-usr/java/lib/security/java.security
-usr/java/lib/security/javaws.policy
-usr/java/lib/security/local_policy.jar
-usr/java/lib/sound.properties
-usr/java/lib/zi
-usr/java/lib/zi/Africa
-usr/java/lib/zi/Africa/Abidjan
-usr/java/lib/zi/Africa/Accra
-usr/java/lib/zi/Africa/Addis_Ababa
-usr/java/lib/zi/Africa/Algiers
-usr/java/lib/zi/Africa/Asmera
-usr/java/lib/zi/Africa/Bamako
-usr/java/lib/zi/Africa/Bangui
-usr/java/lib/zi/Africa/Banjul
-usr/java/lib/zi/Africa/Bissau
-usr/java/lib/zi/Africa/Blantyre
-usr/java/lib/zi/Africa/Brazzaville
-usr/java/lib/zi/Africa/Bujumbura
-usr/java/lib/zi/Africa/Cairo
-usr/java/lib/zi/Africa/Casablanca
-usr/java/lib/zi/Africa/Ceuta
-usr/java/lib/zi/Africa/Conakry
-usr/java/lib/zi/Africa/Dakar
-usr/java/lib/zi/Africa/Dar_es_Salaam
-usr/java/lib/zi/Africa/Djibouti
-usr/java/lib/zi/Africa/Douala
-usr/java/lib/zi/Africa/El_Aaiun
-usr/java/lib/zi/Africa/Freetown
-usr/java/lib/zi/Africa/Gaborone
-usr/java/lib/zi/Africa/Harare
-usr/java/lib/zi/Africa/Johannesburg
-usr/java/lib/zi/Africa/Kampala
-usr/java/lib/zi/Africa/Khartoum
-usr/java/lib/zi/Africa/Kigali
-usr/java/lib/zi/Africa/Kinshasa
-usr/java/lib/zi/Africa/Lagos
-usr/java/lib/zi/Africa/Libreville
-usr/java/lib/zi/Africa/Lome
-usr/java/lib/zi/Africa/Luanda
-usr/java/lib/zi/Africa/Lubumbashi
-usr/java/lib/zi/Africa/Lusaka
-usr/java/lib/zi/Africa/Malabo
-usr/java/lib/zi/Africa/Maputo
-usr/java/lib/zi/Africa/Maseru
-usr/java/lib/zi/Africa/Mbabane
-usr/java/lib/zi/Africa/Mogadishu
-usr/java/lib/zi/Africa/Monrovia
-usr/java/lib/zi/Africa/Nairobi
-usr/java/lib/zi/Africa/Ndjamena
-usr/java/lib/zi/Africa/Niamey
-usr/java/lib/zi/Africa/Nouakchott
-usr/java/lib/zi/Africa/Ouagadougou
-usr/java/lib/zi/Africa/Porto-Novo
-usr/java/lib/zi/Africa/Sao_Tome
-usr/java/lib/zi/Africa/Tripoli
-usr/java/lib/zi/Africa/Tunis
-usr/java/lib/zi/Africa/Windhoek
-usr/java/lib/zi/America
-usr/java/lib/zi/America/Adak
-usr/java/lib/zi/America/Anchorage
-usr/java/lib/zi/America/Anguilla
-usr/java/lib/zi/America/Antigua
-usr/java/lib/zi/America/Araguaina
-usr/java/lib/zi/America/Argentina
-usr/java/lib/zi/America/Argentina/Buenos_Aires
-usr/java/lib/zi/America/Argentina/Catamarca
-usr/java/lib/zi/America/Argentina/Cordoba
-usr/java/lib/zi/America/Argentina/Jujuy
-usr/java/lib/zi/America/Argentina/La_Rioja
-usr/java/lib/zi/America/Argentina/Mendoza
-usr/java/lib/zi/America/Argentina/Rio_Gallegos
-usr/java/lib/zi/America/Argentina/San_Juan
-usr/java/lib/zi/America/Argentina/Tucuman
-usr/java/lib/zi/America/Argentina/Ushuaia
-usr/java/lib/zi/America/Aruba
-usr/java/lib/zi/America/Asuncion
-usr/java/lib/zi/America/Bahia
-usr/java/lib/zi/America/Barbados
-usr/java/lib/zi/America/Belem
-usr/java/lib/zi/America/Belize
-usr/java/lib/zi/America/Boa_Vista
-usr/java/lib/zi/America/Bogota
-usr/java/lib/zi/America/Boise
-usr/java/lib/zi/America/Cambridge_Bay
-usr/java/lib/zi/America/Campo_Grande
-usr/java/lib/zi/America/Cancun
-usr/java/lib/zi/America/Caracas
-usr/java/lib/zi/America/Cayenne
-usr/java/lib/zi/America/Cayman
-usr/java/lib/zi/America/Chicago
-usr/java/lib/zi/America/Chihuahua
-usr/java/lib/zi/America/Coral_Harbour
-usr/java/lib/zi/America/Costa_Rica
-usr/java/lib/zi/America/Cuiaba
-usr/java/lib/zi/America/Curacao
-usr/java/lib/zi/America/Danmarkshavn
-usr/java/lib/zi/America/Dawson
-usr/java/lib/zi/America/Dawson_Creek
-usr/java/lib/zi/America/Denver
-usr/java/lib/zi/America/Detroit
-usr/java/lib/zi/America/Dominica
-usr/java/lib/zi/America/Edmonton
-usr/java/lib/zi/America/Eirunepe
-usr/java/lib/zi/America/El_Salvador
-usr/java/lib/zi/America/Fortaleza
-usr/java/lib/zi/America/Glace_Bay
-usr/java/lib/zi/America/Godthab
-usr/java/lib/zi/America/Goose_Bay
-usr/java/lib/zi/America/Grand_Turk
-usr/java/lib/zi/America/Grenada
-usr/java/lib/zi/America/Guadeloupe
-usr/java/lib/zi/America/Guatemala
-usr/java/lib/zi/America/Guayaquil
-usr/java/lib/zi/America/Guyana
-usr/java/lib/zi/America/Halifax
-usr/java/lib/zi/America/Havana
-usr/java/lib/zi/America/Hermosillo
-usr/java/lib/zi/America/Indiana
-usr/java/lib/zi/America/Indiana/Indianapolis
-usr/java/lib/zi/America/Indiana/Knox
-usr/java/lib/zi/America/Indiana/Marengo
-usr/java/lib/zi/America/Indiana/Vevay
-usr/java/lib/zi/America/Inuvik
-usr/java/lib/zi/America/Iqaluit
-usr/java/lib/zi/America/Jamaica
-usr/java/lib/zi/America/Juneau
-usr/java/lib/zi/America/Kentucky
-usr/java/lib/zi/America/Kentucky/Louisville
-usr/java/lib/zi/America/Kentucky/Monticello
-usr/java/lib/zi/America/La_Paz
-usr/java/lib/zi/America/Lima
-usr/java/lib/zi/America/Los_Angeles
-usr/java/lib/zi/America/Maceio
-usr/java/lib/zi/America/Managua
-usr/java/lib/zi/America/Manaus
-usr/java/lib/zi/America/Martinique
-usr/java/lib/zi/America/Mazatlan
-usr/java/lib/zi/America/Menominee
-usr/java/lib/zi/America/Merida
-usr/java/lib/zi/America/Mexico_City
-usr/java/lib/zi/America/Miquelon
-usr/java/lib/zi/America/Monterrey
-usr/java/lib/zi/America/Montevideo
-usr/java/lib/zi/America/Montreal
-usr/java/lib/zi/America/Montserrat
-usr/java/lib/zi/America/Nassau
-usr/java/lib/zi/America/New_York
-usr/java/lib/zi/America/Nipigon
-usr/java/lib/zi/America/Nome
-usr/java/lib/zi/America/Noronha
-usr/java/lib/zi/America/North_Dakota
-usr/java/lib/zi/America/North_Dakota/Center
-usr/java/lib/zi/America/Panama
-usr/java/lib/zi/America/Pangnirtung
-usr/java/lib/zi/America/Paramaribo
-usr/java/lib/zi/America/Phoenix
-usr/java/lib/zi/America/Port-au-Prince
-usr/java/lib/zi/America/Port_of_Spain
-usr/java/lib/zi/America/Porto_Velho
-usr/java/lib/zi/America/Puerto_Rico
-usr/java/lib/zi/America/Rainy_River
-usr/java/lib/zi/America/Rankin_Inlet
-usr/java/lib/zi/America/Recife
-usr/java/lib/zi/America/Regina
-usr/java/lib/zi/America/Rio_Branco
-usr/java/lib/zi/America/Santiago
-usr/java/lib/zi/America/Santo_Domingo
-usr/java/lib/zi/America/Sao_Paulo
-usr/java/lib/zi/America/Scoresbysund
-usr/java/lib/zi/America/St_Johns
-usr/java/lib/zi/America/St_Kitts
-usr/java/lib/zi/America/St_Lucia
-usr/java/lib/zi/America/St_Thomas
-usr/java/lib/zi/America/St_Vincent
-usr/java/lib/zi/America/Swift_Current
-usr/java/lib/zi/America/Tegucigalpa
-usr/java/lib/zi/America/Thule
-usr/java/lib/zi/America/Thunder_Bay
-usr/java/lib/zi/America/Tijuana
-usr/java/lib/zi/America/Toronto
-usr/java/lib/zi/America/Tortola
-usr/java/lib/zi/America/Vancouver
-usr/java/lib/zi/America/Whitehorse
-usr/java/lib/zi/America/Winnipeg
-usr/java/lib/zi/America/Yakutat
-usr/java/lib/zi/America/Yellowknife
-usr/java/lib/zi/Antarctica
-usr/java/lib/zi/Antarctica/Casey
-usr/java/lib/zi/Antarctica/Davis
-usr/java/lib/zi/Antarctica/DumontDUrville
-usr/java/lib/zi/Antarctica/Mawson
-usr/java/lib/zi/Antarctica/McMurdo
-usr/java/lib/zi/Antarctica/Palmer
-usr/java/lib/zi/Antarctica/Rothera
-usr/java/lib/zi/Antarctica/Syowa
-usr/java/lib/zi/Antarctica/Vostok
-usr/java/lib/zi/Asia
-usr/java/lib/zi/Asia/Aden
-usr/java/lib/zi/Asia/Almaty
-usr/java/lib/zi/Asia/Amman
-usr/java/lib/zi/Asia/Anadyr
-usr/java/lib/zi/Asia/Aqtau
-usr/java/lib/zi/Asia/Aqtobe
-usr/java/lib/zi/Asia/Ashgabat
-usr/java/lib/zi/Asia/Baghdad
-usr/java/lib/zi/Asia/Bahrain
-usr/java/lib/zi/Asia/Baku
-usr/java/lib/zi/Asia/Bangkok
-usr/java/lib/zi/Asia/Beirut
-usr/java/lib/zi/Asia/Bishkek
-usr/java/lib/zi/Asia/Brunei
-usr/java/lib/zi/Asia/Calcutta
-usr/java/lib/zi/Asia/Choibalsan
-usr/java/lib/zi/Asia/Chongqing
-usr/java/lib/zi/Asia/Colombo
-usr/java/lib/zi/Asia/Damascus
-usr/java/lib/zi/Asia/Dhaka
-usr/java/lib/zi/Asia/Dili
-usr/java/lib/zi/Asia/Dubai
-usr/java/lib/zi/Asia/Dushanbe
-usr/java/lib/zi/Asia/Gaza
-usr/java/lib/zi/Asia/Harbin
-usr/java/lib/zi/Asia/Hong_Kong
-usr/java/lib/zi/Asia/Hovd
-usr/java/lib/zi/Asia/Irkutsk
-usr/java/lib/zi/Asia/Jakarta
-usr/java/lib/zi/Asia/Jayapura
-usr/java/lib/zi/Asia/Jerusalem
-usr/java/lib/zi/Asia/Kabul
-usr/java/lib/zi/Asia/Kamchatka
-usr/java/lib/zi/Asia/Karachi
-usr/java/lib/zi/Asia/Kashgar
-usr/java/lib/zi/Asia/Katmandu
-usr/java/lib/zi/Asia/Krasnoyarsk
-usr/java/lib/zi/Asia/Kuala_Lumpur
-usr/java/lib/zi/Asia/Kuching
-usr/java/lib/zi/Asia/Kuwait
-usr/java/lib/zi/Asia/Macau
-usr/java/lib/zi/Asia/Magadan
-usr/java/lib/zi/Asia/Makassar
-usr/java/lib/zi/Asia/Manila
-usr/java/lib/zi/Asia/Muscat
-usr/java/lib/zi/Asia/Nicosia
-usr/java/lib/zi/Asia/Novosibirsk
-usr/java/lib/zi/Asia/Omsk
-usr/java/lib/zi/Asia/Oral
-usr/java/lib/zi/Asia/Phnom_Penh
-usr/java/lib/zi/Asia/Pontianak
-usr/java/lib/zi/Asia/Pyongyang
-usr/java/lib/zi/Asia/Qatar
-usr/java/lib/zi/Asia/Qyzylorda
-usr/java/lib/zi/Asia/Rangoon
-usr/java/lib/zi/Asia/Riyadh
-usr/java/lib/zi/Asia/Riyadh87
-usr/java/lib/zi/Asia/Riyadh88
-usr/java/lib/zi/Asia/Riyadh89
-usr/java/lib/zi/Asia/Saigon
-usr/java/lib/zi/Asia/Sakhalin
-usr/java/lib/zi/Asia/Samarkand
-usr/java/lib/zi/Asia/Seoul
-usr/java/lib/zi/Asia/Shanghai
-usr/java/lib/zi/Asia/Singapore
-usr/java/lib/zi/Asia/Taipei
-usr/java/lib/zi/Asia/Tashkent
-usr/java/lib/zi/Asia/Tbilisi
-usr/java/lib/zi/Asia/Tehran
-usr/java/lib/zi/Asia/Thimphu
-usr/java/lib/zi/Asia/Tokyo
-usr/java/lib/zi/Asia/Ulaanbaatar
-usr/java/lib/zi/Asia/Urumqi
-usr/java/lib/zi/Asia/Vientiane
-usr/java/lib/zi/Asia/Vladivostok
-usr/java/lib/zi/Asia/Yakutsk
-usr/java/lib/zi/Asia/Yekaterinburg
-usr/java/lib/zi/Asia/Yerevan
-usr/java/lib/zi/Atlantic
-usr/java/lib/zi/Atlantic/Azores
-usr/java/lib/zi/Atlantic/Bermuda
-usr/java/lib/zi/Atlantic/Canary
-usr/java/lib/zi/Atlantic/Cape_Verde
-usr/java/lib/zi/Atlantic/Faeroe
-usr/java/lib/zi/Atlantic/Madeira
-usr/java/lib/zi/Atlantic/Reykjavik
-usr/java/lib/zi/Atlantic/South_Georgia
-usr/java/lib/zi/Atlantic/St_Helena
-usr/java/lib/zi/Atlantic/Stanley
-usr/java/lib/zi/Australia
-usr/java/lib/zi/Australia/Adelaide
-usr/java/lib/zi/Australia/Brisbane
-usr/java/lib/zi/Australia/Broken_Hill
-usr/java/lib/zi/Australia/Currie
-usr/java/lib/zi/Australia/Darwin
-usr/java/lib/zi/Australia/Hobart
-usr/java/lib/zi/Australia/Lindeman
-usr/java/lib/zi/Australia/Lord_Howe
-usr/java/lib/zi/Australia/Melbourne
-usr/java/lib/zi/Australia/Perth
-usr/java/lib/zi/Australia/Sydney
-usr/java/lib/zi/CET
-usr/java/lib/zi/EET
-usr/java/lib/zi/Etc
-##usr/java/lib/zi/Etc/GMT
-##usr/java/lib/zi/Etc/GMT1
-##usr/java/lib/zi/Etc/GMT10
-##usr/java/lib/zi/Etc/GMT11
-##usr/java/lib/zi/Etc/GMT12
-##usr/java/lib/zi/Etc/GMT2
-##usr/java/lib/zi/Etc/GMT3
-##usr/java/lib/zi/Etc/GMT4
-##usr/java/lib/zi/Etc/GMT5
-##usr/java/lib/zi/Etc/GMT6
-##usr/java/lib/zi/Etc/GMT7
-##usr/java/lib/zi/Etc/GMT8
-##usr/java/lib/zi/Etc/GMT9
-##usr/java/lib/zi/Etc/GMT-1
-##usr/java/lib/zi/Etc/GMT-10
-##usr/java/lib/zi/Etc/GMT-11
-##usr/java/lib/zi/Etc/GMT-12
-##usr/java/lib/zi/Etc/GMT-13
-##usr/java/lib/zi/Etc/GMT-14
-##usr/java/lib/zi/Etc/GMT-2
-##usr/java/lib/zi/Etc/GMT-3
-##usr/java/lib/zi/Etc/GMT-4
-##usr/java/lib/zi/Etc/GMT-5
-##usr/java/lib/zi/Etc/GMT-6
-##usr/java/lib/zi/Etc/GMT-7
-##usr/java/lib/zi/Etc/GMT-8
-##usr/java/lib/zi/Etc/GMT-9
-##usr/java/lib/zi/Etc/UCT
-##usr/java/lib/zi/Etc/UTC
-usr/java/lib/zi/Europe
-usr/java/lib/zi/Europe/Amsterdam
-usr/java/lib/zi/Europe/Andorra
-usr/java/lib/zi/Europe/Athens
-usr/java/lib/zi/Europe/Belgrade
-usr/java/lib/zi/Europe/Berlin
-usr/java/lib/zi/Europe/Brussels
-usr/java/lib/zi/Europe/Bucharest
-usr/java/lib/zi/Europe/Budapest
-usr/java/lib/zi/Europe/Chisinau
-usr/java/lib/zi/Europe/Copenhagen
-usr/java/lib/zi/Europe/Dublin
-usr/java/lib/zi/Europe/Gibraltar
-usr/java/lib/zi/Europe/Helsinki
-usr/java/lib/zi/Europe/Istanbul
-usr/java/lib/zi/Europe/Kaliningrad
-usr/java/lib/zi/Europe/Kiev
-usr/java/lib/zi/Europe/Lisbon
-usr/java/lib/zi/Europe/London
-usr/java/lib/zi/Europe/Luxembourg
-usr/java/lib/zi/Europe/Madrid
-usr/java/lib/zi/Europe/Malta
-usr/java/lib/zi/Europe/Minsk
-usr/java/lib/zi/Europe/Monaco
-usr/java/lib/zi/Europe/Moscow
-usr/java/lib/zi/Europe/Oslo
-usr/java/lib/zi/Europe/Paris
-usr/java/lib/zi/Europe/Prague
-usr/java/lib/zi/Europe/Riga
-usr/java/lib/zi/Europe/Rome
-usr/java/lib/zi/Europe/Samara
-usr/java/lib/zi/Europe/Simferopol
-usr/java/lib/zi/Europe/Sofia
-usr/java/lib/zi/Europe/Stockholm
-usr/java/lib/zi/Europe/Tallinn
-usr/java/lib/zi/Europe/Tirane
-usr/java/lib/zi/Europe/Uzhgorod
-usr/java/lib/zi/Europe/Vaduz
-usr/java/lib/zi/Europe/Vienna
-usr/java/lib/zi/Europe/Vilnius
-usr/java/lib/zi/Europe/Warsaw
-usr/java/lib/zi/Europe/Zaporozhye
-usr/java/lib/zi/Europe/Zurich
-usr/java/lib/zi/GMT
-usr/java/lib/zi/Indian
-usr/java/lib/zi/Indian/Antananarivo
-usr/java/lib/zi/Indian/Chagos
-usr/java/lib/zi/Indian/Christmas
-usr/java/lib/zi/Indian/Cocos
-usr/java/lib/zi/Indian/Comoro
-usr/java/lib/zi/Indian/Kerguelen
-usr/java/lib/zi/Indian/Mahe
-usr/java/lib/zi/Indian/Maldives
-usr/java/lib/zi/Indian/Mauritius
-usr/java/lib/zi/Indian/Mayotte
-usr/java/lib/zi/Indian/Reunion
-usr/java/lib/zi/MET
-usr/java/lib/zi/Pacific
-usr/java/lib/zi/Pacific/Apia
-usr/java/lib/zi/Pacific/Auckland
-usr/java/lib/zi/Pacific/Chatham
-usr/java/lib/zi/Pacific/Easter
-usr/java/lib/zi/Pacific/Efate
-usr/java/lib/zi/Pacific/Enderbury
-usr/java/lib/zi/Pacific/Fakaofo
-usr/java/lib/zi/Pacific/Fiji
-usr/java/lib/zi/Pacific/Funafuti
-usr/java/lib/zi/Pacific/Galapagos
-usr/java/lib/zi/Pacific/Gambier
-usr/java/lib/zi/Pacific/Guadalcanal
-usr/java/lib/zi/Pacific/Guam
-usr/java/lib/zi/Pacific/Honolulu
-usr/java/lib/zi/Pacific/Johnston
-usr/java/lib/zi/Pacific/Kiritimati
-usr/java/lib/zi/Pacific/Kosrae
-usr/java/lib/zi/Pacific/Kwajalein
-usr/java/lib/zi/Pacific/Majuro
-usr/java/lib/zi/Pacific/Marquesas
-usr/java/lib/zi/Pacific/Midway
-usr/java/lib/zi/Pacific/Nauru
-usr/java/lib/zi/Pacific/Niue
-usr/java/lib/zi/Pacific/Norfolk
-usr/java/lib/zi/Pacific/Noumea
-usr/java/lib/zi/Pacific/Pago_Pago
-usr/java/lib/zi/Pacific/Palau
-usr/java/lib/zi/Pacific/Pitcairn
-usr/java/lib/zi/Pacific/Ponape
-usr/java/lib/zi/Pacific/Port_Moresby
-usr/java/lib/zi/Pacific/Rarotonga
-usr/java/lib/zi/Pacific/Saipan
-usr/java/lib/zi/Pacific/Tahiti
-usr/java/lib/zi/Pacific/Tarawa
-usr/java/lib/zi/Pacific/Tongatapu
-usr/java/lib/zi/Pacific/Truk
-usr/java/lib/zi/Pacific/Wake
-usr/java/lib/zi/Pacific/Wallis
-usr/java/lib/zi/WET
-usr/java/lib/zi/ZoneInfoMappings
-#usr/java/licenses
-#usr/java/licenses/CHANGES
-#usr/java/licenses/COPYRIGHT
-#usr/java/licenses/LICENSE
-#usr/java/licenses/README
-#usr/java/licenses/THIRDPARTYLICENSEREADME.txt
-#usr/java/licenses/Welcome.html
-#usr/java/man
-#usr/java/man/ja
-#usr/java/man/ja_JP.eucJP
-#usr/java/man/ja_JP.eucJP/man1
-#usr/java/man/ja_JP.eucJP/man1/java.1
-#usr/java/man/ja_JP.eucJP/man1/javaws.1
-#usr/java/man/ja_JP.eucJP/man1/keytool.1
-#usr/java/man/ja_JP.eucJP/man1/kinit.1
-#usr/java/man/ja_JP.eucJP/man1/klist.1
-#usr/java/man/ja_JP.eucJP/man1/ktab.1
-#usr/java/man/ja_JP.eucJP/man1/orbd.1
-#usr/java/man/ja_JP.eucJP/man1/pack200.1
-#usr/java/man/ja_JP.eucJP/man1/policytool.1
-#usr/java/man/ja_JP.eucJP/man1/rmid.1
-#usr/java/man/ja_JP.eucJP/man1/rmiregistry.1
-#usr/java/man/ja_JP.eucJP/man1/servertool.1
-#usr/java/man/ja_JP.eucJP/man1/tnameserv.1
-#usr/java/man/ja_JP.eucJP/man1/unpack200.1
-#usr/java/man/man1
-#usr/java/man/man1/java.1
-#usr/java/man/man1/javaws.1
-#usr/java/man/man1/keytool.1
-#usr/java/man/man1/kinit.1
-#usr/java/man/man1/klist.1
-#usr/java/man/man1/ktab.1
-#usr/java/man/man1/orbd.1
-#usr/java/man/man1/pack200.1
-#usr/java/man/man1/policytool.1
-#usr/java/man/man1/rmid.1
-#usr/java/man/man1/rmiregistry.1
-#usr/java/man/man1/servertool.1
-#usr/java/man/man1/tnameserv.1
-#usr/java/man/man1/unpack200.1
-#usr/java/plugin
-#usr/java/plugin/desktop
-#usr/java/plugin/desktop/sun_java.desktop
-#usr/java/plugin/desktop/sun_java.png
-#usr/java/plugin/i386
-#usr/java/plugin/i386/ns7
-#usr/java/plugin/i386/ns7-gcc29
-#usr/java/plugin/i386/ns7-gcc29/libjavaplugin_oji.so
-#usr/java/plugin/i386/ns7/libjavaplugin_oji.so
-usr/java/version
\ No newline at end of file
diff --git a/src/paks/java/depends.txt b/src/paks/java/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/java/install.sh b/src/paks/java/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/java/uninstall.sh b/src/paks/java/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/lame/ROOTFILES b/src/paks/lame/ROOTFILES
deleted file mode 100644 (file)
index 6e0262c..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-usr/bin/lame
-usr/bin/mp3rtp
-#usr/include/lame
-#usr/include/lame/lame.h
-#usr/lib/libmp3lame.a
-#usr/lib/libmp3lame.la
-usr/lib/libmp3lame.so
-usr/lib/libmp3lame.so.0
-usr/lib/libmp3lame.so.0.0.0
-#usr/share/doc/lame
-#usr/share/doc/lame/html
-#usr/share/doc/lame/html/basic.html
-#usr/share/doc/lame/html/contributors.html
-#usr/share/doc/lame/html/examples.html
-#usr/share/doc/lame/html/history.html
-#usr/share/doc/lame/html/id3.html
-#usr/share/doc/lame/html/index.html
-#usr/share/doc/lame/html/lame.css
-#usr/share/doc/lame/html/modes.html
-#usr/share/doc/lame/html/node6.html
-#usr/share/doc/lame/html/presets.html
-#usr/share/doc/lame/html/switchs.html
-#usr/share/man/man1/lame.1
diff --git a/src/paks/lame/depends.txt b/src/paks/lame/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/lame/install.sh b/src/paks/lame/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/lame/uninstall.sh b/src/paks/lame/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/libjpeg/ROOTFILES b/src/paks/libjpeg/ROOTFILES
deleted file mode 100644 (file)
index df76fec..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-usr/bin/cjpeg
-usr/bin/djpeg
-usr/bin/jpegtran
-usr/bin/rdjpgcom
-usr/bin/wrjpgcom
-#usr/include/jconfig.h
-#usr/include/jerror.h
-#usr/include/jmorecfg.h
-#usr/include/jpeglib.h
-usr/lib/libjpeg.a
-usr/lib/libjpeg.la
-usr/lib/libjpeg.so
-usr/lib/libjpeg.so.62
-usr/lib/libjpeg.so.62.0.0
-#usr/share/man/man1/cjpeg.1
-#usr/share/man/man1/djpeg.1
-#usr/share/man/man1/jpegtran.1
-#usr/share/man/man1/rdjpgcom.1
-#usr/share/man/man1/wrjpgcom.1
diff --git a/src/paks/libjpeg/depends.txt b/src/paks/libjpeg/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/libjpeg/install.sh b/src/paks/libjpeg/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/libjpeg/uninstall.sh b/src/paks/libjpeg/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/libmad/ROOTFILES b/src/paks/libmad/ROOTFILES
deleted file mode 100644 (file)
index a24486d..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#usr/include/mad.h
-#usr/lib/libmad.a
-#usr/lib/libmad.la
-usr/lib/libmad.so
-usr/lib/libmad.so.0
-usr/lib/libmad.so.0.2.1
diff --git a/src/paks/libmad/depends.txt b/src/paks/libmad/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/libmad/install.sh b/src/paks/libmad/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/libmad/uninstall.sh b/src/paks/libmad/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/libogg/ROOTFILES b/src/paks/libogg/ROOTFILES
deleted file mode 100644 (file)
index e904773..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#usr/include/ogg
-#usr/include/ogg/config_types.h
-#usr/include/ogg/ogg.h
-#usr/include/ogg/os_types.h
-#usr/lib/libogg.a
-#usr/lib/libogg.la
-usr/lib/libogg.so
-usr/lib/libogg.so.0
-usr/lib/libogg.so.0.5.3
-#usr/lib/pkgconfig/ogg.pc
-#usr/share/aclocal/ogg.m4
-#usr/share/doc/libogg-1.1.3
-#usr/share/doc/libogg-1.1.3/framing.html
-#usr/share/doc/libogg-1.1.3/index.html
-#usr/share/doc/libogg-1.1.3/ogg
-#usr/share/doc/libogg-1.1.3/ogg-multiplex.html
-#usr/share/doc/libogg-1.1.3/ogg/bitpacking.html
-#usr/share/doc/libogg-1.1.3/ogg/datastructures.html
-#usr/share/doc/libogg-1.1.3/ogg/decoding.html
-#usr/share/doc/libogg-1.1.3/ogg/encoding.html
-#usr/share/doc/libogg-1.1.3/ogg/general.html
-#usr/share/doc/libogg-1.1.3/ogg/index.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_packet.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_packet_clear.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_page.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_page_bos.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_page_checksum_set.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_page_continued.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_page_eos.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_page_granulepos.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_page_packets.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_page_pageno.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_page_serialno.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_page_version.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_stream_clear.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_stream_destroy.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_stream_eos.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_stream_flush.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_stream_init.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_stream_packetin.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_stream_packetout.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_stream_packetpeek.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_stream_pagein.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_stream_pageout.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_stream_reset.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_stream_reset_serialno.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_stream_state.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_sync_buffer.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_sync_clear.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_sync_destroy.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_sync_init.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_sync_pageout.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_sync_pageseek.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_sync_reset.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_sync_state.html
-#usr/share/doc/libogg-1.1.3/ogg/ogg_sync_wrote.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_adv.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_adv1.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_bits.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_buffer.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_bytes.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_get_buffer.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_look.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_look1.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_read.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_read1.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_readinit.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_reset.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_write.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_writealign.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_writeclear.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_writecopy.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_writeinit.html
-#usr/share/doc/libogg-1.1.3/ogg/oggpack_writetrunc.html
-#usr/share/doc/libogg-1.1.3/ogg/overview.html
-#usr/share/doc/libogg-1.1.3/ogg/reference.html
-#usr/share/doc/libogg-1.1.3/ogg/style.css
-#usr/share/doc/libogg-1.1.3/ogg/vorbis_comment.html
-#usr/share/doc/libogg-1.1.3/ogg/vorbis_info.html
-#usr/share/doc/libogg-1.1.3/oggstream.html
-#usr/share/doc/libogg-1.1.3/rfc3533.txt
-#usr/share/doc/libogg-1.1.3/rfc3534.txt
-#usr/share/doc/libogg-1.1.3/stream.png
-#usr/share/doc/libogg-1.1.3/vorbisword2.png
-#usr/share/doc/libogg-1.1.3/white-ogg.png
-#usr/share/doc/libogg-1.1.3/white-xifish.png
diff --git a/src/paks/libogg/depends.txt b/src/paks/libogg/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/libogg/install.sh b/src/paks/libogg/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/libogg/uninstall.sh b/src/paks/libogg/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/libpri/ROOTFILES b/src/paks/libpri/ROOTFILES
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/libpri/depends.txt b/src/paks/libpri/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/libpri/install.sh b/src/paks/libpri/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/libpri/uninstall.sh b/src/paks/libpri/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/libtiff/ROOTFILES b/src/paks/libtiff/ROOTFILES
deleted file mode 100644 (file)
index 87ac9f8..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-usr/bin/bmp2tiff
-usr/bin/fax2ps
-usr/bin/fax2tiff
-usr/bin/gif2tiff
-usr/bin/pal2rgb
-usr/bin/ppm2tiff
-usr/bin/ras2tiff
-usr/bin/raw2tiff
-usr/bin/rgb2ycbcr
-usr/bin/thumbnail
-usr/bin/tiff2bw
-usr/bin/tiff2pdf
-usr/bin/tiff2ps
-usr/bin/tiff2rgba
-usr/bin/tiffcmp
-usr/bin/tiffcp
-usr/bin/tiffdither
-usr/bin/tiffdump
-usr/bin/tiffinfo
-usr/bin/tiffmedian
-usr/bin/tiffset
-usr/bin/tiffsplit
-#usr/include/tiff.h
-#usr/include/tiffconf.h
-#usr/include/tiffio.h
-#usr/include/tiffio.hxx
-#usr/include/tiffvers.h
-usr/lib/libtiff.a
-usr/lib/libtiff.la
-usr/lib/libtiff.so
-usr/lib/libtiff.so.3
-usr/lib/libtiff.so.3.8.2
-usr/lib/libtiffxx.a
-usr/lib/libtiffxx.la
-usr/lib/libtiffxx.so
-usr/lib/libtiffxx.so.3
-usr/lib/libtiffxx.so.3.8.2
-#usr/share/doc/tiff-3.8.2
-#usr/share/doc/tiff-3.8.2/COPYRIGHT
-#usr/share/doc/tiff-3.8.2/ChangeLog
-#usr/share/doc/tiff-3.8.2/README
-#usr/share/doc/tiff-3.8.2/RELEASE-DATE
-#usr/share/doc/tiff-3.8.2/TODO
-#usr/share/doc/tiff-3.8.2/VERSION
-#usr/share/doc/tiff-3.8.2/html
-#usr/share/doc/tiff-3.8.2/html/TIFFTechNote2.html
-#usr/share/doc/tiff-3.8.2/html/addingtags.html
-#usr/share/doc/tiff-3.8.2/html/bugs.html
-#usr/share/doc/tiff-3.8.2/html/build.html
-#usr/share/doc/tiff-3.8.2/html/contrib.html
-#usr/share/doc/tiff-3.8.2/html/document.html
-#usr/share/doc/tiff-3.8.2/html/images
-#usr/share/doc/tiff-3.8.2/html/images.html
-#usr/share/doc/tiff-3.8.2/html/images/back.gif
-#usr/share/doc/tiff-3.8.2/html/images/bali.jpg
-#usr/share/doc/tiff-3.8.2/html/images/cat.gif
-#usr/share/doc/tiff-3.8.2/html/images/cover.jpg
-#usr/share/doc/tiff-3.8.2/html/images/cramps.gif
-#usr/share/doc/tiff-3.8.2/html/images/dave.gif
-#usr/share/doc/tiff-3.8.2/html/images/info.gif
-#usr/share/doc/tiff-3.8.2/html/images/jello.jpg
-#usr/share/doc/tiff-3.8.2/html/images/jim.gif
-#usr/share/doc/tiff-3.8.2/html/images/note.gif
-#usr/share/doc/tiff-3.8.2/html/images/oxford.gif
-#usr/share/doc/tiff-3.8.2/html/images/quad.jpg
-#usr/share/doc/tiff-3.8.2/html/images/ring.gif
-#usr/share/doc/tiff-3.8.2/html/images/smallliz.jpg
-#usr/share/doc/tiff-3.8.2/html/images/strike.gif
-#usr/share/doc/tiff-3.8.2/html/images/warning.gif
-#usr/share/doc/tiff-3.8.2/html/index.html
-#usr/share/doc/tiff-3.8.2/html/internals.html
-#usr/share/doc/tiff-3.8.2/html/intro.html
-#usr/share/doc/tiff-3.8.2/html/libtiff.html
-#usr/share/doc/tiff-3.8.2/html/man
-#usr/share/doc/tiff-3.8.2/html/man/TIFFClose.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFDataWidth.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFError.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFFlush.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFGetField.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFOpen.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFPrintDirectory.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFRGBAImage.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFReadDirectory.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFReadEncodedStrip.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFReadEncodedTile.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFReadRGBAImage.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFReadRGBAStrip.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFReadRGBATile.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFReadRawStrip.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFReadRawTile.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFReadScanline.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFReadTile.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFSetDirectory.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFSetField.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFWarning.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteDirectory.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteEncodedStrip.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteEncodedTile.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteRawStrip.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteRawTile.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteScanline.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteTile.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFbuffer.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFcodec.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFcolor.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFmemory.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFquery.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFsize.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFstrip.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFswab.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/TIFFtile.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/fax2ps.1.html
-#usr/share/doc/tiff-3.8.2/html/man/fax2tiff.1.html
-#usr/share/doc/tiff-3.8.2/html/man/gif2tiff.1.html
-#usr/share/doc/tiff-3.8.2/html/man/index.html
-#usr/share/doc/tiff-3.8.2/html/man/libtiff.3tiff.html
-#usr/share/doc/tiff-3.8.2/html/man/pal2rgb.1.html
-#usr/share/doc/tiff-3.8.2/html/man/ppm2tiff.1.html
-#usr/share/doc/tiff-3.8.2/html/man/ras2tiff.1.html
-#usr/share/doc/tiff-3.8.2/html/man/raw2tiff.1.html
-#usr/share/doc/tiff-3.8.2/html/man/rgb2ycbcr.1.html
-#usr/share/doc/tiff-3.8.2/html/man/sgi2tiff.1.html
-#usr/share/doc/tiff-3.8.2/html/man/thumbnail.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiff2bw.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiff2pdf.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiff2ps.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiff2rgba.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiffcmp.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiffcp.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiffdither.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiffdump.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiffgt.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiffinfo.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiffmedian.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiffset.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiffsplit.1.html
-#usr/share/doc/tiff-3.8.2/html/man/tiffsv.1.html
-#usr/share/doc/tiff-3.8.2/html/misc.html
-#usr/share/doc/tiff-3.8.2/html/support.html
-#usr/share/doc/tiff-3.8.2/html/tools.html
-#usr/share/doc/tiff-3.8.2/html/v3.4beta007.html
-#usr/share/doc/tiff-3.8.2/html/v3.4beta016.html
-#usr/share/doc/tiff-3.8.2/html/v3.4beta018.html
-#usr/share/doc/tiff-3.8.2/html/v3.4beta024.html
-#usr/share/doc/tiff-3.8.2/html/v3.4beta028.html
-#usr/share/doc/tiff-3.8.2/html/v3.4beta029.html
-#usr/share/doc/tiff-3.8.2/html/v3.4beta031.html
-#usr/share/doc/tiff-3.8.2/html/v3.4beta032.html
-#usr/share/doc/tiff-3.8.2/html/v3.4beta033.html
-#usr/share/doc/tiff-3.8.2/html/v3.4beta034.html
-#usr/share/doc/tiff-3.8.2/html/v3.4beta035.html
-#usr/share/doc/tiff-3.8.2/html/v3.4beta036.html
-#usr/share/doc/tiff-3.8.2/html/v3.5.1.html
-#usr/share/doc/tiff-3.8.2/html/v3.5.2.html
-#usr/share/doc/tiff-3.8.2/html/v3.5.3.html
-#usr/share/doc/tiff-3.8.2/html/v3.5.4.html
-#usr/share/doc/tiff-3.8.2/html/v3.5.5.html
-#usr/share/doc/tiff-3.8.2/html/v3.5.6-beta.html
-#usr/share/doc/tiff-3.8.2/html/v3.5.7.html
-#usr/share/doc/tiff-3.8.2/html/v3.6.0.html
-#usr/share/doc/tiff-3.8.2/html/v3.6.1.html
-#usr/share/doc/tiff-3.8.2/html/v3.7.0.html
-#usr/share/doc/tiff-3.8.2/html/v3.7.0alpha.html
-#usr/share/doc/tiff-3.8.2/html/v3.7.0beta.html
-#usr/share/doc/tiff-3.8.2/html/v3.7.0beta2.html
-#usr/share/doc/tiff-3.8.2/html/v3.7.1.html
-#usr/share/doc/tiff-3.8.2/html/v3.7.2.html
-#usr/share/doc/tiff-3.8.2/html/v3.7.3.html
-#usr/share/doc/tiff-3.8.2/html/v3.7.4.html
-#usr/share/doc/tiff-3.8.2/html/v3.8.0.html
-#usr/share/doc/tiff-3.8.2/html/v3.8.1.html
-#usr/share/doc/tiff-3.8.2/html/v3.8.2.html
-#usr/share/man/man1/bmp2tiff.1
-#usr/share/man/man1/fax2ps.1
-#usr/share/man/man1/fax2tiff.1
-#usr/share/man/man1/gif2tiff.1
-#usr/share/man/man1/pal2rgb.1
-#usr/share/man/man1/ppm2tiff.1
-#usr/share/man/man1/ras2tiff.1
-#usr/share/man/man1/raw2tiff.1
-#usr/share/man/man1/rgb2ycbcr.1
-#usr/share/man/man1/sgi2tiff.1
-#usr/share/man/man1/thumbnail.1
-#usr/share/man/man1/tiff2bw.1
-#usr/share/man/man1/tiff2pdf.1
-#usr/share/man/man1/tiff2ps.1
-#usr/share/man/man1/tiff2rgba.1
-#usr/share/man/man1/tiffcmp.1
-#usr/share/man/man1/tiffcp.1
-#usr/share/man/man1/tiffdither.1
-#usr/share/man/man1/tiffdump.1
-#usr/share/man/man1/tiffgt.1
-#usr/share/man/man1/tiffinfo.1
-#usr/share/man/man1/tiffmedian.1
-#usr/share/man/man1/tiffset.1
-#usr/share/man/man1/tiffsplit.1
-#usr/share/man/man1/tiffsv.1
-#usr/share/man/man3/TIFFClose.3tiff
-#usr/share/man/man3/TIFFDataWidth.3tiff
-#usr/share/man/man3/TIFFError.3tiff
-#usr/share/man/man3/TIFFFlush.3tiff
-#usr/share/man/man3/TIFFGetField.3tiff
-#usr/share/man/man3/TIFFOpen.3tiff
-#usr/share/man/man3/TIFFPrintDirectory.3tiff
-#usr/share/man/man3/TIFFRGBAImage.3tiff
-#usr/share/man/man3/TIFFReadDirectory.3tiff
-#usr/share/man/man3/TIFFReadEncodedStrip.3tiff
-#usr/share/man/man3/TIFFReadEncodedTile.3tiff
-#usr/share/man/man3/TIFFReadRGBAImage.3tiff
-#usr/share/man/man3/TIFFReadRGBAStrip.3tiff
-#usr/share/man/man3/TIFFReadRGBATile.3tiff
-#usr/share/man/man3/TIFFReadRawStrip.3tiff
-#usr/share/man/man3/TIFFReadRawTile.3tiff
-#usr/share/man/man3/TIFFReadScanline.3tiff
-#usr/share/man/man3/TIFFReadTile.3tiff
-#usr/share/man/man3/TIFFSetDirectory.3tiff
-#usr/share/man/man3/TIFFSetField.3tiff
-#usr/share/man/man3/TIFFWarning.3tiff
-#usr/share/man/man3/TIFFWriteDirectory.3tiff
-#usr/share/man/man3/TIFFWriteEncodedStrip.3tiff
-#usr/share/man/man3/TIFFWriteEncodedTile.3tiff
-#usr/share/man/man3/TIFFWriteRawStrip.3tiff
-#usr/share/man/man3/TIFFWriteRawTile.3tiff
-#usr/share/man/man3/TIFFWriteScanline.3tiff
-#usr/share/man/man3/TIFFWriteTile.3tiff
-#usr/share/man/man3/TIFFbuffer.3tiff
-#usr/share/man/man3/TIFFcodec.3tiff
-#usr/share/man/man3/TIFFcolor.3tiff
-#usr/share/man/man3/TIFFmemory.3tiff
-#usr/share/man/man3/TIFFquery.3tiff
-#usr/share/man/man3/TIFFsize.3tiff
-#usr/share/man/man3/TIFFstrip.3tiff
-#usr/share/man/man3/TIFFswab.3tiff
-#usr/share/man/man3/TIFFtile.3tiff
-#usr/share/man/man3/libtiff.3tiff
diff --git a/src/paks/libtiff/depends.txt b/src/paks/libtiff/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/libtiff/install.sh b/src/paks/libtiff/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/libtiff/uninstall.sh b/src/paks/libtiff/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/libvorbis/ROOTFILES b/src/paks/libvorbis/ROOTFILES
deleted file mode 100644 (file)
index 5f69cdb..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-#usr/include/vorbis
-#usr/include/vorbis/codec.h
-#usr/include/vorbis/vorbisenc.h
-#usr/include/vorbis/vorbisfile.h
-#usr/lib/libvorbis.a
-#usr/lib/libvorbis.la
-usr/lib/libvorbis.so
-usr/lib/libvorbis.so.0
-usr/lib/libvorbis.so.0.3.1
-#usr/lib/libvorbisenc.a
-#usr/lib/libvorbisenc.la
-usr/lib/libvorbisenc.so
-usr/lib/libvorbisenc.so.2
-usr/lib/libvorbisenc.so.2.0.2
-#usr/lib/libvorbisfile.a
-#usr/lib/libvorbisfile.la
-usr/lib/libvorbisfile.so
-usr/lib/libvorbisfile.so.3
-usr/lib/libvorbisfile.so.3.1.1
-#usr/lib/pkgconfig/vorbis.pc
-#usr/lib/pkgconfig/vorbisenc.pc
-#usr/lib/pkgconfig/vorbisfile.pc
-#usr/share/aclocal/vorbis.m4
-#usr/share/doc/libvorbis-1.1.2
-#usr/share/doc/libvorbis-1.1.2/Vorbis_I_spec.html
-#usr/share/doc/libvorbis-1.1.2/Vorbis_I_spec.pdf
-#usr/share/doc/libvorbis-1.1.2/components.png
-#usr/share/doc/libvorbis-1.1.2/draft-kerr-avt-vorbis-rtp-03.txt
-#usr/share/doc/libvorbis-1.1.2/eightphase.png
-#usr/share/doc/libvorbis-1.1.2/evenlsp.png
-#usr/share/doc/libvorbis-1.1.2/floor1-1.png
-#usr/share/doc/libvorbis-1.1.2/floor1-2.png
-#usr/share/doc/libvorbis-1.1.2/floor1-3.png
-#usr/share/doc/libvorbis-1.1.2/floor1-4.png
-#usr/share/doc/libvorbis-1.1.2/floor1_inverse_dB_table.html
-#usr/share/doc/libvorbis-1.1.2/floorval.png
-#usr/share/doc/libvorbis-1.1.2/fourphase.png
-#usr/share/doc/libvorbis-1.1.2/framing.html
-#usr/share/doc/libvorbis-1.1.2/helper.html
-#usr/share/doc/libvorbis-1.1.2/hufftree-under.png
-#usr/share/doc/libvorbis-1.1.2/hufftree.png
-#usr/share/doc/libvorbis-1.1.2/index.html
-#usr/share/doc/libvorbis-1.1.2/lspmap.png
-#usr/share/doc/libvorbis-1.1.2/oddlsp.png
-#usr/share/doc/libvorbis-1.1.2/oggstream.html
-#usr/share/doc/libvorbis-1.1.2/programming.html
-#usr/share/doc/libvorbis-1.1.2/residue-pack.png
-#usr/share/doc/libvorbis-1.1.2/residue2.png
-#usr/share/doc/libvorbis-1.1.2/squarepolar.png
-#usr/share/doc/libvorbis-1.1.2/stereo.html
-#usr/share/doc/libvorbis-1.1.2/stream.png
-#usr/share/doc/libvorbis-1.1.2/v-comment.html
-#usr/share/doc/libvorbis-1.1.2/vorbis-clip.txt
-#usr/share/doc/libvorbis-1.1.2/vorbis-errors.txt
-#usr/share/doc/libvorbis-1.1.2/vorbis-fidelity.html
-#usr/share/doc/libvorbis-1.1.2/vorbis.html
-#usr/share/doc/libvorbis-1.1.2/vorbisenc
-#usr/share/doc/libvorbis-1.1.2/vorbisenc/index.html
-#usr/share/doc/libvorbis-1.1.2/vorbisenc/overview.html
-#usr/share/doc/libvorbis-1.1.2/vorbisenc/reference.html
-#usr/share/doc/libvorbis-1.1.2/vorbisenc/style.css
-#usr/share/doc/libvorbis-1.1.2/vorbisenc/vorbis_encode_ctl.html
-#usr/share/doc/libvorbis-1.1.2/vorbisenc/vorbis_encode_init.html
-#usr/share/doc/libvorbis-1.1.2/vorbisenc/vorbis_encode_init_vbr.html
-#usr/share/doc/libvorbis-1.1.2/vorbisenc/vorbis_info.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/OggVorbis_File.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/callbacks.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/chaining_example_c.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/chainingexample.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/crosslap.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/datastructures.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/decoding.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/example.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/exampleindex.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/fileinfo.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/index.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/initialization.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_bitrate.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_bitrate_instant.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_callbacks.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_clear.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_comment.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_crosslap.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_info.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_open.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_open_callbacks.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_pcm_seek.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_pcm_seek_lap.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_pcm_seek_page.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_pcm_seek_page_lap.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_pcm_tell.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_pcm_total.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_raw_seek.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_raw_seek_lap.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_raw_tell.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_raw_total.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_read.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_read_float.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_seekable.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_serialnumber.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_streams.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_test.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_test_callbacks.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_test_open.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_time_seek.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_time_seek_lap.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_time_seek_page.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_time_seek_page_lap.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_time_tell.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/ov_time_total.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/overview.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/reference.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/return.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/seekexample.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/seeking.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/seeking_example_c.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/seeking_test_c.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/seekingexample.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/style.css
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/threads.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/vorbis_comment.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/vorbis_info.html
-#usr/share/doc/libvorbis-1.1.2/vorbisfile/vorbisfile_example_c.html
-#usr/share/doc/libvorbis-1.1.2/vorbisword2.png
-#usr/share/doc/libvorbis-1.1.2/wait.png
-#usr/share/doc/libvorbis-1.1.2/white-ogg.png
-#usr/share/doc/libvorbis-1.1.2/white-xifish.png
-#usr/share/doc/libvorbis-1.1.2/window1.png
-#usr/share/doc/libvorbis-1.1.2/window2.png
diff --git a/src/paks/libvorbis/depends.txt b/src/paks/libvorbis/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/libvorbis/install.sh b/src/paks/libvorbis/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/libvorbis/uninstall.sh b/src/paks/libvorbis/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/lynx/ROOTFILES b/src/paks/lynx/ROOTFILES
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/lynx/depends.txt b/src/paks/lynx/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/lynx/install.sh b/src/paks/lynx/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/lynx/uninstall.sh b/src/paks/lynx/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/mailx/ROOTFILES b/src/paks/mailx/ROOTFILES
deleted file mode 100644 (file)
index c3a57b6..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-etc/nail.rc
-usr/bin/mail
-usr/bin/mailx
-usr/bin/nail
-#usr/share/man/man1/mailx.1
\ No newline at end of file
diff --git a/src/paks/mailx/depends.txt b/src/paks/mailx/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/mailx/install.sh b/src/paks/mailx/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/mailx/uninstall.sh b/src/paks/mailx/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/mldonkey/ROOTFILES b/src/paks/mldonkey/ROOTFILES
deleted file mode 100644 (file)
index 6b80f90..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-opt/mldonkey
-opt/mldonkey/.mldonkey
-var/log/mldonkey
diff --git a/src/paks/mldonkey/depends.txt b/src/paks/mldonkey/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/mldonkey/install.sh b/src/paks/mldonkey/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/mldonkey/uninstall.sh b/src/paks/mldonkey/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/mpeg2dec/ROOTFILES b/src/paks/mpeg2dec/ROOTFILES
deleted file mode 100644 (file)
index 98ca313..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#usr/bin/corrupt_mpeg2
-#usr/bin/extract_mpeg2
-usr/bin/mpeg2dec
-#usr/include/mpeg2dec
-#usr/include/mpeg2dec/mpeg2.h
-#usr/include/mpeg2dec/mpeg2convert.h
-#usr/lib/libmpeg2.a
-#usr/lib/libmpeg2.la
-usr/lib/libmpeg2.so
-usr/lib/libmpeg2.so.0
-usr/lib/libmpeg2.so.0.0.0
-#usr/lib/libmpeg2convert.a
-#usr/lib/libmpeg2convert.la
-usr/lib/libmpeg2convert.so
-usr/lib/libmpeg2convert.so.0
-usr/lib/libmpeg2convert.so.0.0.0
-#usr/lib/pkgconfig/libmpeg2.pc
-#usr/lib/pkgconfig/libmpeg2convert.pc
-#usr/share/man/man1/extract_mpeg2.1
-#usr/share/man/man1/mpeg2dec.1
diff --git a/src/paks/mpeg2dec/depends.txt b/src/paks/mpeg2dec/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/mpeg2dec/install.sh b/src/paks/mpeg2dec/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/mpeg2dec/uninstall.sh b/src/paks/mpeg2dec/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/mpg123/ROOTFILES b/src/paks/mpg123/ROOTFILES
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/mpg123/depends.txt b/src/paks/mpg123/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/mpg123/install.sh b/src/paks/mpg123/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/mpg123/uninstall.sh b/src/paks/mpg123/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/nagios/ROOTFILES b/src/paks/nagios/ROOTFILES
deleted file mode 100644 (file)
index b53fbbb..0000000
+++ /dev/null
@@ -1,351 +0,0 @@
-usr/nagios
-#usr/nagios/bin
-#usr/nagios/bin/nagios
-#usr/nagios/bin/nagiostats
-#usr/nagios/sbin
-#usr/nagios/sbin/avail.cgi
-#usr/nagios/sbin/cmd.cgi
-#usr/nagios/sbin/config.cgi
-#usr/nagios/sbin/extinfo.cgi
-#usr/nagios/sbin/histogram.cgi
-#usr/nagios/sbin/history.cgi
-#usr/nagios/sbin/notifications.cgi
-#usr/nagios/sbin/outages.cgi
-#usr/nagios/sbin/showlog.cgi
-#usr/nagios/sbin/status.cgi
-#usr/nagios/sbin/statusmap.cgi
-#usr/nagios/sbin/statuswml.cgi
-#usr/nagios/sbin/statuswrl.cgi
-#usr/nagios/sbin/summary.cgi
-#usr/nagios/sbin/tac.cgi
-#usr/nagios/sbin/trends.cgi
-#usr/nagios/share
-#usr/nagios/share/contexthelp
-#usr/nagios/share/contexthelp/A1.html
-#usr/nagios/share/contexthelp/A2.html
-#usr/nagios/share/contexthelp/A3.html
-#usr/nagios/share/contexthelp/A4.html
-#usr/nagios/share/contexthelp/A5.html
-#usr/nagios/share/contexthelp/A6.html
-#usr/nagios/share/contexthelp/A7.html
-#usr/nagios/share/contexthelp/B1.html
-#usr/nagios/share/contexthelp/C1.html
-#usr/nagios/share/contexthelp/D1.html
-#usr/nagios/share/contexthelp/E1.html
-#usr/nagios/share/contexthelp/F1.html
-#usr/nagios/share/contexthelp/G1.html
-#usr/nagios/share/contexthelp/G2.html
-#usr/nagios/share/contexthelp/G3.html
-#usr/nagios/share/contexthelp/G4.html
-#usr/nagios/share/contexthelp/G5.html
-#usr/nagios/share/contexthelp/G6.html
-#usr/nagios/share/contexthelp/H1.html
-#usr/nagios/share/contexthelp/H2.html
-#usr/nagios/share/contexthelp/H3.html
-#usr/nagios/share/contexthelp/H4.html
-#usr/nagios/share/contexthelp/H5.html
-#usr/nagios/share/contexthelp/H6.html
-#usr/nagios/share/contexthelp/H7.html
-#usr/nagios/share/contexthelp/H8.html
-#usr/nagios/share/contexthelp/I1.html
-#usr/nagios/share/contexthelp/I2.html
-#usr/nagios/share/contexthelp/I3.html
-#usr/nagios/share/contexthelp/I4.html
-#usr/nagios/share/contexthelp/I5.html
-#usr/nagios/share/contexthelp/I6.html
-#usr/nagios/share/contexthelp/I7.html
-#usr/nagios/share/contexthelp/I8.html
-#usr/nagios/share/contexthelp/I9.html
-#usr/nagios/share/contexthelp/J1.html
-#usr/nagios/share/contexthelp/K1.html
-#usr/nagios/share/contexthelp/L1.html
-#usr/nagios/share/contexthelp/L10.html
-#usr/nagios/share/contexthelp/L11.html
-#usr/nagios/share/contexthelp/L12.html
-#usr/nagios/share/contexthelp/L13.html
-#usr/nagios/share/contexthelp/L2.html
-#usr/nagios/share/contexthelp/L3.html
-#usr/nagios/share/contexthelp/L4.html
-#usr/nagios/share/contexthelp/L5.html
-#usr/nagios/share/contexthelp/L6.html
-#usr/nagios/share/contexthelp/L7.html
-#usr/nagios/share/contexthelp/L8.html
-#usr/nagios/share/contexthelp/L9.html
-#usr/nagios/share/contexthelp/M1.html
-#usr/nagios/share/contexthelp/M2.html
-#usr/nagios/share/contexthelp/M3.html
-#usr/nagios/share/contexthelp/M4.html
-#usr/nagios/share/contexthelp/M5.html
-#usr/nagios/share/contexthelp/M6.html
-#usr/nagios/share/contexthelp/N1.html
-#usr/nagios/share/contexthelp/N2.html
-#usr/nagios/share/contexthelp/N3.html
-#usr/nagios/share/contexthelp/N4.html
-#usr/nagios/share/contexthelp/N5.html
-#usr/nagios/share/contexthelp/N6.html
-#usr/nagios/share/contexthelp/N7.html
-#usr/nagios/share/docs
-#usr/nagios/share/docs/about.html
-#usr/nagios/share/docs/adaptive.html
-#usr/nagios/share/docs/addons.html
-#usr/nagios/share/docs/beginners.html
-#usr/nagios/share/docs/cgiauth.html
-#usr/nagios/share/docs/cgiincludes.html
-#usr/nagios/share/docs/cgis.html
-#usr/nagios/share/docs/checkscheduling.html
-#usr/nagios/share/docs/clusters.html
-#usr/nagios/share/docs/commandfile.html
-#usr/nagios/share/docs/config.html
-#usr/nagios/share/docs/configcgi.html
-#usr/nagios/share/docs/configextinfo.html
-#usr/nagios/share/docs/configmain.html
-#usr/nagios/share/docs/configobject.html
-#usr/nagios/share/docs/dependencies.html
-#usr/nagios/share/docs/distributed.html
-#usr/nagios/share/docs/downtime.html
-#usr/nagios/share/docs/embeddedperl.html
-#usr/nagios/share/docs/escalations.html
-#usr/nagios/share/docs/eventhandlers.html
-#usr/nagios/share/docs/extcommands.html
-#usr/nagios/share/docs/flapping.html
-#usr/nagios/share/docs/freshness.html
-#usr/nagios/share/docs/funstuff.html
-#usr/nagios/share/docs/images
-#usr/nagios/share/docs/images/activepassive.png
-#usr/nagios/share/docs/images/cgi-avail-a.png
-#usr/nagios/share/docs/images/cgi-avail-b.png
-#usr/nagios/share/docs/images/cgi-cmd.png
-#usr/nagios/share/docs/images/cgi-config.png
-#usr/nagios/share/docs/images/cgi-extinfo-a.png
-#usr/nagios/share/docs/images/cgi-extinfo-b.png
-#usr/nagios/share/docs/images/cgi-extinfo-c.png
-#usr/nagios/share/docs/images/cgi-extinfo-d.png
-#usr/nagios/share/docs/images/cgi-histogram.png
-#usr/nagios/share/docs/images/cgi-history.png
-#usr/nagios/share/docs/images/cgi-notifications.png
-#usr/nagios/share/docs/images/cgi-outages.png
-#usr/nagios/share/docs/images/cgi-showlog.png
-#usr/nagios/share/docs/images/cgi-status-a.png
-#usr/nagios/share/docs/images/cgi-status-b.png
-#usr/nagios/share/docs/images/cgi-status-c.png
-#usr/nagios/share/docs/images/cgi-status-d.png
-#usr/nagios/share/docs/images/cgi-statusmap.png
-#usr/nagios/share/docs/images/cgi-statuswml.png
-#usr/nagios/share/docs/images/cgi-statuswrl.png
-#usr/nagios/share/docs/images/cgi-summary.png
-#usr/nagios/share/docs/images/cgi-tac.png
-#usr/nagios/share/docs/images/cgi-trends.png
-#usr/nagios/share/docs/images/checktiming.png
-#usr/nagios/share/docs/images/distributed.png
-#usr/nagios/share/docs/images/host-dependencies.png
-#usr/nagios/share/docs/images/indirecthostcheck.png
-#usr/nagios/share/docs/images/indirectsvccheck.png
-#usr/nagios/share/docs/images/indirectsvccheck2.png
-#usr/nagios/share/docs/images/interleaved1.png
-#usr/nagios/share/docs/images/interleaved2.png
-#usr/nagios/share/docs/images/interleaved3.png
-#usr/nagios/share/docs/images/logofullsize.png
-#usr/nagios/share/docs/images/mrtgstats.png
-#usr/nagios/share/docs/images/network-heirarchy.png
-#usr/nagios/share/docs/images/network-outage1.png
-#usr/nagios/share/docs/images/network-outage2.png
-#usr/nagios/share/docs/images/noninterleaved1.png
-#usr/nagios/share/docs/images/noninterleaved2.png
-#usr/nagios/share/docs/images/physical-network.png
-#usr/nagios/share/docs/images/plugintheory.png
-#usr/nagios/share/docs/images/redudancy.png
-#usr/nagios/share/docs/images/redundancy.png
-#usr/nagios/share/docs/images/service-dependencies.png
-#usr/nagios/share/docs/images/statetransitions.png
-#usr/nagios/share/docs/images/statetransitions2.png
-#usr/nagios/share/docs/index.html
-#usr/nagios/share/docs/indirectchecks.html
-#usr/nagios/share/docs/installing.html
-#usr/nagios/share/docs/installweb.html
-#usr/nagios/share/docs/int-snmptrap.html
-#usr/nagios/share/docs/int-tcpwrappers.html
-#usr/nagios/share/docs/macros.html
-#usr/nagios/share/docs/nagiostats.html
-#usr/nagios/share/docs/networkoutages.html
-#usr/nagios/share/docs/networkreachability.html
-#usr/nagios/share/docs/notifications.html
-#usr/nagios/share/docs/parallelization.html
-#usr/nagios/share/docs/passivechecks.html
-#usr/nagios/share/docs/perfdata.html
-#usr/nagios/share/docs/plugins.html
-#usr/nagios/share/docs/plugintheory.html
-#usr/nagios/share/docs/redundancy.html
-#usr/nagios/share/docs/robots.txt
-#usr/nagios/share/docs/security.html
-#usr/nagios/share/docs/stalking.html
-#usr/nagios/share/docs/starting.html
-#usr/nagios/share/docs/statetypes.html
-#usr/nagios/share/docs/stoprestart.html
-#usr/nagios/share/docs/templaterecursion.html
-#usr/nagios/share/docs/templatetricks.html
-#usr/nagios/share/docs/timeperiods.html
-#usr/nagios/share/docs/toc.html
-#usr/nagios/share/docs/tuning.html
-#usr/nagios/share/docs/verifyconfig.html
-#usr/nagios/share/docs/volatileservices.html
-#usr/nagios/share/docs/whatsnew.html
-#usr/nagios/share/docs/xodtemplate.html
-#usr/nagios/share/images
-#usr/nagios/share/images/ack.gif
-#usr/nagios/share/images/action.gif
-#usr/nagios/share/images/command.png
-#usr/nagios/share/images/comment.gif
-#usr/nagios/share/images/contexthelp1.gif
-#usr/nagios/share/images/contexthelp2.gif
-#usr/nagios/share/images/critical.png
-#usr/nagios/share/images/delay.gif
-#usr/nagios/share/images/delete.gif
-#usr/nagios/share/images/detail.gif
-#usr/nagios/share/images/disabled.gif
-#usr/nagios/share/images/down.gif
-#usr/nagios/share/images/downtime.gif
-#usr/nagios/share/images/empty.gif
-#usr/nagios/share/images/enabled.gif
-#usr/nagios/share/images/extinfo.gif
-#usr/nagios/share/images/flapping.gif
-#usr/nagios/share/images/greendot.gif
-#usr/nagios/share/images/histogram.png
-#usr/nagios/share/images/history.gif
-#usr/nagios/share/images/hostevent.gif
-#usr/nagios/share/images/info.png
-#usr/nagios/share/images/left.gif
-#usr/nagios/share/images/logofullsize.jpg
-#usr/nagios/share/images/logos
-#usr/nagios/share/images/logos/nagios.gd2
-#usr/nagios/share/images/logos/nagios.gif
-#usr/nagios/share/images/logos/nagiosvrml.png
-#usr/nagios/share/images/logos/unknown.gd2
-#usr/nagios/share/images/logos/unknown.gif
-#usr/nagios/share/images/logrotate.png
-#usr/nagios/share/images/ndisabled.gif
-#usr/nagios/share/images/noack.gif
-#usr/nagios/share/images/notes.gif
-#usr/nagios/share/images/notify.gif
-#usr/nagios/share/images/orangedot.gif
-#usr/nagios/share/images/passiveonly.gif
-#usr/nagios/share/images/recovery.png
-#usr/nagios/share/images/redudancy.png
-#usr/nagios/share/images/redundancy.png
-#usr/nagios/share/images/restart.gif
-#usr/nagios/share/images/right.gif
-#usr/nagios/share/images/sblogo.jpg
-#usr/nagios/share/images/serviceevent.gif
-#usr/nagios/share/images/start.gif
-#usr/nagios/share/images/status.gif
-#usr/nagios/share/images/status2.gif
-#usr/nagios/share/images/status3.gif
-#usr/nagios/share/images/status4.gif
-#usr/nagios/share/images/stop.gif
-#usr/nagios/share/images/tacdisabled.jpg
-#usr/nagios/share/images/tacdisabled.png
-#usr/nagios/share/images/tacenabled.jpg
-#usr/nagios/share/images/tacenabled.png
-#usr/nagios/share/images/thermcrit.png
-#usr/nagios/share/images/thermok.png
-#usr/nagios/share/images/thermwarn.png
-#usr/nagios/share/images/trends.gif
-#usr/nagios/share/images/trendshost.png
-#usr/nagios/share/images/trendssvc.png
-#usr/nagios/share/images/unknown.png
-#usr/nagios/share/images/up.gif
-#usr/nagios/share/images/warning.png
-#usr/nagios/share/images/weblogo1.png
-#usr/nagios/share/images/zoom1.gif
-#usr/nagios/share/images/zoom2.gif
-#usr/nagios/share/index.html
-#usr/nagios/share/main.html
-#usr/nagios/share/media
-#usr/nagios/share/media/critical.wav
-#usr/nagios/share/media/hostdown.wav
-#usr/nagios/share/media/warning.wav
-#usr/nagios/share/robots.txt
-#usr/nagios/share/side.html
-#usr/nagios/share/ssi
-#usr/nagios/share/stylesheets
-#usr/nagios/share/stylesheets/avail.css
-#usr/nagios/share/stylesheets/checksanity.css
-#usr/nagios/share/stylesheets/cmd.css
-#usr/nagios/share/stylesheets/common.css
-#usr/nagios/share/stylesheets/config.css
-#usr/nagios/share/stylesheets/extinfo.css
-#usr/nagios/share/stylesheets/histogram.css
-#usr/nagios/share/stylesheets/history.css
-#usr/nagios/share/stylesheets/ministatus.css
-#usr/nagios/share/stylesheets/notifications.css
-#usr/nagios/share/stylesheets/outages.css
-#usr/nagios/share/stylesheets/showlog.css
-#usr/nagios/share/stylesheets/status.css
-#usr/nagios/share/stylesheets/statusmap.css
-#usr/nagios/share/stylesheets/summary.css
-#usr/nagios/share/stylesheets/tac.css
-#usr/nagios/share/stylesheets/trends.css
-#usr/nagios/var
-#usr/nagios/var/archives
-#usr/nagios/libexec
-#usr/nagios/libexec/check_breeze
-#usr/nagios/libexec/check_by_ssh
-#usr/nagios/libexec/check_clamd
-#usr/nagios/libexec/check_dhcp
-#usr/nagios/libexec/check_disk
-#usr/nagios/libexec/check_disk_smb
-#usr/nagios/libexec/check_dummy
-#usr/nagios/libexec/check_file_age
-#usr/nagios/libexec/check_flexlm
-#usr/nagios/libexec/check_ftp
-#usr/nagios/libexec/check_http
-#usr/nagios/libexec/check_icmp
-#usr/nagios/libexec/check_ifoperstatus
-#usr/nagios/libexec/check_ifstatus
-#usr/nagios/libexec/check_imap
-#usr/nagios/libexec/check_ircd
-#usr/nagios/libexec/check_jabber
-#usr/nagios/libexec/check_ldap
-#usr/nagios/libexec/check_ldaps
-#usr/nagios/libexec/check_load
-#usr/nagios/libexec/check_log
-#usr/nagios/libexec/check_mailq
-#usr/nagios/libexec/check_mrtg
-#usr/nagios/libexec/check_mrtgtraf
-#usr/nagios/libexec/check_nagios
-#usr/nagios/libexec/check_nntp
-#usr/nagios/libexec/check_nntps
-#usr/nagios/libexec/check_nt
-#usr/nagios/libexec/check_ntp
-#usr/nagios/libexec/check_nwstat
-#usr/nagios/libexec/check_oracle
-#usr/nagios/libexec/check_overcr
-#usr/nagios/libexec/check_ping
-#usr/nagios/libexec/check_pop
-#usr/nagios/libexec/check_procs
-#usr/nagios/libexec/check_real
-#usr/nagios/libexec/check_rpc
-#usr/nagios/libexec/check_sensors
-#usr/nagios/libexec/check_simap
-#usr/nagios/libexec/check_smtp
-#usr/nagios/libexec/check_spop
-#usr/nagios/libexec/check_ssh
-#usr/nagios/libexec/check_ssmtp
-#usr/nagios/libexec/check_swap
-#usr/nagios/libexec/check_tcp
-#usr/nagios/libexec/check_time
-#usr/nagios/libexec/check_udp
-#usr/nagios/libexec/check_udp2
-#usr/nagios/libexec/check_ups
-#usr/nagios/libexec/check_users
-#usr/nagios/libexec/check_wave
-#usr/nagios/libexec/negate
-#usr/nagios/libexec/urlize
-#usr/nagios/libexec/utils.pm
-#usr/nagios/libexec/utils.sh
-#usr/nagios/share/locale
-#usr/nagios/share/locale/de
-#usr/nagios/share/locale/de/LC_MESSAGES
-#usr/nagios/share/locale/de/LC_MESSAGES/nagios-plugins.mo
-#usr/nagios/share/locale/fr
-#usr/nagios/share/locale/fr/LC_MESSAGES
-#usr/nagios/share/locale/fr/LC_MESSAGES/nagios-plugins.mo
diff --git a/src/paks/nagios/depends.txt b/src/paks/nagios/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/nagios/install.sh b/src/paks/nagios/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/nagios/uninstall.sh b/src/paks/nagios/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/ncftp/ROOTFILES b/src/paks/ncftp/ROOTFILES
deleted file mode 100644 (file)
index 9543ada..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-usr/bin/ncftp
-usr/bin/ncftpbatch
-usr/bin/ncftpbookmarks
-usr/bin/ncftpget
-usr/bin/ncftpls
-usr/bin/ncftpput
-usr/bin/ncftpspooler
-#usr/include/ncftp.h
-#usr/include/ncftp_errno.h
-usr/lib/libncftp.so
-usr/lib/libncftp.so.2
-#usr/share/man/man1/ncftp.1
-#usr/share/man/man1/ncftpbatch.1
-#usr/share/man/man1/ncftpget.1
-#usr/share/man/man1/ncftpls.1
-#usr/share/man/man1/ncftpput.1
-#usr/share/man/man1/ncftpspooler.1
diff --git a/src/paks/ncftp/depends.txt b/src/paks/ncftp/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/ncftp/install.sh b/src/paks/ncftp/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/ncftp/uninstall.sh b/src/paks/ncftp/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/nfs/ROOTFILES b/src/paks/nfs/ROOTFILES
deleted file mode 100644 (file)
index a02ca28..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-usr/sbin/exportfs
-usr/sbin/nfsstat
-usr/sbin/nhfsgraph
-usr/sbin/nhfsnums
-usr/sbin/nhfsrun
-usr/sbin/nhfsstone
-usr/sbin/rpc.lockd
-usr/sbin/rpc.mountd
-usr/sbin/rpc.nfsd
-usr/sbin/rpc.rquotad
-usr/sbin/rpc.statd
-usr/sbin/showmount
-#usr/share/man/man5/exports.5
-#usr/share/man/man7/nfsd.7
-#usr/share/man/man8/exportfs.8
-#usr/share/man/man8/lockd.8
-#usr/share/man/man8/mountd.8
-#usr/share/man/man8/nfsd.8
-#usr/share/man/man8/nfsstat.8
-#usr/share/man/man8/nhfsgraph.8
-#usr/share/man/man8/nhfsnums.8
-#usr/share/man/man8/nhfsrun.8
-#usr/share/man/man8/nhfsstone.8
-#usr/share/man/man8/rpc.lockd.8
-#usr/share/man/man8/rpc.mountd.8
-#usr/share/man/man8/rpc.nfsd.8
-#usr/share/man/man8/rpc.rquotad.8
-#usr/share/man/man8/rpc.statd.8
-#usr/share/man/man8/rquotad.8
-#usr/share/man/man8/showmount.8
-#usr/share/man/man8/statd.8
-#var/lib/nfs
-var/lib/nfs/etab
-var/lib/nfs/rmtab
-var/lib/nfs/sm
-var/lib/nfs/sm.bak
-var/lib/nfs/state
-var/lib/nfs/xtab
diff --git a/src/paks/nfs/depends.txt b/src/paks/nfs/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/nfs/install.sh b/src/paks/nfs/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/nfs/uninstall.sh b/src/paks/nfs/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/nmap/ROOTFILES b/src/paks/nmap/ROOTFILES
deleted file mode 100644 (file)
index 06c73b3..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-usr/bin/nmap
-#usr/share/man/man1/nmap.1
-#usr/share/nmap
-usr/share/nmap/nmap-mac-prefixes
-usr/share/nmap/nmap-os-fingerprints
-usr/share/nmap/nmap-protocols
-usr/share/nmap/nmap-rpc
-usr/share/nmap/nmap-service-probes
-usr/share/nmap/nmap-services
-usr/share/nmap/nmap.dtd
-usr/share/nmap/nmap.xsl
diff --git a/src/paks/nmap/depends.txt b/src/paks/nmap/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/nmap/install.sh b/src/paks/nmap/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/nmap/uninstall.sh b/src/paks/nmap/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/ntop/ROOTFILES b/src/paks/ntop/ROOTFILES
deleted file mode 100644 (file)
index cffb1ad..0000000
+++ /dev/null
@@ -1,388 +0,0 @@
-etc/ntop
-etc/ntop/etter.finger.os.gz
-etc/ntop/ntop-cert.pem
-etc/ntop/oui.txt.gz
-etc/ntop/p2c.opt.table.gz
-etc/ntop/specialMAC.txt.gz
-usr/bin/ntop
-usr/lib/libicmpPlugin-3.2.so
-#usr/lib/libicmpPlugin.a
-usr/lib/libicmpPlugin.so
-usr/lib/liblastSeenPlugin-3.2.so
-#usr/lib/liblastSeenPlugin.a
-usr/lib/liblastSeenPlugin.so
-usr/lib/libmyrrd-3.2.so
-#usr/lib/libmyrrd.a
-#usr/lib/libmyrrd.la
-usr/lib/libmyrrd.so
-usr/lib/libnetflowPlugin-3.2.so
-#usr/lib/libnetflowPlugin.a
-usr/lib/libnetflowPlugin.so
-usr/lib/libntop-3.2.so
-#usr/lib/libntop.a
-usr/lib/libntop.la
-usr/lib/libntop.so
-usr/lib/libntopreport-3.2.so
-#usr/lib/libntopreport.a
-#usr/lib/libntopreport.la
-usr/lib/libntopreport.so
-usr/lib/libpdaPlugin-3.2.so
-#usr/lib/libpdaPlugin.a
-usr/lib/libpdaPlugin.so
-usr/lib/librrdPlugin-3.2.so
-#usr/lib/librrdPlugin.a
-usr/lib/librrdPlugin.so
-usr/lib/libsflowPlugin-3.2.so
-#usr/lib/libsflowPlugin.a
-usr/lib/libsflowPlugin.so
-usr/lib/libsnmpPlugin-3.2.so
-#usr/lib/libsnmpPlugin.a
-usr/lib/libsnmpPlugin.so
-usr/lib/libxmldumpPlugin-3.2.so
-#usr/lib/libxmldumpPlugin.a
-usr/lib/libxmldumpPlugin.so
-usr/lib/ntop
-usr/lib/ntop/plugins
-usr/lib/ntop/plugins/icmpPlugin.so
-usr/lib/ntop/plugins/lastSeenPlugin.so
-usr/lib/ntop/plugins/netflowPlugin.so
-usr/lib/ntop/plugins/pdaPlugin.so
-usr/lib/ntop/plugins/rrdPlugin.so
-usr/lib/ntop/plugins/sflowPlugin.so
-usr/lib/ntop/plugins/snmpPlugin.so
-usr/lib/ntop/plugins/xmldumpPlugin.so
-usr/lib/plugins
-#usr/share/man/man8/ntop.8
-usr/share/ntop
-usr/share/ntop/html
-usr/share/ntop/html/JSCookMenu.js
-usr/share/ntop/html/Risk_high.gif
-usr/share/ntop/html/Risk_low.gif
-usr/share/ntop/html/Risk_medium.gif
-usr/share/ntop/html/Risk_unknown.gif
-usr/share/ntop/html/antenna.gif
-usr/share/ntop/html/arrow.gif
-usr/share/ntop/html/arrow_down.gif
-usr/share/ntop/html/arrow_up.gif
-usr/share/ntop/html/back.gif
-usr/share/ntop/html/bar.gif
-usr/share/ntop/html/bg_line.gif
-usr/share/ntop/html/black.gif
-usr/share/ntop/html/blank.gif
-usr/share/ntop/html/bottom_corner.gif
-usr/share/ntop/html/bridge.gif
-usr/share/ntop/html/brocade.gif
-usr/share/ntop/html/bug.png
-usr/share/ntop/html/bulb.gif
-usr/share/ntop/html/card.gif
-usr/share/ntop/html/child.gif
-usr/share/ntop/html/clear.gif
-usr/share/ntop/html/clock.gif
-usr/share/ntop/html/collapsed.gif
-usr/share/ntop/html/copyright.png
-usr/share/ntop/html/corner.gif
-usr/share/ntop/html/deleteURL.gif
-usr/share/ntop/html/deleteUser.gif
-usr/share/ntop/html/disk.gif
-usr/share/ntop/html/dns.gif
-usr/share/ntop/html/download.gif
-usr/share/ntop/html/dump.html
-usr/share/ntop/html/emulex.gif
-usr/share/ntop/html/error.gif
-usr/share/ntop/html/expanded.gif
-usr/share/ntop/html/faq.html
-usr/share/ntop/html/favicon.ico
-usr/share/ntop/html/fback.gif
-usr/share/ntop/html/fforward.gif
-usr/share/ntop/html/forward.gif
-usr/share/ntop/html/functions.js
-usr/share/ntop/html/gauge.jpg
-usr/share/ntop/html/gaugeR.jpg
-usr/share/ntop/html/gaugeS.jpg
-usr/share/ntop/html/graph.gif
-usr/share/ntop/html/gray_bg.gif
-usr/share/ntop/html/help.html
-usr/share/ntop/html/help.png
-usr/share/ntop/html/hostSortNote.html
-usr/share/ntop/html/info.gif
-usr/share/ntop/html/initiator.gif
-usr/share/ntop/html/lock.png
-usr/share/ntop/html/mail.gif
-usr/share/ntop/html/major.gif
-usr/share/ntop/html/marchio_unipi_pant541_144.gif
-usr/share/ntop/html/menubar.png
-usr/share/ntop/html/menubar_j.png
-usr/share/ntop/html/menuline.png
-usr/share/ntop/html/minor.gif
-usr/share/ntop/html/modifyUser.gif
-usr/share/ntop/html/multihomed.gif
-usr/share/ntop/html/multivlaned.gif
-usr/share/ntop/html/nboxLogo.gif
-usr/share/ntop/html/ntop.gif
-usr/share/ntop/html/ntop.html
-usr/share/ntop/html/ntop_logo.gif
-usr/share/ntop/html/ntopdump.dtd
-usr/share/ntop/html/ntophelp.html
-usr/share/ntop/html/p2p.gif
-usr/share/ntop/html/phone.gif
-usr/share/ntop/html/pie-error.png
-usr/share/ntop/html/printer.gif
-usr/share/ntop/html/privacyNotice.html
-usr/share/ntop/html/question.gif
-usr/share/ntop/html/router.gif
-usr/share/ntop/html/seagate.gif
-usr/share/ntop/html/spacer.gif
-usr/share/ntop/html/statsicons
-usr/share/ntop/html/statsicons/flags
-usr/share/ntop/html/statsicons/flags/ad.gif
-usr/share/ntop/html/statsicons/flags/ae.gif
-usr/share/ntop/html/statsicons/flags/af.gif
-usr/share/ntop/html/statsicons/flags/ag.gif
-usr/share/ntop/html/statsicons/flags/ai.gif
-usr/share/ntop/html/statsicons/flags/al.gif
-usr/share/ntop/html/statsicons/flags/am.gif
-usr/share/ntop/html/statsicons/flags/an.gif
-usr/share/ntop/html/statsicons/flags/ao.gif
-usr/share/ntop/html/statsicons/flags/aq.gif
-usr/share/ntop/html/statsicons/flags/ar.gif
-usr/share/ntop/html/statsicons/flags/as.gif
-usr/share/ntop/html/statsicons/flags/at.gif
-usr/share/ntop/html/statsicons/flags/au.gif
-usr/share/ntop/html/statsicons/flags/aw.gif
-usr/share/ntop/html/statsicons/flags/az.gif
-usr/share/ntop/html/statsicons/flags/ba.gif
-usr/share/ntop/html/statsicons/flags/bb.gif
-usr/share/ntop/html/statsicons/flags/bd.gif
-usr/share/ntop/html/statsicons/flags/be.gif
-usr/share/ntop/html/statsicons/flags/bf.gif
-usr/share/ntop/html/statsicons/flags/bg.gif
-usr/share/ntop/html/statsicons/flags/bh.gif
-usr/share/ntop/html/statsicons/flags/bi.gif
-usr/share/ntop/html/statsicons/flags/bj.gif
-usr/share/ntop/html/statsicons/flags/bm.gif
-usr/share/ntop/html/statsicons/flags/bn.gif
-usr/share/ntop/html/statsicons/flags/bo.gif
-usr/share/ntop/html/statsicons/flags/br.gif
-usr/share/ntop/html/statsicons/flags/bs.gif
-usr/share/ntop/html/statsicons/flags/bt.gif
-usr/share/ntop/html/statsicons/flags/bv.gif
-usr/share/ntop/html/statsicons/flags/bw.gif
-usr/share/ntop/html/statsicons/flags/by.gif
-usr/share/ntop/html/statsicons/flags/bz.gif
-usr/share/ntop/html/statsicons/flags/ca.gif
-usr/share/ntop/html/statsicons/flags/cc.gif
-usr/share/ntop/html/statsicons/flags/cd.gif
-usr/share/ntop/html/statsicons/flags/cf.gif
-usr/share/ntop/html/statsicons/flags/cg.gif
-usr/share/ntop/html/statsicons/flags/ch.gif
-usr/share/ntop/html/statsicons/flags/ci.gif
-usr/share/ntop/html/statsicons/flags/ck.gif
-usr/share/ntop/html/statsicons/flags/cl.gif
-usr/share/ntop/html/statsicons/flags/cm.gif
-usr/share/ntop/html/statsicons/flags/cn.gif
-usr/share/ntop/html/statsicons/flags/co.gif
-usr/share/ntop/html/statsicons/flags/com.gif
-usr/share/ntop/html/statsicons/flags/cr.gif
-usr/share/ntop/html/statsicons/flags/cu.gif
-usr/share/ntop/html/statsicons/flags/cv.gif
-usr/share/ntop/html/statsicons/flags/cx.gif
-usr/share/ntop/html/statsicons/flags/cy.gif
-usr/share/ntop/html/statsicons/flags/cz.gif
-usr/share/ntop/html/statsicons/flags/de.gif
-usr/share/ntop/html/statsicons/flags/dj.gif
-usr/share/ntop/html/statsicons/flags/dk.gif
-usr/share/ntop/html/statsicons/flags/dm.gif
-usr/share/ntop/html/statsicons/flags/do.gif
-usr/share/ntop/html/statsicons/flags/dz.gif
-usr/share/ntop/html/statsicons/flags/ec.gif
-usr/share/ntop/html/statsicons/flags/edu.gif
-usr/share/ntop/html/statsicons/flags/ee.gif
-usr/share/ntop/html/statsicons/flags/eg.gif
-usr/share/ntop/html/statsicons/flags/eh.gif
-usr/share/ntop/html/statsicons/flags/es.gif
-usr/share/ntop/html/statsicons/flags/et.gif
-usr/share/ntop/html/statsicons/flags/eu.gif
-usr/share/ntop/html/statsicons/flags/fi.gif
-usr/share/ntop/html/statsicons/flags/fj.gif
-usr/share/ntop/html/statsicons/flags/fk.gif
-usr/share/ntop/html/statsicons/flags/fm.gif
-usr/share/ntop/html/statsicons/flags/fo.gif
-usr/share/ntop/html/statsicons/flags/fr.gif
-usr/share/ntop/html/statsicons/flags/fx.gif
-usr/share/ntop/html/statsicons/flags/ga.gif
-usr/share/ntop/html/statsicons/flags/gb.gif
-usr/share/ntop/html/statsicons/flags/gd.gif
-usr/share/ntop/html/statsicons/flags/ge.gif
-usr/share/ntop/html/statsicons/flags/gf.gif
-usr/share/ntop/html/statsicons/flags/gh.gif
-usr/share/ntop/html/statsicons/flags/gi.gif
-usr/share/ntop/html/statsicons/flags/gl.gif
-usr/share/ntop/html/statsicons/flags/gm.gif
-usr/share/ntop/html/statsicons/flags/gn.gif
-usr/share/ntop/html/statsicons/flags/gov.gif
-usr/share/ntop/html/statsicons/flags/gp.gif
-usr/share/ntop/html/statsicons/flags/gq.gif
-usr/share/ntop/html/statsicons/flags/gr.gif
-usr/share/ntop/html/statsicons/flags/gt.gif
-usr/share/ntop/html/statsicons/flags/gu.gif
-usr/share/ntop/html/statsicons/flags/gw.gif
-usr/share/ntop/html/statsicons/flags/gy.gif
-usr/share/ntop/html/statsicons/flags/hk.gif
-usr/share/ntop/html/statsicons/flags/hm.gif
-usr/share/ntop/html/statsicons/flags/hn.gif
-usr/share/ntop/html/statsicons/flags/hr.gif
-usr/share/ntop/html/statsicons/flags/ht.gif
-usr/share/ntop/html/statsicons/flags/hu.gif
-usr/share/ntop/html/statsicons/flags/id.gif
-usr/share/ntop/html/statsicons/flags/ie.gif
-usr/share/ntop/html/statsicons/flags/il.gif
-usr/share/ntop/html/statsicons/flags/in.gif
-usr/share/ntop/html/statsicons/flags/int.gif
-usr/share/ntop/html/statsicons/flags/io.gif
-usr/share/ntop/html/statsicons/flags/iq.gif
-usr/share/ntop/html/statsicons/flags/ir.gif
-usr/share/ntop/html/statsicons/flags/is.gif
-usr/share/ntop/html/statsicons/flags/it.gif
-usr/share/ntop/html/statsicons/flags/jm.gif
-usr/share/ntop/html/statsicons/flags/jo.gif
-usr/share/ntop/html/statsicons/flags/jp.gif
-usr/share/ntop/html/statsicons/flags/ke.gif
-usr/share/ntop/html/statsicons/flags/kg.gif
-usr/share/ntop/html/statsicons/flags/kh.gif
-usr/share/ntop/html/statsicons/flags/ki.gif
-usr/share/ntop/html/statsicons/flags/km.gif
-usr/share/ntop/html/statsicons/flags/kn.gif
-usr/share/ntop/html/statsicons/flags/kp.gif
-usr/share/ntop/html/statsicons/flags/kr.gif
-usr/share/ntop/html/statsicons/flags/kw.gif
-usr/share/ntop/html/statsicons/flags/ky.gif
-usr/share/ntop/html/statsicons/flags/kz.gif
-usr/share/ntop/html/statsicons/flags/la.gif
-usr/share/ntop/html/statsicons/flags/lb.gif
-usr/share/ntop/html/statsicons/flags/lc.gif
-usr/share/ntop/html/statsicons/flags/li.gif
-usr/share/ntop/html/statsicons/flags/lk.gif
-usr/share/ntop/html/statsicons/flags/local.gif
-usr/share/ntop/html/statsicons/flags/localhost.gif
-usr/share/ntop/html/statsicons/flags/lr.gif
-usr/share/ntop/html/statsicons/flags/ls.gif
-usr/share/ntop/html/statsicons/flags/lt.gif
-usr/share/ntop/html/statsicons/flags/lu.gif
-usr/share/ntop/html/statsicons/flags/lv.gif
-usr/share/ntop/html/statsicons/flags/ly.gif
-usr/share/ntop/html/statsicons/flags/ma.gif
-usr/share/ntop/html/statsicons/flags/mc.gif
-usr/share/ntop/html/statsicons/flags/md.gif
-usr/share/ntop/html/statsicons/flags/mil.gif
-usr/share/ntop/html/statsicons/flags/mk.gif
-usr/share/ntop/html/statsicons/flags/ml.gif
-usr/share/ntop/html/statsicons/flags/mn.gif
-usr/share/ntop/html/statsicons/flags/mo.gif
-usr/share/ntop/html/statsicons/flags/mq.gif
-usr/share/ntop/html/statsicons/flags/mr.gif
-usr/share/ntop/html/statsicons/flags/mt.gif
-usr/share/ntop/html/statsicons/flags/mu.gif
-usr/share/ntop/html/statsicons/flags/mx.gif
-usr/share/ntop/html/statsicons/flags/my.gif
-usr/share/ntop/html/statsicons/flags/mz.gif
-usr/share/ntop/html/statsicons/flags/na.gif
-usr/share/ntop/html/statsicons/flags/ne.gif
-usr/share/ntop/html/statsicons/flags/net.gif
-usr/share/ntop/html/statsicons/flags/ng.gif
-usr/share/ntop/html/statsicons/flags/ni.gif
-usr/share/ntop/html/statsicons/flags/nl.gif
-usr/share/ntop/html/statsicons/flags/no.gif
-usr/share/ntop/html/statsicons/flags/np.gif
-usr/share/ntop/html/statsicons/flags/nu.gif
-usr/share/ntop/html/statsicons/flags/nz.gif
-usr/share/ntop/html/statsicons/flags/om.gif
-usr/share/ntop/html/statsicons/flags/org.gif
-usr/share/ntop/html/statsicons/flags/pa.gif
-usr/share/ntop/html/statsicons/flags/pe.gif
-usr/share/ntop/html/statsicons/flags/pf.gif
-usr/share/ntop/html/statsicons/flags/pg.gif
-usr/share/ntop/html/statsicons/flags/ph.gif
-usr/share/ntop/html/statsicons/flags/pk.gif
-usr/share/ntop/html/statsicons/flags/pl.gif
-usr/share/ntop/html/statsicons/flags/pr.gif
-usr/share/ntop/html/statsicons/flags/ps.gif
-usr/share/ntop/html/statsicons/flags/pt.gif
-usr/share/ntop/html/statsicons/flags/py.gif
-usr/share/ntop/html/statsicons/flags/qa.gif
-usr/share/ntop/html/statsicons/flags/ro.gif
-usr/share/ntop/html/statsicons/flags/ru.gif
-usr/share/ntop/html/statsicons/flags/rw.gif
-usr/share/ntop/html/statsicons/flags/sa.gif
-usr/share/ntop/html/statsicons/flags/sb.gif
-usr/share/ntop/html/statsicons/flags/sd.gif
-usr/share/ntop/html/statsicons/flags/se.gif
-usr/share/ntop/html/statsicons/flags/sg.gif
-usr/share/ntop/html/statsicons/flags/si.gif
-usr/share/ntop/html/statsicons/flags/sk.gif
-usr/share/ntop/html/statsicons/flags/sm.gif
-usr/share/ntop/html/statsicons/flags/sn.gif
-usr/share/ntop/html/statsicons/flags/su.gif
-usr/share/ntop/html/statsicons/flags/sv.gif
-usr/share/ntop/html/statsicons/flags/sy.gif
-usr/share/ntop/html/statsicons/flags/sz.gif
-usr/share/ntop/html/statsicons/flags/tc.gif
-usr/share/ntop/html/statsicons/flags/td.gif
-usr/share/ntop/html/statsicons/flags/tf.gif
-usr/share/ntop/html/statsicons/flags/tg.gif
-usr/share/ntop/html/statsicons/flags/th.gif
-usr/share/ntop/html/statsicons/flags/tj.gif
-usr/share/ntop/html/statsicons/flags/tk.gif
-usr/share/ntop/html/statsicons/flags/tm.gif
-usr/share/ntop/html/statsicons/flags/tn.gif
-usr/share/ntop/html/statsicons/flags/to.gif
-usr/share/ntop/html/statsicons/flags/tr.gif
-usr/share/ntop/html/statsicons/flags/tt.gif
-usr/share/ntop/html/statsicons/flags/tw.gif
-usr/share/ntop/html/statsicons/flags/tz.gif
-usr/share/ntop/html/statsicons/flags/ua.gif
-usr/share/ntop/html/statsicons/flags/uk.gif
-usr/share/ntop/html/statsicons/flags/us.gif
-usr/share/ntop/html/statsicons/flags/uy.gif
-usr/share/ntop/html/statsicons/flags/uz.gif
-usr/share/ntop/html/statsicons/flags/va.gif
-usr/share/ntop/html/statsicons/flags/vc.gif
-usr/share/ntop/html/statsicons/flags/ve.gif
-usr/share/ntop/html/statsicons/flags/vg.gif
-usr/share/ntop/html/statsicons/flags/vi.gif
-usr/share/ntop/html/statsicons/flags/vn.gif
-usr/share/ntop/html/statsicons/flags/wf.gif
-usr/share/ntop/html/statsicons/flags/ws.gif
-usr/share/ntop/html/statsicons/flags/ye.gif
-usr/share/ntop/html/statsicons/flags/yu.gif
-usr/share/ntop/html/statsicons/flags/za.gif
-usr/share/ntop/html/statsicons/flags/ze.gif
-usr/share/ntop/html/statsicons/flags/zm.gif
-usr/share/ntop/html/statsicons/flags/zw.gif
-usr/share/ntop/html/statsicons/os
-usr/share/ntop/html/statsicons/os/aix.gif
-usr/share/ntop/html/statsicons/os/amiga.gif
-usr/share/ntop/html/statsicons/os/be.gif
-usr/share/ntop/html/statsicons/os/bsd.gif
-usr/share/ntop/html/statsicons/os/cisco.gif
-usr/share/ntop/html/statsicons/os/hp.gif
-usr/share/ntop/html/statsicons/os/irix.gif
-usr/share/ntop/html/statsicons/os/linux.gif
-usr/share/ntop/html/statsicons/os/mac.gif
-usr/share/ntop/html/statsicons/os/novell.gif
-usr/share/ntop/html/statsicons/os/os2.gif
-usr/share/ntop/html/statsicons/os/sun.gif
-usr/share/ntop/html/statsicons/os/windows.gif
-usr/share/ntop/html/style.css
-usr/share/ntop/html/switch.gif
-usr/share/ntop/html/theme.css
-usr/share/ntop/html/theme.js
-usr/share/ntop/html/upload.gif
-usr/share/ntop/html/url.gif
-usr/share/ntop/html/user.gif
-usr/share/ntop/html/users.gif
-usr/share/ntop/html/vgauge.jpg
-usr/share/ntop/html/warning.gif
-usr/share/ntop/html/web.gif
-usr/share/ntop/html/wheel.gif
-usr/share/ntop/html/white_bg.gif
-usr/var/ntop
\ No newline at end of file
diff --git a/src/paks/ntop/depends.txt b/src/paks/ntop/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/ntop/install.sh b/src/paks/ntop/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/ntop/uninstall.sh b/src/paks/ntop/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/portmap/ROOTFILES b/src/paks/portmap/ROOTFILES
deleted file mode 100644 (file)
index 528386d..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-sbin/portmap
-usr/sbin/pmap_dump
-usr/sbin/pmap_set
-#usr/share/man/man8/pmap_dump.8
-#usr/share/man/man8/pmap_set.8
-#usr/share/man/man8/portmap.8
-usr/lib/libwrap.so
-usr/lib/libwrap.so.0
-usr/lib/libwrap.so.0.7.6
diff --git a/src/paks/portmap/depends.txt b/src/paks/portmap/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/portmap/install.sh b/src/paks/portmap/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/portmap/uninstall.sh b/src/paks/portmap/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/postfix/ROOTFILES b/src/paks/postfix/ROOTFILES
deleted file mode 100644 (file)
index 9efbe68..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-etc/aliases
-#etc/postfix
-etc/postfix/LICENSE
-etc/postfix/TLS_LICENSE
-etc/postfix/access
-etc/postfix/canonical
-etc/postfix/generic
-etc/postfix/header_checks
-etc/postfix/main.cf
-etc/postfix/makedefs.out
-etc/postfix/master.cf
-etc/postfix/post-install
-etc/postfix/postfix-files
-etc/postfix/postfix-script
-etc/postfix/relocated
-etc/postfix/transport
-etc/postfix/virtual
-etc/postfix/mysql-canonical.cf
-etc/postfix/mysql-mydestination.cf
-etc/postfix/mysql-virtual.cf
-usr/bin/mailq
-usr/bin/newaliases
-#usr/lib/postfix
-usr/lib/postfix/anvil
-usr/lib/postfix/bounce
-usr/lib/postfix/cleanup
-usr/lib/postfix/discard
-usr/lib/postfix/error
-usr/lib/postfix/flush
-usr/lib/postfix/lmtp
-usr/lib/postfix/local
-usr/lib/postfix/master
-usr/lib/postfix/nqmgr
-usr/lib/postfix/oqmgr
-usr/lib/postfix/pickup
-usr/lib/postfix/pipe
-usr/lib/postfix/proxymap
-usr/lib/postfix/qmgr
-usr/lib/postfix/qmqpd
-usr/lib/postfix/scache
-usr/lib/postfix/showq
-usr/lib/postfix/smtp
-usr/lib/postfix/smtpd
-usr/lib/postfix/spawn
-usr/lib/postfix/tlsmgr
-usr/lib/postfix/trivial-rewrite
-usr/lib/postfix/verify
-usr/lib/postfix/virtual
-usr/sbin/postalias
-usr/sbin/postcat
-usr/sbin/postconf
-usr/sbin/postdrop
-usr/sbin/postfix
-usr/sbin/postkick
-usr/sbin/postlock
-usr/sbin/postlog
-usr/sbin/postmap
-usr/sbin/postqueue
-usr/sbin/postsuper
-usr/sbin/sendmail
-#usr/share/man/man1/mailq.1
-#usr/share/man/man1/newaliases.1
-#usr/share/man/man1/postalias.1
-#usr/share/man/man1/postcat.1
-#usr/share/man/man1/postconf.1
-#usr/share/man/man1/postdrop.1
-#usr/share/man/man1/postfix.1
-#usr/share/man/man1/postkick.1
-#usr/share/man/man1/postlock.1
-#usr/share/man/man1/postlog.1
-#usr/share/man/man1/postmap.1
-#usr/share/man/man1/postqueue.1
-#usr/share/man/man1/postsuper.1
-#usr/share/man/man1/sendmail.1
-#usr/share/man/man5/access.5
-#usr/share/man/man5/aliases.5
-#usr/share/man/man5/body_checks.5
-#usr/share/man/man5/canonical.5
-#usr/share/man/man5/cidr_table.5
-#usr/share/man/man5/generic.5
-#usr/share/man/man5/header_checks.5
-#usr/share/man/man5/ldap_table.5
-#usr/share/man/man5/master.5
-#usr/share/man/man5/mysql_table.5
-#usr/share/man/man5/nisplus_table.5
-#usr/share/man/man5/pcre_table.5
-#usr/share/man/man5/pgsql_table.5
-#usr/share/man/man5/postconf.5
-#usr/share/man/man5/regexp_table.5
-#usr/share/man/man5/relocated.5
-#usr/share/man/man5/transport.5
-#usr/share/man/man5/virtual.5
-#usr/share/man/man8/anvil.8
-#usr/share/man/man8/bounce.8
-#usr/share/man/man8/cleanup.8
-#usr/share/man/man8/defer.8
-#usr/share/man/man8/discard.8
-#usr/share/man/man8/error.8
-#usr/share/man/man8/flush.8
-#usr/share/man/man8/lmtp.8
-#usr/share/man/man8/local.8
-#usr/share/man/man8/master.8
-#usr/share/man/man8/oqmgr.8
-#usr/share/man/man8/pickup.8
-#usr/share/man/man8/pipe.8
-#usr/share/man/man8/proxymap.8
-#usr/share/man/man8/qmgr.8
-#usr/share/man/man8/qmqpd.8
-#usr/share/man/man8/scache.8
-#usr/share/man/man8/showq.8
-#usr/share/man/man8/smtp.8
-#usr/share/man/man8/smtpd.8
-#usr/share/man/man8/spawn.8
-#usr/share/man/man8/tlsmgr.8
-#usr/share/man/man8/trace.8
-#usr/share/man/man8/trivial-rewrite.8
-#usr/share/man/man8/verify.8
-#usr/share/man/man8/virtual.8
-#var/spool/postfix
-var/spool/postfix/active
-var/spool/postfix/bounce
-var/spool/postfix/corrupt
-var/spool/postfix/defer
-var/spool/postfix/deferred
-var/spool/postfix/flush
-var/spool/postfix/hold
-var/spool/postfix/incoming
-var/spool/postfix/maildrop
-var/spool/postfix/pid
-var/spool/postfix/private
-var/spool/postfix/public
-var/spool/postfix/saved
-var/spool/postfix/trace
\ No newline at end of file
diff --git a/src/paks/postfix/depends.txt b/src/paks/postfix/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/postfix/install.sh b/src/paks/postfix/install.sh
deleted file mode 100755 (executable)
index e69de29..0000000
diff --git a/src/paks/postfix/uninstall.sh b/src/paks/postfix/uninstall.sh
deleted file mode 100755 (executable)
index e69de29..0000000
diff --git a/src/paks/procmail/ROOTFILES b/src/paks/procmail/ROOTFILES
deleted file mode 100644 (file)
index 2429f51..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-etc/procmailrc
-usr/bin/formail
-usr/bin/lockfile
-usr/bin/mailstat
-usr/bin/procmail
-#usr/share/man/man1/formail.1
-#usr/share/man/man1/lockfile.1
-#usr/share/man/man1/procmail.1
-#usr/share/man/man5/procmailex.5
-#usr/share/man/man5/procmailrc.5
-#usr/share/man/man5/procmailsc.5
diff --git a/src/paks/procmail/depends.txt b/src/paks/procmail/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/procmail/install.sh b/src/paks/procmail/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/procmail/uninstall.sh b/src/paks/procmail/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/razor/ROOTFILES b/src/paks/razor/ROOTFILES
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/razor/depends.txt b/src/paks/razor/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/razor/install.sh b/src/paks/razor/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/razor/uninstall.sh b/src/paks/razor/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/rsync/ROOTFILES b/src/paks/rsync/ROOTFILES
deleted file mode 100644 (file)
index 59c8be9..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/bin/rsync
-#usr/share/man/man1/rsync.1
-#usr/share/man/man5/rsyncd.conf.5
diff --git a/src/paks/rsync/depends.txt b/src/paks/rsync/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/rsync/install.sh b/src/paks/rsync/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/rsync/uninstall.sh b/src/paks/rsync/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/samba/ROOTFILES b/src/paks/samba/ROOTFILES
deleted file mode 100644 (file)
index 59afb3c..0000000
+++ /dev/null
@@ -1,569 +0,0 @@
-lib/libnss_winbind.so
-lib/libnss_winbind.so.2
-lib/libnss_wins.so
-lib/libnss_wins.so.2
-sbin/mount.smbfs
-usr/bin/eventlogadm
-usr/bin/findsmb
-usr/bin/net
-usr/bin/nmblookup
-usr/bin/ntlm_auth
-usr/bin/pdbedit
-usr/bin/profiles
-usr/bin/rpcclient
-usr/bin/smbcacls
-usr/bin/smbclient
-usr/bin/smbcontrol
-usr/bin/smbcquotas
-usr/bin/smbget
-usr/bin/smbmnt
-usr/bin/smbmount
-usr/bin/smbpasswd
-usr/bin/smbspool
-usr/bin/smbstatus
-usr/bin/smbtar
-usr/bin/smbtree
-usr/bin/smbumount
-usr/bin/tdbbackup
-usr/bin/tdbdump
-usr/bin/tdbtool
-usr/bin/testparm
-usr/bin/wbinfo
-#usr/include/libmsrpc.h
-#usr/include/libsmbclient.h
-usr/lib/libsmbclient.so
-usr/lib/libsmbclient.so.0
-#usr/lib/samba
-#usr/lib/samba/auth
-usr/lib/samba/auth/script.so
-#usr/lib/samba/charset
-usr/lib/samba/charset/CP437.so
-usr/lib/samba/charset/CP850.so
-usr/lib/samba/de.msg
-usr/lib/samba/en.msg
-usr/lib/samba/fr.msg
-usr/lib/samba/idmap
-usr/lib/samba/it.msg
-usr/lib/samba/ja.msg
-usr/lib/samba/libmsrpc.so
-usr/lib/samba/libsmbclient.so
-usr/lib/samba/lowcase.dat
-usr/lib/samba/nl.msg
-usr/lib/samba/pdb
-usr/lib/samba/pl.msg
-usr/lib/samba/rpc
-usr/lib/samba/tr.msg
-usr/lib/samba/upcase.dat
-usr/lib/samba/valid.dat
-#usr/lib/samba/vfs
-usr/lib/samba/vfs/audit.so
-usr/lib/samba/vfs/cap.so
-usr/lib/samba/vfs/default_quota.so
-usr/lib/samba/vfs/expand_msdfs.so
-usr/lib/samba/vfs/extd_audit.so
-usr/lib/samba/vfs/fake_perms.so
-usr/lib/samba/vfs/full_audit.so
-usr/lib/samba/vfs/netatalk.so
-usr/lib/samba/vfs/readonly.so
-usr/lib/samba/vfs/recycle.so
-usr/lib/samba/vfs/shadow_copy.so
-usr/sbin/nmbd
-usr/sbin/smbd
-usr/sbin/swat
-usr/sbin/winbindd
-#usr/share/man/man1/findsmb.1
-#usr/share/man/man1/log2pcap.1
-#usr/share/man/man1/nmblookup.1
-#usr/share/man/man1/ntlm_auth.1
-#usr/share/man/man1/profiles.1
-#usr/share/man/man1/rpcclient.1
-#usr/share/man/man1/smbcacls.1
-#usr/share/man/man1/smbclient.1
-#usr/share/man/man1/smbcontrol.1
-#usr/share/man/man1/smbcquotas.1
-#usr/share/man/man1/smbget.1
-#usr/share/man/man1/smbstatus.1
-#usr/share/man/man1/smbtar.1
-#usr/share/man/man1/smbtree.1
-#usr/share/man/man1/testparm.1
-#usr/share/man/man1/vfstest.1
-#usr/share/man/man1/wbinfo.1
-#usr/share/man/man5/lmhosts.5
-#usr/share/man/man5/smb.conf.5
-#usr/share/man/man5/smbgetrc.5
-#usr/share/man/man5/smbpasswd.5
-#usr/share/man/man7/libsmbclient.7
-#usr/share/man/man7/pam_winbind.7
-#usr/share/man/man7/samba.7
-#usr/share/man/man8/mount.cifs.8
-#usr/share/man/man8/net.8
-#usr/share/man/man8/nmbd.8
-#usr/share/man/man8/pdbedit.8
-#usr/share/man/man8/smbd.8
-#usr/share/man/man8/smbmnt.8
-#usr/share/man/man8/smbmount.8
-#usr/share/man/man8/smbpasswd.8
-#usr/share/man/man8/smbspool.8
-#usr/share/man/man8/smbumount.8
-#usr/share/man/man8/swat.8
-#usr/share/man/man8/tdbbackup.8
-#usr/share/man/man8/tdbdump.8
-#usr/share/man/man8/umount.cifs.8
-#usr/share/man/man8/winbindd.8
-#usr/share/samba
-#usr/share/samba/swat
-#usr/share/samba/swat/help
-#usr/share/samba/swat/help/Samba3-ByExample
-usr/share/samba/swat/help/Samba3-ByExample/2000users.html
-usr/share/samba/swat/help/Samba3-ByExample/Big500users.html
-usr/share/samba/swat/help/Samba3-ByExample/DMSMig.html
-usr/share/samba/swat/help/Samba3-ByExample/DomApps.html
-usr/share/samba/swat/help/Samba3-ByExample/ExNetworks.html
-usr/share/samba/swat/help/Samba3-ByExample/HA.html
-usr/share/samba/swat/help/Samba3-ByExample/RefSection.html
-usr/share/samba/swat/help/Samba3-ByExample/appendix.html
-usr/share/samba/swat/help/Samba3-ByExample/ch14.html
-usr/share/samba/swat/help/Samba3-ByExample/go01.html
-usr/share/samba/swat/help/Samba3-ByExample/gpl.html
-usr/share/samba/swat/help/Samba3-ByExample/happy.html
-#usr/share/samba/swat/help/Samba3-ByExample/images
-usr/share/samba/swat/help/Samba3-ByExample/images/AccountingNetwork.png
-usr/share/samba/swat/help/Samba3-ByExample/images/Charity-Network.png
-usr/share/samba/swat/help/Samba3-ByExample/images/HostAnnouncment.png
-usr/share/samba/swat/help/Samba3-ByExample/images/NullConnect.png
-usr/share/samba/swat/help/Samba3-ByExample/images/UNIX-Samba-and-LDAP.png
-usr/share/samba/swat/help/Samba3-ByExample/images/UserConnect.png
-usr/share/samba/swat/help/Samba3-ByExample/images/UserMgrNT4.png
-usr/share/samba/swat/help/Samba3-ByExample/images/WINREPRESSME-Capture.png
-usr/share/samba/swat/help/Samba3-ByExample/images/WINREPRESSME-Capture2.png
-usr/share/samba/swat/help/Samba3-ByExample/images/WindowsXP-NullConnection.png
-usr/share/samba/swat/help/Samba3-ByExample/images/WindowsXP-UserConnection.png
-usr/share/samba/swat/help/Samba3-ByExample/images/XP-screen001.png
-usr/share/samba/swat/help/Samba3-ByExample/images/acct2net.png
-usr/share/samba/swat/help/Samba3-ByExample/images/ch7-dual-additive-LDAP-Ok.png
-usr/share/samba/swat/help/Samba3-ByExample/images/ch7-dual-additive-LDAP.png
-usr/share/samba/swat/help/Samba3-ByExample/images/ch7-fail-overLDAP.png
-usr/share/samba/swat/help/Samba3-ByExample/images/ch7-singleLDAP.png
-usr/share/samba/swat/help/Samba3-ByExample/images/ch8-migration.png
-usr/share/samba/swat/help/Samba3-ByExample/images/chap4-net.png
-usr/share/samba/swat/help/Samba3-ByExample/images/chap5-net.png
-usr/share/samba/swat/help/Samba3-ByExample/images/chap6-net.png
-usr/share/samba/swat/help/Samba3-ByExample/images/chap7-idresol.png
-usr/share/samba/swat/help/Samba3-ByExample/images/chap7-net-Ar.png
-usr/share/samba/swat/help/Samba3-ByExample/images/chap7-net2-Br.png
-usr/share/samba/swat/help/Samba3-ByExample/images/chap9-ADSDC.png
-usr/share/samba/swat/help/Samba3-ByExample/images/chap9-SambaDC.png
-usr/share/samba/swat/help/Samba3-ByExample/images/imc-usermanager2.png
-usr/share/samba/swat/help/Samba3-ByExample/images/lam-config.png
-usr/share/samba/swat/help/Samba3-ByExample/images/lam-group-members.png
-usr/share/samba/swat/help/Samba3-ByExample/images/lam-groups.png
-usr/share/samba/swat/help/Samba3-ByExample/images/lam-hosts.png
-usr/share/samba/swat/help/Samba3-ByExample/images/lam-login.png
-usr/share/samba/swat/help/Samba3-ByExample/images/lam-users.png
-usr/share/samba/swat/help/Samba3-ByExample/images/openmag.png
-usr/share/samba/swat/help/Samba3-ByExample/images/wxpp001.png
-usr/share/samba/swat/help/Samba3-ByExample/images/wxpp004.png
-usr/share/samba/swat/help/Samba3-ByExample/images/wxpp006.png
-usr/share/samba/swat/help/Samba3-ByExample/images/wxpp007.png
-usr/share/samba/swat/help/Samba3-ByExample/images/wxpp008.png
-usr/share/samba/swat/help/Samba3-ByExample/index.html
-usr/share/samba/swat/help/Samba3-ByExample/ix01.html
-usr/share/samba/swat/help/Samba3-ByExample/kerberos.html
-usr/share/samba/swat/help/Samba3-ByExample/ntmigration.html
-usr/share/samba/swat/help/Samba3-ByExample/nw4migration.html
-usr/share/samba/swat/help/Samba3-ByExample/pr01.html
-usr/share/samba/swat/help/Samba3-ByExample/pr02.html
-usr/share/samba/swat/help/Samba3-ByExample/pr03.html
-usr/share/samba/swat/help/Samba3-ByExample/preface.html
-usr/share/samba/swat/help/Samba3-ByExample/primer.html
-usr/share/samba/swat/help/Samba3-ByExample/secure.html
-usr/share/samba/swat/help/Samba3-ByExample/simple.html
-usr/share/samba/swat/help/Samba3-ByExample/small.html
-usr/share/samba/swat/help/Samba3-ByExample/unixclients.html
-usr/share/samba/swat/help/Samba3-ByExample/upgrades.html
-#usr/share/samba/swat/help/Samba3-Developers-Guide
-usr/share/samba/swat/help/Samba3-Developers-Guide/CodingSuggestions.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/Packaging.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/architecture.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/contributing.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/debug.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/devprinting.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/index.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/internals.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/modules.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/ntdomain.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/parsing.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/pt01.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/pt02.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/pt03.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/pt04.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/pt05.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/pwencrypt.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/rpc-plugin.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/tracing.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/unix-smb.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/vfs.html
-usr/share/samba/swat/help/Samba3-Developers-Guide/wins.html
-#usr/share/samba/swat/help/Samba3-HOWTO
-usr/share/samba/swat/help/Samba3-HOWTO/AccessControls.html
-usr/share/samba/swat/help/Samba3-HOWTO/AdvancedNetworkManagement.html
-usr/share/samba/swat/help/Samba3-HOWTO/Appendix.html
-usr/share/samba/swat/help/Samba3-HOWTO/Backup.html
-usr/share/samba/swat/help/Samba3-HOWTO/CUPS-printing.html
-usr/share/samba/swat/help/Samba3-HOWTO/ClientConfig.html
-usr/share/samba/swat/help/Samba3-HOWTO/DNSDHCP.html
-usr/share/samba/swat/help/Samba3-HOWTO/FastStart.html
-usr/share/samba/swat/help/Samba3-HOWTO/InterdomainTrusts.html
-usr/share/samba/swat/help/Samba3-HOWTO/IntroSMB.html
-usr/share/samba/swat/help/Samba3-HOWTO/NT4Migration.html
-usr/share/samba/swat/help/Samba3-HOWTO/NetCommand.html
-usr/share/samba/swat/help/Samba3-HOWTO/NetworkBrowsing.html
-usr/share/samba/swat/help/Samba3-HOWTO/Other-Clients.html
-usr/share/samba/swat/help/Samba3-HOWTO/PolicyMgmt.html
-usr/share/samba/swat/help/Samba3-HOWTO/Portability.html
-usr/share/samba/swat/help/Samba3-HOWTO/ProfileMgmt.html
-usr/share/samba/swat/help/Samba3-HOWTO/SWAT.html
-usr/share/samba/swat/help/Samba3-HOWTO/SambaHA.html
-usr/share/samba/swat/help/Samba3-HOWTO/ServerType.html
-usr/share/samba/swat/help/Samba3-HOWTO/StandAloneServer.html
-usr/share/samba/swat/help/Samba3-HOWTO/TOSHpreface.html
-usr/share/samba/swat/help/Samba3-HOWTO/VFS.html
-usr/share/samba/swat/help/Samba3-HOWTO/bugreport.html
-usr/share/samba/swat/help/Samba3-HOWTO/cfgsmarts.html
-usr/share/samba/swat/help/Samba3-HOWTO/ch-ldap-tls.html
-usr/share/samba/swat/help/Samba3-HOWTO/ch45.html
-usr/share/samba/swat/help/Samba3-HOWTO/classicalprinting.html
-usr/share/samba/swat/help/Samba3-HOWTO/compiling.html
-usr/share/samba/swat/help/Samba3-HOWTO/diagnosis.html
-usr/share/samba/swat/help/Samba3-HOWTO/domain-member.html
-usr/share/samba/swat/help/Samba3-HOWTO/go01.html
-usr/share/samba/swat/help/Samba3-HOWTO/gpl.html
-usr/share/samba/swat/help/Samba3-HOWTO/groupmapping.html
-usr/share/samba/swat/help/Samba3-HOWTO/idmapper.html
-#usr/share/samba/swat/help/Samba3-HOWTO/images
-usr/share/samba/swat/help/Samba3-HOWTO/images/10small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/11small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/12small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/13small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/14small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/1small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/2small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/3small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/4small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/5small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/6small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/7small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/8small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/9small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/WME001.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/WME002.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/WME003.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/WME005.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/WME009.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/WME010.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/WME013.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/WME014.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/WXPP002.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/WXPP003.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/WXPP005.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/WXPP009.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/WXPP014.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/a_small.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/access1.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/browsing1.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/cups1.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/cups2.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/domain.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/ethereal1.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/ethereal2.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/idmap-gid2sid.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/idmap-sid2gid.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/idmap-sid2uid.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/idmap-store-gid2sid.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/idmap-uid2sid.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/idmap_winbind_no_loop.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/pdftoepsonusb.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/pdftosocket.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/trusts1.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/w2kp001.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/w2kp002.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/w2kp003.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/w2kp004.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/w2kp005.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/wxpp001.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/wxpp004.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/wxpp006.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/wxpp007.png
-usr/share/samba/swat/help/Samba3-HOWTO/images/wxpp008.png
-usr/share/samba/swat/help/Samba3-HOWTO/index.html
-usr/share/samba/swat/help/Samba3-HOWTO/install.html
-usr/share/samba/swat/help/Samba3-HOWTO/integrate-ms-networks.html
-usr/share/samba/swat/help/Samba3-HOWTO/introduction.html
-usr/share/samba/swat/help/Samba3-HOWTO/ix01.html
-usr/share/samba/swat/help/Samba3-HOWTO/largefile.html
-usr/share/samba/swat/help/Samba3-HOWTO/locking.html
-usr/share/samba/swat/help/Samba3-HOWTO/migration.html
-usr/share/samba/swat/help/Samba3-HOWTO/msdfs.html
-usr/share/samba/swat/help/Samba3-HOWTO/optional.html
-usr/share/samba/swat/help/Samba3-HOWTO/pam.html
-usr/share/samba/swat/help/Samba3-HOWTO/passdb.html
-usr/share/samba/swat/help/Samba3-HOWTO/pr01.html
-usr/share/samba/swat/help/Samba3-HOWTO/pr02.html
-usr/share/samba/swat/help/Samba3-HOWTO/pr03.html
-usr/share/samba/swat/help/Samba3-HOWTO/problems.html
-usr/share/samba/swat/help/Samba3-HOWTO/rights.html
-usr/share/samba/swat/help/Samba3-HOWTO/samba-bdc.html
-usr/share/samba/swat/help/Samba3-HOWTO/samba-pdc.html
-usr/share/samba/swat/help/Samba3-HOWTO/securing-samba.html
-usr/share/samba/swat/help/Samba3-HOWTO/speed.html
-usr/share/samba/swat/help/Samba3-HOWTO/troubleshooting.html
-usr/share/samba/swat/help/Samba3-HOWTO/type.html
-usr/share/samba/swat/help/Samba3-HOWTO/unicode.html
-usr/share/samba/swat/help/Samba3-HOWTO/upgrading-to-3.0.html
-usr/share/samba/swat/help/Samba3-HOWTO/winbind.html
-#usr/share/samba/swat/help/manpages
-usr/share/samba/swat/help/manpages/findsmb.1.html
-usr/share/samba/swat/help/manpages/index.html
-usr/share/samba/swat/help/manpages/libsmbclient.7.html
-usr/share/samba/swat/help/manpages/lmhosts.5.html
-usr/share/samba/swat/help/manpages/log2pcap.1.html
-usr/share/samba/swat/help/manpages/mount.cifs.8.html
-usr/share/samba/swat/help/manpages/net.8.html
-usr/share/samba/swat/help/manpages/nmbd.8.html
-usr/share/samba/swat/help/manpages/nmblookup.1.html
-usr/share/samba/swat/help/manpages/ntlm_auth.1.html
-usr/share/samba/swat/help/manpages/pam_winbind.7.html
-usr/share/samba/swat/help/manpages/pdbedit.8.html
-usr/share/samba/swat/help/manpages/profiles.1.html
-usr/share/samba/swat/help/manpages/rpcclient.1.html
-usr/share/samba/swat/help/manpages/samba.7.html
-usr/share/samba/swat/help/manpages/smb.conf.5.html
-usr/share/samba/swat/help/manpages/smbcacls.1.html
-usr/share/samba/swat/help/manpages/smbclient.1.html
-usr/share/samba/swat/help/manpages/smbcontrol.1.html
-usr/share/samba/swat/help/manpages/smbcquotas.1.html
-usr/share/samba/swat/help/manpages/smbd.8.html
-usr/share/samba/swat/help/manpages/smbget.1.html
-usr/share/samba/swat/help/manpages/smbgetrc.5.html
-usr/share/samba/swat/help/manpages/smbmnt.8.html
-usr/share/samba/swat/help/manpages/smbmount.8.html
-usr/share/samba/swat/help/manpages/smbpasswd.5.html
-usr/share/samba/swat/help/manpages/smbpasswd.8.html
-usr/share/samba/swat/help/manpages/smbsh.1.html
-usr/share/samba/swat/help/manpages/smbspool.8.html
-usr/share/samba/swat/help/manpages/smbstatus.1.html
-usr/share/samba/swat/help/manpages/smbtar.1.html
-usr/share/samba/swat/help/manpages/smbtree.1.html
-usr/share/samba/swat/help/manpages/smbumount.8.html
-usr/share/samba/swat/help/manpages/swat.8.html
-usr/share/samba/swat/help/manpages/tdbbackup.8.html
-usr/share/samba/swat/help/manpages/tdbdump.8.html
-usr/share/samba/swat/help/manpages/testparm.1.html
-usr/share/samba/swat/help/manpages/umount.cifs.8.html
-usr/share/samba/swat/help/manpages/vfstest.1.html
-usr/share/samba/swat/help/manpages/wbinfo.1.html
-usr/share/samba/swat/help/manpages/winbindd.8.html
-#usr/share/samba/swat/help/using_samba
-usr/share/samba/swat/help/using_samba/appa.html
-usr/share/samba/swat/help/using_samba/appb.html
-usr/share/samba/swat/help/using_samba/appc.html
-usr/share/samba/swat/help/using_samba/appd.html
-usr/share/samba/swat/help/using_samba/appe.html
-usr/share/samba/swat/help/using_samba/appf.html
-usr/share/samba/swat/help/using_samba/appg.html
-usr/share/samba/swat/help/using_samba/ch00.html
-usr/share/samba/swat/help/using_samba/ch01.html
-usr/share/samba/swat/help/using_samba/ch02.html
-usr/share/samba/swat/help/using_samba/ch03.html
-usr/share/samba/swat/help/using_samba/ch04.html
-usr/share/samba/swat/help/using_samba/ch05.html
-usr/share/samba/swat/help/using_samba/ch06.html
-usr/share/samba/swat/help/using_samba/ch07.html
-usr/share/samba/swat/help/using_samba/ch08.html
-usr/share/samba/swat/help/using_samba/ch09.html
-usr/share/samba/swat/help/using_samba/ch10.html
-usr/share/samba/swat/help/using_samba/ch11.html
-usr/share/samba/swat/help/using_samba/ch12.html
-#usr/share/samba/swat/help/using_samba/figs
-usr/share/samba/swat/help/using_samba/figs/sam2_0101.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0102.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0103.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0104.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0105.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0106.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0107.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0108.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0109.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0110.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0111.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0112.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0113.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0114.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0201.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0202.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0203.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0204.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0301.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0302.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0303.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0304.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0305.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0306.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0307.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0308.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0309.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0310.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0311.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0312.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0313.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0314.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0315.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0316.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0317.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0318.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0319.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0320.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0321.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0322.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0323.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0324.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0325.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0326.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0327.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0328.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0329.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0330.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0331.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0332.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0333.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0334.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0335.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0336.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0337.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0338.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0339.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0340.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0341.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0342.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0343.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0344.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0345.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0346.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0347.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0348.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0349.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0350.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0351.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0352.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0353.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0354.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0355.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0356.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0357.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0358.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0359.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0360.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0361.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0401.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0402.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0403.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0404.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0405.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0406.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0407.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0408.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0409.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0410.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0411.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0412.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0413.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0414.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0415.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0416.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0417.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0501.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0502.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0503.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0504.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0505.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0506.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0507.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0508.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0601.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0602.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0603.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0604.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0605.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0701.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0801.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0802.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0803.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0804.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0805.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0806.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0807.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0808.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0809.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0810.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0811.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0901.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0902.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_0903.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_1001.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_1002.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_1003.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_1004.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_1005.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_1006.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_1101.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_1102.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_af01.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_af02.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_af03.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_af04.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_af05.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_af06.gif
-usr/share/samba/swat/help/using_samba/figs/sam2_af07.gif
-usr/share/samba/swat/help/using_samba/inx.html
-usr/share/samba/swat/help/using_samba/samba2_s.gif
-usr/share/samba/swat/help/using_samba/samba2_xs.gif
-usr/share/samba/swat/help/using_samba/toc.html
-usr/share/samba/swat/help/welcome-no-samba-doc.html
-usr/share/samba/swat/help/welcome.html
-#usr/share/samba/swat/images
-usr/share/samba/swat/images/globals.gif
-usr/share/samba/swat/images/home.gif
-usr/share/samba/swat/images/passwd.gif
-usr/share/samba/swat/images/printers.gif
-usr/share/samba/swat/images/samba.gif
-usr/share/samba/swat/images/shares.gif
-usr/share/samba/swat/images/status.gif
-usr/share/samba/swat/images/viewconfig.gif
-usr/share/samba/swat/images/wizard.gif
-#usr/share/samba/swat/include
-usr/share/samba/swat/include/footer.html
-usr/share/samba/swat/include/header.html
-#usr/share/samba/swat/lang
-#usr/share/samba/swat/lang/ja
-#usr/share/samba/swat/lang/ja/help
-usr/share/samba/swat/lang/ja/help/welcome.html
-usr/share/samba/swat/lang/ja/images
-usr/share/samba/swat/lang/ja/include
-#usr/share/samba/swat/lang/tr
-#usr/share/samba/swat/lang/tr/help
-usr/share/samba/swat/lang/tr/help/welcome.html
-#usr/share/samba/swat/lang/tr/images
-usr/share/samba/swat/lang/tr/images/globals.gif
-usr/share/samba/swat/lang/tr/images/home.gif
-usr/share/samba/swat/lang/tr/images/passwd.gif
-usr/share/samba/swat/lang/tr/images/printers.gif
-usr/share/samba/swat/lang/tr/images/samba.gif
-usr/share/samba/swat/lang/tr/images/shares.gif
-usr/share/samba/swat/lang/tr/images/status.gif
-usr/share/samba/swat/lang/tr/images/viewconfig.gif
-usr/share/samba/swat/lang/tr/include
-#var/ipfire/samba
-var/ipfire/samba/private
-var/ipfire/samba/smb.conf.default
-var/ipfire/xinetd/xinetd.d/swat
-var/lib/samba
\ No newline at end of file
diff --git a/src/paks/samba/depends.txt b/src/paks/samba/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/samba/install.sh b/src/paks/samba/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/samba/uninstall.sh b/src/paks/samba/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/sane/ROOTFILES b/src/paks/sane/ROOTFILES
deleted file mode 100644 (file)
index c2a3069..0000000
+++ /dev/null
@@ -1,488 +0,0 @@
-etc/sane.d
-etc/sane.d/abaton.conf
-etc/sane.d/agfafocus.conf
-etc/sane.d/apple.conf
-etc/sane.d/artec.conf
-etc/sane.d/artec_eplus48u.conf
-etc/sane.d/avision.conf
-etc/sane.d/bh.conf
-etc/sane.d/canon.conf
-etc/sane.d/canon630u.conf
-etc/sane.d/coolscan.conf
-etc/sane.d/coolscan2.conf
-etc/sane.d/dc210.conf
-etc/sane.d/dc240.conf
-etc/sane.d/dc25.conf
-etc/sane.d/dll.conf
-etc/sane.d/dmc.conf
-etc/sane.d/epson.conf
-etc/sane.d/fujitsu.conf
-etc/sane.d/genesys.conf
-etc/sane.d/gt68xx.conf
-etc/sane.d/hp.conf
-etc/sane.d/hp4200.conf
-etc/sane.d/hp5400.conf
-etc/sane.d/ibm.conf
-etc/sane.d/leo.conf
-etc/sane.d/lexmark.conf
-etc/sane.d/ma1509.conf
-etc/sane.d/matsushita.conf
-etc/sane.d/microtek.conf
-etc/sane.d/microtek2.conf
-etc/sane.d/mustek.conf
-etc/sane.d/mustek_usb.conf
-etc/sane.d/nec.conf
-etc/sane.d/net.conf
-etc/sane.d/pie.conf
-etc/sane.d/plustek.conf
-etc/sane.d/plustek_pp.conf
-etc/sane.d/qcam.conf
-etc/sane.d/ricoh.conf
-etc/sane.d/s9036.conf
-etc/sane.d/saned.conf
-etc/sane.d/sceptre.conf
-etc/sane.d/sharp.conf
-etc/sane.d/sm3840.conf
-etc/sane.d/snapscan.conf
-etc/sane.d/sp15c.conf
-etc/sane.d/st400.conf
-etc/sane.d/tamarack.conf
-etc/sane.d/teco1.conf
-etc/sane.d/teco2.conf
-etc/sane.d/teco3.conf
-etc/sane.d/test.conf
-etc/sane.d/u12.conf
-etc/sane.d/umax.conf
-etc/sane.d/umax1220u.conf
-etc/sane.d/umax_pp.conf
-etc/sane.d/v4l.conf
-usr/bin/gamma4scanimage
-usr/bin/sane-config
-usr/bin/sane-find-scanner
-usr/bin/scanimage
-+usr/include/sane
-+usr/include/sane/sane.h
-#usr/include/sane/saneopts.h
-usr/lib/libsane.la
-usr/lib/libsane.so
-usr/lib/libsane.so.1
-usr/lib/libsane.so.1.0.17
-usr/lib/sane
-usr/lib/sane/libsane-abaton.la
-usr/lib/sane/libsane-abaton.so
-usr/lib/sane/libsane-abaton.so.1
-usr/lib/sane/libsane-abaton.so.1.0.17
-usr/lib/sane/libsane-agfafocus.la
-usr/lib/sane/libsane-agfafocus.so
-usr/lib/sane/libsane-agfafocus.so.1
-usr/lib/sane/libsane-agfafocus.so.1.0.17
-usr/lib/sane/libsane-apple.la
-usr/lib/sane/libsane-apple.so
-usr/lib/sane/libsane-apple.so.1
-usr/lib/sane/libsane-apple.so.1.0.17
-usr/lib/sane/libsane-artec.la
-usr/lib/sane/libsane-artec.so
-usr/lib/sane/libsane-artec.so.1
-usr/lib/sane/libsane-artec.so.1.0.17
-usr/lib/sane/libsane-artec_eplus48u.la
-usr/lib/sane/libsane-artec_eplus48u.so
-usr/lib/sane/libsane-artec_eplus48u.so.1
-usr/lib/sane/libsane-artec_eplus48u.so.1.0.17
-usr/lib/sane/libsane-as6e.la
-usr/lib/sane/libsane-as6e.so
-usr/lib/sane/libsane-as6e.so.1
-usr/lib/sane/libsane-as6e.so.1.0.17
-usr/lib/sane/libsane-avision.la
-usr/lib/sane/libsane-avision.so
-usr/lib/sane/libsane-avision.so.1
-usr/lib/sane/libsane-avision.so.1.0.17
-usr/lib/sane/libsane-bh.la
-usr/lib/sane/libsane-bh.so
-usr/lib/sane/libsane-bh.so.1
-usr/lib/sane/libsane-bh.so.1.0.17
-usr/lib/sane/libsane-canon.la
-usr/lib/sane/libsane-canon.so
-usr/lib/sane/libsane-canon.so.1
-usr/lib/sane/libsane-canon.so.1.0.17
-usr/lib/sane/libsane-canon630u.la
-usr/lib/sane/libsane-canon630u.so
-usr/lib/sane/libsane-canon630u.so.1
-usr/lib/sane/libsane-canon630u.so.1.0.17
-usr/lib/sane/libsane-coolscan.la
-usr/lib/sane/libsane-coolscan.so
-usr/lib/sane/libsane-coolscan.so.1
-usr/lib/sane/libsane-coolscan.so.1.0.17
-usr/lib/sane/libsane-coolscan2.la
-usr/lib/sane/libsane-coolscan2.so
-usr/lib/sane/libsane-coolscan2.so.1
-usr/lib/sane/libsane-coolscan2.so.1.0.17
-usr/lib/sane/libsane-dc210.la
-usr/lib/sane/libsane-dc210.so
-usr/lib/sane/libsane-dc210.so.1
-usr/lib/sane/libsane-dc210.so.1.0.17
-usr/lib/sane/libsane-dc240.la
-usr/lib/sane/libsane-dc240.so
-usr/lib/sane/libsane-dc240.so.1
-usr/lib/sane/libsane-dc240.so.1.0.17
-usr/lib/sane/libsane-dc25.la
-usr/lib/sane/libsane-dc25.so
-usr/lib/sane/libsane-dc25.so.1
-usr/lib/sane/libsane-dc25.so.1.0.17
-usr/lib/sane/libsane-dll.la
-usr/lib/sane/libsane-dll.so
-usr/lib/sane/libsane-dll.so.1
-usr/lib/sane/libsane-dll.so.1.0.17
-usr/lib/sane/libsane-dmc.la
-usr/lib/sane/libsane-dmc.so
-usr/lib/sane/libsane-dmc.so.1
-usr/lib/sane/libsane-dmc.so.1.0.17
-usr/lib/sane/libsane-epson.la
-usr/lib/sane/libsane-epson.so
-usr/lib/sane/libsane-epson.so.1
-usr/lib/sane/libsane-epson.so.1.0.17
-usr/lib/sane/libsane-fujitsu.la
-usr/lib/sane/libsane-fujitsu.so
-usr/lib/sane/libsane-fujitsu.so.1
-usr/lib/sane/libsane-fujitsu.so.1.0.17
-usr/lib/sane/libsane-genesys.la
-usr/lib/sane/libsane-genesys.so
-usr/lib/sane/libsane-genesys.so.1
-usr/lib/sane/libsane-genesys.so.1.0.17
-usr/lib/sane/libsane-gt68xx.la
-usr/lib/sane/libsane-gt68xx.so
-usr/lib/sane/libsane-gt68xx.so.1
-usr/lib/sane/libsane-gt68xx.so.1.0.17
-usr/lib/sane/libsane-hp.la
-usr/lib/sane/libsane-hp.so
-usr/lib/sane/libsane-hp.so.1
-usr/lib/sane/libsane-hp.so.1.0.17
-usr/lib/sane/libsane-hp4200.la
-usr/lib/sane/libsane-hp4200.so
-usr/lib/sane/libsane-hp4200.so.1
-usr/lib/sane/libsane-hp4200.so.1.0.17
-usr/lib/sane/libsane-hp5400.la
-usr/lib/sane/libsane-hp5400.so
-usr/lib/sane/libsane-hp5400.so.1
-usr/lib/sane/libsane-hp5400.so.1.0.17
-usr/lib/sane/libsane-ibm.la
-usr/lib/sane/libsane-ibm.so
-usr/lib/sane/libsane-ibm.so.1
-usr/lib/sane/libsane-ibm.so.1.0.17
-usr/lib/sane/libsane-leo.la
-usr/lib/sane/libsane-leo.so
-usr/lib/sane/libsane-leo.so.1
-usr/lib/sane/libsane-leo.so.1.0.17
-usr/lib/sane/libsane-lexmark.la
-usr/lib/sane/libsane-lexmark.so
-usr/lib/sane/libsane-lexmark.so.1
-usr/lib/sane/libsane-lexmark.so.1.0.17
-usr/lib/sane/libsane-ma1509.la
-usr/lib/sane/libsane-ma1509.so
-usr/lib/sane/libsane-ma1509.so.1
-usr/lib/sane/libsane-ma1509.so.1.0.17
-usr/lib/sane/libsane-matsushita.la
-usr/lib/sane/libsane-matsushita.so
-usr/lib/sane/libsane-matsushita.so.1
-usr/lib/sane/libsane-matsushita.so.1.0.17
-usr/lib/sane/libsane-microtek.la
-usr/lib/sane/libsane-microtek.so
-usr/lib/sane/libsane-microtek.so.1
-usr/lib/sane/libsane-microtek.so.1.0.17
-usr/lib/sane/libsane-microtek2.la
-usr/lib/sane/libsane-microtek2.so
-usr/lib/sane/libsane-microtek2.so.1
-usr/lib/sane/libsane-microtek2.so.1.0.17
-usr/lib/sane/libsane-mustek.la
-usr/lib/sane/libsane-mustek.so
-usr/lib/sane/libsane-mustek.so.1
-usr/lib/sane/libsane-mustek.so.1.0.17
-usr/lib/sane/libsane-mustek_usb.la
-usr/lib/sane/libsane-mustek_usb.so
-usr/lib/sane/libsane-mustek_usb.so.1
-usr/lib/sane/libsane-mustek_usb.so.1.0.17
-usr/lib/sane/libsane-mustek_usb2.la
-usr/lib/sane/libsane-mustek_usb2.so
-usr/lib/sane/libsane-mustek_usb2.so.1
-usr/lib/sane/libsane-mustek_usb2.so.1.0.17
-usr/lib/sane/libsane-nec.la
-usr/lib/sane/libsane-nec.so
-usr/lib/sane/libsane-nec.so.1
-usr/lib/sane/libsane-nec.so.1.0.17
-usr/lib/sane/libsane-net.la
-usr/lib/sane/libsane-net.so
-usr/lib/sane/libsane-net.so.1
-usr/lib/sane/libsane-net.so.1.0.17
-usr/lib/sane/libsane-niash.la
-usr/lib/sane/libsane-niash.so
-usr/lib/sane/libsane-niash.so.1
-usr/lib/sane/libsane-niash.so.1.0.17
-usr/lib/sane/libsane-pie.la
-usr/lib/sane/libsane-pie.so
-usr/lib/sane/libsane-pie.so.1
-usr/lib/sane/libsane-pie.so.1.0.17
-usr/lib/sane/libsane-plustek.la
-usr/lib/sane/libsane-plustek.so
-usr/lib/sane/libsane-plustek.so.1
-usr/lib/sane/libsane-plustek.so.1.0.17
-usr/lib/sane/libsane-plustek_pp.la
-usr/lib/sane/libsane-plustek_pp.so
-usr/lib/sane/libsane-plustek_pp.so.1
-usr/lib/sane/libsane-plustek_pp.so.1.0.17
-usr/lib/sane/libsane-qcam.la
-usr/lib/sane/libsane-qcam.so
-usr/lib/sane/libsane-qcam.so.1
-usr/lib/sane/libsane-qcam.so.1.0.17
-usr/lib/sane/libsane-ricoh.la
-usr/lib/sane/libsane-ricoh.so
-usr/lib/sane/libsane-ricoh.so.1
-usr/lib/sane/libsane-ricoh.so.1.0.17
-usr/lib/sane/libsane-s9036.la
-usr/lib/sane/libsane-s9036.so
-usr/lib/sane/libsane-s9036.so.1
-usr/lib/sane/libsane-s9036.so.1.0.17
-usr/lib/sane/libsane-sceptre.la
-usr/lib/sane/libsane-sceptre.so
-usr/lib/sane/libsane-sceptre.so.1
-usr/lib/sane/libsane-sceptre.so.1.0.17
-usr/lib/sane/libsane-sharp.la
-usr/lib/sane/libsane-sharp.so
-usr/lib/sane/libsane-sharp.so.1
-usr/lib/sane/libsane-sharp.so.1.0.17
-usr/lib/sane/libsane-sm3600.la
-usr/lib/sane/libsane-sm3600.so
-usr/lib/sane/libsane-sm3600.so.1
-usr/lib/sane/libsane-sm3600.so.1.0.17
-usr/lib/sane/libsane-sm3840.la
-usr/lib/sane/libsane-sm3840.so
-usr/lib/sane/libsane-sm3840.so.1
-usr/lib/sane/libsane-sm3840.so.1.0.17
-usr/lib/sane/libsane-snapscan.la
-usr/lib/sane/libsane-snapscan.so
-usr/lib/sane/libsane-snapscan.so.1
-usr/lib/sane/libsane-snapscan.so.1.0.17
-usr/lib/sane/libsane-sp15c.la
-usr/lib/sane/libsane-sp15c.so
-usr/lib/sane/libsane-sp15c.so.1
-usr/lib/sane/libsane-sp15c.so.1.0.17
-usr/lib/sane/libsane-st400.la
-usr/lib/sane/libsane-st400.so
-usr/lib/sane/libsane-st400.so.1
-usr/lib/sane/libsane-st400.so.1.0.17
-usr/lib/sane/libsane-tamarack.la
-usr/lib/sane/libsane-tamarack.so
-usr/lib/sane/libsane-tamarack.so.1
-usr/lib/sane/libsane-tamarack.so.1.0.17
-usr/lib/sane/libsane-teco1.la
-usr/lib/sane/libsane-teco1.so
-usr/lib/sane/libsane-teco1.so.1
-usr/lib/sane/libsane-teco1.so.1.0.17
-usr/lib/sane/libsane-teco2.la
-usr/lib/sane/libsane-teco2.so
-usr/lib/sane/libsane-teco2.so.1
-usr/lib/sane/libsane-teco2.so.1.0.17
-usr/lib/sane/libsane-teco3.la
-usr/lib/sane/libsane-teco3.so
-usr/lib/sane/libsane-teco3.so.1
-usr/lib/sane/libsane-teco3.so.1.0.17
-usr/lib/sane/libsane-test.la
-usr/lib/sane/libsane-test.so
-usr/lib/sane/libsane-test.so.1
-usr/lib/sane/libsane-test.so.1.0.17
-usr/lib/sane/libsane-u12.la
-usr/lib/sane/libsane-u12.so
-usr/lib/sane/libsane-u12.so.1
-usr/lib/sane/libsane-u12.so.1.0.17
-usr/lib/sane/libsane-umax.la
-usr/lib/sane/libsane-umax.so
-usr/lib/sane/libsane-umax.so.1
-usr/lib/sane/libsane-umax.so.1.0.17
-usr/lib/sane/libsane-umax1220u.la
-usr/lib/sane/libsane-umax1220u.so
-usr/lib/sane/libsane-umax1220u.so.1
-usr/lib/sane/libsane-umax1220u.so.1.0.17
-usr/lib/sane/libsane-umax_pp.la
-usr/lib/sane/libsane-umax_pp.so
-usr/lib/sane/libsane-umax_pp.so.1
-usr/lib/sane/libsane-umax_pp.so.1.0.17
-usr/lib/sane/libsane-v4l.la
-usr/lib/sane/libsane-v4l.so
-usr/lib/sane/libsane-v4l.so.1
-usr/lib/sane/libsane-v4l.so.1.0.17
-usr/sbin/saned
-#usr/share/doc/sane-1.0.17
-#usr/share/doc/sane-1.0.17/AUTHORS
-#usr/share/doc/sane-1.0.17/COPYING
-#usr/share/doc/sane-1.0.17/ChangeLog
-#usr/share/doc/sane-1.0.17/LICENSE
-#usr/share/doc/sane-1.0.17/NEWS
-#usr/share/doc/sane-1.0.17/PROBLEMS
-#usr/share/doc/sane-1.0.17/PROJECTS
-#usr/share/doc/sane-1.0.17/README
-#usr/share/doc/sane-1.0.17/README.aix
-#usr/share/doc/sane-1.0.17/README.beos
-#usr/share/doc/sane-1.0.17/README.darwin
-#usr/share/doc/sane-1.0.17/README.djpeg
-#usr/share/doc/sane-1.0.17/README.freebsd
-#usr/share/doc/sane-1.0.17/README.hp-ux
-#usr/share/doc/sane-1.0.17/README.linux
-#usr/share/doc/sane-1.0.17/README.netbsd
-#usr/share/doc/sane-1.0.17/README.openbsd
-#usr/share/doc/sane-1.0.17/README.os2
-#usr/share/doc/sane-1.0.17/README.solaris
-#usr/share/doc/sane-1.0.17/README.unixware2
-#usr/share/doc/sane-1.0.17/README.unixware7
-#usr/share/doc/sane-1.0.17/README.windows
-#usr/share/doc/sane-1.0.17/README.zeta
-#usr/share/doc/sane-1.0.17/backend-writing.txt
-#usr/share/doc/sane-1.0.17/canon
-#usr/share/doc/sane-1.0.17/canon/canon.changes
-#usr/share/doc/sane-1.0.17/canon/canon.install2700F.txt
-#usr/share/doc/sane-1.0.17/gt68xx
-#usr/share/doc/sane-1.0.17/gt68xx/gt68xx.CHANGES
-#usr/share/doc/sane-1.0.17/gt68xx/gt68xx.TODO
-#usr/share/doc/sane-1.0.17/leo
-#usr/share/doc/sane-1.0.17/leo/leo.txt
-#usr/share/doc/sane-1.0.17/matsushita
-#usr/share/doc/sane-1.0.17/matsushita/matsushita.txt
-#usr/share/doc/sane-1.0.17/mustek
-#usr/share/doc/sane-1.0.17/mustek/mustek.CHANGES
-#usr/share/doc/sane-1.0.17/mustek_usb
-#usr/share/doc/sane-1.0.17/mustek_usb/mustek_usb.CHANGES
-#usr/share/doc/sane-1.0.17/mustek_usb/mustek_usb.TODO
-#usr/share/doc/sane-1.0.17/mustek_usb2
-#usr/share/doc/sane-1.0.17/mustek_usb2/mustek_usb2.CHANGES
-#usr/share/doc/sane-1.0.17/mustek_usb2/mustek_usb2.TODO
-#usr/share/doc/sane-1.0.17/niash
-#usr/share/doc/sane-1.0.17/niash/niash.TODO
-#usr/share/doc/sane-1.0.17/plustek
-#usr/share/doc/sane-1.0.17/plustek/FAQ
-#usr/share/doc/sane-1.0.17/plustek/MakeModule.sh
-#usr/share/doc/sane-1.0.17/plustek/Makefile.kernel24
-#usr/share/doc/sane-1.0.17/plustek/Makefile.kernel26
-#usr/share/doc/sane-1.0.17/plustek/Plustek-PARPORT-TODO.txt
-#usr/share/doc/sane-1.0.17/plustek/Plustek-PARPORT.changes
-#usr/share/doc/sane-1.0.17/plustek/Plustek-PARPORT.txt
-#usr/share/doc/sane-1.0.17/plustek/Plustek-USB-TODO.txt
-#usr/share/doc/sane-1.0.17/plustek/Plustek-USB.changes
-#usr/share/doc/sane-1.0.17/plustek/Plustek-USB.txt
-#usr/share/doc/sane-1.0.17/sane-backends-external.html
-#usr/share/doc/sane-1.0.17/sane-backends.html
-#usr/share/doc/sane-1.0.17/sane-mfgs-external.html
-#usr/share/doc/sane-1.0.17/sane-mfgs.html
-#usr/share/doc/sane-1.0.17/sceptre
-#usr/share/doc/sane-1.0.17/sceptre/s1200.txt
-#usr/share/doc/sane-1.0.17/teco
-#usr/share/doc/sane-1.0.17/teco/teco1.txt
-#usr/share/doc/sane-1.0.17/teco/teco2.txt
-#usr/share/doc/sane-1.0.17/teco/teco3.txt
-#usr/share/doc/sane-1.0.17/u12
-#usr/share/doc/sane-1.0.17/u12/U12.changes
-#usr/share/doc/sane-1.0.17/u12/U12.todo
-#usr/share/doc/sane-1.0.17/umax
-#usr/share/doc/sane-1.0.17/umax/negative-types.txt
-#usr/share/doc/sane-1.0.17/umax/sane-logo.jpg
-#usr/share/doc/sane-1.0.17/umax/sane-umax-advanced-options-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax-advanced.jpg
-#usr/share/doc/sane-1.0.17/umax/sane-umax-astra-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax-config-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax-histogram.jpg
-#usr/share/doc/sane-1.0.17/umax/sane-umax-mirage-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax-not-listed-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax-others-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax-parport-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax-powerlook-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax-scanner-clones-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax-speed-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax-standard-options-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax-standard.jpg
-#usr/share/doc/sane-1.0.17/umax/sane-umax-text.jpg
-#usr/share/doc/sane-1.0.17/umax/sane-umax-text2.jpg
-#usr/share/doc/sane-1.0.17/umax/sane-umax-text4.jpg
-#usr/share/doc/sane-1.0.17/umax/sane-umax-uc-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax-vista-doc.html
-#usr/share/doc/sane-1.0.17/umax/sane-umax.jpg
-#usr/share/doc/sane-1.0.17/umax/umax.BUGS
-#usr/share/doc/sane-1.0.17/umax/umax.CHANGES
-#usr/share/doc/sane-1.0.17/umax/umax.FAQ
-#usr/share/doc/sane-1.0.17/umax/umax.TODO
-#usr/share/man/man1/gamma4scanimage.1
-#usr/share/man/man1/sane-config.1
-#usr/share/man/man1/sane-find-scanner.1
-#usr/share/man/man1/scanimage.1
-#usr/share/man/man5/sane-abaton.5
-#usr/share/man/man5/sane-agfafocus.5
-#usr/share/man/man5/sane-apple.5
-#usr/share/man/man5/sane-artec.5
-#usr/share/man/man5/sane-artec_eplus48u.5
-#usr/share/man/man5/sane-as6e.5
-#usr/share/man/man5/sane-avision.5
-#usr/share/man/man5/sane-bh.5
-#usr/share/man/man5/sane-canon.5
-#usr/share/man/man5/sane-canon630u.5
-#usr/share/man/man5/sane-canon_pp.5
-#usr/share/man/man5/sane-coolscan.5
-#usr/share/man/man5/sane-coolscan2.5
-#usr/share/man/man5/sane-dc210.5
-#usr/share/man/man5/sane-dc240.5
-#usr/share/man/man5/sane-dc25.5
-#usr/share/man/man5/sane-dll.5
-#usr/share/man/man5/sane-dmc.5
-#usr/share/man/man5/sane-epson.5
-#usr/share/man/man5/sane-fujitsu.5
-#usr/share/man/man5/sane-genesys.5
-#usr/share/man/man5/sane-gphoto2.5
-#usr/share/man/man5/sane-gt68xx.5
-#usr/share/man/man5/sane-hp.5
-#usr/share/man/man5/sane-hp4200.5
-#usr/share/man/man5/sane-hp5400.5
-#usr/share/man/man5/sane-hpsj5s.5
-#usr/share/man/man5/sane-ibm.5
-#usr/share/man/man5/sane-leo.5
-#usr/share/man/man5/sane-lexmark.5
-#usr/share/man/man5/sane-ma1509.5
-#usr/share/man/man5/sane-matsushita.5
-#usr/share/man/man5/sane-microtek.5
-#usr/share/man/man5/sane-microtek2.5
-#usr/share/man/man5/sane-mustek.5
-#usr/share/man/man5/sane-mustek_pp.5
-#usr/share/man/man5/sane-mustek_usb.5
-#usr/share/man/man5/sane-mustek_usb2.5
-#usr/share/man/man5/sane-nec.5
-#usr/share/man/man5/sane-net.5
-#usr/share/man/man5/sane-niash.5
-#usr/share/man/man5/sane-pie.5
-#usr/share/man/man5/sane-pint.5
-#usr/share/man/man5/sane-plustek.5
-#usr/share/man/man5/sane-plustek_pp.5
-#usr/share/man/man5/sane-pnm.5
-#usr/share/man/man5/sane-qcam.5
-#usr/share/man/man5/sane-ricoh.5
-#usr/share/man/man5/sane-s9036.5
-#usr/share/man/man5/sane-sceptre.5
-#usr/share/man/man5/sane-scsi.5
-#usr/share/man/man5/sane-sharp.5
-#usr/share/man/man5/sane-sm3600.5
-#usr/share/man/man5/sane-sm3840.5
-#usr/share/man/man5/sane-snapscan.5
-#usr/share/man/man5/sane-sp15c.5
-#usr/share/man/man5/sane-st400.5
-#usr/share/man/man5/sane-tamarack.5
-#usr/share/man/man5/sane-teco1.5
-#usr/share/man/man5/sane-teco2.5
-#usr/share/man/man5/sane-teco3.5
-#usr/share/man/man5/sane-test.5
-#usr/share/man/man5/sane-u12.5
-#usr/share/man/man5/sane-umax.5
-#usr/share/man/man5/sane-umax1220u.5
-#usr/share/man/man5/sane-umax_pp.5
-#usr/share/man/man5/sane-usb.5
-#usr/share/man/man5/sane-v4l.5
-#usr/share/man/man7/sane.7
-#usr/share/man/man8/saned.8
-#usr/share/sane
-#usr/share/sane/artec_eplus48u
-#usr/share/sane/gt68xx
-#usr/share/sane/snapscan
-usr/var/lock
-usr/var/lock/sane
diff --git a/src/paks/sane/depends.txt b/src/paks/sane/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/sane/install.sh b/src/paks/sane/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/sane/uninstall.sh b/src/paks/sane/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/sox/ROOTFILES b/src/paks/sox/ROOTFILES
deleted file mode 100644 (file)
index 244e0f1..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-usr/bin/sox
-usr/bin/soxmix
-#usr/share/man/man1/sox.1
-#usr/share/man/man1/soxexam.1
-#usr/share/man/man1/soxmix.1
diff --git a/src/paks/sox/depends.txt b/src/paks/sox/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/sox/install.sh b/src/paks/sox/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/sox/uninstall.sh b/src/paks/sox/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/spamassassin/ROOTFILES b/src/paks/spamassassin/ROOTFILES
deleted file mode 100644 (file)
index e4ce75a..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-#etc/mail
-#etc/mail/spamassassin
-etc/mail/spamassassin/init.pre
-etc/mail/spamassassin/local.cf
-etc/mail/spamassassin/v310.pre
-etc/mail/spamassassin/v312.pre
-usr/bin/sa-learn
-usr/bin/sa-update
-usr/bin/spamassassin
-usr/bin/spamc
-usr/bin/spamd
-#usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/ArchiveIterator.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/AutoWhitelist.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Bayes
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Bayes.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Bayes/CombineChi.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Bayes/CombineNaiveBayes.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/BayesStore
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/BayesStore.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/BayesStore/DBM.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/BayesStore/MySQL.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/BayesStore/PgSQL.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/BayesStore/SDBM.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/BayesStore/SQL.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Client.pm
-#usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Conf
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Conf.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Conf/LDAP.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Conf/Parser.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Conf/SQL.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Constants.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/DBBasedAddrList.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Dns.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/DnsResolver.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/EvalTests.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/HTML.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Locales.pm
-#usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Locker
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Locker.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Locker/Flock.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Locker/UnixNFSSafe.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Locker/Win32.pm
-#usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Logger
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Logger.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Logger/File.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Logger/Stderr.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Logger/Syslog.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/MailingList.pm
-#usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Message
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Message.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Message/Metadata
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Message/Metadata.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Message/Metadata/Received.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Message/Node.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/NetSet.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/PerMsgLearner.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/PerMsgStatus.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/PersistentAddrList.pm
-#usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/AWL.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/AccessDB.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/AntiVirus.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/AutoLearnThreshold.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/DCC.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/DKIM.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/DomainKeys.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/Hashcash.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/MIMEHeader.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/Pyzor.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/Razor2.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/RelayCountry.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/ReplaceTags.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/SPF.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/SpamCop.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/Test.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/TextCat.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/URIDNSBL.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Plugin/WhiteListSubject.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/PluginHandler.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Reporter.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/SQLBasedAddrList.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/SpamdForkScaling.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/SubProcBackChannel.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Timeout.pm
-#usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Util
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Util.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Util/DependencyInfo.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Util/Progress.pm
-usr/lib/perl5/site_perl/5.8.5/Mail/SpamAssassin/Util/RegistrarBoundaries.pm
-usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Mail/SpamAssassin
-#usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Mail/SpamAssassin/.packlist
-usr/lib/perl5/site_perl/5.8.5/spamassassin-run.pod
-#usr/share/man/man1/sa-learn.1
-#usr/share/man/man1/sa-update.1
-#usr/share/man/man1/spamassassin-run.1
-#usr/share/man/man1/spamassassin.1
-#usr/share/man/man1/spamc.1
-#usr/share/man/man1/spamd.1
-#usr/share/man/man3/Mail::SpamAssassin.3
-#usr/share/man/man3/Mail::SpamAssassin::ArchiveIterator.3
-#usr/share/man/man3/Mail::SpamAssassin::AutoWhitelist.3
-#usr/share/man/man3/Mail::SpamAssassin::Bayes.3
-#usr/share/man/man3/Mail::SpamAssassin::BayesStore.3
-#usr/share/man/man3/Mail::SpamAssassin::BayesStore::MySQL.3
-#usr/share/man/man3/Mail::SpamAssassin::BayesStore::PgSQL.3
-#usr/share/man/man3/Mail::SpamAssassin::BayesStore::SQL.3
-#usr/share/man/man3/Mail::SpamAssassin::Client.3
-#usr/share/man/man3/Mail::SpamAssassin::Conf.3
-#usr/share/man/man3/Mail::SpamAssassin::Conf::LDAP.3
-#usr/share/man/man3/Mail::SpamAssassin::Conf::Parser.3
-#usr/share/man/man3/Mail::SpamAssassin::Conf::SQL.3
-#usr/share/man/man3/Mail::SpamAssassin::DnsResolver.3
-#usr/share/man/man3/Mail::SpamAssassin::Logger.3
-#usr/share/man/man3/Mail::SpamAssassin::Logger::File.3
-#usr/share/man/man3/Mail::SpamAssassin::Logger::Stderr.3
-#usr/share/man/man3/Mail::SpamAssassin::Logger::Syslog.3
-#usr/share/man/man3/Mail::SpamAssassin::Message.3
-#usr/share/man/man3/Mail::SpamAssassin::Message::Metadata.3
-#usr/share/man/man3/Mail::SpamAssassin::Message::Node.3
-#usr/share/man/man3/Mail::SpamAssassin::PerMsgLearner.3
-#usr/share/man/man3/Mail::SpamAssassin::PerMsgStatus.3
-#usr/share/man/man3/Mail::SpamAssassin::PersistentAddrList.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::AWL.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::AccessDB.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::AntiVirus.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::AutoLearnThreshold.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::DCC.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::DKIM.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::DomainKeys.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::Hashcash.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::MIMEHeader.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::Pyzor.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::Razor2.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::RelayCountry.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::ReplaceTags.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::SPF.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::SpamCop.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::Test.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::TextCat.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::URIDNSBL.3
-#usr/share/man/man3/Mail::SpamAssassin::Plugin::WhiteListSubject.3
-#usr/share/man/man3/Mail::SpamAssassin::PluginHandler.3
-#usr/share/man/man3/Mail::SpamAssassin::SQLBasedAddrList.3
-#usr/share/man/man3/Mail::SpamAssassin::SubProcBackChannel.3
-#usr/share/man/man3/Mail::SpamAssassin::Timeout.3
-#usr/share/man/man3/Mail::SpamAssassin::Util.3
-#usr/share/man/man3/Mail::SpamAssassin::Util::Progress.3
-#usr/share/man/man3/spamassassin-run.3
-#usr/share/spamassassin
-usr/share/spamassassin/10_misc.cf
-usr/share/spamassassin/20_advance_fee.cf
-usr/share/spamassassin/20_anti_ratware.cf
-usr/share/spamassassin/20_body_tests.cf
-usr/share/spamassassin/20_compensate.cf
-usr/share/spamassassin/20_dnsbl_tests.cf
-usr/share/spamassassin/20_drugs.cf
-usr/share/spamassassin/20_fake_helo_tests.cf
-usr/share/spamassassin/20_head_tests.cf
-usr/share/spamassassin/20_html_tests.cf
-usr/share/spamassassin/20_meta_tests.cf
-usr/share/spamassassin/20_net_tests.cf
-usr/share/spamassassin/20_phrases.cf
-usr/share/spamassassin/20_porn.cf
-usr/share/spamassassin/20_ratware.cf
-usr/share/spamassassin/20_uri_tests.cf
-usr/share/spamassassin/23_bayes.cf
-usr/share/spamassassin/25_accessdb.cf
-usr/share/spamassassin/25_antivirus.cf
-usr/share/spamassassin/25_body_tests_es.cf
-usr/share/spamassassin/25_body_tests_pl.cf
-usr/share/spamassassin/25_dcc.cf
-usr/share/spamassassin/25_dkim.cf
-usr/share/spamassassin/25_domainkeys.cf
-usr/share/spamassassin/25_hashcash.cf
-usr/share/spamassassin/25_pyzor.cf
-usr/share/spamassassin/25_razor2.cf
-usr/share/spamassassin/25_replace.cf
-usr/share/spamassassin/25_spf.cf
-usr/share/spamassassin/25_textcat.cf
-usr/share/spamassassin/25_uribl.cf
-usr/share/spamassassin/30_text_de.cf
-usr/share/spamassassin/30_text_fr.cf
-usr/share/spamassassin/30_text_it.cf
-usr/share/spamassassin/30_text_nl.cf
-usr/share/spamassassin/30_text_pl.cf
-usr/share/spamassassin/30_text_pt_br.cf
-usr/share/spamassassin/50_scores.cf
-usr/share/spamassassin/60_awl.cf
-usr/share/spamassassin/60_whitelist.cf
-usr/share/spamassassin/60_whitelist_dkim.cf
-usr/share/spamassassin/60_whitelist_spf.cf
-usr/share/spamassassin/60_whitelist_subject.cf
-usr/share/spamassassin/languages
-usr/share/spamassassin/sa-update-pubkey.txt
-usr/share/spamassassin/triplets.txt
-usr/share/spamassassin/user_prefs.template
-usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Digest/SHA1/SHA1.so
-usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/Digest/SHA1/SHA1.bs
-usr/lib/perl5/5.8.5/IPC
-usr/lib/perl5/5.8.5/Text
-usr/lib/perl5/site_perl/5.8.5/i386-linux/HTML
-usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/HTML/Parser/Parser.bs
-usr/lib/perl5/site_perl/5.8.5/i386-linux/auto/HTML/Parser/Parser.so
-usr/lib/perl5/5.8.5/Pod/Usage.pm
-usr/lib/perl5/5.8.5/Pod/Text
-usr/lib/perl5/5.8.5/Pod/Text.pm
-usr/lib/perl5/5.8.5/Pod/ParseLink.pm
-usr/lib/perl5/5.8.5/Pod/Select.pm
-usr/lib/perl5/5.8.5/Pod/Parser.pm
-usr/lib/perl5/5.8.5/Pod/InputObjects.pm
diff --git a/src/paks/spamassassin/depends.txt b/src/paks/spamassassin/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/spamassassin/install.sh b/src/paks/spamassassin/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/spamassassin/uninstall.sh b/src/paks/spamassassin/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/spandsp/ROOTFILES b/src/paks/spandsp/ROOTFILES
deleted file mode 100644 (file)
index 4689120..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#usr/include/spandsp
-#usr/include/spandsp.h
-#usr/include/spandsp/adsi.h
-#usr/include/spandsp/alaw_ulaw.h
-#usr/include/spandsp/arctan2.h
-#usr/include/spandsp/async.h
-#usr/include/spandsp/awgn.h
-#usr/include/spandsp/bert.h
-#usr/include/spandsp/biquad.h
-#usr/include/spandsp/complex.h
-#usr/include/spandsp/complex_filters.h
-#usr/include/spandsp/dc_restore.h
-#usr/include/spandsp/dds.h
-#usr/include/spandsp/ec_disable_tone.h
-#usr/include/spandsp/echo.h
-#usr/include/spandsp/fir.h
-#usr/include/spandsp/fsk.h
-#usr/include/spandsp/g168models.h
-#usr/include/spandsp/g722.h
-#usr/include/spandsp/g726.h
-#usr/include/spandsp/hdlc.h
-#usr/include/spandsp/ima_adpcm.h
-#usr/include/spandsp/logging.h
-#usr/include/spandsp/mmx.h
-#usr/include/spandsp/modem_echo.h
-#usr/include/spandsp/noise.h
-#usr/include/spandsp/oki_adpcm.h
-#usr/include/spandsp/oss.h
-#usr/include/spandsp/playout.h
-#usr/include/spandsp/plc.h
-#usr/include/spandsp/power_meter.h
-#usr/include/spandsp/queue.h
-#usr/include/spandsp/schedule.h
-#usr/include/spandsp/sig_tone.h
-#usr/include/spandsp/super_tone_rx.h
-#usr/include/spandsp/super_tone_tx.h
-#usr/include/spandsp/t30.h
-#usr/include/spandsp/t30_fcf.h
-#usr/include/spandsp/t31.h
-#usr/include/spandsp/t35.h
-#usr/include/spandsp/t4.h
-#usr/include/spandsp/telephony.h
-#usr/include/spandsp/time_scale.h
-#usr/include/spandsp/timing.h
-#usr/include/spandsp/tone_detect.h
-#usr/include/spandsp/tone_generate.h
-#usr/include/spandsp/v17rx.h
-#usr/include/spandsp/v17tx.h
-#usr/include/spandsp/v22bis.h
-#usr/include/spandsp/v27ter_rx.h
-#usr/include/spandsp/v27ter_tx.h
-#usr/include/spandsp/v29rx.h
-#usr/include/spandsp/v29tx.h
-#usr/include/spandsp/v42.h
-#usr/include/spandsp/v42bis.h
-#usr/include/spandsp/v8.h
-#usr/include/spandsp/vector.h
-usr/lib/libspandsp.a
-usr/lib/libspandsp.la
-usr/lib/libspandsp.so
-usr/lib/libspandsp.so.0
-usr/lib/libspandsp.so.0.0.1
-usr/share/spandsp
-usr/share/spandsp/global-tones.xml
-usr/share/spandsp/tones.dtd
diff --git a/src/paks/spandsp/depends.txt b/src/paks/spandsp/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/spandsp/install.sh b/src/paks/spandsp/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/spandsp/uninstall.sh b/src/paks/spandsp/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/subversion/ROOTFILES b/src/paks/subversion/ROOTFILES
deleted file mode 100644 (file)
index 2a3827e..0000000
+++ /dev/null
@@ -1,361 +0,0 @@
-#usr/bin/apr-config
-#usr/bin/apu-config
-#usr/bin/neon-config
-usr/bin/svn
-usr/bin/svnadmin
-usr/bin/svndumpfilter
-usr/bin/svnlook
-usr/bin/svnserve
-usr/bin/svnversion
-#usr/include/apr-0
-#usr/include/apr-0/apr.h
-#usr/include/apr-0/apr_allocator.h
-#usr/include/apr-0/apr_anylock.h
-#usr/include/apr-0/apr_atomic.h
-#usr/include/apr-0/apr_base64.h
-#usr/include/apr-0/apr_buckets.h
-#usr/include/apr-0/apr_compat.h
-#usr/include/apr-0/apr_date.h
-#usr/include/apr-0/apr_dbm.h
-#usr/include/apr-0/apr_dso.h
-#usr/include/apr-0/apr_env.h
-#usr/include/apr-0/apr_errno.h
-#usr/include/apr-0/apr_file_info.h
-#usr/include/apr-0/apr_file_io.h
-#usr/include/apr-0/apr_fnmatch.h
-#usr/include/apr-0/apr_general.h
-#usr/include/apr-0/apr_getopt.h
-#usr/include/apr-0/apr_global_mutex.h
-#usr/include/apr-0/apr_hash.h
-#usr/include/apr-0/apr_hooks.h
-#usr/include/apr-0/apr_inherit.h
-#usr/include/apr-0/apr_ldap.h
-#usr/include/apr-0/apr_ldap_url.h
-#usr/include/apr-0/apr_lib.h
-#usr/include/apr-0/apr_md4.h
-#usr/include/apr-0/apr_md5.h
-#usr/include/apr-0/apr_mmap.h
-#usr/include/apr-0/apr_network_io.h
-#usr/include/apr-0/apr_optional.h
-#usr/include/apr-0/apr_optional_hooks.h
-#usr/include/apr-0/apr_poll.h
-#usr/include/apr-0/apr_pools.h
-#usr/include/apr-0/apr_portable.h
-#usr/include/apr-0/apr_proc_mutex.h
-#usr/include/apr-0/apr_queue.h
-#usr/include/apr-0/apr_reslist.h
-#usr/include/apr-0/apr_ring.h
-#usr/include/apr-0/apr_rmm.h
-#usr/include/apr-0/apr_sdbm.h
-#usr/include/apr-0/apr_sha1.h
-#usr/include/apr-0/apr_shm.h
-#usr/include/apr-0/apr_signal.h
-#usr/include/apr-0/apr_strings.h
-#usr/include/apr-0/apr_strmatch.h
-#usr/include/apr-0/apr_support.h
-#usr/include/apr-0/apr_tables.h
-#usr/include/apr-0/apr_thread_cond.h
-#usr/include/apr-0/apr_thread_mutex.h
-#usr/include/apr-0/apr_thread_proc.h
-#usr/include/apr-0/apr_thread_rwlock.h
-#usr/include/apr-0/apr_time.h
-#usr/include/apr-0/apr_uri.h
-#usr/include/apr-0/apr_user.h
-#usr/include/apr-0/apr_uuid.h
-#usr/include/apr-0/apr_version.h
-#usr/include/apr-0/apr_want.h
-#usr/include/apr-0/apr_xlate.h
-#usr/include/apr-0/apr_xml.h
-#usr/include/apr-0/apu.h
-#usr/include/apr-0/apu_compat.h
-#usr/include/apr-0/apu_version.h
-#usr/include/apr-0/apu_want.h
-#usr/include/neon
-#usr/include/neon/ne_207.h
-#usr/include/neon/ne_acl.h
-#usr/include/neon/ne_alloc.h
-#usr/include/neon/ne_auth.h
-#usr/include/neon/ne_basic.h
-#usr/include/neon/ne_compress.h
-#usr/include/neon/ne_dates.h
-#usr/include/neon/ne_defs.h
-#usr/include/neon/ne_i18n.h
-#usr/include/neon/ne_locks.h
-#usr/include/neon/ne_md5.h
-#usr/include/neon/ne_props.h
-#usr/include/neon/ne_redirect.h
-#usr/include/neon/ne_request.h
-#usr/include/neon/ne_session.h
-#usr/include/neon/ne_socket.h
-#usr/include/neon/ne_ssl.h
-#usr/include/neon/ne_string.h
-#usr/include/neon/ne_uri.h
-#usr/include/neon/ne_utils.h
-#usr/include/neon/ne_xml.h
-#usr/include/neon/ne_xmlreq.h
-#usr/include/subversion-1
-#usr/include/subversion-1/mod_dav_svn.h
-#usr/include/subversion-1/svn-revision.txt
-#usr/include/subversion-1/svn_auth.h
-#usr/include/subversion-1/svn_base64.h
-#usr/include/subversion-1/svn_client.h
-#usr/include/subversion-1/svn_cmdline.h
-#usr/include/subversion-1/svn_config.h
-#usr/include/subversion-1/svn_ctype.h
-#usr/include/subversion-1/svn_dav.h
-#usr/include/subversion-1/svn_delta.h
-#usr/include/subversion-1/svn_diff.h
-#usr/include/subversion-1/svn_error.h
-#usr/include/subversion-1/svn_error_codes.h
-#usr/include/subversion-1/svn_fs.h
-#usr/include/subversion-1/svn_hash.h
-#usr/include/subversion-1/svn_io.h
-#usr/include/subversion-1/svn_md5.h
-#usr/include/subversion-1/svn_nls.h
-#usr/include/subversion-1/svn_opt.h
-#usr/include/subversion-1/svn_path.h
-#usr/include/subversion-1/svn_pools.h
-#usr/include/subversion-1/svn_props.h
-#usr/include/subversion-1/svn_quoprint.h
-#usr/include/subversion-1/svn_ra.h
-#usr/include/subversion-1/svn_ra_svn.h
-#usr/include/subversion-1/svn_repos.h
-#usr/include/subversion-1/svn_sorts.h
-#usr/include/subversion-1/svn_string.h
-#usr/include/subversion-1/svn_subst.h
-#usr/include/subversion-1/svn_time.h
-#usr/include/subversion-1/svn_types.h
-#usr/include/subversion-1/svn_utf.h
-#usr/include/subversion-1/svn_version.h
-#usr/include/subversion-1/svn_wc.h
-#usr/include/subversion-1/svn_xml.h
-usr/lib/apache/mod_authz_svn.so
-usr/lib/apache/mod_dav_svn.so
-#usr/lib/apr-0
-#usr/lib/apr-0/apr_rules.mk
-#usr/lib/apr-0/libtool
-#usr/lib/libapr-0.a
-#usr/lib/libapr-0.la
-usr/lib/libapr-0.so
-usr/lib/libapr-0.so.0
-usr/lib/libapr-0.so.0.9.7
-#usr/lib/libaprutil-0.a
-#usr/lib/libaprutil-0.la
-usr/lib/libaprutil-0.so
-usr/lib/libaprutil-0.so.0
-usr/lib/libaprutil-0.so.0.9.7
-#usr/lib/libneon.a
-#usr/lib/libneon.la
-usr/lib/libneon.so
-usr/lib/libneon.so.25
-usr/lib/libneon.so.25.0.5
-#usr/lib/libsvn_client-1.a
-#usr/lib/libsvn_client-1.la
-usr/lib/libsvn_client-1.so
-usr/lib/libsvn_client-1.so.0
-usr/lib/libsvn_client-1.so.0.0.0
-#usr/lib/libsvn_delta-1.a
-#usr/lib/libsvn_delta-1.la
-usr/lib/libsvn_delta-1.so
-usr/lib/libsvn_delta-1.so.0
-usr/lib/libsvn_delta-1.so.0.0.0
-#usr/lib/libsvn_diff-1.a
-#usr/lib/libsvn_diff-1.la
-usr/lib/libsvn_diff-1.so
-usr/lib/libsvn_diff-1.so.0
-usr/lib/libsvn_diff-1.so.0.0.0
-#usr/lib/libsvn_fs-1.a
-#usr/lib/libsvn_fs-1.la
-usr/lib/libsvn_fs-1.so
-usr/lib/libsvn_fs-1.so.0
-usr/lib/libsvn_fs-1.so.0.0.0
-#usr/lib/libsvn_fs_fs-1.a
-#usr/lib/libsvn_fs_fs-1.la
-usr/lib/libsvn_fs_fs-1.so
-usr/lib/libsvn_fs_fs-1.so.0
-usr/lib/libsvn_fs_fs-1.so.0.0.0
-#usr/lib/libsvn_ra-1.a
-#usr/lib/libsvn_ra-1.la
-usr/lib/libsvn_ra-1.so
-usr/lib/libsvn_ra-1.so.0
-usr/lib/libsvn_ra-1.so.0.0.0
-#usr/lib/libsvn_ra_dav-1.a
-#usr/lib/libsvn_ra_dav-1.la
-usr/lib/libsvn_ra_dav-1.so
-usr/lib/libsvn_ra_dav-1.so.0
-usr/lib/libsvn_ra_dav-1.so.0.0.0
-#usr/lib/libsvn_ra_local-1.a
-#usr/lib/libsvn_ra_local-1.la
-usr/lib/libsvn_ra_local-1.so
-usr/lib/libsvn_ra_local-1.so.0
-usr/lib/libsvn_ra_local-1.so.0.0.0
-#usr/lib/libsvn_ra_svn-1.a
-#usr/lib/libsvn_ra_svn-1.la
-usr/lib/libsvn_ra_svn-1.so
-usr/lib/libsvn_ra_svn-1.so.0
-usr/lib/libsvn_ra_svn-1.so.0.0.0
-#usr/lib/libsvn_repos-1.a
-#usr/lib/libsvn_repos-1.la
-usr/lib/libsvn_repos-1.so
-usr/lib/libsvn_repos-1.so.0
-usr/lib/libsvn_repos-1.so.0.0.0
-#usr/lib/libsvn_subr-1.a
-#usr/lib/libsvn_subr-1.la
-usr/lib/libsvn_subr-1.so
-usr/lib/libsvn_subr-1.so.0
-usr/lib/libsvn_subr-1.so.0.0.0
-#usr/lib/libsvn_wc-1.a
-#usr/lib/libsvn_wc-1.la
-usr/lib/libsvn_wc-1.so
-usr/lib/libsvn_wc-1.so.0
-usr/lib/libsvn_wc-1.so.0.0.0
-#usr/lib/pkgconfig/neon.pc
-#usr/share/doc/neon-0.25.5
-#usr/share/doc/neon-0.25.5/html
-#usr/share/doc/neon-0.25.5/html/apas01.html
-#usr/share/doc/neon-0.25.5/html/apas02.html
-#usr/share/doc/neon-0.25.5/html/apas03.html
-#usr/share/doc/neon-0.25.5/html/apas04.html
-#usr/share/doc/neon-0.25.5/html/apas05.html
-#usr/share/doc/neon-0.25.5/html/apas06.html
-#usr/share/doc/neon-0.25.5/html/apas07.html
-#usr/share/doc/neon-0.25.5/html/apas08.html
-#usr/share/doc/neon-0.25.5/html/apas09.html
-#usr/share/doc/neon-0.25.5/html/apas10.html
-#usr/share/doc/neon-0.25.5/html/apas11.html
-#usr/share/doc/neon-0.25.5/html/apas12.html
-#usr/share/doc/neon-0.25.5/html/api.html
-#usr/share/doc/neon-0.25.5/html/biblio.html
-#usr/share/doc/neon-0.25.5/html/compliance.html
-#usr/share/doc/neon-0.25.5/html/features.html
-#usr/share/doc/neon-0.25.5/html/gfdl.html
-#usr/share/doc/neon-0.25.5/html/index.html
-#usr/share/doc/neon-0.25.5/html/intro.html
-#usr/share/doc/neon-0.25.5/html/ref.html
-#usr/share/doc/neon-0.25.5/html/refalloc.html
-#usr/share/doc/neon-0.25.5/html/refauth.html
-#usr/share/doc/neon-0.25.5/html/refbuf.html
-#usr/share/doc/neon-0.25.5/html/refbufapp.html
-#usr/share/doc/neon-0.25.5/html/refbufcr.html
-#usr/share/doc/neon-0.25.5/html/refbufdest.html
-#usr/share/doc/neon-0.25.5/html/refbufutil.html
-#usr/share/doc/neon-0.25.5/html/refcert.html
-#usr/share/doc/neon-0.25.5/html/refclicert.html
-#usr/share/doc/neon-0.25.5/html/refconfig.html
-#usr/share/doc/neon-0.25.5/html/referr.html
-#usr/share/doc/neon-0.25.5/html/refgetst.html
-#usr/share/doc/neon-0.25.5/html/refiaddr.html
-#usr/share/doc/neon-0.25.5/html/refneon.html
-#usr/share/doc/neon-0.25.5/html/refopts.html
-#usr/share/doc/neon-0.25.5/html/refreq.html
-#usr/share/doc/neon-0.25.5/html/refreqbody.html
-#usr/share/doc/neon-0.25.5/html/refreqhdr.html
-#usr/share/doc/neon-0.25.5/html/refreqopts.html
-#usr/share/doc/neon-0.25.5/html/refresolve.html
-#usr/share/doc/neon-0.25.5/html/refresphdr.html
-#usr/share/doc/neon-0.25.5/html/refsess.html
-#usr/share/doc/neon-0.25.5/html/refshave.html
-#usr/share/doc/neon-0.25.5/html/refsockinit.html
-#usr/share/doc/neon-0.25.5/html/refsslca.html
-#usr/share/doc/neon-0.25.5/html/refsslcert2.html
-#usr/share/doc/neon-0.25.5/html/refsslcertio.html
-#usr/share/doc/neon-0.25.5/html/refssldname.html
-#usr/share/doc/neon-0.25.5/html/refsslvfy.html
-#usr/share/doc/neon-0.25.5/html/refstatus.html
-#usr/share/doc/neon-0.25.5/html/reftok.html
-#usr/share/doc/neon-0.25.5/html/refvers.html
-#usr/share/doc/neon-0.25.5/html/refxml.html
-#usr/share/doc/neon-0.25.5/html/using.html
-#usr/share/doc/neon-0.25.5/html/xml.html
-#usr/share/man/man1/neon-config.1
-#usr/share/man/man1/svn.1
-#usr/share/man/man1/svnadmin.1
-#usr/share/man/man1/svndumpfilter.1
-#usr/share/man/man1/svnlook.1
-#usr/share/man/man1/svnversion.1
-#usr/share/man/man3/ne_add_request_header.3
-#usr/share/man/man3/ne_addr_destroy.3
-#usr/share/man/man3/ne_addr_error.3
-#usr/share/man/man3/ne_addr_first.3
-#usr/share/man/man3/ne_addr_next.3
-#usr/share/man/man3/ne_addr_resolve.3
-#usr/share/man/man3/ne_addr_result.3
-#usr/share/man/man3/ne_buffer.3
-#usr/share/man/man3/ne_buffer_altered.3
-#usr/share/man/man3/ne_buffer_append.3
-#usr/share/man/man3/ne_buffer_clear.3
-#usr/share/man/man3/ne_buffer_concat.3
-#usr/share/man/man3/ne_buffer_create.3
-#usr/share/man/man3/ne_buffer_destroy.3
-#usr/share/man/man3/ne_buffer_finish.3
-#usr/share/man/man3/ne_buffer_grow.3
-#usr/share/man/man3/ne_buffer_ncreate.3
-#usr/share/man/man3/ne_buffer_zappend.3
-#usr/share/man/man3/ne_calloc.3
-#usr/share/man/man3/ne_close_connection.3
-#usr/share/man/man3/ne_forget_auth.3
-#usr/share/man/man3/ne_get_error.3
-#usr/share/man/man3/ne_get_response_header.3
-#usr/share/man/man3/ne_get_scheme.3
-#usr/share/man/man3/ne_get_server_hostport.3
-#usr/share/man/man3/ne_get_status.3
-#usr/share/man/man3/ne_iaddr_cmp.3
-#usr/share/man/man3/ne_iaddr_free.3
-#usr/share/man/man3/ne_iaddr_make.3
-#usr/share/man/man3/ne_iaddr_print.3
-#usr/share/man/man3/ne_iaddr_typeof.3
-#usr/share/man/man3/ne_malloc.3
-#usr/share/man/man3/ne_oom_callback.3
-#usr/share/man/man3/ne_print_request_header.3
-#usr/share/man/man3/ne_qtoken.3
-#usr/share/man/man3/ne_realloc.3
-#usr/share/man/man3/ne_request_create.3
-#usr/share/man/man3/ne_request_destroy.3
-#usr/share/man/man3/ne_request_dispatch.3
-#usr/share/man/man3/ne_response_header_iterate.3
-#usr/share/man/man3/ne_session_create.3
-#usr/share/man/man3/ne_session_destroy.3
-#usr/share/man/man3/ne_session_proxy.3
-#usr/share/man/man3/ne_set_error.3
-#usr/share/man/man3/ne_set_persist.3
-#usr/share/man/man3/ne_set_proxy_auth.3
-#usr/share/man/man3/ne_set_read_timeout.3
-#usr/share/man/man3/ne_set_request_body_buffer.3
-#usr/share/man/man3/ne_set_request_body_fd.3
-#usr/share/man/man3/ne_set_request_expect100.3
-#usr/share/man/man3/ne_set_server_auth.3
-#usr/share/man/man3/ne_set_useragent.3
-#usr/share/man/man3/ne_shave.3
-#usr/share/man/man3/ne_sock_init.3
-#usr/share/man/man3/ne_ssl_cert_cmp.3
-#usr/share/man/man3/ne_ssl_cert_export.3
-#usr/share/man/man3/ne_ssl_cert_free.3
-#usr/share/man/man3/ne_ssl_cert_identity.3
-#usr/share/man/man3/ne_ssl_cert_import.3
-#usr/share/man/man3/ne_ssl_cert_issuer.3
-#usr/share/man/man3/ne_ssl_cert_read.3
-#usr/share/man/man3/ne_ssl_cert_signedby.3
-#usr/share/man/man3/ne_ssl_cert_subject.3
-#usr/share/man/man3/ne_ssl_cert_write.3
-#usr/share/man/man3/ne_ssl_clicert_decrypt.3
-#usr/share/man/man3/ne_ssl_clicert_encrypted.3
-#usr/share/man/man3/ne_ssl_clicert_free.3
-#usr/share/man/man3/ne_ssl_clicert_name.3
-#usr/share/man/man3/ne_ssl_clicert_owner.3
-#usr/share/man/man3/ne_ssl_clicert_read.3
-#usr/share/man/man3/ne_ssl_dname_cmp.3
-#usr/share/man/man3/ne_ssl_readable_dname.3
-#usr/share/man/man3/ne_ssl_set_verify.3
-#usr/share/man/man3/ne_ssl_trust_cert.3
-#usr/share/man/man3/ne_ssl_trust_default_ca.3
-#usr/share/man/man3/ne_status.3
-#usr/share/man/man3/ne_strdup.3
-#usr/share/man/man3/ne_strndup.3
-#usr/share/man/man3/ne_token.3
-#usr/share/man/man3/ne_version_match.3
-#usr/share/man/man3/ne_version_string.3
-#usr/share/man/man3/ne_xml_create.3
-#usr/share/man/man3/ne_xml_destroy.3
-#usr/share/man/man3/neon.3
-#usr/share/man/man5/svnserve.conf.5
-#usr/share/man/man8/svnserve.8
diff --git a/src/paks/subversion/depends.txt b/src/paks/subversion/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/subversion/install.sh b/src/paks/subversion/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/subversion/uninstall.sh b/src/paks/subversion/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/tcpwrapper/ROOTFILES b/src/paks/tcpwrapper/ROOTFILES
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/tcpwrapper/depends.txt b/src/paks/tcpwrapper/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/tcpwrapper/install.sh b/src/paks/tcpwrapper/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/tcpwrapper/uninstall.sh b/src/paks/tcpwrapper/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/tftp-hpa/ROOTFILES b/src/paks/tftp-hpa/ROOTFILES
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/tftp-hpa/depends.txt b/src/paks/tftp-hpa/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/tftp-hpa/install.sh b/src/paks/tftp-hpa/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/tftp-hpa/uninstall.sh b/src/paks/tftp-hpa/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/videolan/ROOTFILES b/src/paks/videolan/ROOTFILES
deleted file mode 100644 (file)
index d4b8dd3..0000000
+++ /dev/null
@@ -1,427 +0,0 @@
-usr/bin/vlc
-usr/bin/vlc-config
-#usr/include/vlc
-#usr/include/vlc/aout.h
-#usr/include/vlc/decoder.h
-#usr/include/vlc/input.h
-#usr/include/vlc/intf.h
-#usr/include/vlc/libvlc.h
-#usr/include/vlc/mediacontrol.h
-#usr/include/vlc/mediacontrol_structures.h
-#usr/include/vlc/sout.h
-#usr/include/vlc/vlc.h
-#usr/include/vlc/vout.h
-usr/lib/libvlc.a
-#usr/lib/mozilla
-#usr/lib/mozilla/components
-usr/lib/vlc
-#usr/lib/vlc/access
-#usr/lib/vlc/access/libaccess_directory_plugin.so
-#usr/lib/vlc/access/libaccess_fake_plugin.so
-#usr/lib/vlc/access/libaccess_file_plugin.so
-#usr/lib/vlc/access/libaccess_ftp_plugin.so
-#usr/lib/vlc/access/libaccess_http_plugin.so
-#usr/lib/vlc/access/libaccess_mms_plugin.so
-#usr/lib/vlc/access/libaccess_smb_plugin.so
-#usr/lib/vlc/access/libaccess_tcp_plugin.so
-#usr/lib/vlc/access/libaccess_udp_plugin.so
-#usr/lib/vlc/access/libcdda_plugin.so
-#usr/lib/vlc/access/libvcd_plugin.so
-#usr/lib/vlc/access_filter
-#usr/lib/vlc/access_filter/libaccess_filter_record_plugin.so
-#usr/lib/vlc/access_filter/libaccess_filter_timeshift_plugin.so
-#usr/lib/vlc/access_output
-#usr/lib/vlc/access_output/libaccess_output_dummy_plugin.so
-#usr/lib/vlc/access_output/libaccess_output_file_plugin.so
-#usr/lib/vlc/access_output/libaccess_output_http_plugin.so
-#usr/lib/vlc/access_output/libaccess_output_udp_plugin.so
-#usr/lib/vlc/audio_filter
-#usr/lib/vlc/audio_filter/liba52tospdif_plugin.so
-#usr/lib/vlc/audio_filter/libaudio_format_plugin.so
-#usr/lib/vlc/audio_filter/libbandlimited_resampler_plugin.so
-#usr/lib/vlc/audio_filter/libdolby_surround_decoder_plugin.so
-#usr/lib/vlc/audio_filter/libdtstospdif_plugin.so
-#usr/lib/vlc/audio_filter/libequalizer_plugin.so
-#usr/lib/vlc/audio_filter/libfixed32tofloat32_plugin.so
-#usr/lib/vlc/audio_filter/libfixed32tos16_plugin.so
-#usr/lib/vlc/audio_filter/libfloat32tos16_plugin.so
-#usr/lib/vlc/audio_filter/libfloat32tos8_plugin.so
-#usr/lib/vlc/audio_filter/libfloat32tou16_plugin.so
-#usr/lib/vlc/audio_filter/libfloat32tou8_plugin.so
-#usr/lib/vlc/audio_filter/libheadphone_channel_mixer_plugin.so
-#usr/lib/vlc/audio_filter/liblinear_resampler_plugin.so
-#usr/lib/vlc/audio_filter/libmpgatofixed32_plugin.so
-#usr/lib/vlc/audio_filter/libnormvol_plugin.so
-#usr/lib/vlc/audio_filter/libparam_eq_plugin.so
-#usr/lib/vlc/audio_filter/libs16tofixed32_plugin.so
-#usr/lib/vlc/audio_filter/libs16tofloat32_plugin.so
-#usr/lib/vlc/audio_filter/libs16tofloat32swab_plugin.so
-#usr/lib/vlc/audio_filter/libs8tofloat32_plugin.so
-#usr/lib/vlc/audio_filter/libsimple_channel_mixer_plugin.so
-#usr/lib/vlc/audio_filter/libtrivial_channel_mixer_plugin.so
-#usr/lib/vlc/audio_filter/libtrivial_resampler_plugin.so
-#usr/lib/vlc/audio_filter/libu8tofixed32_plugin.so
-#usr/lib/vlc/audio_filter/libu8tofloat32_plugin.so
-#usr/lib/vlc/audio_filter/libugly_resampler_plugin.so
-#usr/lib/vlc/audio_mixer
-#usr/lib/vlc/audio_mixer/libfloat32_mixer_plugin.so
-#usr/lib/vlc/audio_mixer/libspdif_mixer_plugin.so
-#usr/lib/vlc/audio_mixer/libtrivial_mixer_plugin.so
-#usr/lib/vlc/audio_output
-#usr/lib/vlc/audio_output/libaout_file_plugin.so
-#usr/lib/vlc/audio_output/liboss_plugin.so
-#usr/lib/vlc/codec
-#usr/lib/vlc/codec/liba52_plugin.so
-#usr/lib/vlc/codec/libadpcm_plugin.so
-#usr/lib/vlc/codec/libaraw_plugin.so
-#usr/lib/vlc/codec/libcinepak_plugin.so
-#usr/lib/vlc/codec/libcmml_plugin.so
-#usr/lib/vlc/codec/libcvdsub_plugin.so
-#usr/lib/vlc/codec/libdts_plugin.so
-#usr/lib/vlc/codec/libdvbsub_plugin.so
-#usr/lib/vlc/codec/libfake_plugin.so
-#usr/lib/vlc/codec/libflacdec_plugin.so
-#usr/lib/vlc/codec/liblibmpeg2_plugin.so
-#usr/lib/vlc/codec/liblpcm_plugin.so
-#usr/lib/vlc/codec/libmpeg_audio_plugin.so
-#usr/lib/vlc/codec/libpng_plugin.so
-#usr/lib/vlc/codec/librawvideo_plugin.so
-#usr/lib/vlc/codec/libspudec_plugin.so
-#usr/lib/vlc/codec/libsubsdec_plugin.so
-#usr/lib/vlc/codec/libsvcdsub_plugin.so
-#usr/lib/vlc/codec/libvorbis_plugin.so
-#usr/lib/vlc/control
-#usr/lib/vlc/control/libgestures_plugin.so
-#usr/lib/vlc/control/libhotkeys_plugin.so
-#usr/lib/vlc/control/libhttp_plugin.so
-#usr/lib/vlc/control/libnetsync_plugin.so
-#usr/lib/vlc/control/librc_plugin.so
-#usr/lib/vlc/control/libshowintf_plugin.so
-#usr/lib/vlc/control/libtelnet_plugin.so
-#usr/lib/vlc/demux
-#usr/lib/vlc/demux/liba52sys_plugin.so
-#usr/lib/vlc/demux/libaiff_plugin.so
-#usr/lib/vlc/demux/libasf_plugin.so
-#usr/lib/vlc/demux/libau_plugin.so
-#usr/lib/vlc/demux/libavi_plugin.so
-#usr/lib/vlc/demux/libdemuxdump_plugin.so
-#usr/lib/vlc/demux/libdtssys_plugin.so
-#usr/lib/vlc/demux/libflac_plugin.so
-#usr/lib/vlc/demux/libh264_plugin.so
-#usr/lib/vlc/demux/libm3u_plugin.so
-#usr/lib/vlc/demux/libm4a_plugin.so
-#usr/lib/vlc/demux/libm4v_plugin.so
-#usr/lib/vlc/demux/libmjpeg_plugin.so
-#usr/lib/vlc/demux/libmp4_plugin.so
-#usr/lib/vlc/demux/libmpga_plugin.so
-#usr/lib/vlc/demux/libmpgv_plugin.so
-#usr/lib/vlc/demux/libnsc_plugin.so
-#usr/lib/vlc/demux/libnsv_plugin.so
-#usr/lib/vlc/demux/libnuv_plugin.so
-#usr/lib/vlc/demux/libogg_plugin.so
-#usr/lib/vlc/demux/libplaylist_plugin.so
-#usr/lib/vlc/demux/libps_plugin.so
-#usr/lib/vlc/demux/libpva_plugin.so
-#usr/lib/vlc/demux/librawdv_plugin.so
-#usr/lib/vlc/demux/libreal_plugin.so
-#usr/lib/vlc/demux/libsgimb_plugin.so
-#usr/lib/vlc/demux/libsubtitle_plugin.so
-#usr/lib/vlc/demux/libty_plugin.so
-#usr/lib/vlc/demux/libvobsub_plugin.so
-#usr/lib/vlc/demux/libvoc_plugin.so
-#usr/lib/vlc/demux/libwav_plugin.so
-#usr/lib/vlc/demux/libxa_plugin.so
-#usr/lib/vlc/gui
-#usr/lib/vlc/gui/libncurses_plugin.so
-#usr/lib/vlc/libffmpeg.a
-#usr/lib/vlc/libi420_rgb_mmx.a
-#usr/lib/vlc/libi420_ymga_mmx.a
-#usr/lib/vlc/libi420_yuy2_mmx.a
-#usr/lib/vlc/libi422_yuy2_mmx.a
-#usr/lib/vlc/libmemcpy3dn.a
-#usr/lib/vlc/libmemcpymmx.a
-#usr/lib/vlc/libmemcpymmxext.a
-#usr/lib/vlc/libstream_out_switcher.a
-#usr/lib/vlc/misc
-#usr/lib/vlc/misc/libdummy_plugin.so
-#usr/lib/vlc/misc/libexport_plugin.so
-#usr/lib/vlc/misc/libfreetype_plugin.so
-#usr/lib/vlc/misc/libgrowl_plugin.so
-#usr/lib/vlc/misc/libipv4_plugin.so
-#usr/lib/vlc/misc/libipv6_plugin.so
-#usr/lib/vlc/misc/liblogger_plugin.so
-#usr/lib/vlc/misc/libmemcpy_plugin.so
-#usr/lib/vlc/misc/libscreensaver_plugin.so
-#usr/lib/vlc/misc/libvod_rtsp_plugin.so
-#usr/lib/vlc/misc/libxml_plugin.so
-#usr/lib/vlc/misc/libxtag_plugin.so
-#usr/lib/vlc/mux
-#usr/lib/vlc/mux/libmux_asf_plugin.so
-#usr/lib/vlc/mux/libmux_avi_plugin.so
-#usr/lib/vlc/mux/libmux_dummy_plugin.so
-#usr/lib/vlc/mux/libmux_mp4_plugin.so
-#usr/lib/vlc/mux/libmux_mpjpeg_plugin.so
-#usr/lib/vlc/mux/libmux_ogg_plugin.so
-#usr/lib/vlc/mux/libmux_ps_plugin.so
-#usr/lib/vlc/mux/libmux_wav_plugin.so
-#usr/lib/vlc/packetizer
-#usr/lib/vlc/packetizer/libpacketizer_copy_plugin.so
-#usr/lib/vlc/packetizer/libpacketizer_h264_plugin.so
-#usr/lib/vlc/packetizer/libpacketizer_mpeg4audio_plugin.so
-#usr/lib/vlc/packetizer/libpacketizer_mpeg4video_plugin.so
-#usr/lib/vlc/packetizer/libpacketizer_mpegvideo_plugin.so
-#usr/lib/vlc/services_discovery
-#usr/lib/vlc/services_discovery/libpodcast_plugin.so
-#usr/lib/vlc/services_discovery/libsap_plugin.so
-#usr/lib/vlc/services_discovery/libshout_plugin.so
-#usr/lib/vlc/stream_out
-#usr/lib/vlc/stream_out/libstream_out_bridge_plugin.so
-#usr/lib/vlc/stream_out/libstream_out_description_plugin.so
-#usr/lib/vlc/stream_out/libstream_out_display_plugin.so
-#usr/lib/vlc/stream_out/libstream_out_dummy_plugin.so
-#usr/lib/vlc/stream_out/libstream_out_duplicate_plugin.so
-#usr/lib/vlc/stream_out/libstream_out_es_plugin.so
-#usr/lib/vlc/stream_out/libstream_out_gather_plugin.so
-#usr/lib/vlc/stream_out/libstream_out_mosaic_bridge_plugin.so
-#usr/lib/vlc/stream_out/libstream_out_rtp_plugin.so
-#usr/lib/vlc/stream_out/libstream_out_standard_plugin.so
-#usr/lib/vlc/stream_out/libstream_out_transcode_plugin.so
-#usr/lib/vlc/video_chroma
-#usr/lib/vlc/video_chroma/libi420_rgb_plugin.so
-#usr/lib/vlc/video_chroma/libi420_ymga_plugin.so
-#usr/lib/vlc/video_chroma/libi420_yuy2_plugin.so
-#usr/lib/vlc/video_chroma/libi422_yuy2_plugin.so
-#usr/lib/vlc/video_filter
-#usr/lib/vlc/video_filter/libadjust_plugin.so
-#usr/lib/vlc/video_filter/libblend_plugin.so
-#usr/lib/vlc/video_filter/libclone_plugin.so
-#usr/lib/vlc/video_filter/libcrop_plugin.so
-#usr/lib/vlc/video_filter/libdeinterlace_plugin.so
-#usr/lib/vlc/video_filter/libdistort_plugin.so
-#usr/lib/vlc/video_filter/libinvert_plugin.so
-#usr/lib/vlc/video_filter/liblogo_plugin.so
-#usr/lib/vlc/video_filter/libmagnify_plugin.so
-#usr/lib/vlc/video_filter/libmarq_plugin.so
-#usr/lib/vlc/video_filter/libmosaic_plugin.so
-#usr/lib/vlc/video_filter/libmotionblur_plugin.so
-#usr/lib/vlc/video_filter/libmotiondetect_plugin.so
-#usr/lib/vlc/video_filter/libosdmenu_plugin.so
-#usr/lib/vlc/video_filter/librss_plugin.so
-#usr/lib/vlc/video_filter/librv32_plugin.so
-#usr/lib/vlc/video_filter/libscale_plugin.so
-#usr/lib/vlc/video_filter/libtime_plugin.so
-#usr/lib/vlc/video_filter/libtransform_plugin.so
-#usr/lib/vlc/video_filter/libwall_plugin.so
-#usr/lib/vlc/video_output
-#usr/lib/vlc/video_output/libfb_plugin.so
-#usr/lib/vlc/video_output/libimage_plugin.so
-#usr/lib/vlc/visualization
-#usr/lib/vlc/visualization/libvisual_plugin.so
-#usr/share/doc/vlc
-#usr/share/doc/vlc/bugreport-howto.txt
-#usr/share/doc/vlc/fortunes.txt
-#usr/share/doc/vlc/intf-cdda.txt
-#usr/share/doc/vlc/intf-vcd.txt
-#usr/share/locale/ca/LC_MESSAGES/vlc.mo
-#usr/share/locale/da/LC_MESSAGES/vlc.mo
-#usr/share/locale/de/LC_MESSAGES/vlc.mo
-#usr/share/locale/en_GB/LC_MESSAGES/vlc.mo
-#usr/share/locale/es/LC_MESSAGES/vlc.mo
-#usr/share/locale/fr/LC_MESSAGES/vlc.mo
-#usr/share/locale/gl/LC_MESSAGES/vlc.mo
-#usr/share/locale/he/LC_MESSAGES/vlc.mo
-#usr/share/locale/hi/LC_MESSAGES/vlc.mo
-#usr/share/locale/hu/LC_MESSAGES/vlc.mo
-#usr/share/locale/it/LC_MESSAGES/vlc.mo
-#usr/share/locale/ja/LC_MESSAGES/vlc.mo
-#usr/share/locale/ka
-#usr/share/locale/ka/LC_MESSAGES
-#usr/share/locale/ka/LC_MESSAGES/vlc.mo
-#usr/share/locale/ko/LC_MESSAGES/vlc.mo
-#usr/share/locale/nl/LC_MESSAGES/vlc.mo
-#usr/share/locale/oc
-#usr/share/locale/oc/LC_MESSAGES
-#usr/share/locale/oc/LC_MESSAGES/vlc.mo
-#usr/share/locale/pt_BR/LC_MESSAGES/vlc.mo
-#usr/share/locale/ro/LC_MESSAGES/vlc.mo
-#usr/share/locale/ru/LC_MESSAGES/vlc.mo
-#usr/share/locale/sv/LC_MESSAGES/vlc.mo
-#usr/share/locale/tr/LC_MESSAGES/vlc.mo
-#usr/share/locale/zh_CN/LC_MESSAGES/vlc.mo
-#usr/share/locale/zh_TW/LC_MESSAGES/vlc.mo
-usr/share/vlc
-#usr/share/vlc/http
-#usr/share/vlc/http/.hosts
-#usr/share/vlc/http/dialogs
-#usr/share/vlc/http/dialogs/.hosts
-#usr/share/vlc/http/dialogs/browse
-#usr/share/vlc/http/dialogs/footer
-#usr/share/vlc/http/dialogs/input
-#usr/share/vlc/http/dialogs/main
-#usr/share/vlc/http/dialogs/mosaic
-#usr/share/vlc/http/dialogs/playlist
-#usr/share/vlc/http/dialogs/sout
-#usr/share/vlc/http/dialogs/vlm
-#usr/share/vlc/http/favicon.ico
-#usr/share/vlc/http/iehacks.css
-#usr/share/vlc/http/images
-#usr/share/vlc/http/images/delete.png
-#usr/share/vlc/http/images/delete_small.png
-#usr/share/vlc/http/images/eject.png
-#usr/share/vlc/http/images/empty.png
-#usr/share/vlc/http/images/fullscreen.png
-#usr/share/vlc/http/images/help.png
-#usr/share/vlc/http/images/info.png
-#usr/share/vlc/http/images/loop.png
-#usr/share/vlc/http/images/minus.png
-#usr/share/vlc/http/images/next.png
-#usr/share/vlc/http/images/pause.png
-#usr/share/vlc/http/images/play.png
-#usr/share/vlc/http/images/playlist.png
-#usr/share/vlc/http/images/playlist_small.png
-#usr/share/vlc/http/images/plus.png
-#usr/share/vlc/http/images/prev.png
-#usr/share/vlc/http/images/refresh.png
-#usr/share/vlc/http/images/repeat.png
-#usr/share/vlc/http/images/sd.png
-#usr/share/vlc/http/images/shuffle.png
-#usr/share/vlc/http/images/slider_bar.png
-#usr/share/vlc/http/images/slider_left.png
-#usr/share/vlc/http/images/slider_point.png
-#usr/share/vlc/http/images/slider_right.png
-#usr/share/vlc/http/images/slow.png
-#usr/share/vlc/http/images/sort.png
-#usr/share/vlc/http/images/sout.png
-#usr/share/vlc/http/images/speaker.png
-#usr/share/vlc/http/images/speaker_mute.png
-#usr/share/vlc/http/images/stop.png
-#usr/share/vlc/http/images/vlc16x16.png
-#usr/share/vlc/http/images/volume_down.png
-#usr/share/vlc/http/images/volume_up.png
-#usr/share/vlc/http/images/white.png
-#usr/share/vlc/http/images/white_cross_small.png
-#usr/share/vlc/http/index.html
-#usr/share/vlc/http/js
-#usr/share/vlc/http/js/functions.js
-#usr/share/vlc/http/js/mosaic.js
-#usr/share/vlc/http/js/vlm.js
-#usr/share/vlc/http/mosaic.html
-#usr/share/vlc/http/old
-#usr/share/vlc/http/old/.hosts
-#usr/share/vlc/http/old/admin
-#usr/share/vlc/http/old/admin/.access
-#usr/share/vlc/http/old/admin/browse.html
-#usr/share/vlc/http/old/admin/dboxfiles.html
-#usr/share/vlc/http/old/admin/index.html
-#usr/share/vlc/http/old/cone_minus.png
-#usr/share/vlc/http/old/cone_plus.png
-#usr/share/vlc/http/old/index.html
-#usr/share/vlc/http/old/info.html
-#usr/share/vlc/http/old/style.css
-#usr/share/vlc/http/old/vlm
-#usr/share/vlc/http/old/vlm/edit.html
-#usr/share/vlc/http/old/vlm/index.html
-#usr/share/vlc/http/old/vlm/new.html
-#usr/share/vlc/http/old/vlm/show.html
-#usr/share/vlc/http/old/webcam.html
-#usr/share/vlc/http/requests
-#usr/share/vlc/http/requests/browse.xml
-#usr/share/vlc/http/requests/playlist.xml
-#usr/share/vlc/http/requests/readme
-#usr/share/vlc/http/requests/status.xml
-#usr/share/vlc/http/requests/vlm.xml
-#usr/share/vlc/http/requests/vlm_cmd.xml
-#usr/share/vlc/http/style.css
-#usr/share/vlc/http/vlm.html
-#usr/share/vlc/http/vlm_export.html
-#usr/share/vlc/osdmenu
-#usr/share/vlc/osdmenu/default
-#usr/share/vlc/osdmenu/default.cfg
-#usr/share/vlc/osdmenu/default/selected
-#usr/share/vlc/osdmenu/default/selected/bw.png
-#usr/share/vlc/osdmenu/default/selected/esc.png
-#usr/share/vlc/osdmenu/default/selected/fw.png
-#usr/share/vlc/osdmenu/default/selected/next.png
-#usr/share/vlc/osdmenu/default/selected/play_pause.png
-#usr/share/vlc/osdmenu/default/selected/previous.png
-#usr/share/vlc/osdmenu/default/selected/stop.png
-#usr/share/vlc/osdmenu/default/selected/volume.png
-#usr/share/vlc/osdmenu/default/selection
-#usr/share/vlc/osdmenu/default/selection/bw.png
-#usr/share/vlc/osdmenu/default/selection/esc.png
-#usr/share/vlc/osdmenu/default/selection/fw.png
-#usr/share/vlc/osdmenu/default/selection/next.png
-#usr/share/vlc/osdmenu/default/selection/play_pause.png
-#usr/share/vlc/osdmenu/default/selection/previous.png
-#usr/share/vlc/osdmenu/default/selection/stop.png
-#usr/share/vlc/osdmenu/default/selection/volume.png
-#usr/share/vlc/osdmenu/default/unselected.png
-#usr/share/vlc/osdmenu/default/volume
-#usr/share/vlc/osdmenu/default/volume/volume_00.png
-#usr/share/vlc/osdmenu/default/volume/volume_01.png
-#usr/share/vlc/osdmenu/default/volume/volume_02.png
-#usr/share/vlc/osdmenu/default/volume/volume_03.png
-#usr/share/vlc/osdmenu/default/volume/volume_04.png
-#usr/share/vlc/osdmenu/default/volume/volume_05.png
-#usr/share/vlc/osdmenu/default/volume/volume_06.png
-#usr/share/vlc/osdmenu/default/volume/volume_07.png
-#usr/share/vlc/osdmenu/default/volume/volume_08.png
-#usr/share/vlc/osdmenu/default/volume/volume_09.png
-#usr/share/vlc/osdmenu/default/volume/volume_10.png
-#usr/share/vlc/osdmenu/dvd
-#usr/share/vlc/osdmenu/dvd.cfg
-#usr/share/vlc/osdmenu/dvd/selected
-#usr/share/vlc/osdmenu/dvd/selected/bw.png
-#usr/share/vlc/osdmenu/dvd/selected/esc.png
-#usr/share/vlc/osdmenu/dvd/selected/fw.png
-#usr/share/vlc/osdmenu/dvd/selected/mute.png
-#usr/share/vlc/osdmenu/dvd/selected/next.png
-#usr/share/vlc/osdmenu/dvd/selected/pause.png
-#usr/share/vlc/osdmenu/dvd/selected/play.png
-#usr/share/vlc/osdmenu/dvd/selected/previous.png
-#usr/share/vlc/osdmenu/dvd/selected/slow.png
-#usr/share/vlc/osdmenu/dvd/selected/stop.png
-#usr/share/vlc/osdmenu/dvd/selected/volume.png
-#usr/share/vlc/osdmenu/dvd/selection
-#usr/share/vlc/osdmenu/dvd/selection/bw.png
-#usr/share/vlc/osdmenu/dvd/selection/esc.png
-#usr/share/vlc/osdmenu/dvd/selection/fw.png
-#usr/share/vlc/osdmenu/dvd/selection/mute.png
-#usr/share/vlc/osdmenu/dvd/selection/next.png
-#usr/share/vlc/osdmenu/dvd/selection/pause.png
-#usr/share/vlc/osdmenu/dvd/selection/play.png
-#usr/share/vlc/osdmenu/dvd/selection/previous.png
-#usr/share/vlc/osdmenu/dvd/selection/slow.png
-#usr/share/vlc/osdmenu/dvd/selection/stop.png
-#usr/share/vlc/osdmenu/dvd/unselect
-#usr/share/vlc/osdmenu/dvd/unselect/barroff.png
-#usr/share/vlc/osdmenu/dvd/volume
-#usr/share/vlc/osdmenu/dvd/volume/volume00.png
-#usr/share/vlc/osdmenu/dvd/volume/volume01.png
-#usr/share/vlc/osdmenu/dvd/volume/volume02.png
-#usr/share/vlc/osdmenu/dvd/volume/volume03.png
-#usr/share/vlc/osdmenu/dvd/volume/volume04.png
-#usr/share/vlc/osdmenu/dvd/volume/volume05.png
-#usr/share/vlc/pda-forwardb16x16.xpm
-#usr/share/vlc/pda-openb16x16.xpm
-#usr/share/vlc/pda-pauseb16x16.xpm
-#usr/share/vlc/pda-playb16x16.xpm
-#usr/share/vlc/pda-playlistb16x16.xpm
-#usr/share/vlc/pda-preferencesb16x16.xpm
-#usr/share/vlc/pda-rewindb16x16.xpm
-#usr/share/vlc/pda-stopb16x16.xpm
-#usr/share/vlc/skins2
-#usr/share/vlc/skins2/default.vlt
-#usr/share/vlc/skins2/fonts
-#usr/share/vlc/skins2/fonts/FreeSans.ttf
-#usr/share/vlc/skins2/fonts/FreeSansBold.ttf
-#usr/share/vlc/skins2/skin.catalog
-#usr/share/vlc/skins2/skin.dtd
-#usr/share/vlc/skins2/winamp2.xml
-#usr/share/vlc/vlc128x128.png
-#usr/share/vlc/vlc16x16.png
-#usr/share/vlc/vlc16x16.xpm
-#usr/share/vlc/vlc32x32.png
-#usr/share/vlc/vlc32x32.xpm
-#usr/share/vlc/vlc48x48.ico
-#usr/share/vlc/vlc48x48.png
diff --git a/src/paks/videolan/depends.txt b/src/paks/videolan/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/videolan/install.sh b/src/paks/videolan/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/videolan/uninstall.sh b/src/paks/videolan/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/webcyradm/ROOTFILES b/src/paks/webcyradm/ROOTFILES
deleted file mode 100644 (file)
index 7de749f..0000000
+++ /dev/null
@@ -1,471 +0,0 @@
-#home/httpd/webcyradm
-#home/httpd/webcyradm/.cvsignore
-home/httpd/webcyradm/COPYRIGHT
-#home/httpd/webcyradm/CVS
-#home/httpd/webcyradm/CVS/Entries
-#home/httpd/webcyradm/CVS/Entries.Log
-#home/httpd/webcyradm/CVS/Repository
-#home/httpd/webcyradm/CVS/Root
-#home/httpd/webcyradm/ChangeLog
-#home/httpd/webcyradm/INSTALL
-#home/httpd/webcyradm/README
-#home/httpd/webcyradm/README.translations
-#home/httpd/webcyradm/TO-BE-DONE
-home/httpd/webcyradm/adminuser.php
-home/httpd/webcyradm/aliases.php
-home/httpd/webcyradm/auth.inc.php
-home/httpd/webcyradm/browse.php
-home/httpd/webcyradm/browseaccounts.php
-home/httpd/webcyradm/catchall.php
-home/httpd/webcyradm/change_password.php
-home/httpd/webcyradm/changeadminpasswd.php
-#home/httpd/webcyradm/config
-#home/httpd/webcyradm/config/.cvsignore
-#home/httpd/webcyradm/config/CVS
-#home/httpd/webcyradm/config/CVS/Entries
-#home/httpd/webcyradm/config/CVS/Repository
-#home/httpd/webcyradm/config/CVS/Root
-home/httpd/webcyradm/config/conf.php
-#home/httpd/webcyradm/css
-#home/httpd/webcyradm/css/CVS
-#home/httpd/webcyradm/css/CVS/Entries
-#home/httpd/webcyradm/css/CVS/Repository
-#home/httpd/webcyradm/css/CVS/Root
-home/httpd/webcyradm/css/default.css
-home/httpd/webcyradm/css/green.css
-home/httpd/webcyradm/delete_catchall.php
-home/httpd/webcyradm/deleteaccount.php
-home/httpd/webcyradm/deleteadminuser.php
-home/httpd/webcyradm/deletealias.php
-home/httpd/webcyradm/deletedomain.php
-home/httpd/webcyradm/deleteemail.php
-home/httpd/webcyradm/display.php
-#home/httpd/webcyradm/doc
-#home/httpd/webcyradm/doc/CVS
-#home/httpd/webcyradm/doc/CVS/Entries
-#home/httpd/webcyradm/doc/CVS/Entries.Log
-#home/httpd/webcyradm/doc/CVS/Repository
-#home/httpd/webcyradm/doc/CVS/Root
-#home/httpd/webcyradm/doc/Postfix-Cyrus-Web-cyradm-HOWTO.sgml
-#home/httpd/webcyradm/doc/Postfix-Cyrus-Web-cyradm-HOWTO.txt
-#home/httpd/webcyradm/doc/html
-#home/httpd/webcyradm/doc/html/CVS
-#home/httpd/webcyradm/doc/html/CVS/Entries
-#home/httpd/webcyradm/doc/html/CVS/Entries.Log
-#home/httpd/webcyradm/doc/html/CVS/Repository
-#home/httpd/webcyradm/doc/html/CVS/Root
-#home/httpd/webcyradm/doc/html/HTML.manifest
-#home/httpd/webcyradm/doc/html/big-picture.png
-#home/httpd/webcyradm/doc/html/cyrus-config.html
-#home/httpd/webcyradm/doc/html/docbook.css
-#home/httpd/webcyradm/doc/html/faq.html
-#home/httpd/webcyradm/doc/html/home.png
-#home/httpd/webcyradm/doc/html/imap-account.png
-#home/httpd/webcyradm/doc/html/imap-tls.png
-#home/httpd/webcyradm/doc/html/index.html
-#home/httpd/webcyradm/doc/html/install.html
-#home/httpd/webcyradm/doc/html/installing-anti-spam.html
-#home/httpd/webcyradm/doc/html/intro.html
-#home/httpd/webcyradm/doc/html/moreinfo.html
-#home/httpd/webcyradm/doc/html/mysql-config.html
-#home/httpd/webcyradm/doc/html/pam-config.html
-#home/httpd/webcyradm/doc/html/postfix-config.html
-#home/httpd/webcyradm/doc/html/spam-and-virus-intro.html
-#home/httpd/webcyradm/doc/html/stylesheet-images
-#home/httpd/webcyradm/doc/html/stylesheet-images/CVS
-#home/httpd/webcyradm/doc/html/stylesheet-images/CVS/Entries
-#home/httpd/webcyradm/doc/html/stylesheet-images/CVS/Repository
-#home/httpd/webcyradm/doc/html/stylesheet-images/CVS/Root
-#home/httpd/webcyradm/doc/html/stylesheet-images/caution.gif
-#home/httpd/webcyradm/doc/html/stylesheet-images/home.gif
-#home/httpd/webcyradm/doc/html/stylesheet-images/important.gif
-#home/httpd/webcyradm/doc/html/stylesheet-images/next.gif
-#home/httpd/webcyradm/doc/html/stylesheet-images/note.gif
-#home/httpd/webcyradm/doc/html/stylesheet-images/prev.gif
-#home/httpd/webcyradm/doc/html/stylesheet-images/tip.gif
-#home/httpd/webcyradm/doc/html/stylesheet-images/toc-blank.gif
-#home/httpd/webcyradm/doc/html/stylesheet-images/toc-minus.gif
-#home/httpd/webcyradm/doc/html/stylesheet-images/toc-plus.gif
-#home/httpd/webcyradm/doc/html/stylesheet-images/up.gif
-#home/httpd/webcyradm/doc/html/stylesheet-images/warning.gif
-#home/httpd/webcyradm/doc/html/t1.html
-#home/httpd/webcyradm/doc/html/tech.html
-#home/httpd/webcyradm/doc/html/test.html
-#home/httpd/webcyradm/doc/html/web-cyradm-config.html
-#home/httpd/webcyradm/doc/web-cyradm-redhat.txt
-home/httpd/webcyradm/editaccount.php
-home/httpd/webcyradm/editadminuser.php
-home/httpd/webcyradm/editalias.php
-home/httpd/webcyradm/editdomain.php
-home/httpd/webcyradm/editemail.php
-home/httpd/webcyradm/editservices.php
-home/httpd/webcyradm/failed.php
-home/httpd/webcyradm/footer.inc.php
-home/httpd/webcyradm/forwardaccount.php
-home/httpd/webcyradm/forwardalias.php
-home/httpd/webcyradm/header.inc.php
-#home/httpd/webcyradm/images
-#home/httpd/webcyradm/images/CVS
-#home/httpd/webcyradm/images/CVS/Entries
-#home/httpd/webcyradm/images/CVS/Repository
-#home/httpd/webcyradm/images/CVS/Root
-home/httpd/webcyradm/images/arrow_sort_desc.png
-home/httpd/webcyradm/images/banner.gif
-home/httpd/webcyradm/images/checked.png
-home/httpd/webcyradm/images/false.png
-home/httpd/webcyradm/index.php
-home/httpd/webcyradm/init.php
-#home/httpd/webcyradm/lib
-#home/httpd/webcyradm/lib/CVS
-#home/httpd/webcyradm/lib/CVS/Entries
-#home/httpd/webcyradm/lib/CVS/Repository
-#home/httpd/webcyradm/lib/CVS/Root
-home/httpd/webcyradm/lib/crypto.php
-home/httpd/webcyradm/lib/cyradm.php
-home/httpd/webcyradm/lib/log.php
-home/httpd/webcyradm/lib/nls.php
-home/httpd/webcyradm/lib/poppassd.php
-home/httpd/webcyradm/lib/sieve-php.lib
-home/httpd/webcyradm/lib/sieve_strs.php
-#home/httpd/webcyradm/locale
-#home/httpd/webcyradm/locale/CVS
-#home/httpd/webcyradm/locale/CVS/Entries
-#home/httpd/webcyradm/locale/CVS/Entries.Log
-#home/httpd/webcyradm/locale/CVS/Repository
-#home/httpd/webcyradm/locale/CVS/Root
-#home/httpd/webcyradm/locale/cs
-#home/httpd/webcyradm/locale/cs/CVS
-#home/httpd/webcyradm/locale/cs/CVS/Entries
-#home/httpd/webcyradm/locale/cs/CVS/Entries.Log
-#home/httpd/webcyradm/locale/cs/CVS/Repository
-#home/httpd/webcyradm/locale/cs/CVS/Root
-#home/httpd/webcyradm/locale/cs/LC_MESSAGES
-#home/httpd/webcyradm/locale/cs/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/cs/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/cs/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/cs/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/cs/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/cs/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/da
-#home/httpd/webcyradm/locale/da/CVS
-#home/httpd/webcyradm/locale/da/CVS/Entries
-#home/httpd/webcyradm/locale/da/CVS/Entries.Log
-#home/httpd/webcyradm/locale/da/CVS/Repository
-#home/httpd/webcyradm/locale/da/CVS/Root
-#home/httpd/webcyradm/locale/da/LC_MESSAGES
-#home/httpd/webcyradm/locale/da/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/da/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/da/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/da/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/da/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/da/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/de
-#home/httpd/webcyradm/locale/de/CVS
-#home/httpd/webcyradm/locale/de/CVS/Entries
-#home/httpd/webcyradm/locale/de/CVS/Entries.Log
-#home/httpd/webcyradm/locale/de/CVS/Repository
-#home/httpd/webcyradm/locale/de/CVS/Root
-#home/httpd/webcyradm/locale/de/LC_MESSAGES
-#home/httpd/webcyradm/locale/de/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/de/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/de/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/de/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/de/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/de/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/en
-#home/httpd/webcyradm/locale/en/CVS
-#home/httpd/webcyradm/locale/en/CVS/Entries
-#home/httpd/webcyradm/locale/en/CVS/Entries.Log
-#home/httpd/webcyradm/locale/en/CVS/Repository
-#home/httpd/webcyradm/locale/en/CVS/Root
-#home/httpd/webcyradm/locale/en/LC_MESSAGES
-#home/httpd/webcyradm/locale/en/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/en/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/en/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/en/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/en/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/en/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/es
-#home/httpd/webcyradm/locale/es/CVS
-#home/httpd/webcyradm/locale/es/CVS/Entries
-#home/httpd/webcyradm/locale/es/CVS/Entries.Log
-#home/httpd/webcyradm/locale/es/CVS/Repository
-#home/httpd/webcyradm/locale/es/CVS/Root
-#home/httpd/webcyradm/locale/es/LC_MESSAGES
-#home/httpd/webcyradm/locale/es/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/es/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/es/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/es/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/es/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/es/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/fr
-#home/httpd/webcyradm/locale/fr/CVS
-#home/httpd/webcyradm/locale/fr/CVS/Entries
-#home/httpd/webcyradm/locale/fr/CVS/Entries.Log
-#home/httpd/webcyradm/locale/fr/CVS/Repository
-#home/httpd/webcyradm/locale/fr/CVS/Root
-#home/httpd/webcyradm/locale/fr/LC_MESSAGES
-#home/httpd/webcyradm/locale/fr/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/fr/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/fr/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/fr/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/fr/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/fr/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/hu
-#home/httpd/webcyradm/locale/hu/CVS
-#home/httpd/webcyradm/locale/hu/CVS/Entries
-#home/httpd/webcyradm/locale/hu/CVS/Entries.Log
-#home/httpd/webcyradm/locale/hu/CVS/Repository
-#home/httpd/webcyradm/locale/hu/CVS/Root
-#home/httpd/webcyradm/locale/hu/LC_MESSAGES
-#home/httpd/webcyradm/locale/hu/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/hu/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/hu/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/hu/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/hu/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/hu/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/it
-#home/httpd/webcyradm/locale/it/CVS
-#home/httpd/webcyradm/locale/it/CVS/Entries
-#home/httpd/webcyradm/locale/it/CVS/Entries.Log
-#home/httpd/webcyradm/locale/it/CVS/Repository
-#home/httpd/webcyradm/locale/it/CVS/Root
-#home/httpd/webcyradm/locale/it/LC_MESSAGES
-#home/httpd/webcyradm/locale/it/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/it/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/it/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/it/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/it/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/it/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/nb_NO
-#home/httpd/webcyradm/locale/nb_NO/CVS
-#home/httpd/webcyradm/locale/nb_NO/CVS/Entries
-#home/httpd/webcyradm/locale/nb_NO/CVS/Entries.Log
-#home/httpd/webcyradm/locale/nb_NO/CVS/Repository
-#home/httpd/webcyradm/locale/nb_NO/CVS/Root
-#home/httpd/webcyradm/locale/nb_NO/LC_MESSAGES
-#home/httpd/webcyradm/locale/nb_NO/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/nb_NO/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/nb_NO/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/nb_NO/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/nb_NO/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/nb_NO/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/nl
-#home/httpd/webcyradm/locale/nl/CVS
-#home/httpd/webcyradm/locale/nl/CVS/Entries
-#home/httpd/webcyradm/locale/nl/CVS/Entries.Log
-#home/httpd/webcyradm/locale/nl/CVS/Repository
-#home/httpd/webcyradm/locale/nl/CVS/Root
-#home/httpd/webcyradm/locale/nl/LC_MESSAGES
-#home/httpd/webcyradm/locale/nl/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/nl/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/nl/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/nl/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/nl/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/nl/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/no
-#home/httpd/webcyradm/locale/no/CVS
-#home/httpd/webcyradm/locale/no/CVS/Entries
-#home/httpd/webcyradm/locale/no/CVS/Entries.Log
-#home/httpd/webcyradm/locale/no/CVS/Repository
-#home/httpd/webcyradm/locale/no/CVS/Root
-#home/httpd/webcyradm/locale/no/LC_MESSAGES
-#home/httpd/webcyradm/locale/no/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/no/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/no/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/no/LC_MESSAGES/CVS/Root
-#home/httpd/webcyradm/locale/pl
-#home/httpd/webcyradm/locale/pl/CVS
-#home/httpd/webcyradm/locale/pl/CVS/Entries
-#home/httpd/webcyradm/locale/pl/CVS/Entries.Log
-#home/httpd/webcyradm/locale/pl/CVS/Repository
-#home/httpd/webcyradm/locale/pl/CVS/Root
-#home/httpd/webcyradm/locale/pl/LC_MESSAGES
-#home/httpd/webcyradm/locale/pl/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/pl/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/pl/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/pl/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/pl/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/pl/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/pt
-#home/httpd/webcyradm/locale/pt/CVS
-#home/httpd/webcyradm/locale/pt/CVS/Entries
-#home/httpd/webcyradm/locale/pt/CVS/Entries.Log
-#home/httpd/webcyradm/locale/pt/CVS/Repository
-#home/httpd/webcyradm/locale/pt/CVS/Root
-#home/httpd/webcyradm/locale/pt/LC_MESSAGES
-#home/httpd/webcyradm/locale/pt/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/pt/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/pt/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/pt/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/pt/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/pt/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/ro
-#home/httpd/webcyradm/locale/ro/CVS
-#home/httpd/webcyradm/locale/ro/CVS/Entries
-#home/httpd/webcyradm/locale/ro/CVS/Entries.Log
-#home/httpd/webcyradm/locale/ro/CVS/Repository
-#home/httpd/webcyradm/locale/ro/CVS/Root
-#home/httpd/webcyradm/locale/ro/LC_MESSAGES
-#home/httpd/webcyradm/locale/ro/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/ro/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/ro/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/ro/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/ro/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/ro/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/ru
-#home/httpd/webcyradm/locale/ru/CVS
-#home/httpd/webcyradm/locale/ru/CVS/Entries
-#home/httpd/webcyradm/locale/ru/CVS/Entries.Log
-#home/httpd/webcyradm/locale/ru/CVS/Repository
-#home/httpd/webcyradm/locale/ru/CVS/Root
-#home/httpd/webcyradm/locale/ru/LC_MESSAGES
-#home/httpd/webcyradm/locale/ru/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/ru/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/ru/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/ru/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/ru/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/ru/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/sl
-#home/httpd/webcyradm/locale/sl/CVS
-#home/httpd/webcyradm/locale/sl/CVS/Entries
-#home/httpd/webcyradm/locale/sl/CVS/Entries.Log
-#home/httpd/webcyradm/locale/sl/CVS/Repository
-#home/httpd/webcyradm/locale/sl/CVS/Root
-#home/httpd/webcyradm/locale/sl/LC_MESSAGES
-#home/httpd/webcyradm/locale/sl/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/sl/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/sl/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/sl/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/sl/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/sl/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/sv
-#home/httpd/webcyradm/locale/sv/CVS
-#home/httpd/webcyradm/locale/sv/CVS/Entries
-#home/httpd/webcyradm/locale/sv/CVS/Entries.Log
-#home/httpd/webcyradm/locale/sv/CVS/Repository
-#home/httpd/webcyradm/locale/sv/CVS/Root
-#home/httpd/webcyradm/locale/sv/LC_MESSAGES
-#home/httpd/webcyradm/locale/sv/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/sv/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/sv/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/sv/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/sv/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/sv/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/teamnames
-#home/httpd/webcyradm/locale/templates
-#home/httpd/webcyradm/locale/templates/CVS
-#home/httpd/webcyradm/locale/templates/CVS/Entries
-#home/httpd/webcyradm/locale/templates/CVS/Repository
-#home/httpd/webcyradm/locale/templates/CVS/Root
-home/httpd/webcyradm/locale/templates/web-cyradm.pot
-#home/httpd/webcyradm/locale/tr
-#home/httpd/webcyradm/locale/tr/CVS
-#home/httpd/webcyradm/locale/tr/CVS/Entries
-#home/httpd/webcyradm/locale/tr/CVS/Entries.Log
-#home/httpd/webcyradm/locale/tr/CVS/Repository
-#home/httpd/webcyradm/locale/tr/CVS/Root
-#home/httpd/webcyradm/locale/tr/LC_MESSAGES
-#home/httpd/webcyradm/locale/tr/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/tr/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/tr/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/tr/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/tr/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/tr/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/uk
-#home/httpd/webcyradm/locale/uk/CVS
-#home/httpd/webcyradm/locale/uk/CVS/Entries
-#home/httpd/webcyradm/locale/uk/CVS/Entries.Log
-#home/httpd/webcyradm/locale/uk/CVS/Repository
-#home/httpd/webcyradm/locale/uk/CVS/Root
-#home/httpd/webcyradm/locale/uk/LC_MESSAGES
-#home/httpd/webcyradm/locale/uk/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/uk/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/uk/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/uk/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/uk/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/uk/LC_MESSAGES/web-cyradm.po
-#home/httpd/webcyradm/locale/zh_CN
-#home/httpd/webcyradm/locale/zh_CN/CVS
-#home/httpd/webcyradm/locale/zh_CN/CVS/Entries
-#home/httpd/webcyradm/locale/zh_CN/CVS/Entries.Log
-#home/httpd/webcyradm/locale/zh_CN/CVS/Repository
-#home/httpd/webcyradm/locale/zh_CN/CVS/Root
-#home/httpd/webcyradm/locale/zh_CN/LC_MESSAGES
-#home/httpd/webcyradm/locale/zh_CN/LC_MESSAGES/CVS
-#home/httpd/webcyradm/locale/zh_CN/LC_MESSAGES/CVS/Entries
-#home/httpd/webcyradm/locale/zh_CN/LC_MESSAGES/CVS/Repository
-#home/httpd/webcyradm/locale/zh_CN/LC_MESSAGES/CVS/Root
-home/httpd/webcyradm/locale/zh_CN/LC_MESSAGES/web-cyradm.mo
-home/httpd/webcyradm/locale/zh_CN/LC_MESSAGES/web-cyradm.po
-home/httpd/webcyradm/login.php
-home/httpd/webcyradm/logout.php
-home/httpd/webcyradm/manageaccount.php
-home/httpd/webcyradm/menu.inc.php
-#home/httpd/webcyradm/migrate.php-dist
-home/httpd/webcyradm/newaccount.php
-home/httpd/webcyradm/newadminuser.php
-home/httpd/webcyradm/newalias.php
-home/httpd/webcyradm/newdomain.php
-home/httpd/webcyradm/newemail.php
-#home/httpd/webcyradm/scripts
-#home/httpd/webcyradm/scripts/CVS
-#home/httpd/webcyradm/scripts/CVS/Entries
-#home/httpd/webcyradm/scripts/CVS/Repository
-#home/httpd/webcyradm/scripts/CVS/Root
-#home/httpd/webcyradm/scripts/create_mysql.sql
-#home/httpd/webcyradm/scripts/create_pgsql.sql
-home/httpd/webcyradm/scripts/imap2imap-copy.php
-#home/httpd/webcyradm/scripts/insertuser_mysql.sql
-#home/httpd/webcyradm/scripts/insertuser_pgsql.sql
-home/httpd/webcyradm/scripts/php2pot
-home/httpd/webcyradm/scripts/pot2po
-#home/httpd/webcyradm/scripts/upgrade-0.5.2-to-0.5.3_mysql.sql
-#home/httpd/webcyradm/scripts/upgrade-0.5.3-to-0.5.4_mysql.sql
-#home/httpd/webcyradm/scripts/upgrade-0.5.3-to-0.5.4_pgsql.sql
-#home/httpd/webcyradm/scripts/upgrade-0.5.4-to-0.5.5_mysql.sql
-#home/httpd/webcyradm/scripts/upgrade-0.5.4-to-0.5.5_pgsql.sql
-home/httpd/webcyradm/search.php
-home/httpd/webcyradm/session.php
-home/httpd/webcyradm/setquota.php
-home/httpd/webcyradm/settings.php
-#home/httpd/webcyradm/setup
-#home/httpd/webcyradm/setup/CVS
-#home/httpd/webcyradm/setup/CVS/Entries
-#home/httpd/webcyradm/setup/CVS/Repository
-#home/httpd/webcyradm/setup/CVS/Root
-home/httpd/webcyradm/setup/index.php
-home/httpd/webcyradm/setup/populate.php
-home/httpd/webcyradm/timeout.php
-home/httpd/webcyradm/vacation.php
-home/httpd/webcyradm/validate.inc.php
-home/httpd/webcyradm/welcome.php
-#srv/mysql/mail
-srv/mysql/mail/accountuser.MYD
-srv/mysql/mail/accountuser.MYI
-srv/mysql/mail/accountuser.frm
-srv/mysql/mail/adminuser.MYD
-srv/mysql/mail/adminuser.MYI
-srv/mysql/mail/adminuser.frm
-srv/mysql/mail/alias.MYD
-srv/mysql/mail/alias.MYI
-srv/mysql/mail/alias.frm
-srv/mysql/mail/db.opt
-srv/mysql/mail/domain.MYD
-srv/mysql/mail/domain.MYI
-srv/mysql/mail/domain.frm
-srv/mysql/mail/domainadmin.MYD
-srv/mysql/mail/domainadmin.MYI
-srv/mysql/mail/domainadmin.frm
-srv/mysql/mail/log.MYD
-srv/mysql/mail/log.MYI
-srv/mysql/mail/log.frm
-srv/mysql/mail/search.MYD
-srv/mysql/mail/search.MYI
-srv/mysql/mail/search.frm
-srv/mysql/mail/settings.MYD
-srv/mysql/mail/settings.MYI
-srv/mysql/mail/settings.frm
-srv/mysql/mail/virtual.MYD
-srv/mysql/mail/virtual.MYI
-srv/mysql/mail/virtual.frm
diff --git a/src/paks/webcyradm/depends.txt b/src/paks/webcyradm/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/webcyradm/install.sh b/src/paks/webcyradm/install.sh
deleted file mode 100644 (file)
index 2f78907..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
diff --git a/src/paks/webcyradm/uninstall.sh b/src/paks/webcyradm/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/xvid/ROOTFILES b/src/paks/xvid/ROOTFILES
deleted file mode 100644 (file)
index ffa7bc5..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#usr/include/xvid.h
-#usr/lib/libxvidcore.a
-usr/lib/libxvidcore.so
-usr/lib/libxvidcore.so.4
-usr/lib/libxvidcore.so.4.1
diff --git a/src/paks/xvid/depends.txt b/src/paks/xvid/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/xvid/install.sh b/src/paks/xvid/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/xvid/uninstall.sh b/src/paks/xvid/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/yasuc/ROOTFILES b/src/paks/yasuc/ROOTFILES
deleted file mode 100644 (file)
index c81bf32..0000000
+++ /dev/null
@@ -1 +0,0 @@
-usr/bin/yasuc
diff --git a/src/paks/yasuc/depends.txt b/src/paks/yasuc/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/yasuc/install.sh b/src/paks/yasuc/install.sh
deleted file mode 100644 (file)
index 2f78907..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
diff --git a/src/paks/yasuc/uninstall.sh b/src/paks/yasuc/uninstall.sh
deleted file mode 100644 (file)
index 7ee2885..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
diff --git a/src/paks/zaptel/ROOTFILES b/src/paks/zaptel/ROOTFILES
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/zaptel/depends.txt b/src/paks/zaptel/depends.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/paks/zaptel/install.sh b/src/paks/zaptel/install.sh
deleted file mode 100644 (file)
index 3a9ce55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Extract the files
-tar xfz files.tgz -C /
-cp -f ROOTFILES /opt/pakfire/installed/ROOTFILES.$2
diff --git a/src/paks/zaptel/uninstall.sh b/src/paks/zaptel/uninstall.sh
deleted file mode 100644 (file)
index ad61226..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-#################################################################
-#                                                               #
-# This file belongs to IPFire Firewall - GPLv2 - www.ipfire.org #
-#                                                               #
-#################################################################
-#
-# Delete the files
-## Befehl fehlt noch
-rm -f /opt/pakfire/installed/ROOTFILES.$2