aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2008-01-18 15:15:47 -0500
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2008-01-18 15:15:47 -0500
commitcfba01b0673c5d5572c46e5d32819a60b2dbff3c (patch)
tree5a44339c4ef3d93a8f4093eb5f4b024604957fc8
parenta1035dd13b32bf6dee0794309007eb2582921d24 (diff)
[ABI] add task_mode_transition system call
-rw-r--r--include/litmus.h10
-rw-r--r--src/litmus.c13
2 files changed, 17 insertions, 6 deletions
diff --git a/include/litmus.h b/include/litmus.h
index 06f84bb..b0095e3 100644
--- a/include/litmus.h
+++ b/include/litmus.h
@@ -145,6 +145,16 @@ void init_litmus(void);
145int create_rt_task(rt_fn_t rt_prog, void *arg, int cpu, int wcet, int period); 145int create_rt_task(rt_fn_t rt_prog, void *arg, int cpu, int wcet, int period);
146int __create_rt_task(rt_fn_t rt_prog, void *arg, int cpu, int wcet, 146int __create_rt_task(rt_fn_t rt_prog, void *arg, int cpu, int wcet,
147 int period, task_class_t cls); 147 int period, task_class_t cls);
148
149
150/* per-task modes */
151enum rt_task_mode_t {
152 BACKGROUND_TASK = 0,
153 LITMUS_RT_TASK = 1
154};
155int task_mode_transition(int target_mode);
156
157
148const char* get_scheduler_name(spolicy scheduler); 158const char* get_scheduler_name(spolicy scheduler);
149void show_rt_param(rt_param_t* tp); 159void show_rt_param(rt_param_t* tp);
150task_class_t str2class(const char* str); 160task_class_t str2class(const char* str);
diff --git a/src/litmus.c b/src/litmus.c
index 15f7e55..5be0b41 100644
--- a/src/litmus.c
+++ b/src/litmus.c
@@ -316,12 +316,12 @@ void init_litmus(void)
316#define __NR_srp_up 335 316#define __NR_srp_up 335
317#define __NR_reg_task_srp_sem 336 317#define __NR_reg_task_srp_sem 336
318#define __NR_get_job_no 337 318#define __NR_get_job_no 337
319#define __NR_wait_for_job_release 338 319#define __NR_wait_for_job_release 338
320#define __NR_set_service_levels 339 320#define __NR_set_service_levels 339
321#define __NR_get_cur_service_level 340 321#define __NR_get_cur_service_level 340
322#define __NR_reg_ics_cb 341 322#define __NR_reg_ics_cb 341
323#define __NR_start_wcs 342 323#define __NR_start_wcs 342
324 324#define __NR_task_mode_transition 343
325 325
326/* Syscall stub for setting RT mode and scheduling options */ 326/* Syscall stub for setting RT mode and scheduling options */
327_syscall0(spolicy, sched_getpolicy); 327_syscall0(spolicy, sched_getpolicy);
@@ -348,3 +348,4 @@ _syscall1(int, wait_for_job_release, unsigned int, job_no);
348 348
349_syscall1(int, start_wcs, int, od); 349_syscall1(int, start_wcs, int, od);
350_syscall1(int, reg_ics_cb, struct ics_cb*, ics_cb); 350_syscall1(int, reg_ics_cb, struct ics_cb*, ics_cb);
351_syscall1(int, task_mode_transition, int, target_mode);