Scroll to navigation

PAPI_library_init(3) PAPI PAPI_library_init(3)

NAME

PAPI_library_init   - initialize the PAPI library.
PAPI_is_initialized - check for initialization.

SYNOPSIS

C Interface

#include <papi.h>
int PAPI_library_init(int version);
int PAPI_is_initialized(void);

Fortran Interface

#include fpapi.h
PAPIF_library_init(C_INT check)
PAPIF_is_initialized(C_INT check)

DESCRIPTION

PAPI_library_init() initializes the PAPI library. It must be called before any low level PAPI functions can be used. If your application is making use of threads PAPI_thread_init(3) must also be called prior to making any calls to the library other than PAPI_library_init().

PAPI_is_initialized() returns the status of the PAPI library. The PAPI library can be in one of three states, as described under RETURN VALUES.

ARGUMENTS

version -- upon initialization, PAPI checks the argument against the internal value of PAPI_VER_CURRENT when the library was compiled. This guards against portability problems when updating the PAPI shared libraries on your system.

RETURN VALUES

PAPI_library_init : On success, this function returns PAPI_VER_CURRENT . A positive return code other than PAPI_VER_CURRENT indicates a library version mis-match. A negative error code indicates an initialization error.

PAPI_is_initialized :

PAPI_NOT_INITED
-- PAPI has not been initialized

PAPI_LOW_LEVEL_INITED
-- PAPI_library_init has been called

PAPI_HIGH_LEVEL_INITED
-- a high level PAPI function has been called

ERRORS

PAPI_is_initialized never returns an error.

PAPI_library_init can return the following:

papi.h is different from the version used to compile the PAPI library.
Insufficient memory to complete the operation.
This substrate does not support the underlying hardware.
A system or C library call failed inside PAPI, see the errno variable.

EXAMPLES

int retval;
/* Initialize the library */
retval = PAPI_library_init(PAPI_VER_CURRENT);
if (retval != PAPI_VER_CURRENT && retval > 0) {

fprintf(stderr,"PAPI library version mismatch!\n");
exit(1); } if (retval < 0)
handle_error(retval); retval = PAPI_is_initialized(); if (retval != PAPI_LOW_LEVEL_INITED)
handle_error(retval);

BUGS

If you don't call this before using any of the low level PAPI calls, your application could core dump.

SEE ALSO

PAPI_thread_init(3), PAPI(3)

September, 2004 PAPI Programmer's Reference