The driver API offer much of the same functionality as the "C" library offers to applications. You will find that many of the low-level functions you know from user-space applications are also available when working with device drivers. If you are familiar with C programming and know how to deal with multithreaded programming you should have no problem developing device drivers for AtheOS.
There is more than one type of kernel drivers. Currently 3 distinct interfaces are defined:
Most driver entry points are passed to the kernel through structures containing nothing but a list of correctly prototyped function pointers. For device drivers a distinct set of functions can be associated with each "node" it export in the /dev/ device hierarchy.
Filesystem only have one function-pointer table that will be associated by all files (or inodes) that lives in the FS.
1.2.5 written by Dimitri van Heesch,
 © 1997-2001