Subversion Repositories shark

Rev

Rev 1534 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1254 giacomo 1
#include "kernel/kern.h"
1538 trimarchi 2
#include "fsf_basic_types.h"
3
#include "fsf_core.h"
4
#include "fsf_hierarchical.h"
5
#include "fsf_spare_capacity.h"
1254 giacomo 6
#include "fsf_server.h"
1538 trimarchi 7
 
1254 giacomo 8
#include "func.h"
9
 
10
extern struct loader_contract loader_contract_list[];
11
extern int total_loader_contract;
12
 
13
void fsfinit()
14
{
15
 
16
  struct loader_contract *c;
17
  fsf_contract_parameters_t contract;
18
  fsf_server_id_t server;
1442 giacomo 19
  union sigval no_sigval = {0};
1254 giacomo 20
  int i;
21
 
1538 trimarchi 22
  FSF_start_service_task();
1467 trimarchi 23
 
1254 giacomo 24
  for (i=0;i<total_loader_contract;i++) {
25
 
26
    c = &loader_contract_list[i];
27
 
28
    fsf_initialize_contract(&contract);
29
 
1538 trimarchi 30
    fsf_set_contract_basic_parameters(&contract,&c->cmin,&c->tmax,c->workload);
31
    fsf_set_contract_reclamation_parameters(&contract,&c->cmax,&c->tmin,FSF_DEFAULT_GRANULARITY, NULL, 1,1);
1254 giacomo 32
 
1442 giacomo 33
    if (TIMESPEC2USEC(&c->deadline) != 0)
34
      fsf_set_contract_timing_requirements(&contract,FALSE,&c->deadline,0,no_sigval,0,no_sigval);
35
 
1538 trimarchi 36
    switch (c->local_scheduler) {
37
       case PAR_EDF:
38
         fsf_set_contract_scheduling_policy(&contract,FSF_EDF);
39
         break;
40
       case PAR_RM:
41
         fsf_set_contract_scheduling_policy(&contract,FSF_RM);
42
         break;
43
       case PAR_POSIX:
44
         fsf_set_contract_scheduling_policy(&contract,FSF_POSIX);
45
       break;
1254 giacomo 46
 
47
    }
1538 trimarchi 48
 
1254 giacomo 49
 
50
    fsf_negotiate_contract(&contract,&server);
51
    c->server = server;
1311 giacomo 52
 
1254 giacomo 53
  }
54
 
1311 giacomo 55
  print_server_list();
56
 
1254 giacomo 57
}