CPC_VERSION(3CPC) CPU Performance Counters Library Functions
cpc_version - coordinate CPC library and application versions
cc [ flag... ] file... -lcpc [ library... ]
#include <libcpc.h>
uint_t cpc_version(uint_t version);
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.
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.
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);
}
See attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Evolving |
+--------------------+-----------------+
|MT-Level | Unsafe |
+--------------------+-----------------+
cpc(3CPC), cpc_open(3CPC), libcpc(3LIB), attributes(7)
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.
March 28, 2005 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(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Evolving |
+--------------------+-----------------+
|MT-Level | Unsafe |
+--------------------+-----------------+
SEE ALSO
cpc(3CPC), cpc_open(3CPC), libcpc(3LIB), attributes(7)
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.
March 28, 2005 CPC_VERSION(3CPC)