aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2008-05-14 14:10:17 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2008-05-14 22:59:35 -0400
commit65c12285e5170a868151aa32704374c95e7d3a53 (patch)
tree534dd915517ed4e0160b37029d59358148726f6d
parent72d790931b605257f4be4d1b7240981711ab3717 (diff)
add task_rt() macro
Make code more readable and shorter.
-rw-r--r--include/litmus/litmus.h32
1 files changed, 17 insertions, 15 deletions
diff --git a/include/litmus/litmus.h b/include/litmus/litmus.h
index 41c86a3217..bd92f44030 100644
--- a/include/litmus/litmus.h
+++ b/include/litmus/litmus.h
@@ -112,15 +112,17 @@ void litmus_exit_task(struct task_struct *tsk);
112#define rt_transition_pending(t) \ 112#define rt_transition_pending(t) \
113 ((t)->rt_param.transition_pending) 113 ((t)->rt_param.transition_pending)
114 114
115#define tsk_rt(t) (&(t)->rt_param)
116
115/* Realtime utility macros */ 117/* Realtime utility macros */
116#define get_rt_flags(t) ((t)->rt_param.flags) 118#define get_rt_flags(t) (tsk_rt(t)->flags)
117#define set_rt_flags(t,f) (t)->rt_param.flags=(f) 119#define set_rt_flags(t,f) (tsk_rt(t)->flags=(f))
118#define get_exec_cost(t) ((t)->rt_param.task_params.exec_cost) 120#define get_exec_cost(t) (tsk_rt(t)->task_params.exec_cost)
119#define get_exec_time(t) ((t)->rt_param.job_params.exec_time) 121#define get_exec_time(t) (tsk_rt(t)->job_params.exec_time)
120#define get_rt_period(t) ((t)->rt_param.task_params.period) 122#define get_rt_period(t) (tsk_rt(t)->task_params.period)
121#define get_partition(t) (t)->rt_param.task_params.cpu 123#define get_partition(t) (tsk_rt(t)->task_params.cpu)
122#define get_deadline(t) ((t)->rt_param.job_params.deadline) 124#define get_deadline(t) (tsk_rt(t)->job_params.deadline)
123#define get_class(t) ((t)->rt_param.task_params.cls) 125#define get_class(t) (tsk_rt(t)->task_params.cls)
124 126
125inline static int budget_exhausted(struct task_struct* t) 127inline static int budget_exhausted(struct task_struct* t)
126{ 128{
@@ -129,13 +131,13 @@ inline static int budget_exhausted(struct task_struct* t)
129 131
130 132
131#define is_hrt(t) \ 133#define is_hrt(t) \
132 ((t)->rt_param.task_params.class == RT_CLASS_HARD) 134 (tsk_rt(t)->task_params.class == RT_CLASS_HARD)
133#define is_srt(t) \ 135#define is_srt(t) \
134 ((t)->rt_param.task_params.class == RT_CLASS_SOFT) 136 (tsk_rt(t)->task_params.class == RT_CLASS_SOFT)
135#define is_be(t) \ 137#define is_be(t) \
136 ((t)->rt_param.task_params.class == RT_CLASS_BEST_EFFORT) 138 (tsk_rt(t)->task_params.class == RT_CLASS_BEST_EFFORT)
137 139
138#define get_release(t) ((t)->rt_param.job_params.release) 140#define get_release(t) (tsk_rt(t)->job_params.release)
139 141
140/* Our notion of time within LITMUS: kernel monotonic time. */ 142/* Our notion of time within LITMUS: kernel monotonic time. */
141static inline lt_t litmus_clock(void) 143static inline lt_t litmus_clock(void)
@@ -147,10 +149,10 @@ static inline lt_t litmus_clock(void)
147#define ns_to_ktime(t) ktime_add_ns(ktime_set(0, 0), t) 149#define ns_to_ktime(t) ktime_add_ns(ktime_set(0, 0), t)
148 150
149/* The high-resolution release timer for a task. */ 151/* The high-resolution release timer for a task. */
150#define release_timer(t) ((t)->rt_param.release_timer) 152#define release_timer(t) (tsk_rt(t)->release_timer)
151 153
152/* The high-resolution release timer for a task. */ 154/* The high-resolution release timer for a task. */
153#define get_domain(t) ((t)->rt_param.domain) 155#define get_domain(t) (tsk_rt(t)->domain)
154 156
155/* Honor the flag in the preempt_count variable that is set 157/* Honor the flag in the preempt_count variable that is set
156 * when scheduling is in progress. 158 * when scheduling is in progress.
@@ -164,7 +166,7 @@ static inline lt_t litmus_clock(void)
164#define is_released(t, now) \ 166#define is_released(t, now) \
165 (lt_before_eq(get_release(t), now)) 167 (lt_before_eq(get_release(t), now))
166#define is_tardy(t, now) \ 168#define is_tardy(t, now) \
167 (lt_before_eq((t)->rt_param.job_params.deadline, now)) 169 (lt_before_eq(tsk_rt(t)->job_params.deadline, now))
168 170
169/* real-time comparison macros */ 171/* real-time comparison macros */
170#define earlier_deadline(a, b) (lt_before(\ 172#define earlier_deadline(a, b) (lt_before(\