man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: July 2014
 
 

cpc_version(3CPC)

Name

cpc_version - coordinate CPC library and application versions

Synopsis

cc [ flag... ] file... −lcpc [ library... ]
#include <libcpc.h>

uint_t cpc_version(uint_t version);

Description

The cpc_version() function takes an interface version as an argument and returns an interface version as a result. Usually, the argument will be the value of CPC_VER_CURRENT bound to the application when it was compiled.

Return Values

If the version requested is still supported by the implementation, cpc_version() returns the requested version number and the application can use the facilities of the library on that platform. If the implementation cannot support the version needed by the application, cpc_version() returns CPC_VER_NONE, indicating that the application will at least need to be recompiled to operate correctly on the new platform, and may require further changes.

If version is CPC_VER_NONE, cpc_version() returns the most current version of the library.

Examples

Example 1 Protect an application from using an incompatible library.

The following lines of code protect an application from using an incompatible library:

if (cpc_version(CPC_VER_CURRENT) == CPC_VER_NONE) {
        /* version mismatch - library cannot translate */
        exit(1);
}

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Obsolete
MT-Level
Unsafe

See also

cpc(3CPC), cpc_open(3CPC), libcpc(3LIB), attributes(5)

Notes

The cpc_version() function exists for binary compatibility only. Source containing this function will not compile. This function is obsolete and might be removed in a future release. Applications should use cpc_open(3CPC) instead.

The version number is used only to express incompatible semantic changes in the performance counter interfaces on the given platform within a single instruction set architecture, for example, when a new set of performance counter registers are added to an existing processor family that cannot be specified in the existing cpc_event_t data structure.