Hi,
On 10-1-28 下午9:39, Björn Döbel wrote:
You missed my point. I understand that each driver runs in a separate program. The problem is that a device has to find the bus where it is located. In the current implementation, a driver can only scan 32 devices. If we have 33 devices in the system, its driver thinks there isn't such a device and fails to work.
So I suggest why not let the logical bus contains all devices in the system.
Because in a secure system you don't want the NIC device driver to see all other devices. This is why we need an IO manager that manages access to devices on a per-driver basis.
I thought only root could run drivers.
Thus, the driver can always find its device no matter where the device is located, and we don't need an IO manager to pre-configure the logical PCI bus as Bjoern said, which seems quite complex.
By the way, does DDEKit treat a device with 2 functions as two logical devices or just one? The `func` of `ddekit_pci_dev` is always 0 and `ddekit_pci_find_device_fixed` only uses the argument `slot`. Either DDEKit treat a device with multiple functions as several logical devices or only one function in a device is exposed to DDE Linux26. Both seems not very reasonable.
Most probably we never stumbled over a multi-function device so far, so I'd consider this a bug rather than a reasonable decision. ;)
My VWare VM has multi-function devices. Though I don't really need to have drivers for them, I still have to take care of it. Otherwise, 32 slots in the logical bus are not enough.
I'm sorry to ask again about the status of DDE Linux26 again. The hard disk driver for TUDOS is based on DDE Linux26 or you wrote it from scratch? What about the graphic card since TUDOS already has graphic interface?
I also like to cc the letter to bug-hurd ML. Some people in the Hurd community are probably interested in the discussion.
Best regards, Zheng Da