Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 223 → Rev 224

/shark/trunk/ports/first/first-server.c
21,11 → 21,23
#include <pthread.h>
#include <stdlib.h>
 
#define FSF_DEBUG
//#define FSF_DEBUG
 
int cbsstar_level;
int posix_level;
int fsf_cbsstar_level;
int fsf_posix_level;
 
int FSF_register_module(int posix_level, int cbsstar_level)
{
 
printk("FSF Module\n");
 
fsf_posix_level = posix_level;
fsf_cbsstar_level = cbsstar_level;
 
return 0;
 
}
 
/* Convert the contract specification to
* budget parameters
*/
38,16 → 50,16
 
switch (contract->local_scheduler_id) {
case FSF_SCHEDULER_POSIX:
local_scheduler_level = POSIXSTAR_register_level(cbsstar_level,5000,32);
local_scheduler_level = POSIXSTAR_register_level(fsf_cbsstar_level,5000,32);
break;
case FSF_SCHEDULER_EDF:
local_scheduler_level = EDFSTAR_register_level(cbsstar_level);
local_scheduler_level = EDFSTAR_register_level(fsf_cbsstar_level);
break;
case FSF_SCHEDULER_RM:
break;
}
*budget = CBSSTAR_setbudget(cbsstar_level,
*budget = CBSSTAR_setbudget(fsf_cbsstar_level,
TIMESPEC2USEC(&(contract->budget_min)),
TIMESPEC2USEC(&(contract->period_max)),
local_scheduler_level,contract->local_scheduler_id);
61,7 → 73,7
int budget)
{
 
CBSSTAR_adjust_budget(cbsstar_level,
CBSSTAR_adjust_budget(fsf_cbsstar_level,
TIMESPEC2USEC(&(contract->budget_min)),
TIMESPEC2USEC(&(contract->period_max)),
budget);
142,8 → 154,8
if (server == -1 || thread == -1)
return FSF_ERR_BIND_THREAD;
 
local_scheduler_level = CBSSTAR_get_local_scheduler_level_from_budget(cbsstar_level,server);
scheduler_id = CBSSTAR_get_local_scheduler_id_from_budget(cbsstar_level,server);
local_scheduler_level = CBSSTAR_get_local_scheduler_level_from_budget(fsf_cbsstar_level,server);
scheduler_id = CBSSTAR_get_local_scheduler_id_from_budget(fsf_cbsstar_level,server);
 
/* Check if thread is already bind */
switch (scheduler_id) {
216,8 → 228,8
if (thread == -1)
return FSF_ERR_UNBIND_THREAD;
 
local_scheduler_level = CBSSTAR_get_local_scheduler_level_from_pid(cbsstar_level,thread);
scheduler_id = CBSSTAR_get_local_scheduler_id_from_pid(cbsstar_level,thread);
local_scheduler_level = CBSSTAR_get_local_scheduler_level_from_pid(fsf_cbsstar_level,thread);
scheduler_id = CBSSTAR_get_local_scheduler_id_from_pid(fsf_cbsstar_level,thread);
 
switch (scheduler_id) {
case FSF_SCHEDULER_POSIX:
237,10 → 249,10
 
msg->command = STD_SET_NEW_MODEL;
msg->param = (void *)(&nrt);
level_table[posix_level]->public_message(posix_level,thread,msg);
level_table[fsf_posix_level]->public_message(fsf_posix_level,thread,msg);
 
msg->command = STD_SET_NEW_LEVEL;
msg->param = (void *)(posix_level);
msg->param = (void *)(fsf_posix_level);
task_message(msg,thread,0);
 
free(msg);
264,10 → 276,10
 
msg->command = STD_SET_NEW_MODEL;
msg->param = (void *)(&nrt);
level_table[posix_level]->public_message(posix_level,thread,msg);
level_table[fsf_posix_level]->public_message(fsf_posix_level,thread,msg);
 
msg->command = STD_SET_NEW_LEVEL;
msg->param = (void *)(posix_level);
msg->param = (void *)(fsf_posix_level);
task_message(msg,thread,0);
 
free(msg);
338,8 → 350,8
{
int local_scheduler_level, scheduler_id;
 
local_scheduler_level = CBSSTAR_get_local_scheduler_level_from_pid(cbsstar_level,thread);
scheduler_id = CBSSTAR_get_local_scheduler_id_from_pid(cbsstar_level, thread);
local_scheduler_level = CBSSTAR_get_local_scheduler_level_from_pid(fsf_cbsstar_level,thread);
scheduler_id = CBSSTAR_get_local_scheduler_id_from_pid(fsf_cbsstar_level, thread);
 
switch (scheduler_id) {
case FSF_SCHEDULER_POSIX:
367,8 → 379,8
if (*server < 0)
return FSF_ERR_INVALID_SERVER;
 
local_scheduler_level = CBSSTAR_get_local_scheduler_level_from_budget(cbsstar_level,*server);
scheduler_id = CBSSTAR_get_local_scheduler_id_from_budget(cbsstar_level,*server);
local_scheduler_level = CBSSTAR_get_local_scheduler_level_from_budget(fsf_cbsstar_level,*server);
scheduler_id = CBSSTAR_get_local_scheduler_id_from_budget(fsf_cbsstar_level,*server);
 
switch (scheduler_id) {
case FSF_SCHEDULER_POSIX:
383,7 → 395,7
break;
}
 
CBSSTAR_removebudget(cbsstar_level,*server);
CBSSTAR_removebudget(fsf_cbsstar_level,*server);
 
level_free_descriptor(local_scheduler_level);