Lines Matching full:lr

135 static bool lr_triggers_eoi(u64 lr)  in lr_triggers_eoi()  argument
137 return !(lr & (ICH_LR_STATE | ICH_LR_HW)) && (lr & ICH_LR_EOI); in lr_triggers_eoi()
146 u64 lr = __vcpu_sys_reg(vcpu, ICH_LRN(i)); in vgic_compute_mi_state() local
148 if (lr_triggers_eoi(lr)) in vgic_compute_mi_state()
150 if (!(lr & ICH_LR_STATE)) in vgic_compute_mi_state()
152 pend |= (lr & ICH_LR_PENDING_BIT); in vgic_compute_mi_state()
217 static u64 translate_lr_pintid(struct kvm_vcpu *vcpu, u64 lr) in translate_lr_pintid() argument
221 if (!(lr & ICH_LR_HW)) in translate_lr_pintid()
222 return lr; in translate_lr_pintid()
225 irq = vgic_get_vcpu_irq(vcpu, FIELD_GET(ICH_LR_PHYS_ID_MASK, lr)); in translate_lr_pintid()
228 lr &= ~ICH_LR_HW; in translate_lr_pintid()
232 lr &= ~ICH_LR_PHYS_ID_MASK; in translate_lr_pintid()
233 lr |= FIELD_PREP(ICH_LR_PHYS_ID_MASK, (u64)irq->hwintid); in translate_lr_pintid()
237 return lr; in translate_lr_pintid()
254 u64 lr = __vcpu_sys_reg(vcpu, ICH_LRN(i)); in vgic_v3_create_shadow_lr() local
256 if (!(lr & ICH_LR_STATE)) in vgic_v3_create_shadow_lr()
259 lr = translate_lr_pintid(vcpu, lr); in vgic_v3_create_shadow_lr()
261 s_cpu_if->vgic_lr[hweight16(shadow_if->lr_map)] = lr; in vgic_v3_create_shadow_lr()
274 u64 lr = __vcpu_sys_reg(vcpu, ICH_LRN(i)); in vgic_v3_sync_nested() local
277 if (!(lr & ICH_LR_HW) || !(lr & ICH_LR_STATE)) in vgic_v3_sync_nested()
281 * If we had a HW lr programmed by the guest hypervisor, we in vgic_v3_sync_nested()
285 irq = vgic_get_vcpu_irq(vcpu, FIELD_GET(ICH_LR_PHYS_ID_MASK, lr)); in vgic_v3_sync_nested()
289 lr = __gic_v3_get_lr(lr_map_idx_to_shadow_idx(shadow_if, i)); in vgic_v3_sync_nested()
290 if (!(lr & ICH_LR_STATE)) in vgic_v3_sync_nested()