| 191 | } |
| 192 | |
| 193 | int |
| 194 | perfmon_stop(int pmc) |
| 195 | { |
| 196 | register_t saveintr; |
| 197 | |
| 198 | if (pmc < 0 || pmc >= NPMC) |
| 199 | return EINVAL; |
| 200 | |
| 201 | if (perfmon_inuse & (1 << pmc)) { |
| 202 | saveintr = intr_disable(); |
| 203 | pmc_shadow[pmc] = rdmsr(msr_pmc[pmc]) & 0xffffffffffULL; |
| 204 | ctl_shadow[pmc] &= ~(PMCF_EN << 16); |
| 205 | writectl(pmc); |
| 206 | intr_restore(saveintr); |
| 207 | return 0; |
| 208 | } |
| 209 | return EBUSY; |
| 210 | } |
| 211 | |
| 212 | int |
| 213 | perfmon_read(int pmc, quad_t *val) |
no test coverage detected