Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 415 → Rev 416

/shark/trunk/ports/first/first-server.c
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;