diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-09-22 13:15:14 -0400 |
---|---|---|
committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2011-01-26 18:20:24 -0500 |
commit | 2fbbb7df71d6502dd229772b7ca8d577086e5349 (patch) | |
tree | eba81ecc400b440d48944527349fb987a40eb41e | |
parent | 87ef92f3665b9bb4250ec42b5295bd5639b71013 (diff) |
Properly fill structure before passing pointer.
-rw-r--r-- | bin/rt_launch_edfwm.c | 15 | ||||
-rw-r--r-- | bin/rtspin_edfwm.c | 18 |
2 files changed, 18 insertions, 15 deletions
diff --git a/bin/rt_launch_edfwm.c b/bin/rt_launch_edfwm.c index de65585..9ef3880 100644 --- a/bin/rt_launch_edfwm.c +++ b/bin/rt_launch_edfwm.c | |||
@@ -52,9 +52,6 @@ int parse_edfwm_slice(FILE *ts, int slices_no, int task_id, | |||
52 | if (fscanf(ts, "%d %u %lf %lf %lf\n", &tid, &cpu, | 52 | if (fscanf(ts, "%d %u %lf %lf %lf\n", &tid, &cpu, |
53 | &deadline, &budget, &offset) != EOF) { | 53 | &deadline, &budget, &offset) != EOF) { |
54 | 54 | ||
55 | printf("slice(tid, cpu, d, e, ph) = (%d, %u, %lf, %lf, %lf)\n", | ||
56 | tid, cpu, deadline, budget, offset); | ||
57 | |||
58 | if (task_id != tid) { | 55 | if (task_id != tid) { |
59 | fprintf(stderr, "task_id %d != tid %d\n", | 56 | fprintf(stderr, "task_id %d != tid %d\n", |
60 | task_id, tid); | 57 | task_id, tid); |
@@ -64,6 +61,9 @@ int parse_edfwm_slice(FILE *ts, int slices_no, int task_id, | |||
64 | wm->slices[i].deadline = fms_to_ns(deadline); | 61 | wm->slices[i].deadline = fms_to_ns(deadline); |
65 | wm->slices[i].budget = fms_to_ns(budget); | 62 | wm->slices[i].budget = fms_to_ns(budget); |
66 | wm->slices[i].offset = fms_to_ns(offset); | 63 | wm->slices[i].offset = fms_to_ns(offset); |
64 | printf("slice(tid, cpu, d, e, ph) = (%d, %u, %llu, %llu, %llu)\n", | ||
65 | tid, cpu, wm->slices[i].deadline, | ||
66 | wm->slices[i].budget, wm->slices[i].offset); | ||
67 | } | 67 | } |
68 | if (ferror(ts)) { | 68 | if (ferror(ts)) { |
69 | fprintf(stderr, "Cannot read file\n"); | 69 | fprintf(stderr, "Cannot read file\n"); |
@@ -95,17 +95,18 @@ int parse_edfwm_ts_file(FILE *ts, struct rt_task *rt) | |||
95 | 95 | ||
96 | if (ret != EOF) { | 96 | if (ret != EOF) { |
97 | 97 | ||
98 | printf("(tid, wcet, period, ph, cpu, slices) = " | ||
99 | "(%d, %.2f, %.2f, %.2f, %u, %u)\n", | ||
100 | task_id, fwcet, fperiod, fphase, cpu, sliceno); | ||
101 | |||
102 | rt->exec_cost = fms_to_ns(fwcet); | 98 | rt->exec_cost = fms_to_ns(fwcet); |
103 | rt->period = fms_to_ns(fperiod); | 99 | rt->period = fms_to_ns(fperiod); |
104 | rt->phase = fms_to_ns(fphase); | 100 | rt->phase = fms_to_ns(fphase); |
105 | rt->cpu = cpu; | 101 | rt->cpu = cpu; |
106 | rt->cls = RT_CLASS_HARD; | 102 | rt->cls = RT_CLASS_HARD; |
107 | rt->budget_policy = PRECISE_ENFORCEMENT; | 103 | rt->budget_policy = PRECISE_ENFORCEMENT; |
104 | |||
105 | printf("(tid, wcet, period, ph, cpu, slices) = " | ||
106 | "(%d, %llu, %llu, %llu, %u, %u)\n", | ||
107 | task_id, rt->exec_cost, rt->period, rt->phase, cpu, sliceno); | ||
108 | if (sliceno > 0) { | 108 | if (sliceno > 0) { |
109 | memset(&rt->semi_part, 0, sizeof(struct edf_wm_params)); | ||
109 | ret = parse_edfwm_slice(ts, sliceno, task_id, | 110 | ret = parse_edfwm_slice(ts, sliceno, task_id, |
110 | (struct edf_wm_params*) &rt->semi_part); | 111 | (struct edf_wm_params*) &rt->semi_part); |
111 | if (ret < 0) | 112 | if (ret < 0) |
diff --git a/bin/rtspin_edfwm.c b/bin/rtspin_edfwm.c index 9a78aa3..11216fe 100644 --- a/bin/rtspin_edfwm.c +++ b/bin/rtspin_edfwm.c | |||
@@ -149,9 +149,6 @@ int parse_edfwm_slice(FILE *ts, int slices_no, int task_id, | |||
149 | if (fscanf(ts, "%d %u %lf %lf %lf\n", &tid, &cpu, | 149 | if (fscanf(ts, "%d %u %lf %lf %lf\n", &tid, &cpu, |
150 | &deadline, &budget, &offset) != EOF) { | 150 | &deadline, &budget, &offset) != EOF) { |
151 | 151 | ||
152 | printf("slice(tid, cpu, d, e, ph) = (%d, %u, %lf, %lf, %lf)\n", | ||
153 | tid, cpu, deadline, budget, offset); | ||
154 | |||
155 | if (task_id != tid) { | 152 | if (task_id != tid) { |
156 | fprintf(stderr, "task_id %d != tid %d\n", | 153 | fprintf(stderr, "task_id %d != tid %d\n", |
157 | task_id, tid); | 154 | task_id, tid); |
@@ -161,6 +158,10 @@ int parse_edfwm_slice(FILE *ts, int slices_no, int task_id, | |||
161 | wm->slices[i].deadline = fms_to_ns(deadline); | 158 | wm->slices[i].deadline = fms_to_ns(deadline); |
162 | wm->slices[i].budget = fms_to_ns(budget); | 159 | wm->slices[i].budget = fms_to_ns(budget); |
163 | wm->slices[i].offset = fms_to_ns(offset); | 160 | wm->slices[i].offset = fms_to_ns(offset); |
161 | |||
162 | printf("slice(tid, cpu, d, e, ph) = (%d, %u, %llu, %llu, %llu)\n", | ||
163 | tid, cpu, wm->slices[i].deadline, | ||
164 | wm->slices[i].budget, wm->slices[i].offset); | ||
164 | } | 165 | } |
165 | if (ferror(ts)) { | 166 | if (ferror(ts)) { |
166 | fprintf(stderr, "Cannot read file\n"); | 167 | fprintf(stderr, "Cannot read file\n"); |
@@ -192,17 +193,18 @@ int parse_edfwm_ts_file(FILE *ts, struct rt_task *rt) | |||
192 | 193 | ||
193 | if (ret != EOF) { | 194 | if (ret != EOF) { |
194 | 195 | ||
195 | printf("(tid, wcet, period, ph, cpu, slices) = " | ||
196 | "(%d, %.2f, %.2f, %.2f, %u, %u)\n", | ||
197 | task_id, fwcet, fperiod, fphase, cpu, sliceno); | ||
198 | |||
199 | rt->exec_cost = fms_to_ns(fwcet); | 196 | rt->exec_cost = fms_to_ns(fwcet); |
200 | rt->period = fms_to_ns(fperiod); | 197 | rt->period = fms_to_ns(fperiod); |
201 | rt->phase = fms_to_ns(fphase); | 198 | rt->phase = fms_to_ns(fphase); |
202 | rt->cpu = cpu; | 199 | rt->cpu = cpu; |
203 | rt->cls = RT_CLASS_HARD; | 200 | rt->cls = RT_CLASS_HARD; |
204 | rt->budget_policy = PRECISE_ENFORCEMENT; | 201 | rt->budget_policy = PRECISE_ENFORCEMENT; |
202 | |||
203 | printf("(tid, wcet, period, ph, cpu, slices) = " | ||
204 | "(%d, %llu, %llu, %llu, %u, %u)\n", | ||
205 | task_id, rt->exec_cost, rt->period, rt->phase, cpu, sliceno); | ||
205 | if (sliceno > 0) { | 206 | if (sliceno > 0) { |
207 | memset(&rt->semi_part, 0, sizeof(struct edf_wm_params)); | ||
206 | ret = parse_edfwm_slice(ts, sliceno, task_id, | 208 | ret = parse_edfwm_slice(ts, sliceno, task_id, |
207 | (struct edf_wm_params*) &rt->semi_part); | 209 | (struct edf_wm_params*) &rt->semi_part); |
208 | if (ret < 0) | 210 | if (ret < 0) |
@@ -247,7 +249,7 @@ int main(int argc, char** argv) | |||
247 | test_loop = 1; | 249 | test_loop = 1; |
248 | break; | 250 | break; |
249 | case 'd': | 251 | case 'd': |
250 | /* manually configure delay per loop iteration | 252 | /* manually configure delay per loop iteration |
251 | * unit: microseconds */ | 253 | * unit: microseconds */ |
252 | loop_length = atof(optarg) / 1000000; | 254 | loop_length = atof(optarg) / 1000000; |
253 | skip_config = 1; | 255 | skip_config = 1; |