Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

cpc_open(3cpc) [opensolaris man page]

cpc_open(3CPC)					    CPU Performance Counters Library Functions					    cpc_open(3CPC)

NAME
cpc_open, cpc_close - initialize the CPU Performance Counter library SYNOPSIS
cc [ flag... ] file... -lcpc [ library... ] #include <libcpc.h> cpc_t *cpc_open(int vers); int cpc_close(cpc_t *cpc); DESCRIPTION
The cpc_open() function initializes libcpc(3LIB) and returns an identifier that must be used as the cpc argument in subsequent libcpc func- tion calls. The cpc_open() function takes an interface version as an argument and returns NULL if that version of the interface is incom- patible with the libcpc implementation present on the system. Usually, the argument has the value of CPC_VER_CURRENT bound to the applica- tion when it was compiled. The cpc_close() function releases all resources associated with the cpc argument. Any bound counters utilized by the process are unbound. All entities of type cpc_set_t and cpc_buf_t are invalidated and destroyed. RETURN VALUES
If the version requested is supported by the implementation, cpc_open() returns a cpc_t handle for use in all subsequent libcpc operations. If the implementation cannot support the version needed by the application, cpc_open() returns NULL, indicating that the application at least needs to be recompiled to operate correctly on the new platform and might require further changes. The cpc_close() function always returns 0. ERRORS
These functions will fail if: EINVAL The version requested by the client is incompatible with the implementation. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ |MT-Level |Safe | +-----------------------------+-----------------------------+ SEE ALSO
libcpc(3LIB), attributes(5) SunOS 5.11 30 Jan 2004 cpc_open(3CPC)

Check Out this Related Man Page

cpc_enable(3CPC)														  cpc_enable(3CPC)

NAME
cpc_enable, cpc_disable - enable and disable performance counters SYNOPSIS
cc [ flag... ] file... -lcpc [ library... ] #include <libcpc.h> int cpc_enable(cpc_t *cpc); int cpc_disable(cpc_t *cpc); In certain applications, it can be useful to explicitly enable and disable performance counters at different times so that the performance of a critical algorithm can be examined. The cpc_enable() and cpc_disable() functions can be used to enable and disable the performance counters without otherwise disturbing the invoking LWP's performance hardware configuration. Upon successful completion, cpc_enable() and cpc_disable() return 0. Otherwise, they return -1 and set errno to indicate the error. These functions will fail if: EAGAIN The associated performance counter context has been invalidated by another process. EINVAL No performance counter context has been created for the calling LWP. Example 1: Use cpc_enable and cpc_disable to minimize code needed by application. In the following example, the cpc_enable() and cpc_disable() functions are used to minimize the amount of code that needs to be added to the application. The cputrack(1) command can be used in conjunction with these functions to provide event programming, sampling, and reporting facilities. If the application is instrumented in this way and then started by cputrack with the nouser flag set in the event specification, counting of user events will only be enabled around the critical code section of interest. If the program is run normally, no harm will ensue. int main(int argc, char *argv[]) { cpc_t *cpc = cpc_open(CPC_VER_CURRENT); /* ... application code ... */ if (cpc != NULL) (void) cpc_enable(cpc); /* ==> Code to be measured goes here <== */ if (cpc != NULL) (void) cpc_disable(cpc); /* ... other application code */ } See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ |MT-Level |Safe | +-----------------------------+-----------------------------+ cputrack(1), cpc(3CPC), cpc_open(3CPC), libcpc(3LIB), attributes(5) 31 Jan 2005 cpc_enable(3CPC)
Man Page