diff options
Diffstat (limited to 'bin/rtspin.c')
-rw-r--r-- | bin/rtspin.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/bin/rtspin.c b/bin/rtspin.c index 167741d..5de9035 100644 --- a/bin/rtspin.c +++ b/bin/rtspin.c | |||
@@ -21,7 +21,7 @@ static void usage(char *error) { | |||
21 | " rt_spin [COMMON-OPTS] -f FILE [-o COLUMN] WCET PERIOD\n" | 21 | " rt_spin [COMMON-OPTS] -f FILE [-o COLUMN] WCET PERIOD\n" |
22 | " rt_spin -l\n" | 22 | " rt_spin -l\n" |
23 | "\n" | 23 | "\n" |
24 | "COMMON-OPTS = [-w] [-s SCALE]\n" | 24 | "COMMON-OPTS = [-w] [-s SCALE] [-n SPLIT]\n" |
25 | " [-p PARTITION/CLUSTER [-z CLUSTER SIZE]] [-c CLASS]\n" | 25 | " [-p PARTITION/CLUSTER [-z CLUSTER SIZE]] [-c CLASS]\n" |
26 | " [-X LOCKING-PROTOCOL] [-L CRITICAL SECTION LENGTH] [-Q RESOURCE-ID]" | 26 | " [-X LOCKING-PROTOCOL] [-L CRITICAL SECTION LENGTH] [-Q RESOURCE-ID]" |
27 | "\n" | 27 | "\n" |
@@ -184,7 +184,7 @@ static int job(double exec_time, double program_end, int lock_od, double cs_leng | |||
184 | } | 184 | } |
185 | } | 185 | } |
186 | 186 | ||
187 | #define OPTSTR "p:z:c:wlveo:f:s:q:X:L:Q:" | 187 | #define OPTSTR "p:z:c:wlveo:f:s:q:X:L:Q:n:" |
188 | int main(int argc, char** argv) | 188 | int main(int argc, char** argv) |
189 | { | 189 | { |
190 | int ret; | 190 | int ret; |
@@ -199,6 +199,7 @@ int main(int argc, char** argv) | |||
199 | int wait = 0; | 199 | int wait = 0; |
200 | int test_loop = 0; | 200 | int test_loop = 0; |
201 | int column = 1; | 201 | int column = 1; |
202 | int split = 1; | ||
202 | const char *file = NULL; | 203 | const char *file = NULL; |
203 | int want_enforcement = 0; | 204 | int want_enforcement = 0; |
204 | double duration = 0, start = 0; | 205 | double duration = 0, start = 0; |
@@ -222,6 +223,9 @@ int main(int argc, char** argv) | |||
222 | case 'w': | 223 | case 'w': |
223 | wait = 1; | 224 | wait = 1; |
224 | break; | 225 | break; |
226 | case 'n': | ||
227 | split = atoi(optarg); | ||
228 | break; | ||
225 | case 'p': | 229 | case 'p': |
226 | cluster = atoi(optarg); | 230 | cluster = atoi(optarg); |
227 | migrate = 1; | 231 | migrate = 1; |
@@ -315,6 +319,8 @@ int main(int argc, char** argv) | |||
315 | "positive number."); | 319 | "positive number."); |
316 | if (period <= 0) | 320 | if (period <= 0) |
317 | usage("The period must be a positive number."); | 321 | usage("The period must be a positive number."); |
322 | if (split <= 0) | ||
323 | usage("The split factor must be a positive number, if specified."); | ||
318 | if (!file && wcet > period) { | 324 | if (!file && wcet > period) { |
319 | usage("The worst-case execution time must not " | 325 | usage("The worst-case execution time must not " |
320 | "exceed the period."); | 326 | "exceed the period."); |
@@ -334,6 +340,7 @@ int main(int argc, char** argv) | |||
334 | init_rt_task_param(¶m); | 340 | init_rt_task_param(¶m); |
335 | param.exec_cost = wcet; | 341 | param.exec_cost = wcet; |
336 | param.period = period; | 342 | param.period = period; |
343 | param.split = split; | ||
337 | param.priority = priority; | 344 | param.priority = priority; |
338 | param.cls = class; | 345 | param.cls = class; |
339 | param.budget_policy = (want_enforcement) ? | 346 | param.budget_policy = (want_enforcement) ? |