8 #include <rtems/system.h>
9 #include <rtems/score/types.h>
10 #include <rtems/score/thread.h>
13 /// Unblock rule for temporal isolation included
14 #define EDF_LATE_UNBLOCK 1
16 typedef uint32_t Deadline_Control;
18 #define EDF_BYTES_FOR_TIME 4 // It is uint32_t
19 //#define EDF_TIME_RANGE 0xffffffff
22 #define EDF_PRIORITY_MAX 255
25 * The scheduler has two separete policies for for tasks using deadlines
26 * tasks using priorities. The priority driven tasks are always scheduled as less
27 * important than the deadline driven ones.
28 * We can distinguish them by looking at the MSB of their priority. Priority diven
29 * have 1 and deadline driven have 0.
31 #define EDF_HYBRID_MASK 0x80000000 //This is MSB
32 //#define EDF_ABS_DEADLINE_MAX (EDF_HYBRID_MASK - 1)
34 typedef enum node_color_struct { N_RED, N_BLACK } Node_Color;
35 typedef Thread_Control EDF_Node;
38 EDF_Node *root; // root of tree
39 EDF_Node *first; // first task in queue
46 #endif /*__EDF_TYPES_h*/