diff options
author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2008-05-14 14:10:17 -0400 |
---|---|---|
committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2008-05-14 22:59:35 -0400 |
commit | 65c12285e5170a868151aa32704374c95e7d3a53 (patch) | |
tree | 534dd915517ed4e0160b37029d59358148726f6d | |
parent | 72d790931b605257f4be4d1b7240981711ab3717 (diff) |
add task_rt() macro
Make code more readable and shorter.
-rw-r--r-- | include/litmus/litmus.h | 32 |
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 | ||
125 | inline static int budget_exhausted(struct task_struct* t) | 127 | inline 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. */ |
141 | static inline lt_t litmus_clock(void) | 143 | static 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(\ |