diff options
Diffstat (limited to 'include/litmus/litmus.h')
-rw-r--r-- | include/litmus/litmus.h | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/include/litmus/litmus.h b/include/litmus/litmus.h index 1455f249c1fb..c3b91fe8115c 100644 --- a/include/litmus/litmus.h +++ b/include/litmus/litmus.h | |||
@@ -49,12 +49,22 @@ void litmus_exit_task(struct task_struct *tsk); | |||
49 | /* Realtime utility macros */ | 49 | /* Realtime utility macros */ |
50 | #define get_rt_flags(t) (tsk_rt(t)->flags) | 50 | #define get_rt_flags(t) (tsk_rt(t)->flags) |
51 | #define set_rt_flags(t,f) (tsk_rt(t)->flags=(f)) | 51 | #define set_rt_flags(t,f) (tsk_rt(t)->flags=(f)) |
52 | #define is_priority_boosted(t) (tsk_rt(t)->priority_boosted) | ||
53 | #define get_boost_start(t) (tsk_rt(t)->boost_start_time) | ||
54 | |||
55 | /* task_params macros */ | ||
52 | #define get_exec_cost(t) (tsk_rt(t)->task_params.exec_cost) | 56 | #define get_exec_cost(t) (tsk_rt(t)->task_params.exec_cost) |
53 | #define get_exec_time(t) (tsk_rt(t)->job_params.exec_time) | ||
54 | #define get_rt_period(t) (tsk_rt(t)->task_params.period) | 57 | #define get_rt_period(t) (tsk_rt(t)->task_params.period) |
58 | #define get_rt_relative_deadline(t) (tsk_rt(t)->task_params.relative_deadline) | ||
55 | #define get_rt_phase(t) (tsk_rt(t)->task_params.phase) | 59 | #define get_rt_phase(t) (tsk_rt(t)->task_params.phase) |
56 | #define get_rt_job(t) (tsk_rt(t)->job_params.job_no) | 60 | #define get_rt_job(t) (tsk_rt(t)->job_params.job_no) |
57 | #define get_partition(t) (tsk_rt(t)->task_params.cpu) | 61 | #define get_partition(t) (tsk_rt(t)->task_params.cpu) |
62 | #define get_priority(t) (tsk_rt(t)->task_params.priority) | ||
63 | #define get_class(t) (tsk_rt(t)->task_params.cls) | ||
64 | |||
65 | /* job_param macros */ | ||
66 | #define get_job_no(t) (tsk_rt(t)->job_params.job_no) | ||
67 | #define get_exec_time(t) (tsk_rt(t)->job_params.exec_time) | ||
58 | #define get_deadline(t) (tsk_rt(t)->job_params.deadline) | 68 | #define get_deadline(t) (tsk_rt(t)->job_params.deadline) |
59 | #define get_release(t) (tsk_rt(t)->job_params.release) | 69 | #define get_release(t) (tsk_rt(t)->job_params.release) |
60 | #define get_class(t) (tsk_rt(t)->task_params.cls) | 70 | #define get_class(t) (tsk_rt(t)->task_params.cls) |
@@ -65,25 +75,7 @@ void litmus_exit_task(struct task_struct *tsk); | |||
65 | 75 | ||
66 | #define is_priority_boosted(t) (tsk_rt(t)->priority_boosted) | 76 | #define is_priority_boosted(t) (tsk_rt(t)->priority_boosted) |
67 | #define get_boost_start(t) (tsk_rt(t)->boost_start_time) | 77 | #define get_boost_start(t) (tsk_rt(t)->boost_start_time) |
68 | 78 | #define get_lateness(t) (tsk_rt(t)->job_params.lateness) | |
69 | inline static int budget_exhausted(struct task_struct* t) | ||
70 | { | ||
71 | return get_exec_time(t) >= get_exec_cost(t); | ||
72 | } | ||
73 | |||
74 | inline static lt_t budget_remaining(struct task_struct* t) | ||
75 | { | ||
76 | if (!budget_exhausted(t)) | ||
77 | return get_exec_cost(t) - get_exec_time(t); | ||
78 | else | ||
79 | /* avoid overflow */ | ||
80 | return 0; | ||
81 | } | ||
82 | |||
83 | #define budget_enforced(t) (tsk_rt(t)->task_params.budget_policy != NO_ENFORCEMENT) | ||
84 | |||
85 | #define budget_precisely_enforced(t) (tsk_rt(t)->task_params.budget_policy \ | ||
86 | == PRECISE_ENFORCEMENT) | ||
87 | 79 | ||
88 | #define is_hrt(t) \ | 80 | #define is_hrt(t) \ |
89 | (tsk_rt(t)->task_params.cls == RT_CLASS_HARD) | 81 | (tsk_rt(t)->task_params.cls == RT_CLASS_HARD) |