PAPI  5.3.0.0
linux-IOunit.h
Go to the documentation of this file.
00001 /****************************/
00002 /* THIS IS OPEN SOURCE CODE */
00003 /****************************/
00004 
00020 #ifndef _PAPI_IOUNIT_H
00021 #define _PAPI_IOUNIT_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 IOUNIT_MAX_COUNTERS PEVT_IOUNIT_LAST_EVENT
00036 #define OFFSET ( PEVT_L2UNIT_LAST_EVENT + 1 )
00037 
00038 
00040 typedef struct IOUNIT_register
00041 {
00042     unsigned int selector;
00043     /* Signifies which counter slot is being used */
00044     /* Indexed from 1 as 0 has a special meaning  */
00045 } IOUNIT_register_t;
00046 
00047 
00048 typedef struct IOUNIT_reg_alloc
00049 {
00050     IOUNIT_register_t ra_bits;
00051 } IOUNIT_reg_alloc_t;
00052 
00053 typedef struct IOUNIT_overflow
00054 {
00055     int threshold;
00056     int EventIndex;
00057 } IOUNIT_overflow_t;
00058 
00059 typedef struct IOUNIT_control_state
00060 {
00061     int EventGroup;
00062     int overflow;               // overflow enable
00063     int overflow_count;
00064     IOUNIT_overflow_t overflow_list[512];
00065     long long counts[IOUNIT_MAX_COUNTERS];
00066 } IOUNIT_control_state_t;
00067 
00068 
00069 typedef struct IOUNIT_context
00070 {
00071     IOUNIT_control_state_t state;
00072 } IOUNIT_context_t;
00073 
00074 
00075 #endif /* _PAPI_IOUNIT_H */
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines