diff options
author | Ben Laurie <ben@openssl.org> | 2000-07-01 16:25:20 +0000 |
---|---|---|
committer | Ben Laurie <ben@openssl.org> | 2000-07-01 16:25:20 +0000 |
commit | 2bfb4dbce445eaa4dc06d3012a41eeb78628a06f (patch) | |
tree | 17bd68a046e732ca06c97fee98b28d2336b57469 /apps | |
parent | 4e74239ccac9eb74a9a9e5ede93ea7bc9c4d6622 (diff) | |
download | openssl-2bfb4dbce445eaa4dc06d3012a41eeb78628a06f.tar.gz |
Use up-to-date functions.
Diffstat (limited to 'apps')
-rw-r--r-- | apps/speed.c | 63 |
1 files changed, 56 insertions, 7 deletions
diff --git a/apps/speed.c b/apps/speed.c index 7166606da7..9ef20872d9 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -82,16 +82,22 @@ #include <openssl/rand.h> #include <openssl/err.h> -#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC)) -#define TIMES +#if defined(__FreeBSD__) +# define USE_TOD +#elif !defined(MSDOS) && (!defined(VMS) || defined(__DECC)) +# define TIMES #endif #ifndef _IRIX -#include <time.h> +# include <time.h> #endif #ifdef TIMES -#include <sys/types.h> -#include <sys/times.h> +# include <sys/types.h> +# include <sys/times.h> +#endif +#ifdef USE_TOD +# include <sys/time.h> +# include <sys/resource.h> #endif /* Depending on the VMS version, the tms structure is perhaps defined. @@ -203,7 +209,49 @@ static SIGRETTYPE sig_done(int sig) static double Time_F(int s, int usertime) { double ret; -#ifdef TIMES + +#ifdef USE_TOD + if(usertime) + { + static struct rusage tstart,tend; + + if (s == START) + { + getrusage(RUSAGE_SELF,&tstart); + return(0); + } + else + { + long i; + + getrusage(RUSAGE_SELF,&tend); + i=(long)tend.ru_utime.tv_usec-(long)tstart.ru_utime.tv_usec; + ret=((double)(tend.ru_utime.tv_sec-tstart.ru_utime.tv_sec)) + +((double)i)/1000000.0; + return((ret < 0.001)?0.001:ret); + } + } + else + { + static struct timeval tstart,tend; + long i; + + if (s == START) + { + gettimeofday(&tstart,NULL); + return(0); + } + else + { + gettimeofday(&tend,NULL); + i=(long)tend.tv_usec-(long)tstart.tv_usec; + ret=((double)(tend.tv_sec-tstart.tv_sec))+((double)i)/1000000.0; + return((ret < 0.001)?0.001:ret); + } + } +#else /* ndef USE_TOD */ + +# ifdef TIMES if (usertime) { static struct tms tstart,tend; @@ -221,7 +269,7 @@ static double Time_F(int s, int usertime) } } else -#endif /* times() */ +# endif /* times() */ { static struct timeb tstart,tend; long i; @@ -239,6 +287,7 @@ static double Time_F(int s, int usertime) return((ret < 0.001)?0.001:ret); } } +#endif } int MAIN(int, char **); |