24,6 → 24,7 |
|
#include <pthread.h> |
#include <stdlib.h> |
#include "pistar.h" |
|
|
//#define FSF_DEBUG |
33,10 → 34,17 |
bandwidth_t fsf_max_bw = 0; |
|
int fsf_server_level; |
int shared_object_level; |
|
PID server_task; |
|
PORT channel[2]; |
|
int FSF_register_shared_object_module(void) { |
return PISTAR_register_module(); |
} |
|
|
int FSF_register_module(int server_level, bandwidth_t max_bw) |
{ |
printk("FSF Module\n"); |
43,6 → 51,7 |
current_server=0; |
fsf_server_level = server_level; |
fsf_max_bw = max_bw; |
// shared_object_level = FSF_register_shared_object_module(); |
|
return 0; |
|
357,6 → 366,64 |
|
} |
|
int fsf_settask_nopreemptive |
(fsf_server_id_t *server, |
pthread_t thread) |
{ |
int local_scheduler_level, scheduler_id; |
|
local_scheduler_level = SERVER_get_local_scheduler_level_from_pid(fsf_server_level,thread); |
scheduler_id = SERVER_get_local_scheduler_id_from_pid(fsf_server_level, thread); |
|
switch (scheduler_id) { |
case FSF_SCHEDULER_POSIX: |
|
break; |
case FSF_SCHEDULER_EDF: |
EDFSTAR_set_nopreemtive_current(local_scheduler_level); |
return 1; |
break; |
case FSF_SCHEDULER_RM: |
break; |
case FSF_SCHEDULER_MPEG: |
break; |
default: |
return -1; |
} |
return -1; |
} |
|
|
int fsf_settask_preemptive |
(fsf_server_id_t *server, |
pthread_t thread) |
{ |
int local_scheduler_level, scheduler_id; |
|
local_scheduler_level = SERVER_get_local_scheduler_level_from_pid(fsf_server_level,thread); |
scheduler_id = SERVER_get_local_scheduler_id_from_pid(fsf_server_level, thread); |
|
switch (scheduler_id) { |
case FSF_SCHEDULER_POSIX: |
|
break; |
case FSF_SCHEDULER_EDF: |
EDFSTAR_unset_nopreemtive_current(local_scheduler_level); |
return 1; |
break; |
case FSF_SCHEDULER_RM: |
break; |
case FSF_SCHEDULER_MPEG: |
break; |
default: |
return -1; |
} |
|
return -1; |
|
} |
|
|
int fsf_get_server |
(fsf_server_id_t *server, |
pthread_t thread) |
587,3 → 654,10 |
} |
|
} |
|
|
int fsf_get_remain_budget(fsf_server_id_t server) { |
|
return SERVER_get_remain_capacity(fsf_server_level, server); |
|
} |