./ MultiCS.r82 / tools.c
#include "common.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#ifdef WIN32
#include <windows.h>
//#include <sys/types.h>
#else
#include <fcntl.h>
#include <sys/time.h>
#include <time.h>
#include <pthread.h>
#include <sys/socket.h>
#include <unistd.h>
#include <netdb.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <errno.h>
#endif
#include "tools.h"
struct timeval startime;
#ifdef WIN32
void usleep( int count )
{
unsigned long int Ticks = GetTickCount() + count/1000;
while (Ticks>GetTickCount()) ;
}
#else
uint64_t GetTickCount()
{
struct timeval tv;
gettimeofday( &tv, NULL );
// this will rollover ~ every 49.7 days
return (unsigned int)( (tv.tv_sec-startime.tv_sec) * 1000 + tv.tv_usec / 1000);
}
unsigned int GetuTickCount()
{
struct timeval tv;
gettimeofday( &tv, NULL );
// this will rollover ~ every 49.7 days
return (unsigned int)( (tv.tv_sec-startime.tv_sec) * 1000000 + tv.tv_usec);
}
unsigned int GetTicks(struct timeval *tv)
{
return (unsigned int)( (tv->tv_sec-startime.tv_sec) * 1000 + tv->tv_usec/1000 );
}
#endif
unsigned int getseconds()
{
struct timeval tv;
gettimeofday( &tv, NULL );
// this will rollover ~ every 49.7 days
return (unsigned int)(tv.tv_sec-startime.tv_sec);
}
void tabavg_init(struct table_average *t)
{
memset(t, 0, sizeof(struct table_average) );
}
void tabavg_add(struct table_average *t, uint32_t value)
{
t->tab[t->itab] = value;
t->itab++; if (t->itab>=100) t->itab =0;
}
uint32_t tabavg_get(struct table_average *t)
{
uint32_t min = t->tab[0];
int i;
for (i=1; i<100; i++) if (min>t->tab[i]) min = t->tab[i];
if (min==0) return 0xffffffff;
int sum = 0;
for (i=1; i<100; i++) sum += (t->tab[i]-min);
return (sum/100);
}