next up previous contents
Next: C/C++ Runtime Up: Cryptic Allusion KallistiOS / Previous: Platform-Independent Images   Contents

Hardware Abstraction Layer: Portable Parts

Underneath the platform independent pieces of KOS is a comprehensive hardware abstraction layer (HAL). This piece of code implements a standard API (plus a number of other things that provide ways to get directly to hardware functionality when necessary) which may be used by the platform independent pieces and also by user programs. The HAL includes the following pieces (and maybe more, depending on the needs of the platform):

The three items above marked with a star (*) are part of the non-portable section of the HAL, and thus will be covered in the next chapter. However, they are listed here for completeness. The parts marked ``not yet specified'' have been potentially planned, but not yet designed or implemented, so they will not be specified here at all.

Note also that while we try to keep fairly generic pieces (like timer handling) either to a generic interface, or providing a generic interface, there are many cases where it's simply not possible. For example, every CPU has different sets of exceptions you can catch in software. Some are similar across CPUs, some aren't. This is a low-level enough thing, though, where making it portable would have probably caused more trouble than it would have saved. In the sections below where that is the case, this document will not expound further upon the subject in a platform-specific manner. You will need to refer to the headers and source code for the platform in question when writing something that uses these low-level interfaces.

Most users of KOS who are simply writing programs to use it will never need to look through most of this chapter of the manual. You will be much more interested in the next chapter.

But now, without further delay...



Subsections
next up previous contents
Next: C/C++ Runtime Up: Cryptic Allusion KallistiOS / Previous: Platform-Independent Images   Contents
Dan Potter 2002-07-29