enum TASKS {
    KRN_FP_TASK = 0,               
	MORE_TASKS_HERE,
    KRN_MAX_TASKS                 
};

typedef struct KRN_TASKBLOCK_s {
    unsigned char events;                     
    unsigned char status;                    
} KRN_TASKBLOCK, *pKRN_TASKBLOCK;

KRN_TASKBLOCK KRNtcb[KRN_MAX_TASKS];
pKRN_TASKBLOCK pKRNtcb; 


#ifdef _COMP_WORK
#define KRN_LAST_TCB	(&KRNtcb[KRN_MAX_TASKS])
#else
#define KRN_LAST_TCB	(&KRNtcb[KRN_MAX_TASKS-1])
#endif

void KRNinit(void)
{
    /* Initialize */
#ifdef _COMP_WORK
    for (pKRNtcb = KRNtcb; pKRNtcb < KRN_LAST_TCB; pKRNtcb++) 
#else
    for (pKRNtcb = KRNtcb; pKRNtcb <= KRN_LAST_TCB; pKRNtcb++) 
#endif
	
	{
        pKRNtcb->status = 0;
        pKRNtcb->events = 0;
    }
}
