X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=pypcimap.py;h=fd3dd2d8e7d29a178239e04bfd5f53b77fda7381;hb=c316e359867283b8e707070d0a52facd7413ae93;hp=9160cc04b867a87a588a541a437c59ee4efd0c3b;hpb=7dae859585f8c35f94b579923f4dcdb81090c062;p=pypcilib.git diff --git a/pypcimap.py b/pypcimap.py index 9160cc0..fd3dd2d 100644 --- a/pypcimap.py +++ b/pypcimap.py @@ -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