Subversion Repositories shark

Rev

Rev 1527 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1254 giacomo 1
#include "kernel/kern.h"
1527 trimarchi 2
#include "fsf_contract.h"
1254 giacomo 3
#include "fsf_server.h"
4
#include "func.h"
5
 
6
extern struct loader_contract loader_contract_list[];
7
extern int total_loader_contract;
8
 
9
void fsfinit()
10
{
11
 
12
  struct loader_contract *c;
13
  fsf_contract_parameters_t contract;
14
  fsf_server_id_t server;
1442 giacomo 15
  union sigval no_sigval = {0};
1254 giacomo 16
  int i;
1467 trimarchi 17
  SOFT_TASK_MODEL m;
1254 giacomo 18
 
1467 trimarchi 19
  soft_task_default_model(m);
20
  soft_task_def_period(m,50000);
21
  soft_task_def_met(m,1000);
22
 
23
  FSF_start_service_task(&m);
24
 
1254 giacomo 25
  for (i=0;i<total_loader_contract;i++) {
26
 
27
    c = &loader_contract_list[i];
28
 
29
    fsf_initialize_contract(&contract);
30
 
31
    fsf_set_contract_basic_parameters(&contract,&c->cmin,&c->tmax,&c->cmax,&c->tmin,c->workload);
1534 trimarchi 32
    fsf_set_contract_reclamation_parameters(&contract,FSF_DEFAULT_GRANULARITY, NULL, 1,1);
1254 giacomo 33
 
1442 giacomo 34
    if (TIMESPEC2USEC(&c->deadline) != 0)
35
      fsf_set_contract_timing_requirements(&contract,FALSE,&c->deadline,0,no_sigval,0,no_sigval);
36
 
1254 giacomo 37
    if (c->local_scheduler != PAR_POSIX) {
38
 
39
      switch (c->local_scheduler) {
40
         case PAR_EDF:
41
           fsf_set_local_scheduler_parameter(&contract,FSF_SCHEDULER_EDF);
42
           break;
43
         case PAR_RM:
44
           fsf_set_local_scheduler_parameter(&contract,FSF_SCHEDULER_RM);
45
           break;
46
      }
47
 
48
    }
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
}