1*59599516SKenneth E. Jansen #include <stdio.h> 2*59599516SKenneth E. Jansen #include <sys/types.h> 3*59599516SKenneth E. Jansen #include <time.h> 4*59599516SKenneth E. Jansen 5*59599516SKenneth E. Jansen #include <sys/time.h> 6*59599516SKenneth E. Jansen #include <sys/resource.h> 7*59599516SKenneth E. Jansen #include <unistd.h> 8*59599516SKenneth E. Jansen 9*59599516SKenneth E. Jansen #ifdef __bgq__ 10*59599516SKenneth E. Jansen #include "hwi/include/bqc/A2_inlines.h" 11*59599516SKenneth E. Jansen #endif 12*59599516SKenneth E. Jansen 13*59599516SKenneth E. Jansen #include "phiotmrc.h" 14*59599516SKenneth E. Jansen 15*59599516SKenneth E. Jansen double phiotmrc (void) 16*59599516SKenneth E. Jansen { 17*59599516SKenneth E. Jansen 18*59599516SKenneth E. Jansen #ifdef __bgq__ 19*59599516SKenneth E. Jansen 20*59599516SKenneth E. Jansen // use the GetTimeBase function available on BGQ 21*59599516SKenneth E. Jansen uint64_t TB = GetTimeBase(); 22*59599516SKenneth E. Jansen double t1 = 6.25e-10*TB; // = 1/1.6e9 23*59599516SKenneth E. Jansen 24*59599516SKenneth E. Jansen #else 25*59599516SKenneth E. Jansen 26*59599516SKenneth E. Jansen // use the gettimeofday function available on any Linux plateform 27*59599516SKenneth E. Jansen 28*59599516SKenneth E. Jansen int rc; 29*59599516SKenneth E. Jansen struct timeval tv; 30*59599516SKenneth E. Jansen 31*59599516SKenneth E. Jansen rc = gettimeofday (&tv, NULL); 32*59599516SKenneth E. Jansen if (rc == -1) { 33*59599516SKenneth E. Jansen fprintf(stderr,"tmrc: gettimeofday\n"); 34*59599516SKenneth E. Jansen return 0.; 35*59599516SKenneth E. Jansen } 36*59599516SKenneth E. Jansen double t1 = ((double) tv.tv_sec) + 1.e-6 * ((double) tv.tv_usec); 37*59599516SKenneth E. Jansen 38*59599516SKenneth E. Jansen #endif 39*59599516SKenneth E. Jansen 40*59599516SKenneth E. Jansen return t1; 41*59599516SKenneth E. Jansen 42*59599516SKenneth E. Jansen } 43*59599516SKenneth E. Jansen 44