PAPIC:PAPI remove event.3
From PAPIDocs
Jump to: navigation, search


Contents

NAME

  • PAPI_remove_event - remove PAPI preset or native hardware event from an EventSet
  • PAPI_remove_events - remove PAPI presets or native hardware events from an EventSet

Synopsis

C Interface

#include <papi.h>
int PAPI_remove_event(int  EventSet, int  EventCode );
int PAPI_remove_events(int  EventSet, int * EventCode, int  number );

Fortran Interface

#include fpapi.h
PAPIF_remove_event(C_INT  EventSet,  C_INT  EventCode,  C_INT  check )
PAPIF_remove_events(C_INT  EventSet,  C_INT(*)  EventCode,  C_INT  number,  C_INT  check )

Description

PAPI_remove_event() removes a hardware event to a PAPI event set. PAPI_remove_events() does the same, but for an array of hardware event codes.

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 (3) or run the avail test case in the PAPI distribution. PAPI Presets can be passed to PAPI_query_event (3) to see if they exist on the underlying architecture. For a list of native events available on current platform, run native_avail test case in the PAPI distribution. For the encoding of native events, see PAPI_event_name_to_code (3) to learn how to generate native code for the supported native event on the underlying architecture." It should be noted that PAPI_remove_events can partially succeed, exactly like PAPI_add_events.

Arguments

EventSet -- an integer handle for a PAPI event set as created by PAPI_create_eventset (3)

EventCode -- a defined event such as PAPI_TOT_INS or a native event.

*EventCode -- an array of defined events

number -- an integer indicating the number of events in the array *EventCode

Errors

Positive integer The number of consecutive elements that succeeded before the error.

PAPI_EINVAL One or more of the arguments is invalid.

PAPI_ENOEVST The EventSet specified does not exist.

PAPI_EISRUN The EventSet is currently counting events.

PAPI_ECNFLCT The underlying counter hardware can not count this event and other events in the EventSet simultaneously.

PAPI_ENOEVNT The PAPI preset is not available on the underlying 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);
/* Start counting */
if (PAPI_start(EventSet) != PAPI_OK)
  handle_error(1);
/* Stop counting, ignore values */
if (PAPI_stop(EventSet, NULL) != PAPI_OK)
  handle_error(1);
/* Remove event */
if (PAPI_remove_event(EventSet, PAPI_TOT_INS) != PAPI_OK)
  handle_error(1);

Bugs

The vector function should take a pointer to a length argument so a proper return value can be set upon partial success.

See Also

PAPI_cleanup_eventset(3), PAPI_destroy_eventset(3), PAPI_event_name_to_code(3), PAPI_presets(3), PAPI_add_event(3), PAPI_add_events(3)