#ifndef __PANDA_SYSTEM_LAYER__ #define __PANDA_SYSTEM_LAYER__
This header file defines the Panda system layer interface, that puts an abstract layer on top of an existing operating system. The implementation of the system layer must provide the functions presented here WITHOUT MODIFYING THIS FILE!!! This way it is guaranteed that all implementations on top of it are architecture independent.
To allow Panda to be both portable and efficient, it is important that the Panda modules make best use of the primitived provided by the underlying platform (i.e., the operating system and hardware). Therefore, the semantics of the operations defined in the system layer are not fixed, but depend on what the underlying system provides. Panda distinguishes three important areas in which these systems differ:
Naming convention: All names that are externally visible have to be prefixed with ' pan'. The names that are supposed not to be used by the higher layers start with ' pan_sys'. All modules layered on top of the system module should have names like ' pan_xxx_name', where xxx is the unique name of the module.