[openbeos] add-ons and drivers and problems

  • From: "Marcus Overhagen" <ml@xxxxxxxxxxxx>
  • To: openbeos@xxxxxxxxxxxxx
  • Date: Tue, 9 Jul 2002 23:43:24 +0200

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 

Other related posts: