FreeBSD manual
download PDF document: pmc_rw.3.pdf
PMC_READ(3) FreeBSD Library Functions Manual PMC_READ(3)
NAME
pmc_read, pmc_rw, pmc_write - read and write hardware performance
counters
LIBRARY
Performance Counters Library (libpmc, -lpmc)
SYNOPSIS
#include <pmc.h>
int
pmc_read(pmc_id_t pmc, pmc_value_t *value);
int
pmc_rw(pmc_id_t pmc, pmc_value_t newvalue, pmc_value_t *oldvaluep);
int
pmc_write(pmc_id_t pmc, pmc_value_t value);
DESCRIPTION
These functions read and write the current value of a PMC.
Function pmc_read() will read the current value of the PMC specified by
argument pmc and write it to the location specified by argument value.
Function pmc_write() will set the current value of the PMC specified by
argument pmc to the value specified by argument value.
Function pmc_rw() combines a read and a write into a single atomic
operation.
For write operations the PMC should be a quiescent state.
RETURN VALUES
Upon successful completion, the value 0 is returned; otherwise the
value -1 is returned and the global variable errno is set to indicate the
error.
ERRORS
A call to these functions may fail with the following errors:
[EBUSY] A write operation specified a currently running PMC.
[EINVAL] Argument pmc specified a PMC not in a readable state.
[EINVAL] The PMC specified by argument pmc was not owned by the
current process.
SEE ALSO
pmc(3), hwpmc(4)
FreeBSD 14.0-RELEASE-p11 November 25, 2007 FreeBSD 14.0-RELEASE-p11