]> rtime.felk.cvut.cz Git - frescor/frsh.git/blobdiff - resources/dummy/frm_dummy.c
Implemented support for contract renegotiation
[frescor/frsh.git] / resources / dummy / frm_dummy.c
index 8f8a5a3ea51587b7b26f9e6cf1b7bc8ff411ebd3..1700e926856677cfb5f087eda505d88d6177c3d1 100644 (file)
@@ -81,12 +81,22 @@ int admission_test(struct fres_sa_scenario *scenario, void *priv, bool *schedula
 #endif
        data->some_data++;
 
-       fres_sa_scenario_for_each_contract(scenario, c) {
+       fres_sa_scenario_for_each_no_cancel_contract(scenario, c) {
                fres_block_basic *basic;
                fres_block_dummy_sched *dummy_sched;
                char id[40];
                fres_contract_id_to_string(id, &c->id, sizeof(id));
+#ifdef CONFIG_RESOURCE_DUMMY_VERBOSE   
+               printf("  %s contract: id=%s num_blocks=%d\n",
+                      c->contract == c->new ? "new" : "old", id,
+                      fres_contract_get_num_blocks(c->contract));
+#endif
+               
                basic = fres_contract_get_basic(c->contract);
+               if (!basic) {
+                       fprintf(stderr, "No basic block present\n");
+                       return -1;
+               }
 
                if (c->contract == c->new) {
                        /* Add data for scheduler to the new contracts */
@@ -95,7 +105,7 @@ int admission_test(struct fres_sa_scenario *scenario, void *priv, bool *schedula
                        dummy_sched->priority = 100 - fosa_rel_time_to_msec(basic->budget);
                        ret = fres_contract_add_dummy_sched(c->contract, dummy_sched);
                        if (ret) {
-                               fprintf(stderr, "Cannpt add dummy_sched block\n");
+                               fprintf(stderr, "Cannot add dummy_sched block\n");
                                return -1;
                        }
                } else {
@@ -106,12 +116,10 @@ int admission_test(struct fres_sa_scenario *scenario, void *priv, bool *schedula
                        }
                }
 #ifdef CONFIG_RESOURCE_DUMMY_VERBOSE   
-               printf("  %s contract: id=%s, period=%ld ms, budget=%ld ms, priority=%d\n",
-                      c->contract == c->new ? "new" : "old", id,
+               printf("                period=%ld ms, budget=%ld ms, priority=%d\n",
                       fosa_rel_time_to_msec(basic->period),
                       fosa_rel_time_to_msec(basic->budget), dummy_sched->priority);
 #endif
-
        }
        *schedulable = scenario->num_contracts <= 3;
 #ifdef CONFIG_RESOURCE_DUMMY_VERBOSE