// kernel.h


#ifndef _KERNEL_H_
#define _KERNEL_H_




// MACROS
#ifndef COP_ON
#define COP_ON()  	0
#define COP_OFF()	0
#endif




// CONSTANTS
/* these must be set correctly for the code 
   to operate properly, ...or at all.  */
#define initial_heap_size 150	   // best guess for heap initialization
#define numtasks 3		  		   // total number of loaded tasks
#define numresources 2			   // total number of defined resources




// ENUMERATIONS
enum task_state {idle=0, pending=1, running=2, waiting=3, finished=4};
enum resource_state {notbusy=0, busy=1};




// FUNCTION PROTOTYPES
unsigned char get_task_id(void);
unsigned char get_task_state(unsigned char id);
unsigned char get_task_priority(unsigned char id);
void set_task_state(unsigned char id, unsigned char state);
void set_task_priority(unsigned char id, unsigned char priority);
/*
unsigned long get_time(void);
void set_time(unsigned char hour, unsigned char min, unsigned char sec);
void start_task(unsigned char id);
void stop_task(unsigned char id);
*/



#endif
