Subversion Repositories shark

Rev

Details | 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
}