diff options
| author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2008-01-22 12:04:01 -0500 |
|---|---|---|
| committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2008-01-22 12:04:01 -0500 |
| commit | d9f376087182aa679b77d2bc416ade454df5dab1 (patch) | |
| tree | f6aa2878749c1f7b4d76d8a81a0b14ea6db80652 | |
| parent | 726fc7a6c8e8f8e1036337e1503af0cbb1bb741f (diff) | |
add set_rt_param() wrapper sporadic_task()
| -rw-r--r-- | include/litmus.h | 14 | ||||
| -rw-r--r-- | src/litmus.c | 11 |
2 files changed, 17 insertions, 8 deletions
diff --git a/include/litmus.h b/include/litmus.h index 343aab3..0f96aa7 100644 --- a/include/litmus.h +++ b/include/litmus.h | |||
| @@ -49,13 +49,6 @@ typedef struct rt_param { | |||
| 49 | 49 | ||
| 50 | typedef int pid_t; /* PID of a task */ | 50 | typedef int pid_t; /* PID of a task */ |
| 51 | 51 | ||
| 52 | /* X */ | ||
| 53 | #define set_param(t,p,e) do{\ | ||
| 54 | (t).is_realtime=1;\ | ||
| 55 | (t).exec_cost=(e);\ | ||
| 56 | (t).period=(p);\ | ||
| 57 | }while(0); | ||
| 58 | |||
| 59 | /* scheduler modes */ | 52 | /* scheduler modes */ |
| 60 | #define MODE_NON_RT 0 | 53 | #define MODE_NON_RT 0 |
| 61 | #define MODE_RT_RUN 1 | 54 | #define MODE_RT_RUN 1 |
| @@ -66,6 +59,13 @@ int set_rt_task_param(pid_t pid, rt_param_t* param); | |||
| 66 | int get_rt_task_param(pid_t pid, rt_param_t* param); | 59 | int get_rt_task_param(pid_t pid, rt_param_t* param); |
| 67 | int prepare_rt_task(pid_t pid); | 60 | int prepare_rt_task(pid_t pid); |
| 68 | 61 | ||
| 62 | #define sporadic_gobal(e, p) \ | ||
| 63 | sporadic_task(e, p, 0, RT_CLASS_SOFT) | ||
| 64 | #define sporadic_partitioned(e, p, cpu) \ | ||
| 65 | sporadic_task(e, p, cpu, RT_CLASS_SOFT) | ||
| 66 | int sporadic_task(unsigned long exec_cost, unsigned long period, | ||
| 67 | int partition, task_class_t cls); | ||
| 68 | |||
| 69 | 69 | ||
| 70 | enum { | 70 | enum { |
| 71 | LITMUS_RESERVED_RANGE = 1024, | 71 | LITMUS_RESERVED_RANGE = 1024, |
diff --git a/src/litmus.c b/src/litmus.c index 6ca35a3..89d0f86 100644 --- a/src/litmus.c +++ b/src/litmus.c | |||
| @@ -218,7 +218,16 @@ task_class_t str2class(const char* str) | |||
| 218 | return -1; | 218 | return -1; |
| 219 | } | 219 | } |
| 220 | 220 | ||
| 221 | 221 | int sporadic_task(unsigned long e, unsigned long p, | |
| 222 | int cpu, task_class_t cls) | ||
| 223 | { | ||
| 224 | rt_param_t param; | ||
| 225 | param.exec_cost = e; | ||
| 226 | param.period = p; | ||
| 227 | param.cpu = cpu; | ||
| 228 | param.cls = cls; | ||
| 229 | return set_rt_task_param(getpid(), ¶m); | ||
| 230 | } | ||
| 222 | 231 | ||
| 223 | struct np_flag { | 232 | struct np_flag { |
| 224 | #define RT_PREEMPTIVE 0x2050 /* = NP */ | 233 | #define RT_PREEMPTIVE 0x2050 /* = NP */ |
