1,6 → 1,10 |
#include "kernel/kern.h" |
#include "fsf_contract.h" |
#include "fsf_basic_types.h" |
#include "fsf_core.h" |
#include "fsf_hierarchical.h" |
#include "fsf_spare_capacity.h" |
#include "fsf_server.h" |
|
#include "func.h" |
|
extern struct loader_contract loader_contract_list[]; |
14,14 → 18,9 |
fsf_server_id_t server; |
union sigval no_sigval = {0}; |
int i; |
SOFT_TASK_MODEL m; |
|
soft_task_default_model(m); |
soft_task_def_period(m,50000); |
soft_task_def_met(m,1000); |
FSF_start_service_task(); |
|
FSF_start_service_task(&m); |
|
for (i=0;i<total_loader_contract;i++) { |
|
c = &loader_contract_list[i]; |
28,24 → 27,25 |
|
fsf_initialize_contract(&contract); |
|
fsf_set_contract_basic_parameters(&contract,&c->cmin,&c->tmax,&c->cmax,&c->tmin,c->workload); |
fsf_set_contract_reclamation_parameters(&contract,FSF_DEFAULT_GRANULARITY, NULL, 1,1); |
fsf_set_contract_basic_parameters(&contract,&c->cmin,&c->tmax,c->workload); |
fsf_set_contract_reclamation_parameters(&contract,&c->cmax,&c->tmin,FSF_DEFAULT_GRANULARITY, NULL, 1,1); |
|
if (TIMESPEC2USEC(&c->deadline) != 0) |
fsf_set_contract_timing_requirements(&contract,FALSE,&c->deadline,0,no_sigval,0,no_sigval); |
|
if (c->local_scheduler != PAR_POSIX) { |
|
switch (c->local_scheduler) { |
case PAR_EDF: |
fsf_set_local_scheduler_parameter(&contract,FSF_SCHEDULER_EDF); |
break; |
case PAR_RM: |
fsf_set_local_scheduler_parameter(&contract,FSF_SCHEDULER_RM); |
break; |
} |
switch (c->local_scheduler) { |
case PAR_EDF: |
fsf_set_contract_scheduling_policy(&contract,FSF_EDF); |
break; |
case PAR_RM: |
fsf_set_contract_scheduling_policy(&contract,FSF_RM); |
break; |
case PAR_POSIX: |
fsf_set_contract_scheduling_policy(&contract,FSF_POSIX); |
break; |
|
} |
|
|
fsf_negotiate_contract(&contract,&server); |
c->server = server; |