NAME
pmc_get_msr
—
x86 architecture-specific PMC
operations
LIBRARY
library “libpmc”
SYNOPSIS
#include
<pmc.h>
int
pmc_get_msr
(pmc_id_t
pmc, uint32_t
*msr);
DESCRIPTION
The functionpmc_get_msr
()
returns the processor model specific register number associated with a PMC for
subsequent use with RDPMC instructions. Argument pmc
specifies a process scope counting PMC. The function will write the model
specific register number associated with the PMC to the location pointed to by
argument msr.
After successful completion of this function, applications can directly read the contents of PMC hardware using RDPMC instructions.
RETURN VALUES
The pmc_get_msr
() function returns the
value 0 if successful; otherwise the value -1 is returned and
the global variable errno is set to indicate the
error.
ERRORS
A call to pmc_get_msr
() may fail with the
following errors:
- [
EINVAL
] - The PMC handle specified was invalid.
- [
EINVAL
] - The PMC specified did not have process scope or counting mode.
- [
EINVAL
] - The PMC specified was allocated with the
PMC_F_DESCENDANTS
flag. - [
EINVAL
] - The specified PMC is already attached to target processes other than the owner.
- [
ENOSYS
] - The underlying hardware does not support an RDPMC instruction.