Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/hwpmc/hwpmc_arm64.c
| Show First 20 Lines • Show All 410 Lines • ▼ Show 20 Lines | arm64_intr(struct trapframe *tf) | ||||
| } | } | ||||
| return (retval); | return (retval); | ||||
| } | } | ||||
| static int | static int | ||||
| arm64_describe(int cpu, int ri, struct pmc_info *pi, struct pmc **ppmc) | arm64_describe(int cpu, int ri, struct pmc_info *pi, struct pmc **ppmc) | ||||
| { | { | ||||
| char arm64_name[PMC_NAME_MAX]; | |||||
| struct pmc_hw *phw; | struct pmc_hw *phw; | ||||
| int error; | |||||
| KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), | KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), | ||||
| ("[arm64,%d], illegal CPU %d", __LINE__, cpu)); | ("[arm64,%d], illegal CPU %d", __LINE__, cpu)); | ||||
| KASSERT(ri >= 0 && ri < arm64_npmcs, | KASSERT(ri >= 0 && ri < arm64_npmcs, | ||||
| ("[arm64,%d] row-index %d out of range", __LINE__, ri)); | ("[arm64,%d] row-index %d out of range", __LINE__, ri)); | ||||
| phw = &arm64_pcpu[cpu]->pc_arm64pmcs[ri]; | phw = &arm64_pcpu[cpu]->pc_arm64pmcs[ri]; | ||||
| snprintf(arm64_name, sizeof(arm64_name), "ARMV8-%d", ri); | |||||
| if ((error = copystr(arm64_name, pi->pm_name, PMC_NAME_MAX, | snprintf(pi->pm_name, PMC_NAME_MAX, "ARMV8-%d", ri); | ||||
| NULL)) != 0) | |||||
| return (error); | |||||
| pi->pm_class = PMC_CLASS_ARMV8; | pi->pm_class = PMC_CLASS_ARMV8; | ||||
| if (phw->phw_state & PMC_PHW_FLAG_IS_ENABLED) { | if (phw->phw_state & PMC_PHW_FLAG_IS_ENABLED) { | ||||
| pi->pm_enabled = TRUE; | pi->pm_enabled = TRUE; | ||||
| *ppmc = phw->phw_pmc; | *ppmc = phw->phw_pmc; | ||||
| } else { | } else { | ||||
| pi->pm_enabled = FALSE; | pi->pm_enabled = FALSE; | ||||
| *ppmc = NULL; | *ppmc = NULL; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 201 Lines • Show Last 20 Lines | |||||