|
Packit |
577717 |
#ifndef MULTIPLEX_H
|
|
Packit |
577717 |
#define MULTIPLEX_H
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define PAPI_MAX_SW_MPX_EVENTS 32
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Structure contained in the EventSet structure that
|
|
Packit |
577717 |
holds information about multiplexing. */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
typedef enum
|
|
Packit |
577717 |
{ MPX_STOPPED, MPX_RUNNING } MPX_status;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/** Structure contained in the EventSet structure that
|
|
Packit |
577717 |
holds information about multiplexing.
|
|
Packit |
577717 |
@internal */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
typedef struct _MPX_EventSet {
|
|
Packit |
577717 |
MPX_status status;
|
|
Packit |
577717 |
/** Pointer to this thread's structure */
|
|
Packit |
577717 |
struct _threadlist *mythr;
|
|
Packit |
577717 |
/** Pointers to this EventSet's MPX entries in the master list for this thread */
|
|
Packit |
577717 |
struct _masterevent *(mev[PAPI_MAX_SW_MPX_EVENTS]);
|
|
Packit |
577717 |
/** Number of entries in above list */
|
|
Packit |
577717 |
int num_events;
|
|
Packit |
577717 |
/** Not sure... */
|
|
Packit |
577717 |
long long start_c, stop_c;
|
|
Packit |
577717 |
long long start_values[PAPI_MAX_SW_MPX_EVENTS];
|
|
Packit |
577717 |
long long stop_values[PAPI_MAX_SW_MPX_EVENTS];
|
|
Packit |
577717 |
long long start_hc[PAPI_MAX_SW_MPX_EVENTS];
|
|
Packit |
577717 |
} MPX_EventSet;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
typedef struct EventSetMultiplexInfo {
|
|
Packit |
577717 |
MPX_EventSet *mpx_evset;
|
|
Packit |
577717 |
int ns;
|
|
Packit |
577717 |
int flags;
|
|
Packit |
577717 |
} EventSetMultiplexInfo_t;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
int mpx_check( int EventSet );
|
|
Packit |
577717 |
int mpx_init( int );
|
|
Packit |
577717 |
int mpx_add_event( MPX_EventSet **, int EventCode, int domain,
|
|
Packit |
577717 |
int granularity );
|
|
Packit |
577717 |
int mpx_remove_event( MPX_EventSet **, int EventCode );
|
|
Packit |
577717 |
int MPX_add_events( MPX_EventSet ** mpx_events, int *event_list, int num_events,
|
|
Packit |
577717 |
int domain, int granularity );
|
|
Packit |
577717 |
int MPX_stop( MPX_EventSet * mpx_events, long long *values );
|
|
Packit |
577717 |
int MPX_cleanup( MPX_EventSet ** mpx_events );
|
|
Packit |
577717 |
void MPX_shutdown( void );
|
|
Packit |
577717 |
int MPX_reset( MPX_EventSet * mpx_events );
|
|
Packit |
577717 |
int MPX_read( MPX_EventSet * mpx_events, long long *values, int called_by_stop );
|
|
Packit |
577717 |
int MPX_start( MPX_EventSet * mpx_events );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#endif /* MULTIPLEX_H */
|