135,24 → 135,13 |
|
} |
|
int relink_contract_to_server(const fsf_contract_parameters_t *contract, |
fsf_server_id_t server) |
{ |
void contract_to_server(const fsf_contract_parameters_t *contract, int i) { |
|
TIME T,Q; |
int i=0; |
#ifdef FSF_DEBUG |
int temp; |
kern_printf("(Relink Server %d)",server); |
#endif |
// find contract |
while(i<current_server) { |
if (server_list[i].server==server) break; |
i++; |
} |
|
server_list[i].server=server; |
server_list[i].Qs=1; |
|
T=TIMESPEC2USEC(&contract->period_min); |
Q=TIMESPEC2USEC(&contract->budget_max); |
mul32div32to32(MAX_BANDWIDTH,Q,T,server_list[current_server].Umax); |
184,6 → 173,27 |
kern_printf("(Umin %d)",temp); |
#endif |
|
} |
|
int relink_contract_to_server(const fsf_contract_parameters_t *contract, |
fsf_server_id_t server) |
{ |
int i=0; |
#ifdef FSF_DEBUG |
kern_printf("(Relink Server %d)",server); |
#endif |
// find contract |
while(i<current_server) { |
if (server_list[i].server==server) break; |
i++; |
} |
|
server_list[i].server=server; |
server_list[i].Qs=1; |
|
contract_to_server(contract, i); |
|
|
return 0; |
|
} |
191,10 → 201,7 |
int link_contract_to_server(const fsf_contract_parameters_t *contract, |
fsf_server_id_t server) |
{ |
TIME T,Q; |
#ifdef FSF_DEBUG |
int temp; |
|
kern_printf("(Link Server %d)",server); |
#endif |
|
201,38 → 208,8 |
server_list[current_server].server=server; |
server_list[current_server].Qs=1; |
|
T=TIMESPEC2USEC(&contract->period_min); |
Q=TIMESPEC2USEC(&contract->budget_max); |
mul32div32to32(MAX_BANDWIDTH,Q,T,server_list[current_server].Umax); |
contract_to_server(contract,current_server); |
|
T=TIMESPEC2USEC(&contract->period_min); |
server_list[current_server].Tmin=T; |
|
T=TIMESPEC2USEC(&contract->period_max); |
server_list[current_server].Tmax=T; |
|
Q=TIMESPEC2USEC(&contract->budget_min); |
server_list[current_server].Cmin=Q; |
|
mul32div32to32(MAX_BANDWIDTH,Q,T,server_list[current_server].Umin); |
server_list[current_server].U=server_list[current_server].Umin; |
|
if (contract->d_equals_t == TRUE) { |
server_list[current_server].deadline = 0; |
server_list[current_server].d_equals_t = TRUE; |
} else { |
server_list[current_server].deadline = TIMESPEC2USEC(&contract->deadline); |
server_list[current_server].d_equals_t = FALSE; |
} |
|
#ifdef FSF_DEBUG |
mul32div32to32(server_list[current_server].Umax,100, MAX_BANDWIDTH, temp); |
kern_printf("(Umax %d)",temp); |
mul32div32to32(server_list[current_server].Umin,100, MAX_BANDWIDTH, temp); |
kern_printf("(Umin %d)",temp); |
#endif |
|
|
current_server++; |
return 0; |
|