|
PAPI
5.0.1.0
|
00001 /****************************/ 00002 /* THIS IS OPEN SOURCE CODE */ 00003 /****************************/ 00004 00020 #ifndef _PAPI_L2UNIT_H 00021 #define _PAPI_L2UNIT_H 00022 00023 #include "papi.h" 00024 #include "papi_internal.h" 00025 #include "papi_vector.h" 00026 #include "papi_memory.h" 00027 #include "extras.h" 00028 #include "../../../linux-bgq-common.h" 00029 00030 00031 /************************* DEFINES SECTION *********************************** 00032 *******************************************************************************/ 00033 00034 /* this number assumes that there will never be more events than indicated */ 00035 #define L2UNIT_MAX_COUNTERS PEVT_L2UNIT_LAST_EVENT 00036 #define OFFSET ( PEVT_PUNIT_LAST_EVENT + 1 ) 00037 00038 /* Stores private information for each event */ 00039 typedef struct L2UNIT_register 00040 { 00041 unsigned int selector; 00042 /* Signifies which counter slot is being used */ 00043 /* Indexed from 1 as 0 has a special meaning */ 00044 } L2UNIT_register_t; 00045 00046 00047 /* Used when doing register allocation */ 00048 typedef struct L2UNIT_reg_alloc 00049 { 00050 L2UNIT_register_t ra_bits; 00051 } L2UNIT_reg_alloc_t; 00052 00053 00054 /* Holds control flags */ 00055 typedef struct L2UNIT_control_state 00056 { 00057 int EventGroup; 00058 int EventGroup_local[512]; 00059 int count; 00060 long long counters[L2UNIT_MAX_COUNTERS]; 00061 int bgpm_eventset_applied; // BGPM eventGroup applied yes or no flag 00062 } L2UNIT_control_state_t; 00063 00064 00065 /* Holds per-thread information */ 00066 typedef struct L2UNIT_context 00067 { 00068 L2UNIT_control_state_t state; 00069 } L2UNIT_context_t; 00070 00071 00072 #endif /* _PAPI_L2UNIT_H */