aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus/litmus.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/litmus/litmus.h')
-rw-r--r--include/litmus/litmus.h32
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)
69inline static int budget_exhausted(struct task_struct* t)
70{
71 return get_exec_time(t) >= get_exec_cost(t);
72}
73
74inline 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)