'\" te .\" Copyright (c) 2003, Sun Microsystems, Inc. .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License. .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] .TH CPC_VERSION 3CPC "Mar 28, 2005" .SH NAME cpc_version \- coordinate CPC library and application versions .SH SYNOPSIS .LP .nf cc [ \fIflag\fR... ] \fIfile\fR... \(milcpc [ \fIlibrary\fR... ] #include \fBuint_t\fR \fBcpc_version\fR(\fBuint_t\fR \fIversion\fR); .fi .SH DESCRIPTION .sp .LP The \fBcpc_version()\fR function takes an interface version as an argument and returns an interface version as a result. Usually, the argument will be the value of \fBCPC_VER_CURRENT\fR bound to the application when it was compiled. .SH RETURN VALUES .sp .LP If the version requested is still supported by the implementation, \fBcpc_version()\fR 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, \fBcpc_version()\fR returns \fBCPC_VER_NONE\fR, indicating that the application will at least need to be recompiled to operate correctly on the new platform, and may require further changes. .sp .LP If \fIversion\fR is \fBCPC_VER_NONE\fR, \fBcpc_version()\fR returns the most current version of the library. .SH EXAMPLES .LP \fBExample 1 \fR Protect an application from using an incompatible library. .sp .LP The following lines of code protect an application from using an incompatible library: .sp .in +2 .nf if (cpc_version(CPC_VER_CURRENT) == CPC_VER_NONE) { /* version mismatch - library cannot translate */ exit(1); } .fi .in -2 .SH ATTRIBUTES .sp .LP See \fBattributes\fR(5) for descriptions of the following attributes: .sp .sp .TS box; c | c l | l . ATTRIBUTE TYPE ATTRIBUTE VALUE _ Interface Stability Evolving _ MT-Level Unsafe .TE .SH SEE ALSO .sp .LP \fBcpc\fR(3CPC), \fBcpc_open\fR(3CPC), \fBlibcpc\fR(3LIB), \fBattributes\fR(5) .SH NOTES .sp .LP The \fBcpc_version()\fR 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 \fBcpc_open\fR(3CPC) instead. .sp .LP 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 \fBcpc_event_t\fR data structure.