papi_is_initialized(3) - Linux man page

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_EINVAL
papi.h is different from the version used to compile the PAPI library.
PAPI_ENOMEM
Insufficient memory to complete the operation.
PAPI_ESBSTR
This substrate does not support the underlying hardware.
PAPI_ESYS
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)