Exemple #1
0
/* takes the rank lock */
struct vcpu *vgic_get_target_vcpu(struct vcpu *v, unsigned int virq)
{
    struct vcpu *v_target;
    struct vgic_irq_rank *rank = vgic_rank_irq(v, virq);
    unsigned long flags;

    vgic_lock_rank(v, rank, flags);
    v_target = __vgic_get_target_vcpu(v, virq);
    vgic_unlock_rank(v, rank, flags);

    return v_target;
}
Exemple #2
0
static int vgic_get_virq_priority(struct vcpu *v, unsigned int virq)
{
    struct vgic_irq_rank *rank = vgic_rank_irq(v, virq);
    unsigned long flags;
    int priority;

    vgic_lock_rank(v, rank, flags);
    priority = rank->priority[virq & INTERRUPT_RANK_MASK];
    vgic_unlock_rank(v, rank, flags);

    return priority;
}
Exemple #3
0
/* takes the rank lock */
struct vcpu *vgic_get_target_vcpu(struct vcpu *v, unsigned int irq)
{
    struct domain *d = v->domain;
    struct vcpu *v_target;
    struct vgic_irq_rank *rank = vgic_rank_irq(v, irq);
    unsigned long flags;

    vgic_lock_rank(v, rank, flags);
    v_target = d->arch.vgic.handler->get_target_vcpu(v, irq);
    vgic_unlock_rank(v, rank, flags);
    return v_target;
}