1 /* begin_generated_IBM_copyright_prolog                             */
2 /*                                                                  */
3 /* This is an automatically generated copyright prolog.             */
4 /* After initializing,  DO NOT MODIFY OR MOVE                       */
5 /*  --------------------------------------------------------------- */
6 /* Licensed Materials - Property of IBM                             */
7 /* Blue Gene/Q 5765-PER 5765-PRP                                    */
8 /*                                                                  */
9 /* (C) Copyright IBM Corp. 2011, 2012 All Rights Reserved           */
10 /* US Government Users Restricted Rights -                          */
11 /* Use, duplication, or disclosure restricted                       */
12 /* by GSA ADP Schedule Contract with IBM Corp.                      */
13 /*                                                                  */
14 /*  --------------------------------------------------------------- */
15 /*                                                                  */
16 /* end_generated_IBM_copyright_prolog                               */
17 /*  (C)Copyright IBM Corp.  2007, 2011  */
18 /**
19  * \file src/mpid_time.c
20  * \brief Devince interface between MPI_Wtime() and PAMI_Wtime()
21  */
22 #include <mpidimpl.h>
23 
24 #if MPICH_TIMER_KIND == USE_GETTIMEOFDAY
25 #warning Compiling mpid/pamid/src/mpid_time.c when MPICH_TIMER_KIND == USE_GETTIMEOFDAY
26 #elif MPICH_TIMER_KIND != USE_DEVICE
27 #error "Not using DEVICE TIMEBASE"
28 #else
29 
30 
MPID_Wtime(MPID_Time_t * tval)31 void MPID_Wtime( MPID_Time_t *tval )
32 {
33   *tval = PAMI_Wtime(MPIDI_Client);
34 }
MPID_Wtick()35 double MPID_Wtick()
36 {
37   return PAMIX_Client_query(MPIDI_Client, PAMI_CLIENT_WTICK).value.doubleval;
38 }
MPID_Wtime_diff(MPID_Time_t * t1,MPID_Time_t * t2,double * diff)39 void MPID_Wtime_diff( MPID_Time_t *t1, MPID_Time_t *t2, double *diff )
40 {
41   *diff = *t2 - *t1;
42 }
MPID_Wtime_todouble(MPID_Time_t * t,double * val)43 void MPID_Wtime_todouble( MPID_Time_t *t, double *val )
44 {
45   *val = *t;
46 }
MPID_Wtime_acc(MPID_Time_t * t1,MPID_Time_t * t2,MPID_Time_t * t3)47 void MPID_Wtime_acc( MPID_Time_t *t1, MPID_Time_t *t2, MPID_Time_t *t3 )
48 {
49   *t3 += *t1 - *t2;
50 }
51 /*
52   Return Values:
53   0 on success.  -1 on Failure.  1 means that the timer may not be used
54   until after MPID_Init completes.  This allows the device to set up the
55   timer (first needed for Blue Gene support).
56 */
MPID_Wtime_init(void)57 int MPID_Wtime_init( void )
58 {
59   return 1;
60 }
61 
62 #endif
63