diff options
Diffstat (limited to 'include/litmus/litmus.h')
-rw-r--r-- | include/litmus/litmus.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/include/litmus/litmus.h b/include/litmus/litmus.h index 0b071fd359f9..f0ddb89e68dd 100644 --- a/include/litmus/litmus.h +++ b/include/litmus/litmus.h | |||
@@ -44,6 +44,8 @@ void litmus_exit_task(struct task_struct *tsk); | |||
44 | 44 | ||
45 | #define tsk_rt(t) (&(t)->rt_param) | 45 | #define tsk_rt(t) (&(t)->rt_param) |
46 | 46 | ||
47 | #define get_server_job(t) (tsk_rt(t)->job_params.fake_job_no) | ||
48 | |||
47 | /* Realtime utility macros */ | 49 | /* Realtime utility macros */ |
48 | #define get_rt_flags(t) (tsk_rt(t)->flags) | 50 | #define get_rt_flags(t) (tsk_rt(t)->flags) |
49 | #define set_rt_flags(t,f) (tsk_rt(t)->flags=(f)) | 51 | #define set_rt_flags(t,f) (tsk_rt(t)->flags=(f)) |
@@ -51,10 +53,13 @@ void litmus_exit_task(struct task_struct *tsk); | |||
51 | #define get_exec_time(t) (tsk_rt(t)->job_params.exec_time) | 53 | #define get_exec_time(t) (tsk_rt(t)->job_params.exec_time) |
52 | #define get_rt_period(t) (tsk_rt(t)->task_params.period) | 54 | #define get_rt_period(t) (tsk_rt(t)->task_params.period) |
53 | #define get_rt_phase(t) (tsk_rt(t)->task_params.phase) | 55 | #define get_rt_phase(t) (tsk_rt(t)->task_params.phase) |
56 | #define get_rt_job(t) (tsk_rt(t)->job_params.job_no) | ||
54 | #define get_partition(t) (tsk_rt(t)->task_params.cpu) | 57 | #define get_partition(t) (tsk_rt(t)->task_params.cpu) |
55 | #define get_deadline(t) (tsk_rt(t)->job_params.deadline) | 58 | #define get_deadline(t) (tsk_rt(t)->job_params.deadline) |
56 | #define get_release(t) (tsk_rt(t)->job_params.release) | 59 | #define get_release(t) (tsk_rt(t)->job_params.release) |
57 | #define get_class(t) (tsk_rt(t)->task_params.cls) | 60 | #define get_class(t) (tsk_rt(t)->task_params.cls) |
61 | #define is_server(t) (tsk_rt(t)->is_server) | ||
62 | #define get_task_server(task) (tsk_rt(task)->server) | ||
58 | 63 | ||
59 | #define is_priority_boosted(t) (tsk_rt(t)->priority_boosted) | 64 | #define is_priority_boosted(t) (tsk_rt(t)->priority_boosted) |
60 | #define get_boost_start(t) (tsk_rt(t)->boost_start_time) | 65 | #define get_boost_start(t) (tsk_rt(t)->boost_start_time) |
@@ -128,6 +133,16 @@ void srp_ceiling_block(void); | |||
128 | 133 | ||
129 | #define bheap2task(hn) ((struct task_struct*) hn->value) | 134 | #define bheap2task(hn) ((struct task_struct*) hn->value) |
130 | 135 | ||
136 | static inline struct control_page* get_control_page(struct task_struct *t) | ||
137 | { | ||
138 | return tsk_rt(t)->ctrl_page; | ||
139 | } | ||
140 | |||
141 | static inline int has_control_page(struct task_struct* t) | ||
142 | { | ||
143 | return tsk_rt(t)->ctrl_page != NULL; | ||
144 | } | ||
145 | |||
131 | #ifdef CONFIG_NP_SECTION | 146 | #ifdef CONFIG_NP_SECTION |
132 | 147 | ||
133 | static inline int is_kernel_np(struct task_struct *t) | 148 | static inline int is_kernel_np(struct task_struct *t) |
@@ -230,10 +245,6 @@ static inline int is_np(struct task_struct *t) | |||
230 | int kernel, user; | 245 | int kernel, user; |
231 | kernel = is_kernel_np(t); | 246 | kernel = is_kernel_np(t); |
232 | user = is_user_np(t); | 247 | user = is_user_np(t); |
233 | if (kernel || user) | ||
234 | TRACE_TASK(t, " is non-preemptive: kernel=%d user=%d\n", | ||
235 | |||
236 | kernel, user); | ||
237 | return kernel || user; | 248 | return kernel || user; |
238 | #else | 249 | #else |
239 | return unlikely(is_kernel_np(t) || is_user_np(t)); | 250 | return unlikely(is_kernel_np(t) || is_user_np(t)); |