All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
PAPI_add_event Class Reference

add PAPI preset or native hardware event to an event set More...

Detailed Description

@par C Interface:
\#include <papi.h> @n
int PAPI_add_event( int  EventSet, int  EventCode );

PAPI_add_event adds one event to a PAPI Event Set. @n
A hardware event can be either a PAPI preset or a native hardware event code.
For a list of PAPI preset events, see PAPI_presets or run the avail test case
in the PAPI distribution. PAPI presets can be passed to PAPI_query_event to see
if they exist on the underlying architecture.
For a list of native events available on current platform, run the papi_native_avail
utility in the PAPI distribution. For the encoding of native events,
see PAPI_event_name_to_code to learn how to generate native code for the
supported native event on the underlying architecture.

@param EventSet
    An integer handle for a PAPI Event Set as created by PAPI_create_eventset.
@param EventCode 
    A defined event such as PAPI_TOT_INS. 

@retval Positive-Integer
    The number of consecutive elements that succeeded before the error. 
@retval PAPI_EINVAL 
    One or more of the arguments is invalid.
@retval PAPI_ENOMEM 
    Insufficient memory to complete the operation.
    The event set specified does not exist.
@retval PAPI_EISRUN 
    The event set is currently counting events.
    The underlying counter hardware can not count this event and other events 
    in the event set simultaneously.
    The PAPI preset is not available on the underlying hardware.
@retval PAPI_EBUG 
    Internal error, please send mail to the developers. 

@par Examples:
* unsigned int native = 0x0;
* if ( PAPI_create_eventset( &EventSet ) != PAPI_OK )
* handle_error( 1 );
* // Add Total Instructions Executed to our EventSet
* if ( PAPI_add_event( EventSet, PAPI_TOT_INS ) != PAPI_OK )
* handle_error( 1 );
* // Add native event PM_CYC to EventSet
* if ( PAPI_event_name_to_code( "PM_CYC", &native ) != PAPI_OK )
* handle_error( 1 );
* if ( PAPI_add_event( EventSet, native ) != PAPI_OK )
* handle_error( 1 );
The vector function should take a pointer to a length argument so a proper return value can be set upon partial success.
@see PAPI_cleanup_eventset @n
PAPI_destroy_eventset @n
PAPI_event_code_to_name @n
PAPI_remove_events @n
PAPI_query_event @n
PAPI_presets @n
PAPI_native @n

The documentation for this class was generated from the following file: