Rev 1209 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1209 | giacomo | 1 | #include "kernel/kern.h" |
2 | #include "fsf_server.h" |
||
3 | #include "fsf_contract.h" |
||
4 | |||
5 | void fsfinit() |
||
6 | { |
||
7 | |||
8 | struct timespec period1 = {0,10000000}; //30% |
||
9 | struct timespec period2 = {0,30000000}; //20% |
||
10 | struct timespec period3 = {0,30000000}; //10% |
||
11 | struct timespec budget1 = {0,3000000}; |
||
12 | struct timespec budget2 = {0,6000000}; |
||
13 | struct timespec budget3 = {0,3000000}; |
||
14 | |||
15 | fsf_server_id_t server1 = -1; |
||
16 | fsf_server_id_t server2 = -1; |
||
17 | fsf_server_id_t server3 = -1; |
||
18 | fsf_server_id_t server4 = -1; |
||
19 | |||
20 | fsf_contract_parameters_t contract; |
||
21 | |||
22 | int bw; |
||
23 | |||
24 | fsf_initialize_contract(&contract); |
||
25 | |||
26 | fsf_set_contract_basic_parameters(&contract,&budget1,&period1,NULL,NULL,FSF_DEFAULT_WORKLOAD); |
||
27 | fsf_negotiate_contract(&contract,&server1); |
||
28 | bw = MAX_BANDWIDTH / TIMESPEC2USEC(&period1) * TIMESPEC2USEC(&budget1); |
||
29 | cprintf("FSF SERVER LEVEL %d BW %d.%03d\n",server1, (int)( (long long)bw * 100 / MAX_BANDWIDTH), |
||
30 | (int)( (long long)bw * 100000 / MAX_BANDWIDTH % 1000)); |
||
31 | |||
32 | fsf_set_contract_basic_parameters(&contract,&budget2,&period2,NULL,NULL,FSF_DEFAULT_WORKLOAD); |
||
33 | fsf_negotiate_contract(&contract,&server2); |
||
34 | bw = MAX_BANDWIDTH / TIMESPEC2USEC(&period2) * TIMESPEC2USEC(&budget2); |
||
35 | cprintf("FSF SERVER LEVEL %d BW %d.%03d\n",server2, (int)( (long long)bw * 100 / MAX_BANDWIDTH), |
||
36 | (int)( (long long)bw * 100000 / MAX_BANDWIDTH % 1000)); |
||
37 | |||
38 | fsf_set_contract_basic_parameters(&contract,&budget3,&period3,NULL,NULL,FSF_DEFAULT_WORKLOAD); |
||
39 | fsf_negotiate_contract(&contract,&server3); |
||
40 | bw = MAX_BANDWIDTH / TIMESPEC2USEC(&period3) * TIMESPEC2USEC(&budget3); |
||
41 | cprintf("FSF SERVER LEVEL %d BW %d.%03d\n",server3, (int)( (long long)bw * 100 / MAX_BANDWIDTH), |
||
42 | (int)( (long long)bw * 100000 / MAX_BANDWIDTH % 1000)); |
||
43 | |||
44 | fsf_set_contract_basic_parameters(&contract,&budget2,&period2,NULL,NULL,FSF_DEFAULT_WORKLOAD); |
||
45 | fsf_set_local_scheduler_parameter(&contract, FSF_SCHEDULER_EDF); |
||
46 | fsf_negotiate_contract(&contract,&server4); |
||
47 | bw = MAX_BANDWIDTH / TIMESPEC2USEC(&period2) * TIMESPEC2USEC(&budget2); |
||
48 | cprintf("FSF SERVER LEVEL %d BW %d.%03d\n",server4, (int)( (long long)bw * 100 / MAX_BANDWIDTH), |
||
49 | (int)( (long long)bw * 100000 / MAX_BANDWIDTH % 1000)); |
||
50 | |||
51 | } |