2 #include <frs_generic.h>
7 UL_LOG_CUST(ulogd_frs_dummy);
8 ul_log_domain_t ulogd_frs_dummy = {UL_LOGL_MSG, "frs_dummy"};
10 static int create_vres(fres_vres_t *vres, void *priv)
13 fres_block_basic *basic;
14 fres_block_dummy_sched *dummy_sched;
19 fres_contract_id_to_string(id, &vres->id, sizeof(id));
20 basic = fres_contract_get_basic(vres->new);
21 dummy_sched = fres_contract_get_block(vres->new, FRES_BLOCK_DUMMY_SCHED);
22 printf("Creating VRes #%d (id=%s, period=%ld ms, budget=%ld ms, priority=%d)\n",
24 fosa_rel_time_to_msec(basic->period),
25 fosa_rel_time_to_msec(basic->budget),
26 dummy_sched ? dummy_sched->priority : -1);
30 static int cancel_vres(fres_vres_t *vres, void *priv)
33 fres_block_basic *basic;
34 fres_block_dummy_sched *dummy_sched;
37 fres_contract_id_to_string(id, &vres->id, sizeof(id));
38 basic = fres_contract_get_basic(vres->allocated);
39 dummy_sched = fres_contract_get_block(vres->allocated, FRES_BLOCK_DUMMY_SCHED);
41 printf("Canceling VRes #%d (id=%s, period=%ld ms, budget=%ld ms, priority=%d)\n",
43 fosa_rel_time_to_msec(basic->period),
44 fosa_rel_time_to_msec(basic->budget),
45 dummy_sched ? dummy_sched->priority : 999);
51 static int change_vres(fres_vres_t *vres, void *priv)
60 static struct fres_scheduler dummy_scheduler = {
61 .res_type = DUMMY_RESOURCE_TYPE,
62 .res_id = DUMMY_RESOURCE_ID,
63 /* Here we are using the "simple interface" */
64 .create_vres = create_vres,
65 .cancel_vres = cancel_vres,
66 .change_vres = change_vres,
70 int frs_dummy_init(forb_orb orb, fres_contract_broker fcb, forb_executor_t *executor)
72 fres_block_register_dummy();
73 return frs_register(orb, fcb, executor, &dummy_scheduler);