> I think we should remove the current pnp device manager from Haiku. > > It is unnecessary complicated and stalls the entire > kernel driver development process. I'm not sure we should remove it entirely, but it's not usable in the current state. I agree it's too complex. However some node-based stuff would still be nice and would allow more code reuse I think. > IO ressource reservation by device drivers is completely useless, > except for the purpose of multiple drivers supporting the same > device, when the device manager will detected the collision and > allow only one driver. This can be handled by allowing only one > driver per device. You'll always find cases where the same IO is used for 2 things anyway. But it's still nice to have. Though it can be done for PCI by adding 2 funcs to the bus manager. > The only case not covered by this is the ISA IDE driver, but > we can surely find another solution for it to not conflict with > the PCI IDE driver. Ditto. > The way that drivers need to load their own parents is completely > broken, and makes passing data from for example controller driver > to it channel childs a nightmare. Right. The current version doesn't help at all code reuse, you have to do a lot of copy-paste and you'll always end up missing something. > > Proposal: > - basically implement a R5 style device driver handling. > > - driver attributes should be removed Storing them in the fs is week at least (IIRC Zeta used a plain file instead). > - drivers should be able to publish new devices, and > the kernel should scan available drivers for that > (like: > somebody plugged in /dev/usb/0/1/whatever, > and the kernel should scan drivers/usb to see if there > is a driver that can handle the device. > one my be found, that published /dev/disk/foobar, > and the kernel will scan drivers/disk to find a mathcing one, etc > This can probably accomplished by adding some notification support) Possibly even via node monitoring. This really needs to be designed carefully. That'd make a good subject for BeGeistert (we have a week to trol^ Wdiscuss it then :D) François.