Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1537 → Rev 1538

/demos/trunk/loader/shark/fsfinit.c
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;