Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1241 → Rev 1242

/demos/trunk/loader/shark.c
3,6 → 3,7
extern int cal_cycles;
extern struct timespec zero_time;
extern struct loader_task *loader_task_list;
extern int total_loader_task;
 
/* Delay Calibration */
int calibrate_cycle()
31,6 → 32,7
nrt_task_default_model(nrt);
nrt_task_def_save_arrivals(nrt);
nrt_task_def_ctrl_jet(nrt);
nrt_task_def_group(nrt,current->group);
nrt_task_def_usemath(nrt);
return &nrt;
44,6 → 46,7
hard_task_def_ctrl_jet(ht);
hard_task_def_mit(ht,TIMESPEC2USEC(&current->deadline));
hard_task_def_wcet(ht,TIMESPEC2USEC(&current->wcet));
hard_task_def_group(ht,current->group);
hard_task_def_usemath(ht);
return &ht;
}
56,6 → 59,7
hard_task_def_mit(ht,TIMESPEC2USEC(&current->deadline));
hard_task_def_wcet(ht,TIMESPEC2USEC(&current->wcet));
hard_task_def_ctrl_jet(ht);
hard_task_def_group(ht,current->group);
hard_task_def_usemath(ht);
return &ht;
}
79,18 → 83,17
 
void start_simulation() {
int i, total_task;
int i;
struct loader_task *l;
struct timespec end_time;
 
total_task = sizeof(loader_task_list)/sizeof(struct loader_task);
i = 0;
while (i<total_task) {
if (l->act_number>0) {
while (i < total_loader_task) {
if (l->act_number > 0) {
ADDTIMESPEC(&zero_time, &l->act[0], &end_time);
l->act_current++;
kern_event_post(&end_time,loader_task_activate,&l);
kern_event_post(&end_time,(void *)((void *)(loader_task_activate)),&l);
i++;
l=&loader_task_list[i];
}
112,7 → 115,7
ADDTIMESPEC(&actual_time, &l->act[l->act_current], &end_time);
l->act_current++;
kern_event_post(&end_time,loader_task_activate,&l);
kern_event_post(&end_time,(void *)((void *)(loader_task_activate)),&l);
 
}
 
/demos/trunk/loader/newloader.c
103,19 → 103,19
pthread_t j;
int err;
void *func=NULL;
cprintf("(tp%d)",current->task_type);
switch(current->task_type) {
case PAR_TASK_OS:
func=oneshot_task;
err = generic_create_thread(current->server,&j,NULL,oneshot_task,(void *)current,generic_get_task_model(current));
break;
case PAR_TASK_BT:
func=back_task;
err = generic_create_thread(current->server,&j,NULL,back_task,(void *)current,generic_get_task_model(current));
break;
case PAR_TASK_CT:
func=periodic_task;
err = generic_create_thread(current->server,&j,NULL,periodic_task,(void *)current,generic_get_task_model(current));
break;
}
err = generic_create_thread(current->server,&j,NULL,func,(void *)current,generic_get_task_model(current));
if (err) {
cprintf("Error fsf task creating\n");
sys_end();