PAPI_library_init

Langue: en

Version: September, 2004 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

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)