Oh, I just have been at http://www.cgsoftware.com/erik/Repository/ trying to find a place for a kernel driver to checkin. Noticed quite a problem: src add-ons (should mirror /boot/beos/system/add-ons; drivers go in here) audio ac97 ich Well /boot/beos/system/add-ons does not only contain drivers. It contains add-ons running in userspace, as well as drivers /boot/beos/system/add-ons/accelerants -> graphic drivers running in kernel (not sure) /boot/beos/system/add-ons/app_server -> don't know /boot/beos/system/add-ons/drive_setup -> add-ons for driversetup, running in userland /boot/beos/system/add-ons/input_server -> add-ons for the input server, running in userland /boot/beos/system/add-ons/kernel -> all real device drivers, running in kernel /boot/beos/system/add-ons/media -> media add-ons, running in userland /boot/beos/system/add-ons/net_server -> no longer used (netserver userland extension) /boot/beos/system/add-ons/Screen Savers -> Screensavers, running in userland [...] This isn't currently mapped correctly to current/src/add-ons/ Everything seem to be mixed, print server add-ons are not the same as networking kernel drivers What can we do? 1) we put all kernel drivers into subdirectories of /boot/beos/system/add-ons/kernel This means, we need to move /boot/beos/system/add-ons/net into /boot/beos/system/add-ons/kernel/net (there also is something from networking currently, why is it in two places?) 2) we use a different directory for kernel drivers, current/src/kernel/add-ons is already there. It also caontains a networking driver, this means we have networking drivers/modules in three different places currently. 3) we put all drivers into current/src/kernel/drivers, where also some drivers are located. 4) we mix kernel drivers and userland add-ons, which is a very very bad thing. Come on, tell me that we can do better. What do we do now? Another problem: /current/src/kernel/drivers/arch/i386 I assumed all i386 had been changed to x86. Why it there i386 again? Proposal: We put all drivers handling some specific hardware and running in the kernel into /current/src/kernel/drivers We put all modules running in the kernel, like tcp, udp, ... into /current/src/kernel/add-ons We put all add-ons running in userspace, like Screensaver into /current/src/add-ons This means: we move the loopback network driver from /current/src/kernel/add-ons/net/loopback to /current/src/kernel/add-ons/net/loopback (ups it's in both, whatever, needs to be cleaned up) we move the loopback network driver from /current/src/add-ons/kernel/net/loop to /current/src/kernel/add-ons/net/loopback (ups it's in all three, whatever, needs to be cleaned up) We move the networking core from /current/src/add-ons/kernel/net/server to something located in /current/src/kernel/... We move /current/src/add-ons/net to something located in /current/src/kernel/... We move /boot/home/Develop/OpenBeOS/current/src/add-ons/kernel/file_systems to /current/src/kernel/add-ons/file_systems Comments? Suggestions? Please, lets clear driver, module and userland placement issues, before modifying CVS again I think I should place the Intel Chipset AC97 driver into one of this directoris: /current/src/kernel/drivers/media/ich_ac97 /current/src/kernel/drivers/media/ac97/ich (preferred) /current/src/kernel/drivers/media/audio/ac97/ich /current/src/kernel/drivers/audio/ich_ac97 /current/src/kernel/drivers/audio/ac97/ich Please, comment! Marcus