Pārlūkot izejas kodu

Added support for wildcard device/vendor ID matches

tags/v0.9.3
Michael Brown 18 gadus atpakaļ
vecāks
revīzija
5af4918356
2 mainītis faili ar 7 papildinājumiem un 1 dzēšanām
  1. 4
    1
      src/drivers/bus/pci.c
  2. 3
    0
      src/include/gpxe/pci.h

+ 4
- 1
src/drivers/bus/pci.c Parādīt failu

@@ -187,7 +187,10 @@ static int pci_probe ( struct pci_device *pci ) {
187 187
 	for ( driver = pci_drivers ; driver < pci_drivers_end ; driver++ ) {
188 188
 		for ( i = 0 ; i < driver->id_count ; i++ ) {
189 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 194
 			     ( id->device != pci->device ) )
192 195
 				continue;
193 196
 			pci->driver = driver;

+ 3
- 0
src/include/gpxe/pci.h Parādīt failu

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

Notiek ielāde…
Atcelt
Saglabāt