Subversion Repositories shark

Compare Revisions

Regard whitespace Rev 1543 → Rev 1542

/demos/trunk/loader/common/nload.c
9,7 → 9,8
*
*/
 
#include "fsf.h"
#include "fsf_basic_types.h"
#include "fsf_core.h" //Framework main header
 
#include "calibrate.h"
#include "func.h" //Generic function definitions
262,15 → 263,16
switch(current->task_type) {
case PAR_TASK_OS:
err = fsf_create_local_thread(generic_get_server_from_contract(current->contract),generic_get_task_model(current), &j,NULL,
oneshot_task,(void *)current);
err = generic_create_thread(generic_get_server_from_contract(current->contract),&j,NULL,
oneshot_task,(void *)current,generic_get_task_model(current));
break;
case PAR_TASK_BT:
err = fsf_create_local_thread(generic_get_server_from_contract(current->contract),generic_get_task_model(current), &j,NULL,
back_task,(void *)current);
err = generic_create_thread(generic_get_server_from_contract(current->contract),&j,NULL,
back_task,(void *)current,generic_get_task_model(current));
break;
case PAR_TASK_CT:
err = fsf_create_local_thread(generic_get_server_from_contract(current->contract),generic_get_task_model(current), &j,NULL, periodic_task,(void *)current);
err = generic_create_thread(generic_get_server_from_contract(current->contract),&j,NULL,
periodic_task,(void *)current,generic_get_task_model(current));
break;
}
if (err) {
/demos/trunk/loader/shark/shark.c
62,11 → 62,7
void *get_task_model(struct loader_task *current) {
if (current->local_scheduler == PAR_POSIX) {
static NRT_TASK_MODEL nrt;
static fsf_sched_params_t pr;
pr.policy=FSF_POSIX;
pr.params=&nrt;
nrt_task_default_model(nrt);
nrt_task_def_save_arrivals(nrt);
nrt_task_def_ctrl_jet(nrt);
73,17 → 69,13
nrt_task_def_group(nrt,current->group);
nrt_task_def_usemath(nrt);
return ≺
return &nrt;
 
}
 
if (current->local_scheduler == PAR_EDF) {
static HARD_TASK_MODEL ht;
static fsf_sched_params_t pr;
 
pr.policy=FSF_EDF;
pr.params=&ht;
 
hard_task_default_model(ht);
hard_task_def_ctrl_jet(ht);
hard_task_def_mit(ht,TIMESPEC2USEC(&current->deadline));
91,30 → 83,22
hard_task_def_group(ht,current->group);
hard_task_def_aperiodic(ht);
hard_task_def_usemath(ht);
return ≺
return &ht;
}
 
if (current->local_scheduler == PAR_NONE) {
static DUMMY_TASK_MODEL d;
static fsf_sched_params_t pr;
 
pr.policy=FSF_NONE;
pr.params=&d;
 
dummy_task_default_model(d);
dummy_task_def_group(d,current->group);
 
return ≺
return &d;
}
 
 
if (current->local_scheduler == PAR_RM) {
static HARD_TASK_MODEL ht;
static fsf_sched_params_t pr;
 
pr.policy=FSF_RM;
pr.params=&ht;
hard_task_default_model(ht);
hard_task_def_mit(ht,TIMESPEC2USEC(&current->deadline));
hard_task_def_wcet(ht,TIMESPEC2USEC(&current->wcet));
121,8 → 105,7
hard_task_def_ctrl_jet(ht);
hard_task_def_group(ht,current->group);
hard_task_def_usemath(ht);
 
return ≺
return &ht;
}
 
return NULL;
/demos/trunk/loader/shark/func.h
19,6 → 19,21
*
* generic_get_server_from_contract(int contract_number) */
 
#define generic_create_thread fsf_create_thread
/* Create a task/thread inside a specific server.
* it's very similar to fsf_create_thread, but we need a parameter
* to set the local scheduler task and actually it's outside
* the framework
*
* generic_task_create(
* server number,
* pthread_t of created task (-1 if failed),
* pthread_attr_t,
* task_body,
* arg of the body (must be "(void *)current"),
* arg for real-time task specification)
*/
 
#define generic_calibrate_cycle calibrate_cycle
/* Set the calibration parameter "cal_cycle"
* only if it's initialized to 0. The calibration routine