aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-09-22 13:15:14 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2011-01-26 18:20:24 -0500
commit2fbbb7df71d6502dd229772b7ca8d577086e5349 (patch)
treeeba81ecc400b440d48944527349fb987a40eb41e
parent87ef92f3665b9bb4250ec42b5295bd5639b71013 (diff)
Properly fill structure before passing pointer.
-rw-r--r--bin/rt_launch_edfwm.c15
-rw-r--r--bin/rtspin_edfwm.c18
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;