diff options
author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2007-08-23 15:58:44 -0400 |
---|---|---|
committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2007-08-23 15:58:44 -0400 |
commit | f4f203df92abc8f3ff16b3aea00e3876c2030ec9 (patch) | |
tree | 44f5ecf57a3371c36476da53f3a25c065ba18324 | |
parent | a08292f4e6c5f1ccb7d6430e959c4bd18d13915a (diff) |
Add wait_for_job_release() system call
Adds wait_for_job_release() and query_job_no().
-rw-r--r-- | litmus.c | 53 | ||||
-rw-r--r-- | litmus.h | 3 |
2 files changed, 32 insertions, 24 deletions
@@ -171,30 +171,33 @@ task_class_t str2class(const char* str) | |||
171 | 171 | ||
172 | 172 | ||
173 | /* Litmus syscalls definitions */ | 173 | /* Litmus syscalls definitions */ |
174 | #define __NR_sched_setpolicy 320 | 174 | #define __NR_sched_setpolicy 320 |
175 | #define __NR_sched_getpolicy 321 | 175 | #define __NR_sched_getpolicy 321 |
176 | #define __NR_set_rt_mode 322 | 176 | #define __NR_set_rt_mode 322 |
177 | #define __NR_set_rt_task_param 323 | 177 | #define __NR_set_rt_task_param 323 |
178 | #define __NR_get_rt_task_param 324 | 178 | #define __NR_get_rt_task_param 324 |
179 | #define __NR_prepare_rt_task 325 | 179 | #define __NR_prepare_rt_task 325 |
180 | #define __NR_reset_stat 326 | 180 | #define __NR_reset_stat 326 |
181 | #define __NR_sleep_next_period 327 | 181 | #define __NR_sleep_next_period 327 |
182 | #define __NR_scheduler_setup 328 | 182 | #define __NR_scheduler_setup 328 |
183 | #define __NR_enter_np 329 | 183 | #define __NR_enter_np 329 |
184 | #define __NR_exit_np 330 | 184 | #define __NR_exit_np 330 |
185 | #define __NR_pi_sema_init 331 | 185 | #define __NR_pi_sema_init 331 |
186 | #define __NR_pi_down 332 | 186 | #define __NR_pi_down 332 |
187 | #define __NR_pi_up 333 | 187 | #define __NR_pi_up 333 |
188 | #define __NR_pi_sema_free 334 | 188 | #define __NR_pi_sema_free 334 |
189 | #define __NR_sema_init 335 | 189 | #define __NR_sema_init 335 |
190 | #define __NR_down 336 | 190 | #define __NR_down 336 |
191 | #define __NR_up 337 | 191 | #define __NR_up 337 |
192 | #define __NR_sema_free 338 | 192 | #define __NR_sema_free 338 |
193 | #define __NR_srp_sema_init 339 | 193 | #define __NR_srp_sema_init 339 |
194 | #define __NR_srp_down 340 | 194 | #define __NR_srp_down 340 |
195 | #define __NR_srp_up 341 | 195 | #define __NR_srp_up 341 |
196 | #define __NR_reg_task_srp_sem 342 | 196 | #define __NR_reg_task_srp_sem 342 |
197 | #define __NR_srp_sema_free 343 | 197 | #define __NR_srp_sema_free 343 |
198 | #define __NR_query_job_no 344 | ||
199 | #define __NR_wait_for_job_release 345 | ||
200 | |||
198 | 201 | ||
199 | /* Syscall stub for setting RT mode and scheduling options */ | 202 | /* Syscall stub for setting RT mode and scheduling options */ |
200 | _syscall1(spolicy, sched_setpolicy, spolicy, arg1); | 203 | _syscall1(spolicy, sched_setpolicy, spolicy, arg1); |
@@ -221,4 +224,6 @@ _syscall1(int, srp_down, srp_sema_id, sem_id); | |||
221 | _syscall1(int, srp_up, srp_sema_id, sem_id); | 224 | _syscall1(int, srp_up, srp_sema_id, sem_id); |
222 | _syscall2(int, reg_task_srp_sem, srp_sema_id, sem_id, pid_t, t_pid); | 225 | _syscall2(int, reg_task_srp_sem, srp_sema_id, sem_id, pid_t, t_pid); |
223 | _syscall1(int, srp_sema_free, srp_sema_id, sem_id); | 226 | _syscall1(int, srp_sema_free, srp_sema_id, sem_id); |
227 | _syscall1(int, query_job_no, unsigned int*, job_no); | ||
228 | _syscall1(int, wait_for_job_release, unsigned int, job_no); | ||
224 | 229 | ||
@@ -89,6 +89,9 @@ int srp_down(srp_sema_id sem_id); | |||
89 | int srp_up(srp_sema_id sem_id); | 89 | int srp_up(srp_sema_id sem_id); |
90 | int reg_task_srp_sem(srp_sema_id sem_id, pid_t t_pid); | 90 | int reg_task_srp_sem(srp_sema_id sem_id, pid_t t_pid); |
91 | int srp_sema_free(srp_sema_id sem_id); | 91 | int srp_sema_free(srp_sema_id sem_id); |
92 | int get_job_no(unsigned int* job_no); | ||
93 | int wait_for_job_release(unsigned int job_no); | ||
94 | |||
92 | 95 | ||
93 | /* library functions */ | 96 | /* library functions */ |
94 | int create_rt_task(rt_fn_t rt_prog, void *arg, int cpu, int wcet, int period); | 97 | int create_rt_task(rt_fn_t rt_prog, void *arg, int cpu, int wcet, int period); |