This is a quick hack way to get the PCI vendor:dev codes for the
stuff we want to support. 

The files 

    good-video.lst
    good-eth.lst
    good-scsi.lst

contain the latest list of the device IDs we have used. The file

    exclude.lst

contain the list of entries we ignored. 

These lists are based on the file linux/drivers/pci/pci.c
from the kernel source. When a pci.c is to be used, first run the script

pcidevinfomerge < pci.c

which assumes that the exclude and good-* files exist in the current directory.

This command will output to stdout new entries which are not in either
the exclude.lst or the good-*.lst lists. You will need to review these
entries and stick them either in the good-*.lst or exclude.lst lists.
A list of all devices in pci.c can be created with the command

pcidevinfo < pci.c

Once a good list is made, run the command

makepciids

It uses /usr/include/linux/pci.h by default for some information. 
If you have a newer kernel pci.c you want to integrate, you'll have to
 make sure either /usr/include/linux/pci.h is also updated, or you
specift the include file on the command line to makepciids.

Running 'makepciids' will output some C code which defines a struct
with the vendor/dev ids converted to numeric values. This ASSUMES that
the pci.h include file used is recent enough to contain all the
vendor/device ids in the pci.c file used to make the good-list.lst. 
The output of 'makepciids' will be stored in pci-ids-temp.h.

The last step is to convert the English device names in the C code in
pci-ids-temp.h to the correct module name. This requires a mapping
file, which must be named map-[eth,scsi,video].lst. Then run the
command

mappcinames < pci-ids-temp.h > pci-ids.h

This final output can be integrated into source code and give you a
mapping from pci vendor:device id into a module. BTW, if no mapping
exists for a certain PCI id, the value "UNKNOWN" is used for the
module. Calling code should check the returned value against this to be
sure a valid mapping exists!

After done, make sure to cvs checkin the newest versions of these files,
and then cvs update all the code which cares. At the moment I know that
the following programs depend on this code:

RH install
Xconfigurator

Special Notes for map-video.lst
-------------------------------
Instead of specifying a module to load, the mapping entries for video
cards lists either a 'Server:xxx' or a 'Card:xxxx' as the mapping. This
tells Xconfigurator to either the the server XF86_xxx, or the CardDB
entry 'xxxx'.  I tried to use the card entry when possible, so I picked
'Card:S3 864 (generic)' over 'Server:S3'.







