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