/usr/lib/tau/include/Profile/MultipleCounters.h is in tau 2.16.4-1.5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | /////////////////////////////////////////////////
//Header file for the multiple counter layer.
//
//Author: Robert Bell
//Created: January 2002
//
/////////////////////////////////////////////////
#ifndef _MULTIPLE_COUNTER_LAYER_H_
#define _MULTIPLE_COUNTER_LAYER_H_
#ifdef TAU_MULTIPLE_COUNTERS
//If we are going to use Papi, include its headers.
#ifdef TAU_PAPI
extern "C" {
/*#include "papiStdEventDefs.h" */
#include "papi.h"
/*
#include "papi_internal.h"
*/
}
#endif /* TAU_PAPI */
#ifdef BGL_TIMERS
#include <bglpersonality.h>
#include <rts.h>
#endif
#ifdef TAUKTAU_SHCTR
extern "C" {
#include "KtauCounters.h"
}
#endif /* TAUKTAU_SHCTR */
#define SIZE_OF_INIT_ARRAY 14 //!!Change this if functions are added to the system!!
//Some useful typedefs
typedef bool (*firstListType)(int);
typedef void (*secondListType)(int, double[]);
class MultipleCounterLayer
{
public:
static bool initializeMultiCounterLayer(void);
static bool * getCounterUsedList();
static bool getCounterUsed(int inPosition);
static int getNumberOfCountersUsed(void);
static void setCounterUsed(bool inValue, int inPosition);
static void getCounters(int tid, double values[]);
static double getSingleCounter(int tid, int counter);
static char * getCounterNameAt(int position);
static void theCounterList(const char ***inPtr, int *numOfCounters);
static void theCounterListInternal(const char ***inPtr, int *numOfCounters, bool **tmpPtr);
#ifdef TRACING_ON
static void triggerCounterEvents(unsigned long long timestamp, double *values, int tid);
#endif /* TRACING_ON */
//*********************
//The list of counter functions, and their init. functions.
//Please see the help files on multiple
//counters to see our conventions.
//*********************
private:
static bool gettimeofdayMCLInit(int functionPosition);
static void gettimeofdayMCL(int tid, double values[]);
static bool linuxTimerMCLInit(int functionPosition);
static void linuxTimerMCL(int tid, double values[]);
static bool bglTimersMCLInit(int functionPosition);
static void bglTimersMCL(int tid, double values[]);
static bool sgiTimersMCLInit(int functionPosition);
static void sgiTimersMCL(int tid, double values[]);
static bool crayTimersMCLInit(int functionPosition);
static void crayTimersMCL(int tid, double values[]);
static bool cpuTimeMCLInit(int functionPosition);
static void cpuTimeMCL(int tid, double values[]);
static bool javaCpuTimeMCLInit(int functionPosition);
static void javaCpuTimeMCL(int tid, double values[]);
static bool tauMUSEMCLInit(int functionPosition);
static void tauMUSEMCL(int tid, double values[]);
static bool tauMPIMessageSizeMCLInit(int functionPosition);
static void tauMPIMessageSizeMCL(int tid, double values[]);
static bool papiMCLInit(int functionPosition);
static void papiMCL(int tid, double values[]);
static bool papiWallClockMCLInit(int functionPosition);
static void papiWallClockMCL(int tid, double values[]);
static bool papiVirtualMCLInit(int functionPosition);
static void papiVirtualMCL(int tid, double values[]);
static bool pclMCLInit(int functionPosition);
static void pclMCL(int tid, double values[]);
static bool ktauMCLInit(int functionPosition);
static void ktauMCL(int tid, double values[]);
//*********************
//End - List of counter and init. functions.
//*********************
//Other class stuff.
static char environment[25][10];
static int gettimeofdayMCL_CP[1];
static int gettimeofdayMCL_FP;
#ifdef TAU_LINUX_TIMERS
static int linuxTimerMCL_CP[1];
static int linuxTimerMCL_FP;
#endif //TAU_LINUX_TIMERS
#ifdef BGL_TIMERS
static int bglTimersMCL_CP[1];
static int bglTimersMCL_FP;
#endif // BGL_TIMERS
#ifdef SGI_TIMERS
static int sgiTimersMCL_CP[1];
static int sgiTimersMCL_FP;
#endif // SGI_TIMERS
#ifdef CRAY_TIMERS
static int crayTimersMCL_CP[1];
static int crayTimersMCL_FP;
#endif // CRAY_TIMERS
#ifdef CPU_TIME
static int cpuTimeMCL_CP[1];
static int cpuTimeMCL_FP;
#endif // CPU_TIME
#ifdef JAVA_CPU_TIME
static int javaCpuTimeMCL_CP[1];
static int javaCpuTimeMCL_FP;
#endif // JAVA_CPU_TIME
#ifdef TAU_MUSE
static int tauMUSEMCL_CP[1];
static int tauMUSEMCL_FP;
#endif // TAU_MUSE
#ifdef TAU_MPI
static int tauMPIMessageSizeMCL_CP[1];
static int tauMPIMessageSizeMCL_FP;
#endif // TAU_MPI
#ifdef TAU_PAPI
static int papiMCL_CP[MAX_TAU_COUNTERS];
static int papiWallClockMCL_CP[1];
static int papiVirtualMCL_CP[1];
static int papiMCL_FP;
static int papiWallClockMCL_FP;
static int papiVirtualMCL_FP;
#endif//TAU_PAPI
#ifdef TAU_PCL
static int pclMCL_CP[MAX_TAU_COUNTERS];
static int pclMCL_FP;
//Data specific to the pclMCL function.
static int numberOfPCLHWCounters;
static int PCL_CounterCodeList[MAX_TAU_COUNTERS];
static unsigned int PCL_Mode;
static PCL_DESCR_TYPE descr;
static bool threadInit[TAU_MAX_THREADS];
static PCL_CNT_TYPE CounterList[MAX_TAU_COUNTERS];
static PCL_FP_CNT_TYPE FpCounterList[MAX_TAU_COUNTERS];
#endif//TAU_PCL
#ifdef TAUKTAU_SHCTR
static int ktauMCL_CP[MAX_TAU_COUNTERS];
static int ktauMCL_FP;
#endif//TAUKTAU_SHCTR
static firstListType initArray[SIZE_OF_INIT_ARRAY];
static secondListType functionArray[MAX_TAU_COUNTERS];
static int numberOfActiveFunctions;
static char * names[MAX_TAU_COUNTERS];
static bool counterUsed[MAX_TAU_COUNTERS];
static int numberOfCounters[MAX_TAU_COUNTERS];
#ifdef TRACING_ON
static TauUserEvent **counterEvents;
#endif /* TRACING_ON */
};
#endif /* TAU_MULTIPLE_COUNTERS */
#endif /* _MULTIPLE_COUNTER_LAYER_H_ */
/////////////////////////////////////////////////
//
//End - Multiple counter layer.
//
/////////////////////////////////////////////////
|