Note: The _disable () and _enable macro's may not be needed when the C compiler supports these functions for standard. In that case the macro's do not have to be specified.

Definitions for inside C Kernel types:

ck_int8u Inside C Kernel type for int8u type

ck_int16u Inside C Kernel type for int16u type

ck_bool Inside C Kernel type for bool type

ck_int32u Inside C Kernel type for int32u type

Note: The inside C Kernel types can be used to override the standard types used. In some bindings for example it can be very efficient to use a compiler specific bit type instead of a standard boolean type, or to designate the int8u type to specific 'faster' data areas when supported by the compiler.

Function prototypes to implement in the binding:

/****************************************************************************/void KernelTickInit (void);/****************************************************************************//* * Initializes the necessary tick hardware for the kernel and starts the * tick hardware timer used. This function is called from CK_Init. */

/****************************************************************************/void KernelTickSetHandler (handlerptr tickHandlerPtr);/****************************************************************************//* * Sets the tick handler for the C Kernel. This function is called from * CK_Init. */

/****************************************************************************/void SetupStack (int8u tid, handlerptr taskFunction, stacktype *stackBasePtr, int16u stacksize);/****************************************************************************//* * Initializes the stack for a task. The function is pushed as the return * address, after that all initial values for the registers are pushed in * order to get the correct register values when the task is started. */

/****************************************************************************/void ContextSwitch (void);/****************************************************************************//* * Performs a normal context switch for a task. The context of a task is saved * just as if an interrupt has occurred. */

/****************************************************************************/void ISRcontextSwitch (void);/****************************************************************************//* * Performs an interrupt context switch for a task. The context of a task * is already saved by the interrupt so the normal saving of a context * can be skipped. */