PMC_GET_MSR(3) BSD Library Functions Manual PMC_GET_MSR(3)NAMEpmc_get_msr — x86 architecture-specific PMC operations
Performance Counters Library (libpmc, -lpmc)
pmc_get_msr(pmc_id_t pmc, uint32_t *msr);
The function pmc_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.
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
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 count‐
[EINVAL] The PMC specified was allocated with the
[EINVAL] The specified PMC is already attached to target pro‐
cesses other than the owner.
[ENOSYS] The underlying hardware does not support an RDPMC
SEE ALSOpmc(3), hwpmc(4)BSD November 25, 2007 BSD