Scroll to navigation

PAPI_remove_event(3) PAPI PAPI_remove_event(3)

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

RETURN VALUES

On success, these functions return PAPI_OK. On error, a less than zero error code is returned or the the number of elements that succeeded before the error.

ERRORS

The number of consecutive elements that succeeded before the error.
One or more of the arguments is invalid.
The EventSet specified does not exist.
The EventSet is currently counting events.
The underlying counter hardware can not count this event and other events in the EventSet simultaneously.
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_preset(3), PAPI_add_event (3), PAPI_add_events (3), PAPI_cleanup_eventset(3), PAPI_destroy_eventset(3), PAPI_event_name_to_code(3)

September, 2004 PAPI Programmer's Reference