/// This routine is called when a task starts to execute a new period or
/// a first period.
-void edf_next_period(void);
+/// @param __rel_deadline__ in ticks, if a CBS is running, this option is ommited
+/// @param flags Prepared for late unblock protocol
+rtems_status_code edf_next_period(rtems_id period_id, uint32_t __rel_deadline__, uint8_t flags);
/// Changes scheduling policy from priorities to deadlines
-/// @param __rel_deadline__ in ticks required
-void edf_deadline_init(uint32_t __rel_deadline__, uint32_t __cmp_time__, rtems_asr_entry budget_overrun_handler);
+rtems_status_code edf_deadline_init(rtems_name name, rtems_id *period_id);
/// Changes scheduling policy from deadlines to priorities
-void edf_deadline_cancel(void);
+rtems_status_code edf_deadline_cancel(rtems_id period_id);
-Thread_CPU_budget_algorithm_callout edf_budget_overrun_callout();
-
-rtems_timer_service_routine_entry edf_budget_overrun_reenable(Thread_Control *the_thread);
/// Pluggable scheduler callback functions
* Deadline is later.
* @return 1 for p1 > p2; 0 for p1 == p2; -1 for p1 < p2
*/
-inline int _Scheduler_edf_Priority_compare (
+int _Scheduler_edf_Priority_compare (
Priority_Control p1,
Priority_Control p2
);