3,7 → 3,9 |
extern int cal_cycles; |
extern struct timespec zero_time; |
extern struct loader_task loader_task_list[]; |
extern struct loader_contract loader_contract_list[]; |
extern int total_loader_task; |
extern int total_loader_contract; |
|
/* Delay Calibration */ |
int calibrate_cycle() |
13,7 → 15,10 |
|
kern_cli(); |
kern_gettime(&start); |
for (i=0;i<CALIBRATION_DELTA;i++) kern_gettime(NULL); |
for (i=0;i<CALIBRATION_DELTA;i++) |
__asm__ __volatile__ ("xorl %%eax,%%eax\n\t" |
"cpuid\n\t" |
:::"eax","ebx","ecx","edx"); |
kern_gettime(&end); |
kern_sti(); |
|
25,6 → 30,19 |
|
} |
|
int get_server_from_contract(int contract) |
{ |
|
int i; |
|
for(i=0;i<total_loader_contract;i++) |
if (loader_contract_list[i].number == contract) |
return loader_contract_list[i].server; |
|
return -1; |
|
} |
|
void *get_task_model(struct loader_task *current) { |
if (current->local_scheduler == PAR_POSIX) { |
static NRT_TASK_MODEL nrt; |