ARMV8_PMU_CYCLE_IDX
return (pmc->idx < ARMV8_PMU_CYCLE_IDX && (val & ARMV8_PMU_PMCR_LP)) ||
(pmc->idx == ARMV8_PMU_CYCLE_IDX && (val & ARMV8_PMU_PMCR_LC));
return (!(pmc->idx & 1) && (pmc->idx + 1) < ARMV8_PMU_CYCLE_IDX &&
return (idx == ARMV8_PMU_CYCLE_IDX) ? PMCCNTR_EL0 : PMEVCNTR0_EL0 + idx;
return (idx == ARMV8_PMU_CYCLE_IDX) ? PMCCFILTR_EL0 : PMEVTYPER0_EL0 + idx;
if (vcpu_mode_is_32bit(vcpu) && pmc->idx != ARMV8_PMU_CYCLE_IDX &&
return BIT(ARMV8_PMU_CYCLE_IDX);
return GENMASK(val - 1, 0) | BIT(ARMV8_PMU_CYCLE_IDX);
for_each_set_bit(i, &mask, ARMV8_PMU_CYCLE_IDX) {
kvm_pmu_set_counter_value(vcpu, ARMV8_PMU_CYCLE_IDX, 0);
~BIT(ARMV8_PMU_CYCLE_IDX);
if (pmc->idx == ARMV8_PMU_CYCLE_IDX)
return (pmc->idx == ARMV8_PMU_CYCLE_IDX ||
if (idx == ARMV8_PMU_CYCLE_IDX)
if (idx == ARMV8_PMU_CYCLE_IDX)
if (idx >= val && idx != ARMV8_PMU_CYCLE_IDX) {
idx = ARMV8_PMU_CYCLE_IDX;
idx = ARMV8_PMU_CYCLE_IDX;
idx = ARMV8_PMU_CYCLE_IDX;
idx = ARMV8_PMU_CYCLE_IDX;
if (idx == ARMV8_PMU_CYCLE_IDX)
u64 mask = BIT(ARMV8_PMU_CYCLE_IDX);
if (!test_and_set_bit(ARMV8_PMU_CYCLE_IDX, cpuc->used_mask))
return ARMV8_PMU_CYCLE_IDX;
set_bit(ARMV8_PMU_CYCLE_IDX, cpu_pmu->cntr_mask);
if (idx == ARMV8_PMU_CYCLE_IDX)
if (idx == ARMV8_PMU_CYCLE_IDX)
if (idx == ARMV8_PMU_CYCLE_IDX)
if (i == ARMV8_PMU_CYCLE_IDX)
uint64_t mask = BIT(ARMV8_PMU_CYCLE_IDX);