X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Ftmdiff.c;h=307523ebba3b96248383b7911178d9809df8ee1e;hp=eccba43c0b54400461d9409918042f17924c528e;hb=66ecdf3bfb0320647b8e2ab9f93ffc3f231e54e8;hpb=70d70a3c81c7affbda6b626ff49097aa1714298c;ds=sidebyside diff --git a/crypto/tmdiff.c b/crypto/tmdiff.c index eccba43c0b..307523ebba 100644 --- a/crypto/tmdiff.c +++ b/crypto/tmdiff.c @@ -59,13 +59,16 @@ #include #include "cryptlib.h" #include +#if !defined(OPENSSL_SYS_MSDOS) +#include OPENSSL_UNISTD +#endif #ifdef TIMEB #undef OPENSSL_SYS_WIN32 #undef TIMES #endif -#if !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_SYS_VMS) || defined(__DECC) && !defined(OPENSSL_SYS_MACOSX) +#if !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_WIN32) && !(defined(OPENSSL_SYS_VMS) || defined(__DECC)) && !defined(OPENSSL_SYS_MACOSX_RHAPSODY) && !defined(OPENSSL_SYS_VXWORKS) # define TIMES #endif @@ -91,7 +94,7 @@ #include #endif -#ifndef TIMES +#if !defined(TIMES) && !defined(OPENSSL_SYS_VXWORKS) #include #endif @@ -101,14 +104,19 @@ /* The following if from times(3) man page. It may need to be changed */ #ifndef HZ -# ifndef CLK_TCK -# ifndef _BSD_CLK_TCK_ /* FreeBSD hack */ -# define HZ 100.0 -# else /* _BSD_CLK_TCK_ */ -# define HZ ((double)_BSD_CLK_TCK_) +# if defined(_SC_CLK_TCK) \ + && (!defined(OPENSSL_SYS_VMS) || __CTRL_VER >= 70000000) +# define HZ ((double)sysconf(_SC_CLK_TCK)) +# else +# ifndef CLK_TCK +# ifndef _BSD_CLK_TCK_ /* FreeBSD hack */ +# define HZ 100.0 +# else /* _BSD_CLK_TCK_ */ +# define HZ ((double)_BSD_CLK_TCK_) +# endif +# else /* CLK_TCK */ +# define HZ ((double)CLK_TCK) # endif -# else /* CLK_TCK */ -# define HZ ((double)CLK_TCK) # endif #endif @@ -121,7 +129,11 @@ typedef struct ms_tm HANDLE thread_id; FILETIME ms_win32; # else +# ifdef OPENSSL_SYS_VXWORKS + unsigned long ticks; +# else struct timeb ms_timeb; +# endif # endif #endif } MS_TM; @@ -159,7 +171,11 @@ void ms_time_get(char *a) # ifdef OPENSSL_SYS_WIN32 GetThreadTimes(tm->thread_id,&tmpa,&tmpb,&tmpc,&(tm->ms_win32)); # else +# ifdef OPENSSL_SYS_VXWORKS + tm->ticks = tickGet(); +# else ftime(&tm->ms_timeb); +# endif # endif #endif } @@ -189,10 +205,14 @@ double ms_time_diff(char *ap, char *bp) ret=((double)(lb-la))/1e7; } # else +# ifdef OPENSSL_SYS_VXWORKS + ret = (double)(b->ticks - a->ticks) / (double)sysClkRateGet(); +# else ret= (double)(b->ms_timeb.time-a->ms_timeb.time)+ (((double)b->ms_timeb.millitm)- ((double)a->ms_timeb.millitm))/1000.0; # endif +# endif #endif return((ret < 0.0000001)?0.0000001:ret); } @@ -210,9 +230,13 @@ int ms_time_cmp(char *ap, char *bp) d =(b->ms_win32.dwHighDateTime&0x000fffff)*10+b->ms_win32.dwLowDateTime/1e7; d-=(a->ms_win32.dwHighDateTime&0x000fffff)*10+a->ms_win32.dwLowDateTime/1e7; # else +# ifdef OPENSSL_SYS_VXWORKS + d = (b->ticks - a->ticks); +# else d= (double)(b->ms_timeb.time-a->ms_timeb.time)+ (((double)b->ms_timeb.millitm)-(double)a->ms_timeb.millitm)/1000.0; # endif +# endif #endif if (d == 0.0) ret=0;