PMC_READ(3)

NAME
pmc_read, pmc_rw, pmc_write - read and write hardware performance counters

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

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)