diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-09-22 15:52:42 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-09-22 15:52:42 -0400 |
commit | 74f2569ef754b076e26c7d1eed572715daaf8dfc (patch) | |
tree | 7ffb639d091004995e0bcda8015dd59a3020de70 | |
parent | 41387a245f753e25a81d1fe38aed827856651103 (diff) |
Adapt APIs to new parameters structure.
Usage of union and proper per-semi-part algo structures forces a
modification of the APIs used by rtspin and rt_launch.
-rw-r--r-- | src/litmus.c | 18 | ||||
-rw-r--r-- | src/task.c | 18 |
2 files changed, 20 insertions, 16 deletions
diff --git a/src/litmus.c b/src/litmus.c index 65f711a..b339e62 100644 --- a/src/litmus.c +++ b/src/litmus.c | |||
@@ -75,6 +75,7 @@ int sporadic_task_ns_edffm(lt_t e, lt_t p, lt_t phase, int cpu, | |||
75 | int set_cpu_set) | 75 | int set_cpu_set) |
76 | { | 76 | { |
77 | struct rt_task param; | 77 | struct rt_task param; |
78 | struct edffm_params fm; | ||
78 | int ret; | 79 | int ret; |
79 | param.exec_cost = e; | 80 | param.exec_cost = e; |
80 | param.period = p; | 81 | param.period = p; |
@@ -82,14 +83,15 @@ int sporadic_task_ns_edffm(lt_t e, lt_t p, lt_t phase, int cpu, | |||
82 | /* check on denominators */ | 83 | /* check on denominators */ |
83 | if (frac1[1] != 0 && frac2[1] != 0) { | 84 | if (frac1[1] != 0 && frac2[1] != 0) { |
84 | /* edf-fm migrat task */ | 85 | /* edf-fm migrat task */ |
85 | param.nr_cpus = 1; | 86 | fm.nr_cpus = 1; |
86 | param.cpus[0] = cpu1; | 87 | fm.cpus[0] = cpu1; |
87 | param.cpus[1] = cpu2; | 88 | fm.cpus[1] = cpu2; |
88 | param.fraction[0][0] = frac1[0]; | 89 | fm.fraction[0][0] = frac1[0]; |
89 | param.fraction[1][0] = frac1[1]; | 90 | fm.fraction[1][0] = frac1[1]; |
90 | param.fraction[0][1] = frac2[0]; | 91 | fm.fraction[0][1] = frac2[0]; |
91 | param.fraction[1][1] = frac2[1]; | 92 | fm.fraction[1][1] = frac2[1]; |
92 | } | 93 | } |
94 | param.semi_part.fm = fm; | ||
93 | param.cls = cls; | 95 | param.cls = cls; |
94 | param.phase = phase; | 96 | param.phase = phase; |
95 | param.budget_policy = budget_policy; | 97 | param.budget_policy = budget_policy; |
@@ -113,7 +115,7 @@ int sporadic_task_ns_npsf(lt_t e, lt_t p, lt_t phase, | |||
113 | param.cls = cls; | 115 | param.cls = cls; |
114 | param.phase = phase; | 116 | param.phase = phase; |
115 | param.budget_policy = budget_policy; | 117 | param.budget_policy = budget_policy; |
116 | param.npsf_id = npsf_id; | 118 | param.semi_part.npsf_id = (int) npsf_id; |
117 | 119 | ||
118 | if (set_cpu_set) { | 120 | if (set_cpu_set) { |
119 | ret = be_migrate_to(cpu); | 121 | ret = be_migrate_to(cpu); |
@@ -45,6 +45,7 @@ int __create_rt_task_edffm(rt_fn_t rt_prog, void *arg, int cpu, int wcet, | |||
45 | int cpu1, int cpu2, task_class_t class) | 45 | int cpu1, int cpu2, task_class_t class) |
46 | { | 46 | { |
47 | struct rt_task params; | 47 | struct rt_task params; |
48 | struct edffm_params fm; | ||
48 | params.cpu = cpu; | 49 | params.cpu = cpu; |
49 | params.period = period; | 50 | params.period = period; |
50 | params.exec_cost = wcet; | 51 | params.exec_cost = wcet; |
@@ -56,14 +57,15 @@ int __create_rt_task_edffm(rt_fn_t rt_prog, void *arg, int cpu, int wcet, | |||
56 | /* edf-fm check on denominators for migratory tasks */ | 57 | /* edf-fm check on denominators for migratory tasks */ |
57 | if (frac1[1] != 0 && frac2[1] != 0) { | 58 | if (frac1[1] != 0 && frac2[1] != 0) { |
58 | /* edf-fm migrat task */ | 59 | /* edf-fm migrat task */ |
59 | params.nr_cpus = 1; | 60 | fm.nr_cpus = 1; |
60 | params.cpus[0] = cpu1; | 61 | fm.cpus[0] = cpu1; |
61 | params.cpus[1] = cpu2; | 62 | fm.cpus[1] = cpu2; |
62 | params.fraction[0][0] = frac1[0]; | 63 | fm.fraction[0][0] = frac1[0]; |
63 | params.fraction[1][0] = frac1[1]; | 64 | fm.fraction[1][0] = frac1[1]; |
64 | params.fraction[0][1] = frac2[0]; | 65 | fm.fraction[0][1] = frac2[0]; |
65 | params.fraction[1][1] = frac2[1]; | 66 | fm.fraction[1][1] = frac2[1]; |
66 | } | 67 | } |
68 | params.semi_part.fm = fm; | ||
67 | 69 | ||
68 | return __launch_rt_task(rt_prog, arg, | 70 | return __launch_rt_task(rt_prog, arg, |
69 | (rt_setup_fn_t) set_rt_task_param, ¶ms); | 71 | (rt_setup_fn_t) set_rt_task_param, ¶ms); |
@@ -80,7 +82,7 @@ int __create_rt_task_npsf(rt_fn_t rt_prog, void *arg, int cpu, int wcet, | |||
80 | params.phase = 0; | 82 | params.phase = 0; |
81 | /* enforce budget for tasks that might not use sleep_next_period() */ | 83 | /* enforce budget for tasks that might not use sleep_next_period() */ |
82 | params.budget_policy = QUANTUM_ENFORCEMENT; | 84 | params.budget_policy = QUANTUM_ENFORCEMENT; |
83 | params.npsf_id = npsf_id; | 85 | params.semi_part.npsf_id = (int) npsf_id; |
84 | 86 | ||
85 | return __launch_rt_task(rt_prog, arg, | 87 | return __launch_rt_task(rt_prog, arg, |
86 | (rt_setup_fn_t) set_rt_task_param, ¶ms); | 88 | (rt_setup_fn_t) set_rt_task_param, ¶ms); |