PAPI_add_event(3)

πŸ’… PAPI_add_event β€” add PAPI preset or native hardware event to an event set ✨

okay so bestie, this is the PAPI_add_event(3) page from the PAPI manual 🫢. It’s giving β€œone event, one set, no cap” β€” and honestly? iconic. πŸ’–


✨ NAME ✨

PAPI_add_event β€” add PAPI preset or native hardware event to an event set πŸ’…


🌸 SYNOPSIS 🌸

πŸ¦‹ Detailed Description

C Interface:

#include <papi.h>
int PAPI_add_event( int  EventSet, int  EventCode );

PAPI_add_event adds one event to a PAPI Event Set. Literally one. Main character energy only. ✨

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. πŸ¦‹

πŸŽ€ Parameters

  • EventSet β€” An integer handle for a PAPI Event Set as created by PAPI_create_eventset.
  • EventCode β€” A defined event such as PAPI_TOT_INS.

πŸ“ Return values

  • Positive-Integer β€” The number of consecutive elements that succeeded before the error.
  • PAPI_EINVAL β€” One or more of the arguments is invalid.
  • PAPI_ENOMEM β€” Insufficient memory to complete the operation.
  • PAPI_ENOEVST β€” The event set specified does not exist.
  • PAPI_EISRUN β€” The event set is currently counting events.
  • PAPI_ECNFLCT β€” The underlying counter hardware can not count this event and other events in the event set simultaneously.
  • PAPI_ENOEVNT β€” The PAPI preset is not available on the underlying hardware.
  • PAPI_EBUG β€” Internal error, please send mail to the developers.
  • PAPI_EMULPASS β€” Event exists, but cannot be counted due to multiple passes required by hardware.

πŸ’œ Examples

int EventSet = PAPI_NULL;
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 );

πŸ‘‘ See also

  • PAPI_cleanup_eventset
  • PAPI_destroy_eventset
  • PAPI_event_code_to_name
  • PAPI_remove_events
  • PAPI_query_event
  • PAPI_presets
  • PAPI_native
  • PAPI_remove_event

🌈 Author

Generated automatically by Doxygen for PAPI from the source code. Not me writing this at 2 a.m. with a strawberry soda, but honestly same energy. πŸ“πŸ’€


mwah πŸ’‹ β€” this cutie is from PAPI source/version 7.2.0.0, dated Wed Jun 25 2025 19:30:48. periodt. πŸ‘‘βœ¨