diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/tmdiff.c | 45 |
1 files changed, 28 insertions, 17 deletions
diff --git a/src/lib/libcrypto/tmdiff.c b/src/lib/libcrypto/tmdiff.c index 307523ebba..1c6e052ac9 100644 --- a/src/lib/libcrypto/tmdiff.c +++ b/src/lib/libcrypto/tmdiff.c | |||
| @@ -72,7 +72,11 @@ | |||
| 72 | # define TIMES | 72 | # define TIMES |
| 73 | #endif | 73 | #endif |
| 74 | 74 | ||
| 75 | #ifndef _IRIX | 75 | #ifdef OPENSSL_SYS_NETWARE |
| 76 | #undef TIMES | ||
| 77 | #endif | ||
| 78 | |||
| 79 | #if !defined(_IRIX) || defined (OPENSSL_SYS_NETWARE) | ||
| 76 | # include <time.h> | 80 | # include <time.h> |
| 77 | #endif | 81 | #endif |
| 78 | #ifdef TIMES | 82 | #ifdef TIMES |
| @@ -94,7 +98,7 @@ | |||
| 94 | #include <sys/param.h> | 98 | #include <sys/param.h> |
| 95 | #endif | 99 | #endif |
| 96 | 100 | ||
| 97 | #if !defined(TIMES) && !defined(OPENSSL_SYS_VXWORKS) | 101 | #if !defined(TIMES) && !defined(OPENSSL_SYS_VXWORKS) && !defined(OPENSSL_SYS_NETWARE) |
| 98 | #include <sys/timeb.h> | 102 | #include <sys/timeb.h> |
| 99 | #endif | 103 | #endif |
| 100 | 104 | ||
| @@ -106,7 +110,8 @@ | |||
| 106 | #ifndef HZ | 110 | #ifndef HZ |
| 107 | # if defined(_SC_CLK_TCK) \ | 111 | # if defined(_SC_CLK_TCK) \ |
| 108 | && (!defined(OPENSSL_SYS_VMS) || __CTRL_VER >= 70000000) | 112 | && (!defined(OPENSSL_SYS_VMS) || __CTRL_VER >= 70000000) |
| 109 | # define HZ ((double)sysconf(_SC_CLK_TCK)) | 113 | /* # define HZ ((double)sysconf(_SC_CLK_TCK)) */ |
| 114 | # define HZ sysconf(_SC_CLK_TCK) | ||
| 110 | # else | 115 | # else |
| 111 | # ifndef CLK_TCK | 116 | # ifndef CLK_TCK |
| 112 | # ifndef _BSD_CLK_TCK_ /* FreeBSD hack */ | 117 | # ifndef _BSD_CLK_TCK_ /* FreeBSD hack */ |
| @@ -120,7 +125,7 @@ | |||
| 120 | # endif | 125 | # endif |
| 121 | #endif | 126 | #endif |
| 122 | 127 | ||
| 123 | typedef struct ms_tm | 128 | struct ms_tm |
| 124 | { | 129 | { |
| 125 | #ifdef TIMES | 130 | #ifdef TIMES |
| 126 | struct tms ms_tms; | 131 | struct tms ms_tms; |
| @@ -128,6 +133,8 @@ typedef struct ms_tm | |||
| 128 | # ifdef OPENSSL_SYS_WIN32 | 133 | # ifdef OPENSSL_SYS_WIN32 |
| 129 | HANDLE thread_id; | 134 | HANDLE thread_id; |
| 130 | FILETIME ms_win32; | 135 | FILETIME ms_win32; |
| 136 | # elif defined (OPENSSL_SYS_NETWARE) | ||
| 137 | clock_t ms_clock; | ||
| 131 | # else | 138 | # else |
| 132 | # ifdef OPENSSL_SYS_VXWORKS | 139 | # ifdef OPENSSL_SYS_VXWORKS |
| 133 | unsigned long ticks; | 140 | unsigned long ticks; |
| @@ -136,9 +143,9 @@ typedef struct ms_tm | |||
| 136 | # endif | 143 | # endif |
| 137 | # endif | 144 | # endif |
| 138 | #endif | 145 | #endif |
| 139 | } MS_TM; | 146 | }; |
| 140 | 147 | ||
| 141 | char *ms_time_new(void) | 148 | MS_TM *ms_time_new(void) |
| 142 | { | 149 | { |
| 143 | MS_TM *ret; | 150 | MS_TM *ret; |
| 144 | 151 | ||
| @@ -149,18 +156,17 @@ char *ms_time_new(void) | |||
| 149 | #ifdef OPENSSL_SYS_WIN32 | 156 | #ifdef OPENSSL_SYS_WIN32 |
| 150 | ret->thread_id=GetCurrentThread(); | 157 | ret->thread_id=GetCurrentThread(); |
| 151 | #endif | 158 | #endif |
| 152 | return((char *)ret); | 159 | return ret; |
| 153 | } | 160 | } |
| 154 | 161 | ||
| 155 | void ms_time_free(char *a) | 162 | void ms_time_free(MS_TM *a) |
| 156 | { | 163 | { |
| 157 | if (a != NULL) | 164 | if (a != NULL) |
| 158 | OPENSSL_free(a); | 165 | OPENSSL_free(a); |
| 159 | } | 166 | } |
| 160 | 167 | ||
| 161 | void ms_time_get(char *a) | 168 | void ms_time_get(MS_TM *tm) |
| 162 | { | 169 | { |
| 163 | MS_TM *tm=(MS_TM *)a; | ||
| 164 | #ifdef OPENSSL_SYS_WIN32 | 170 | #ifdef OPENSSL_SYS_WIN32 |
| 165 | FILETIME tmpa,tmpb,tmpc; | 171 | FILETIME tmpa,tmpb,tmpc; |
| 166 | #endif | 172 | #endif |
| @@ -170,6 +176,8 @@ void ms_time_get(char *a) | |||
| 170 | #else | 176 | #else |
| 171 | # ifdef OPENSSL_SYS_WIN32 | 177 | # ifdef OPENSSL_SYS_WIN32 |
| 172 | GetThreadTimes(tm->thread_id,&tmpa,&tmpb,&tmpc,&(tm->ms_win32)); | 178 | GetThreadTimes(tm->thread_id,&tmpa,&tmpb,&tmpc,&(tm->ms_win32)); |
| 179 | # elif defined (OPENSSL_SYS_NETWARE) | ||
| 180 | tm->ms_clock = clock(); | ||
| 173 | # else | 181 | # else |
| 174 | # ifdef OPENSSL_SYS_VXWORKS | 182 | # ifdef OPENSSL_SYS_VXWORKS |
| 175 | tm->ticks = tickGet(); | 183 | tm->ticks = tickGet(); |
| @@ -180,14 +188,13 @@ void ms_time_get(char *a) | |||
| 180 | #endif | 188 | #endif |
| 181 | } | 189 | } |
| 182 | 190 | ||
| 183 | double ms_time_diff(char *ap, char *bp) | 191 | double ms_time_diff(MS_TM *a, MS_TM *b) |
| 184 | { | 192 | { |
| 185 | MS_TM *a=(MS_TM *)ap; | ||
| 186 | MS_TM *b=(MS_TM *)bp; | ||
| 187 | double ret; | 193 | double ret; |
| 188 | 194 | ||
| 189 | #ifdef TIMES | 195 | #ifdef TIMES |
| 190 | ret=(b->ms_tms.tms_utime-a->ms_tms.tms_utime)/HZ; | 196 | ret = HZ; |
| 197 | ret = (b->ms_tms.tms_utime-a->ms_tms.tms_utime) / ret; | ||
| 191 | #else | 198 | #else |
| 192 | # ifdef OPENSSL_SYS_WIN32 | 199 | # ifdef OPENSSL_SYS_WIN32 |
| 193 | { | 200 | { |
| @@ -204,6 +211,8 @@ double ms_time_diff(char *ap, char *bp) | |||
| 204 | lb+=b->ms_win32.dwLowDateTime; | 211 | lb+=b->ms_win32.dwLowDateTime; |
| 205 | ret=((double)(lb-la))/1e7; | 212 | ret=((double)(lb-la))/1e7; |
| 206 | } | 213 | } |
| 214 | # elif defined (OPENSSL_SYS_NETWARE) | ||
| 215 | ret= (double)(b->ms_clock - a->ms_clock); | ||
| 207 | # else | 216 | # else |
| 208 | # ifdef OPENSSL_SYS_VXWORKS | 217 | # ifdef OPENSSL_SYS_VXWORKS |
| 209 | ret = (double)(b->ticks - a->ticks) / (double)sysClkRateGet(); | 218 | ret = (double)(b->ticks - a->ticks) / (double)sysClkRateGet(); |
| @@ -217,18 +226,20 @@ double ms_time_diff(char *ap, char *bp) | |||
| 217 | return((ret < 0.0000001)?0.0000001:ret); | 226 | return((ret < 0.0000001)?0.0000001:ret); |
| 218 | } | 227 | } |
| 219 | 228 | ||
| 220 | int ms_time_cmp(char *ap, char *bp) | 229 | int ms_time_cmp(const MS_TM *a, const MS_TM *b) |
| 221 | { | 230 | { |
| 222 | MS_TM *a=(MS_TM *)ap,*b=(MS_TM *)bp; | ||
| 223 | double d; | 231 | double d; |
| 224 | int ret; | 232 | int ret; |
| 225 | 233 | ||
| 226 | #ifdef TIMES | 234 | #ifdef TIMES |
| 227 | d=(b->ms_tms.tms_utime-a->ms_tms.tms_utime)/HZ; | 235 | d = HZ; |
| 236 | d = (b->ms_tms.tms_utime-a->ms_tms.tms_utime) / d; | ||
| 228 | #else | 237 | #else |
| 229 | # ifdef OPENSSL_SYS_WIN32 | 238 | # ifdef OPENSSL_SYS_WIN32 |
| 230 | d =(b->ms_win32.dwHighDateTime&0x000fffff)*10+b->ms_win32.dwLowDateTime/1e7; | 239 | d =(b->ms_win32.dwHighDateTime&0x000fffff)*10+b->ms_win32.dwLowDateTime/1e7; |
| 231 | d-=(a->ms_win32.dwHighDateTime&0x000fffff)*10+a->ms_win32.dwLowDateTime/1e7; | 240 | d-=(a->ms_win32.dwHighDateTime&0x000fffff)*10+a->ms_win32.dwLowDateTime/1e7; |
| 241 | # elif defined (OPENSSL_SYS_NETWARE) | ||
| 242 | d= (double)(b->ms_clock - a->ms_clock); | ||
| 232 | # else | 243 | # else |
| 233 | # ifdef OPENSSL_SYS_VXWORKS | 244 | # ifdef OPENSSL_SYS_VXWORKS |
| 234 | d = (b->ticks - a->ticks); | 245 | d = (b->ticks - a->ticks); |
