19,7 → 19,7 |
#include <pthread.h> |
#include <stdlib.h> |
|
//#define FSF_DEBUG |
#define FSF_DEBUG |
|
int current_server=0; |
server_elem server_list[FSF_MAX_N_SERVERS]; |
122,7 → 122,7 |
server_list[i].Cmin=Q; |
|
mul32div32to32(MAX_BANDWIDTH,Q,T,server_list[i].Umin); |
server_list[i].U=server_list[i].Umax; |
server_list[i].U=server_list[i].Umin; |
|
#ifdef FSF_DEBUG |
mul32div32to32(server_list[i].Umax,100, MAX_BANDWIDTH, temp); |
159,7 → 159,7 |
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].Umax; |
server_list[current_server].U=server_list[current_server].Umin; |
|
#ifdef FSF_DEBUG |
mul32div32to32(server_list[current_server].Umax,100, MAX_BANDWIDTH, temp); |
187,7 → 187,7 |
while (i<(current_server-1)) { |
server_list[i].server=server_list[i+1].server; |
server_list[i].Umin=server_list[i+1].Umin; |
server_list[i].U=server_list[i+1].Umax; |
server_list[i].U=server_list[i+1].Umin; |
server_list[i].Umax=server_list[i+1].Umax; |
server_list[i].Cmin=server_list[i+1].Cmin; |
server_list[i].Tmax=server_list[i+1].Tmax; |
253,7 → 253,7 |
server_list[i].actual_period = server_list[i].Tmax; |
adjust_SERVER_budget(server_list[i].server,Q, server_list[i].Tmax); |
} |
server_list[i].U=server_list[i].Umax; |
server_list[i].U=server_list[i].Umin; |
|
} |
} |
469,7 → 469,7 |
server_list[i].actual_period = server_list[i].Tmax; |
adjust_SERVER_budget(server_list[i].server,Q, server_list[i].Tmax); |
} |
server_list[i].U=server_list[i].Umax; |
server_list[i].U=server_list[i].Umin; |
|
} |
|
482,10 → 482,9 |
} |
|
int recalculate_contract(bandwidth_t U) { |
long int current_bandwidth; |
unsigned int temp_U; |
long int temp_sig; |
int Qt; |
bandwidth_t current_bandwidth; |
long int temp_U; |
int Qt; |
int isok=0; |
int i=0; |
|
505,8 → 504,9 |
current_bandwidth=0; |
Qt=0; |
for (i=0; i<current_server; i++) { |
if (server_list[i].Qs != 0 && server_list[i].U > server_list[i].Umin) |
if (server_list[i].Qs!=0 && server_list[i].U<server_list[i].Umax) |
Qt+=server_list[i].Qs; |
current_bandwidth+=server_list[i].U; |
} |
|
#ifdef FSF_DEBUG |
514,27 → 514,17 |
#endif |
isok=1; |
for (i=0; i<current_server; i++) { |
if (server_list[i].Qs!=0 && server_list[i].U>server_list[i].Umin) { |
|
current_bandwidth -= (long int)((unsigned int)(U)); |
if (current_bandwidth < 0) { |
|
current_bandwidth = -current_bandwidth; |
mul32div32to32((unsigned int)(current_bandwidth),server_list[i].Qs,Qt,temp_U); |
temp_U = server_list[i].U - temp_U; |
|
} else { |
|
mul32div32to32((unsigned int)(current_bandwidth),server_list[i].Qs,Qt,temp_U); |
temp_U = temp_U + server_list[i].U; |
|
} |
|
if (temp_U<server_list[i].Umin) { |
if (server_list[i].Qs!=0 && server_list[i].U<server_list[i].Umax) { |
temp_U=server_list[i].U; |
server_list[i].U=U-current_bandwidth; |
mul32div32to32(server_list[i].U, server_list[i].Qs, Qt, server_list[i].U); |
temp_U+=server_list[i].U; |
|
if (temp_U<=server_list[i].Umin) { |
server_list[i].U=server_list[i].Umin; |
} else if (temp_U>server_list[i].Umax) { |
server_list[i].U=server_list[i].Umax; |
isok=0; |
} else if (temp_U>=server_list[i].Umax) { |
server_list[i].U=server_list[i].Umax; |
} else server_list[i].U=temp_U; |
|
#ifdef FSF_DEBUG |
594,7 → 584,7 |
server_list[i].actual_period = server_list[i].Tmax; |
adjust_SERVER_budget(server_list[i].server,Q, server_list[i].Tmax); |
} |
server_list[i].U=server_list[i].Umax; |
server_list[i].U=server_list[i].Umin; |
} |
kern_frestore(f); |
return 0; |