s/qdiv/div/ in Time::HiRes for VAX
authorPeter Prymmer <PPrymmer@factset.com>
Thu, 28 Jun 2001 13:00:18 +0000 (06:00 -0700)
committerJarkko Hietaniemi <jhi@iki.fi>
Thu, 28 Jun 2001 19:32:13 +0000 (19:32 +0000)
Message-ID: <Pine.OSF.4.10.10106281125220.508935-100000@aspara.forte.com>

(unfinished: time/hires tests 3, 5, 14 failing, but better
than wholesale failure)

p4raw-id: //depot/perl@11011

ext/Time/HiRes/HiRes.xs

index db0592a..83db866 100644 (file)
@@ -107,15 +107,23 @@ gettimeofday (struct timeval *tp, int nothing)
 */
 static $DESCRIPTOR(dscepoch,"01-JAN-1970 00:00:00.00");
 
+#ifdef __VAX
+static long base_adjust=0L;
+#else
 static __int64 base_adjust=0;
+#endif
 
 int
 gettimeofday (struct timeval *tp, void *tpz)
 {
  long ret;
+#ifdef __VAX
+ long quad;
+ div_t ans1,ans2;
+#else
  __int64 quad;
  __qdiv_t ans1,ans2;
-
+#endif
 /*
         In case of error, tv_usec = 0 and tv_sec = VMS condition code.
         The return from function is also set to -1.
@@ -135,8 +143,13 @@ gettimeofday (struct timeval *tp, void *tpz)
  ret=sys$gettim(&quad); /* Get VMS system time */
  if ((1 && ret) == 1) {
         quad -= base_adjust; /* convert to epoch offset */
+#ifdef __VAX
+        ans1=div(quad,DIV_100NS_TO_SECS);
+        ans2=div(ans1.rem,DIV_100NS_TO_USECS);
+#else
         ans1=qdiv(quad,DIV_100NS_TO_SECS);
         ans2=qdiv(ans1.rem,DIV_100NS_TO_USECS);
+#endif
         tp->tv_sec = ans1.quot; /* Whole seconds */
         tp->tv_usec = ans2.quot; /* Micro-seconds */
  } else {