yet another attempt
[pypcilib.git] / pypcimap.py
index 9160cc0..fd3dd2d 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/python -tt
+#!/usr/bin/python2 -tt
 # Copyright 2007 The Trustees of Princeton University
 # Author: Daniel Hokka Zakrisson
 # $Id$
@@ -36,6 +36,9 @@
 import os
 import re
 
+# These are modules which are only returned if no other driver is available
+greylist = ["ata_generic", "eepro100", "8139cp", "e1000e"]
+
 class PCIMap:
     """Encapsulates modules.pcimap"""
     def __init__(self, filename):
@@ -45,12 +48,15 @@ class PCIMap:
         """Returns a list of candidate modules for the PCI device specified in tuple"""
         ret = []
         for i in self.list:
-            if ((i[1] == tuple[0] or i[1] == 0xffffffff) and
-                (i[2] == tuple[1] or i[2] == 0xffffffff) and
-                (i[3] == tuple[2] or i[3] == 0xffffffff) and
-                (i[4] == tuple[3] or i[4] == 0xffffffff) and
+            if ((i[1] == tuple[0] or i[1] == 0xffffffffL) and
+                (i[2] == tuple[1] or i[2] == 0xffffffffL) and
+                (i[3] == tuple[2] or i[3] == 0xffffffffL) and
+                (i[4] == tuple[3] or i[4] == 0xffffffffL) and
                 (i[5] == (tuple[4] & i[6]))):
                 ret.append(i[0])
+        for i in greylist:
+            if i in ret and len(ret) > 1:
+                ret.remove(i)
         return ret
     def add(self, list):
         # FIXME: check values