Blame src/libpfm-3.y/docs/man3/pfm_get_impl_pmcs.3

Packit 577717
.TH LIBPFM 3  "July, 2003" "" "Linux Programmer's Manual"
Packit 577717
.SH NAME
Packit 577717
pfm_get_impl_pmcs, pfm_get_impl_pmds, pfm_get_impl_counters,
Packit 577717
pfm_get_num_counters, pfm_get_num_pmcs, pfm_get_num_pmds,
Packit 577717
pfm_get_hw_counter_width \- return 
Packit 577717
bitmask of implemented PMU registers or number of PMU registers
Packit 577717
.SH SYNOPSIS
Packit 577717
.nf
Packit 577717
.B #include <perfmon/pfmlib.h>
Packit 577717
.sp
Packit 577717
.BI "int pfm_get_impl_pmcs(pfmlib_regmask_t *" impl_pmcs ");"
Packit 577717
.BI "int pfm_get_impl_pmds(pfmlib_regmask_t *" impl_pmds ");"
Packit 577717
.BI "int pfm_get_impl_counters(pfmlib_regmask_t *" impl_counters ");"
Packit 577717
.BI "int pfm_get_num_counters(unsigned int *"num ");"
Packit 577717
.BI "int pfm_get_num_pmcs(unsigned int *"num ");"
Packit 577717
.BI "int pfm_get_num_pmds(unsigned int *"num ");"
Packit 577717
.BI "int pfm_get_num_counters(unsigned int *"num ");"
Packit 577717
.BI "int pfm_get_hw_counter_width(unsigned int *"width ");"
Packit 577717
.sp
Packit 577717
.SH DESCRIPTION
Packit 577717
The \fBpfm_get_impl_*()\fR functions can be used to figure out which
Packit 577717
PMU registers are implemented on the host CPU. All implemented registers
Packit 577717
may not necessarily be available to applications. Programs need to query
Packit 577717
the operating system kernel monitoring interface to figure out the list
Packit 577717
of available registers.
Packit 577717
.sp
Packit 577717
The \fBpfm_get_impl_*()\fR functions all return a bitmask of registers corresponding to
Packit 577717
the query. The bitmask pointer passed as argument is reset to zero by each function.
Packit 577717
The returned bitmask must be accessed using the set of functions provided by the
Packit 577717
library to ensure portability. See related man pages below.
Packit 577717
.sp
Packit 577717
The \fBpfm_get_num_*()\fR functions return the number of implemented PMC or PMD
Packit 577717
registers. Those numbers may be different from the actual number of registers
Packit 577717
available to applications.
Packit 577717
.sp
Packit 577717
The \fBpfm_get_impl_pmcs()\fR function returns in \fBimpl_pmcs\fR the bitmask of implemented PMCS.
Packit 577717
Packit 577717
The \fBpfm_get_impl_pmds()\fR function returns in \fBimpl_pmds\fR the bitmask of implemented PMDS.
Packit 577717
Packit 577717
The \fBpfm_get_impl_counters()\fR function returns in \fBimpl_counters\fR a bitmask of the PMD
Packit 577717
registers used as counters. Depending on the PMU mode, not all PMD registers are
Packit 577717
necessarily used as counters.
Packit 577717
.sp
Packit 577717
The \fBpfm_get_num_counters()\fR function returns in \fBnum\fR the number of PMD
Packit 577717
used as counters. A counter is a PMD which is used to accumulate the
Packit 577717
number of occurrences of an event.
Packit 577717
Packit 577717
The \fBpfm_get_num_pmcs()\fR function returns in \fBnum\fR the number of 
Packit 577717
implemented PMCs by the host PMU.
Packit 577717
Packit 577717
The \fBpfm_get_num_pmds()\fR function returns in \fBnum\fR the number of 
Packit 577717
implemented PMDs by the host PMU.
Packit 577717
Packit 577717
The \fBpfm_get_hw_counter_width()\fR function returns the width in bits of the 
Packit 577717
counters in \fBwidth\fR. PMU implementations can have different number of 
Packit 577717
bits implemented. For instance, Itanium has 32-bit counters, while Itanium 
Packit 577717
2 has 47-bits. 
Packit 577717
.SH RETURN
Packit 577717
The function returns whether or not it was successful.
Packit 577717
A return value of \fBPFMLIB_SUCCESS\fR indicates success, 
Packit 577717
otherwise the value is the error code.
Packit 577717
.SH ERRORS
Packit 577717
.B PFMLIB_ERR_NOINIT
Packit 577717
the library has not been initialized properly.
Packit 577717
.SH SEE ALSO
Packit 577717
pfm_regmask_set(3), pfm_regmask_isset(3)
Packit 577717
.SH AUTHOR
Packit 577717
Stephane Eranian <eranian@hpl.hp.com>
Packit 577717
.PP