// *********************************** // User Functions // *********************************** // Adds Jobs to Schedule unsigned char Schedule_Add_HP(void (*Task)(void), unsigned int Deadline, unsigned int Period, void (*After_Task)(void)); unsigned char Schedule_Add_SP(void (*Task)(void), unsigned int Period, void (*After_Task)(void)); unsigned char Schedule_Add_HA(void (*Task)(void), unsigned int Deadline); unsigned char Schedule_Add_SA(void (*Task)(void)); // Modifies Jobs in Schedule unsigned char Schedule_Delete_HP(void (*Task)(void)); unsigned char Schedule_Delete_HA(void (*Task)(void)); unsigned char Schedule_Delete_SP(void (*Task)(void)); unsigned char Schedule_Delete_SA(void (*Task)(void)); unsigned char Schedule_Compute(void); void Job_Return(void); unsigned char Schedule_SP(void (*Task)(void)); // Initialization void Init_OS(void); void Init_Start(void); void Init_User(void); // Optional Funcionality #if (NUM_LOCKS > 0) void Lock(unsigned char Number); void Unlock(unsigned char Number); #endif // *********************************** // Internal Functions // *********************************** void Scheduler(void); void Context_Save_State(void); void Context_Set_State(void); void Context_Set_OS_State(void); void Schedule_Next_Queue(void); long LeastCommonMult(void); void removeSpacerJobs(void);