aboutsummaryrefslogtreecommitdiffstats
path: root/bin/rt_launch.c
diff options
context:
space:
mode:
Diffstat (limited to 'bin/rt_launch.c')
-rw-r--r--bin/rt_launch.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/bin/rt_launch.c b/bin/rt_launch.c
index 3863031..f3fda65 100644
--- a/bin/rt_launch.c
+++ b/bin/rt_launch.c
@@ -29,11 +29,12 @@ int launch(void *task_info_p) {
29} 29}
30 30
31void usage(char *error) { 31void usage(char *error) {
32 fprintf(stderr, "%s\nUsage: rt_launch [-w][-v][-p cpu][-c hrt | srt | be] wcet period program [arg1 arg2 ...]\n" 32 fprintf(stderr, "%s\nUsage: rt_launch [-w][-v][-p cpu][-c hrt | srt | be][-r criticality] wcet period program [arg1 arg2 ...]\n"
33 "\t-w\tSynchronous release\n" 33 "\t-w\tSynchronous release\n"
34 "\t-v\tVerbose\n" 34 "\t-v\tVerbose\n"
35 "\t-p\tcpu (or initial cpu)\n" 35 "\t-p\tcpu (or initial cpu)\n"
36 "\t-c\tClass\n" 36 "\t-c\tClass\n"
37 "\t-r\tCriticality\n"
37 "\twcet, period in ms\n" 38 "\twcet, period in ms\n"
38 "\tprogram to be launched\n", 39 "\tprogram to be launched\n",
39 error); 40 error);
@@ -41,13 +42,14 @@ void usage(char *error) {
41} 42}
42 43
43 44
44#define OPTSTR "p:c:vw" 45#define OPTSTR "p:c:r:vw"
45 46
46int main(int argc, char** argv) 47int main(int argc, char** argv)
47{ 48{
48 int ret; 49 int ret;
49 lt_t wcet; 50 lt_t wcet;
50 lt_t period; 51 lt_t period;
52 int criticality = 0;
51 int migrate = 0; 53 int migrate = 0;
52 int cpu = 0; 54 int cpu = 0;
53 int opt; 55 int opt;
@@ -73,6 +75,17 @@ int main(int argc, char** argv)
73 if (class == -1) 75 if (class == -1)
74 usage("Unknown task class."); 76 usage("Unknown task class.");
75 break; 77 break;
78 case 'r':
79 criticality = atoi(optarg);
80 if (criticality > 1){
81 if (criticality > 3){
82 class = RT_CLASS_BEST_EFFORT;
83 }
84 else{
85 class = RT_CLASS_SOFT;
86 }
87 }
88 break;
76 89
77 case ':': 90 case ':':
78 usage("Argument missing."); 91 usage("Argument missing.");
@@ -107,7 +120,8 @@ int main(int argc, char** argv)
107 if (ret < 0) 120 if (ret < 0)
108 bail_out("could not migrate to target partition"); 121 bail_out("could not migrate to target partition");
109 } 122 }
110 ret = __create_rt_task(launch, &info, cpu, wcet, period, class); 123 ret = __create_rt_task(launch, &info, cpu, wcet, period,
124 criticality, class);
111 125
112 126
113 if (ret < 0) 127 if (ret < 0)