9 int b[N] = { 10, 20, 30 };
11 static struct option long_opts[] = {
12 { "loglevel", 1, 0, 'l' },
19 printf("usage: fcb [ options ]\n");
20 printf(" -l, --loglevel <number>|<domain>=<number>,...\n");
25 int main(int argc, char *argv[])
28 frsh_contract_t contract[N];
29 frsh_vres_id_t vres[N];
30 frsh_rel_time_t budget, period, deadline;
31 frsh_signal_info_t si;
35 while ((opt = getopt_long(argc, argv, "l:", &long_opts[0], NULL)) != EOF) {
38 ul_log_domain_arg2levels(optarg);
43 exit(opt == 'h' ? 0 : 1);
48 if (ret) PERROR_AND_EXIT(ret, "frsh_init");
50 /* Negotiate N contracts */
52 ret = frsh_contract_init(&contract[i]);
53 if (ret) PERROR_AND_EXIT(ret, "frsh_contract_init");
55 ret = frsh_contract_set_resource_and_label(
57 DUMMY_RESOURCE_TYPE, DUMMY_RESOURCE_ID,
59 if (ret) PERROR_AND_EXIT(ret, "frsh_contract_set_resource_and_label");
61 budget = fosa_msec_to_rel_time(b[i]);
62 period = fosa_msec_to_rel_time(100);
63 deadline = fosa_msec_to_rel_time(50);
64 ret = frsh_contract_set_basic_params(&contract[i],
69 if (ret) PERROR_AND_EXIT(ret, "frsh_contract_set_basic_params");
71 ret = frsh_contract_set_timing_reqs(&contract[i],
74 if (ret) PERROR_AND_EXIT(ret, "frsh_contract_set_timing_reqs");
76 ret = frsh_contract_negotiate(&contract[i], &vres[i]);
77 if (ret) PERROR_AND_EXIT(ret, "frsh_contract_negotiate");
80 budget = fosa_msec_to_rel_time(2*b[i]);
81 period = fosa_msec_to_rel_time(110);
82 ret = frsh_contract_set_basic_params(&contract[i],
87 if (ret) PERROR_AND_EXIT(ret, "frsh_contract_set_basic_params reneg");
89 ret = frsh_contract_renegotiate_sync(&contract[i], vres[i]);
93 /* Cancel N contracts */
95 ret = frsh_contract_cancel(vres[i]);
96 if (ret) PERROR_AND_EXIT(ret, "frsh_contract_cancel");