Browse Source

Added support for wildcard device/vendor ID matches

tags/v0.9.3
Michael Brown 18 years ago
parent
commit
5af4918356
2 changed files with 7 additions and 1 deletions
  1. 4
    1
      src/drivers/bus/pci.c
  2. 3
    0
      src/include/gpxe/pci.h

+ 4
- 1
src/drivers/bus/pci.c View File

187
 	for ( driver = pci_drivers ; driver < pci_drivers_end ; driver++ ) {
187
 	for ( driver = pci_drivers ; driver < pci_drivers_end ; driver++ ) {
188
 		for ( i = 0 ; i < driver->id_count ; i++ ) {
188
 		for ( i = 0 ; i < driver->id_count ; i++ ) {
189
 			id = &driver->ids[i];
189
 			id = &driver->ids[i];
190
-			if ( ( id->vendor != pci->vendor ) ||
190
+			if ( ( id->vendor != PCI_ANY_ID ) &&
191
+			     ( id->vendor != pci->vendor ) )
192
+				continue;
193
+			if ( ( id->device != PCI_ANY_ID ) &&
191
 			     ( id->device != pci->device ) )
194
 			     ( id->device != pci->device ) )
192
 				continue;
195
 				continue;
193
 			pci->driver = driver;
196
 			pci->driver = driver;

+ 3
- 0
src/include/gpxe/pci.h View File

239
 	uint16_t device;
239
 	uint16_t device;
240
 };
240
 };
241
 
241
 
242
+/** Match-anything ID */
243
+#define PCI_ANY_ID 0xffff
244
+
242
 /** A PCI device */
245
 /** A PCI device */
243
 struct pci_device {
246
 struct pci_device {
244
 	/** Generic device */
247
 	/** Generic device */

Loading…
Cancel
Save