| 210 | } |
| 211 | |
| 212 | int |
| 213 | perfmon_read(int pmc, quad_t *val) |
| 214 | { |
| 215 | if (pmc < 0 || pmc >= NPMC) |
| 216 | return EINVAL; |
| 217 | |
| 218 | if (perfmon_inuse & (1 << pmc)) { |
| 219 | if (ctl_shadow[pmc] & (PMCF_EN << 16)) |
| 220 | *val = rdmsr(msr_pmc[pmc]) & 0xffffffffffULL; |
| 221 | else |
| 222 | *val = pmc_shadow[pmc]; |
| 223 | return 0; |
| 224 | } |
| 225 | |
| 226 | return EBUSY; |
| 227 | } |
| 228 | |
| 229 | int |
| 230 | perfmon_reset(int pmc) |
no test coverage detected