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. Jansendouble 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