NAME
pmc_read
, pmc_rw
,
pmc_write
—
read and write hardware performance
counters
LIBRARY
library “libpmc”
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.