diff options
author | Christopher Kenna <cjk@cs.unc.edu> | 2011-09-08 10:27:22 -0400 |
---|---|---|
committer | Christopher Kenna <cjk@cs.unc.edu> | 2011-09-08 10:27:22 -0400 |
commit | 1e44b612edef027191fc3fa573d3396e1aacaedf (patch) | |
tree | a583bd7fdc02bc34e0a2736a8047eb3734a7ac2d | |
parent | f143b41261e8ae9cc48e8b68af2679ef332bd9e4 (diff) |
Add level-A mixed criticality ID parameter.
-rw-r--r-- | bin/rtspin.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/bin/rtspin.c b/bin/rtspin.c index c5a2600..728afb5 100644 --- a/bin/rtspin.c +++ b/bin/rtspin.c | |||
@@ -24,7 +24,7 @@ static void usage(char *error) { | |||
24 | " rt_spin -l\n" | 24 | " rt_spin -l\n" |
25 | "\n" | 25 | "\n" |
26 | "COMMON-OPTS = [-w] [-p PARTITION] [-c CLASS] [-s SCALE]\n" | 26 | "COMMON-OPTS = [-w] [-p PARTITION] [-c CLASS] [-s SCALE]\n" |
27 | " [-r CRITICALITY = [a|b|c|d]]\n" | 27 | " [-r CRITICALITY = [a|b|c|d]] [-i MC-LVL-A-ID]\n" |
28 | "\n" | 28 | "\n" |
29 | "WCET and PERIOD are milliseconds, DURATION is seconds.\n"); | 29 | "WCET and PERIOD are milliseconds, DURATION is seconds.\n"); |
30 | exit(EXIT_FAILURE); | 30 | exit(EXIT_FAILURE); |
@@ -179,7 +179,7 @@ enum crit_level str2crit(const char* str) | |||
179 | return NUM_CRIT_LEVELS; | 179 | return NUM_CRIT_LEVELS; |
180 | } | 180 | } |
181 | 181 | ||
182 | #define OPTSTR "p:c:wlveo:f:s:r:" | 182 | #define OPTSTR "p:c:wlveo:f:s:r:i:" |
183 | 183 | ||
184 | int main(int argc, char** argv) | 184 | int main(int argc, char** argv) |
185 | { | 185 | { |
@@ -200,8 +200,7 @@ int main(int argc, char** argv) | |||
200 | double scale = 1.0; | 200 | double scale = 1.0; |
201 | task_class_t class = RT_CLASS_HARD; | 201 | task_class_t class = RT_CLASS_HARD; |
202 | int cur_job, num_jobs; | 202 | int cur_job, num_jobs; |
203 | enum crit_level crit = NUM_CRIT_LEVELS; | 203 | struct mc_task mc_task = { .crit = NUM_CRIT_LEVELS, .lvl_a_id = -1 }; |
204 | struct mc_task mc_task; | ||
205 | 204 | ||
206 | progname = argv[0]; | 205 | progname = argv[0]; |
207 | 206 | ||
@@ -235,10 +234,13 @@ int main(int argc, char** argv) | |||
235 | scale = atof(optarg); | 234 | scale = atof(optarg); |
236 | break; | 235 | break; |
237 | case 'r': | 236 | case 'r': |
238 | crit = str2crit(optarg); | 237 | mc_task.crit = str2crit(optarg); |
239 | if (NUM_CRIT_LEVELS == crit) | 238 | if (NUM_CRIT_LEVELS == mc_task.crit) |
240 | usage("Bad crit level."); | 239 | usage("Bad crit level."); |
241 | break; | 240 | break; |
241 | case 'i': | ||
242 | mc_task.lvl_a_id = atoi(optarg); | ||
243 | break; | ||
242 | case ':': | 244 | case ':': |
243 | usage("Argument missing."); | 245 | usage("Argument missing."); |
244 | break; | 246 | break; |
@@ -306,9 +308,8 @@ int main(int argc, char** argv) | |||
306 | if (ret < 0) | 308 | if (ret < 0) |
307 | bail_out("could not setup rt task params"); | 309 | bail_out("could not setup rt task params"); |
308 | 310 | ||
309 | if (NUM_CRIT_LEVELS != crit) | 311 | if (NUM_CRIT_LEVELS != mc_task.crit) |
310 | { | 312 | { |
311 | mc_task.crit = crit; | ||
312 | ret = set_rt_task_mc_param(gettid(), &mc_task); | 313 | ret = set_rt_task_mc_param(gettid(), &mc_task); |
313 | if (ret < 0) | 314 | if (ret < 0) |
314 | bail_out("could not setup rt mixed criticality params"); | 315 | bail_out("could not setup rt mixed criticality params"); |