xref: /phasta/phastaIO/phiotmrc.cc (revision 98d6580a8ecca5add329d7adadb1985835e1e604)
159599516SKenneth E. Jansen #include <stdio.h>
259599516SKenneth E. Jansen #include <sys/types.h>
3*8f9016f6SCameron Smith #include <sys/time.h> /* gettimeofday */
459599516SKenneth E. Jansen #include <time.h>
5e5b451c7SCameron Smith #include <cassert>
659599516SKenneth E. Jansen 
759599516SKenneth E. Jansen #ifdef __bgq__
859599516SKenneth E. Jansen #include "hwi/include/bqc/A2_inlines.h"
959599516SKenneth E. Jansen #endif
1059599516SKenneth E. Jansen 
1159599516SKenneth E. Jansen #include "phiotmrc.h"
1259599516SKenneth E. Jansen 
phiotmrc(void)1359599516SKenneth E. Jansen double phiotmrc (void)
1459599516SKenneth E. Jansen {
1559599516SKenneth E. Jansen 
1659599516SKenneth E. Jansen #ifdef __bgq__
1759599516SKenneth E. Jansen 
1859599516SKenneth E. Jansen    // use the GetTimeBase function available on BGQ
1959599516SKenneth E. Jansen    uint64_t TB  = GetTimeBase();
2059599516SKenneth E. Jansen    double t1 = 6.25e-10*TB; // = 1/1.6e9
2159599516SKenneth E. Jansen 
2259599516SKenneth E. Jansen #else
2359599516SKenneth E. Jansen 
2459599516SKenneth E. Jansen   // use the gettimeofday function available on any Linux plateform
2559599516SKenneth E. Jansen 
2659599516SKenneth E. Jansen   int rc;
2759599516SKenneth E. Jansen   struct timeval tv;
2859599516SKenneth E. Jansen 
2959599516SKenneth E. Jansen   rc = gettimeofday (&tv, NULL);
3059599516SKenneth E. Jansen   if (rc == -1) {
3159599516SKenneth E. Jansen     fprintf(stderr,"tmrc: gettimeofday\n");
3259599516SKenneth E. Jansen     return 0.;
3359599516SKenneth E. Jansen   }
3459599516SKenneth E. Jansen   double t1 =  ((double) tv.tv_sec) + 1.e-6 * ((double) tv.tv_usec);
3559599516SKenneth E. Jansen 
3659599516SKenneth E. Jansen #endif
3759599516SKenneth E. Jansen 
3859599516SKenneth E. Jansen   return t1;
3959599516SKenneth E. Jansen 
4059599516SKenneth E. Jansen }
4159599516SKenneth E. Jansen 
42