Red Hat Linux, ядро 2.4.9-13.
Пишу драйвер для PCI устройства (вставляется в слот PCI). Таких устройств может быть несколько (до 10). Проблема с идентификацией устройств в системе.
Сейчас драйвер нумерует устройства в цикле, в порядке обнаружения их функцией pci_find_subsys() (например /dev/d0, /dev/d1 и т.д.). Это плохо, так как при изъятии скажем нулевого устройства, первое становится нулевым, а первого вообще не будет.
Такого понятия как слот в линухе как я понял нет (Например в Solaris для Sun Sparc можно спокойно называть устройства в соответствии с номерами слотов PCI, подписанными на материнке).
Как правильно идентифицировать устройства, чтобы при перезагрузке правильно понимать, какой именно модуль изъяли и чтобы не происходила перенумерация оставшихся устройств?