CInterface:
#include <papi.h>
int PAPI_state(intEventSet,int*status);
ParametersEventSet -- an integer handle for a PAPI event set as created by PAPI_create_eventsetstatus -- an integer containing a boolean combination of one or more of the following nonzero
constants as defined in the PAPI header file papi.h:
• PAPI_STOPPED -- EventSet is stopped
• PAPI_RUNNING -- EventSet is running
• PAPI_PAUSED -- EventSet temporarily disabled by the library
• PAPI_NOT_INIT -- EventSet defined, but not initialized
• PAPI_OVERFLOWING -- EventSet has overflowing enabled
• PAPI_PROFILING -- EventSet has profiling enabled
• PAPI_MULTIPLEXING -- EventSet has multiplexing enabled
• PAPI_ACCUMULATING -- reserved for future use
• PAPI_HWPROFILING -- reserved for future use
ReturnvaluesPAPI_OKPAPI_EINVAL One or more of the arguments is invalid.
PAPI_ENOEVST The EventSet specified does not exist.
PAPI_state() returns the counting state of the specified event set.
Example:
int EventSet = PAPI_NULL;
int status = 0;
int ret;
ret = PAPI_create_eventset(&EventSet);
if (ret != PAPI_OK) handle_error(ret);
// Add Total Instructions Executed to our EventSet
ret = PAPI_add_event(EventSet, PAPI_TOT_INS);
if (ret != PAPI_OK) handle_error(ret);
// Start counting
ret = PAPI_state(EventSet, &status);
if (ret != PAPI_OK) handle_error(ret);
printf("State is now %d\n",status);
ret = PAPI_start(EventSet);
if (ret != PAPI_OK) handle_error(ret);
ret = PAPI_state(EventSet, &status);
if (ret != PAPI_OK) handle_error(ret);
printf("State is now %d\n",status);
SeealsoPAPI_stopPAPI_start