Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

papi_set_thr_specific(3) [centos man page]

PAPI_set_thr_specific(3)					       PAPI						  PAPI_set_thr_specific(3)

NAME
PAPI_set_thr_specific - Store a pointer to a thread specific data structure. SYNOPSIS
Detailed Description @par Prototype: int PAPI_set_thr_specific( int tag, void *ptr ); @param tag An identifier, the value of which is either PAPI_USR1_TLS or PAPI_USR2_TLS. This identifier indicates which of several data structures associated with this thread is to be accessed. @param ptr A pointer to the memory containing the data structure. @retval PAPI_OK @retval PAPI_EINVAL The @em tag argument is out of range. In C, PAPI_set_thr_specific will save @em ptr into an array indexed by @em tag. There are 2 user available locations and @em tag can be either PAPI_USR1_TLS or PAPI_USR2_TLS. The array mentioned above is managed by PAPI and allocated to each thread which has called PAPI_thread_init. There is no Fortran equivalent function. @par Example: int ret; HighLevelInfo *state = NULL; ret = PAPI_thread_init(pthread_self); if (ret != PAPI_OK) handle_error(ret); // Do we have the thread specific data setup yet? ret = PAPI_get_thr_specific(PAPI_USR1_TLS, (void *) &state); if (ret != PAPI_OK || state == NULL) { state = (HighLevelInfo *) malloc(sizeof(HighLevelInfo)); if (state == NULL) return (PAPI_ESYS); memset(state, 0, sizeof(HighLevelInfo)); state->EventSet = PAPI_NULL; ret = PAPI_create_eventset(&state->EventSet); if (ret != PAPI_OK) return (PAPI_ESYS); ret = PAPI_set_thr_specific(PAPI_USR1_TLS, state); if (ret != PAPI_OK) return (ret); } * See Also: PAPI_register_thread PAPI_thread_init PAPI_thread_id PAPI_get_thr_specific Author Generated automatically by Doxygen for PAPI from the source code. Version 5.2.0.0 Tue Jun 17 2014 PAPI_set_thr_specific(3)

Check Out this Related Man Page

PAPI_remove_events(3)						       PAPI						     PAPI_remove_events(3)

NAME
PAPI_remove_events - Remove an array of hardware event codes from a PAPI event set. SYNOPSIS
Detailed Description 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 papi_avail utility 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 papi_native_avail in the PAPI distribution. It should be noted that PAPI_remove_events can partially succeed, exactly like PAPI_add_events. C Prototype: #include <papi.h> int PAPI_remove_events( int EventSet, int * EventCode, int number ); Parameters: EventSet an integer handle for a PAPI event set as created by PAPI_create_eventset *Events an array of defined events number an integer indicating the number of events in the array *EventCode 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_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. Example: int EventSet = PAPI_NULL; int Events[] = {PAPI_TOT_INS, PAPI_FP_OPS}; int ret; // Create an empty EventSet ret = PAPI_create_eventset(&EventSet); if (ret != PAPI_OK) handle_error(ret); // Add two events to our EventSet ret = PAPI_add_events(EventSet, Events, 2); if (ret != PAPI_OK) handle_error(ret); // Start counting ret = PAPI_start(EventSet); if (ret != PAPI_OK) handle_error(ret); // Stop counting, ignore values ret = PAPI_stop(EventSet, NULL); if (ret != PAPI_OK) handle_error(ret); // Remove event ret = PAPI_remove_events(EventSet, Events, 2); if (ret != PAPI_OK) handle_error(ret); * @see PAPI_cleanup_eventset PAPI_destroy_eventset PAPI_event_name_to_code PAPI_presets PAPI_add_event PAPI_add_events.fi Author Generated automatically by Doxygen for PAPI from the source code. Version 5.2.0.0 Tue Jun 17 2014 PAPI_remove_events(3)
Man Page