summaryrefslogtreecommitdiff
path: root/crypto/tmdiff.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/tmdiff.c')
-rw-r--r--crypto/tmdiff.c50
1 files changed, 33 insertions, 17 deletions
diff --git a/crypto/tmdiff.c b/crypto/tmdiff.c
index b93799fc03..a5b1c8b6c3 100644
--- a/crypto/tmdiff.c
+++ b/crypto/tmdiff.c
@@ -57,10 +57,17 @@
*/
#include <stdio.h>
#include <stdlib.h>
+#include "cryptlib.h"
+#include "tmdiff.h"
+
+#ifdef TIMEB
+#undef WIN32
+#undef TIMES
+#endif
#ifndef MSDOS
# ifndef WIN32
-# define TIMES
+# define TIMES
# endif
#endif
@@ -82,7 +89,8 @@
}
#endif /* VMS */
-#ifdef sun
+#if defined(sun) || defined(__ultrix)
+#define _POSIX_SOURCE
#include <limits.h>
#include <sys/param.h>
#endif
@@ -126,11 +134,11 @@ typedef struct ms_tm
#endif
} MS_TM;
-char *ms_time_init()
+char *ms_time_new()
{
MS_TM *ret;
- ret=malloc(sizeof(MS_TM));
+ ret=(MS_TM *)Malloc(sizeof(MS_TM));
if (ret == NULL)
return(NULL);
memset(ret,0,sizeof(MS_TM));
@@ -140,28 +148,28 @@ char *ms_time_init()
return((char *)ret);
}
-void ms_time_final(a)
+void ms_time_free(a)
char *a;
{
if (a != NULL)
- free(a);
+ Free(a);
}
void ms_time_get(a)
char *a;
{
MS_TM *tm=(MS_TM *)a;
- FILETIME tmpa,tmpb,tmpc;
+#ifdef WIN32
+ FILETIME tmpa,tmpb,tmpc;
+#endif
#ifdef TIMES
- printf("AAA\n");
times(&tm->ms_tms);
#else
# ifdef WIN32
GetThreadTimes(tm->thread_id,&tmpa,&tmpb,&tmpc,&(tm->ms_win32));
# else
- printf("CCC\n");
- ftime(tm->ms_timeb);
+ ftime(&tm->ms_timeb);
# endif
#endif
}
@@ -177,12 +185,20 @@ char *ap,*bp;
ret=(b->ms_tms.tms_utime-a->ms_tms.tms_utime)/HZ;
#else
# ifdef WIN32
- ret =(double)(b->ms_win32.dwHighDateTime&0x000fffff)*10+
- b->ms_win32.dwLowDateTime/1e7;
- ret-=(double)(a->ms_win32.dwHighDateTime&0x000fffff)*10+a->ms_win32.dwLowDateTime/1e7;
+ {
+ signed _int64 la,lb;
+ la=a->ms_win32.dwHighDateTime;
+ lb=b->ms_win32.dwHighDateTime;
+ la<<=32;
+ lb<<=32;
+ la+=a->ms_win32.dwLowDateTime;
+ lb+=b->ms_win32.dwLowDateTime;
+ ret=((double)(lb-la))/1e7;
+ }
# else
- ret= (double)(b->time-a->time)+
- ((double)((unsigned long)b->mullitm-(unsigned long)))/1000.0;
+ ret= (double)(b->ms_timeb.time-a->ms_timeb.time)+
+ (((double)b->ms_timeb.millitm)-
+ ((double)a->ms_timeb.millitm))/1000.0;
# endif
#endif
return((ret < 0.0000001)?0.0000001:ret);
@@ -202,8 +218,8 @@ char *ap,*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
- d= (double)(b->time-a->time)+
- ((double)((unsigned long)b->mullitm-(unsigned long)))/1000.0;
+ d= (double)(b->ms_timeb.time-a->ms_timeb.time)+
+ (((double)b->ms_timeb.millitm)-(double)a->ms_timeb.millitm)/1000.0;
# endif
#endif
if (d == 0.0)