| /xen/xen/arch/arm/ |
| A D | vgic.c | 73 p->irq = virq; in vgic_init_pending_irq() 247 if ( is_lpi(virq) ) in vgic_get_virq_priority() 250 rank = vgic_rank_irq(v, virq); in vgic_get_virq_priority() 435 ASSERT( virq < 16 ); in vgic_to_sgi() 545 ASSERT(virq >= 32 && virq <= vgic_num_irqs(d)); in vgic_inject_irq() 552 n = irq_to_pending(v, virq); in vgic_inject_irq() 571 gic_raise_inflight_irq(v, virq); in vgic_inject_irq() 622 if ( virq >= vgic_num_irqs(d) ) in vgic_reserve_virq() 631 unsigned int virq; in vgic_allocate_virq() local 652 if ( virq >= end ) in vgic_allocate_virq() [all …]
|
| A D | domctl.c | 77 uint32_t virq = bind->machine_irq; in arch_do_domctl() local 87 if ( irq != virq ) in arch_do_domctl() 109 if ( !vgic_reserve_virq(d, virq) ) in arch_do_domctl() 112 rc = route_irq_to_guest(d, virq, irq, "routed IRQ"); in arch_do_domctl() 114 vgic_free_virq(d, virq); in arch_do_domctl() 123 uint32_t virq = bind->machine_irq; in arch_do_domctl() local 130 if ( irq != virq ) in arch_do_domctl() 140 rc = release_guest_irq(d, virq); in arch_do_domctl() 144 vgic_free_virq(d, virq); in arch_do_domctl()
|
| A D | irq.c | 39 unsigned int virq; member 242 vgic_inject_irq(info->d, NULL, info->virq, true); in do_IRQ() 414 int route_irq_to_guest(struct domain *d, unsigned int virq, in route_irq_to_guest() argument 423 if ( virq >= vgic_num_irqs(d) ) in route_irq_to_guest() 432 if ( virq < NR_LOCAL_IRQS ) in route_irq_to_guest() 457 info->virq = virq; in route_irq_to_guest() 492 else if ( irq_get_guest_info(desc)->virq != virq ) in route_irq_to_guest() 533 int release_guest_irq(struct domain *d, unsigned int virq) in release_guest_irq() argument 541 if ( virq < NR_LOCAL_IRQS || virq >= vgic_num_irqs(d) ) in release_guest_irq() 544 desc = vgic_get_hw_irq_desc(d, NULL, virq); in release_guest_irq() [all …]
|
| A D | gic.c | 136 int gic_route_irq_to_guest(struct domain *d, unsigned int virq, in gic_route_irq_to_guest() argument 143 ASSERT(virq >= 32); in gic_route_irq_to_guest() 144 ASSERT(virq < vgic_num_irqs(d)); in gic_route_irq_to_guest() 145 ASSERT(!is_lpi(virq)); in gic_route_irq_to_guest() 155 ret = vgic_connect_hw_irq(d, NULL, virq, desc, true); in gic_route_irq_to_guest() 170 int gic_remove_irq_from_guest(struct domain *d, unsigned int virq, in gic_remove_irq_from_guest() argument 177 ASSERT(!is_lpi(virq)); in gic_remove_irq_from_guest() 193 ret = vgic_connect_hw_irq(d, NULL, virq, desc, false); in gic_remove_irq_from_guest()
|
| A D | gic-vgic.c | 126 if ( lr_val.virq == p->irq ) in gic_find_unused_lr() 173 irq = lr_val.virq; in gic_update_one_lr() 417 unsigned int virq) in vgic_get_hw_irq_desc() argument 421 ASSERT(!v && virq >= 32); in vgic_get_hw_irq_desc() 426 p = irq_to_pending(v, virq); in vgic_get_hw_irq_desc() 433 int vgic_connect_hw_irq(struct domain *d, struct vcpu *v, unsigned int virq, in vgic_connect_hw_irq() argument 441 struct vcpu *v_target = vgic_get_target_vcpu(d->vcpu[0], virq); in vgic_connect_hw_irq() 442 struct vgic_irq_rank *rank = vgic_rank_irq(v_target, virq); in vgic_connect_hw_irq() 443 struct pending_irq *p = irq_to_pending(v_target, virq); in vgic_connect_hw_irq()
|
| A D | vgic-v2.c | 97 unsigned int virq; in vgic_store_itargetsr() local 113 virq = rank->index * NR_INTERRUPT_PER_RANK + offset; in vgic_store_itargetsr() 115 for ( i = 0; i < NR_TARGETS_PER_ITARGETSR; i++, offset++, virq++ ) in vgic_store_itargetsr() 148 virq, new_mask); in vgic_store_itargetsr() 162 virq) ) in vgic_store_itargetsr() 378 int virq; in vgic_v2_to_sgi() local 385 virq = (sgir & GICD_SGI_INTID_MASK); in vgic_v2_to_sgi() 407 return vgic_to_sgi(v, sgir, sgi_mode, virq, &target); in vgic_v2_to_sgi()
|
| /xen/xen/common/ |
| A D | event_channel.c | 132 switch ( virq ) in virq_is_global() 144 ASSERT(virq < NR_VIRQS); in virq_is_global() 423 int virq = bind->virq, vcpu = bind->vcpu; in evtchn_bind_virq() local 426 if ( (virq < 0) || (virq >= ARRAY_SIZE(v->virq_to_evtchn)) ) in evtchn_bind_virq() 433 virq = array_index_nospec(virq, ARRAY_SIZE(v->virq_to_evtchn)); in evtchn_bind_virq() 466 chn->u.virq = virq; in evtchn_bind_virq() 887 send_guest_global_virq(global_virq_handlers[virq] ?: hardware_domain, virq); in send_global_virq() 894 if (virq >= NR_VIRQS) in set_global_virq_handler() 918 uint32_t virq; in clear_global_virq_handlers() local 923 for (virq = 0; virq < NR_VIRQS; virq++) in clear_global_virq_handlers() [all …]
|
| /xen/xen/include/asm-arm/ |
| A D | vgic.h | 281 extern struct vcpu *vgic_get_target_vcpu(struct vcpu *v, unsigned int virq); 284 extern void vgic_init_pending_irq(struct pending_irq *p, unsigned int virq); 296 enum gic_sgi_mode irqmode, int virq, 318 extern bool vgic_reserve_virq(struct domain *d, unsigned int virq); 319 extern void vgic_free_virq(struct domain *d, unsigned int virq); 332 unsigned int virq); 333 int vgic_connect_hw_irq(struct domain *d, struct vcpu *v, unsigned int virq, 344 void vgic_inject_irq(struct domain *d, struct vcpu *v, unsigned int virq,
|
| A D | gic.h | 208 uint32_t virq; member 244 extern int gic_route_irq_to_guest(struct domain *, unsigned int virq, 249 int gic_remove_irq_from_guest(struct domain *d, unsigned int virq, 360 void (*update_lr)(int lr, unsigned int virq, uint8_t priority,
|
| A D | event.h | 50 static inline bool arch_virq_is_global(unsigned int virq) in arch_virq_is_global() argument
|
| /xen/xen/arch/arm/vgic/ |
| A D | vgic.c | 713 bool vgic_reserve_virq(struct domain *d, unsigned int virq) in vgic_reserve_virq() argument 715 if ( virq >= vgic_num_irqs(d) ) in vgic_reserve_virq() 718 return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs); in vgic_reserve_virq() 724 unsigned int virq; in vgic_allocate_virq() local 745 if ( virq >= end ) in vgic_allocate_virq() 747 } while ( test_and_set_bit(virq, d->arch.vgic.allocated_irqs) ); in vgic_allocate_virq() 749 return virq; in vgic_allocate_virq() 752 void vgic_free_virq(struct domain *d, unsigned int virq) in vgic_free_virq() argument 754 clear_bit(virq, d->arch.vgic.allocated_irqs); in vgic_free_virq() 830 unsigned int virq) in vgic_get_hw_irq_desc() argument [all …]
|
| /xen/tools/libs/evtchn/ |
| A D | solaris.c | 97 xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce, unsigned int virq) in xenevtchn_bind_virq() argument 102 bind.virq = virq; in xenevtchn_bind_virq()
|
| A D | linux.c | 101 unsigned int virq) in xenevtchn_bind_virq() argument 106 bind.virq = virq; in xenevtchn_bind_virq()
|
| A D | netbsd.c | 114 xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce, unsigned int virq) in xenevtchn_bind_virq() argument 120 bind.virq = virq; in xenevtchn_bind_virq()
|
| A D | freebsd.c | 96 xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce, unsigned int virq) in xenevtchn_bind_virq() argument 101 bind.virq = virq; in xenevtchn_bind_virq()
|
| A D | minios.c | 208 xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce, unsigned int virq) in xenevtchn_bind_virq() argument 219 printf("xenevtchn_bind_virq(%d)", virq); in xenevtchn_bind_virq() 220 port = bind_virq(virq, evtchn_handler, (void*)(intptr_t)fd); in xenevtchn_bind_virq()
|
| /xen/xen/include/xen/ |
| A D | event.h | 24 void send_guest_vcpu_virq(struct vcpu *v, uint32_t virq); 30 void send_global_virq(uint32_t virq); 37 void send_guest_global_virq(struct domain *d, uint32_t virq); 44 int set_global_virq_handler(struct domain *d, uint32_t virq); 89 int guest_enabled_event(struct vcpu *v, uint32_t virq);
|
| /xen/tools/libxc/ |
| A D | xc_evtchn_compat.c | 46 xc_evtchn_bind_virq(xc_evtchn *xce, unsigned int virq) in xc_evtchn_bind_virq() argument 48 return xenevtchn_bind_virq(xce, virq); in xc_evtchn_bind_virq()
|
| /xen/xen/include/public/ |
| A D | event_channel.h | 144 uint32_t virq; /* enum virq */ member 231 uint32_t virq; /* EVTCHNSTAT_virq */ member
|
| /xen/tools/include/xen-sys/FreeBSD/ |
| A D | evtchn.h | 41 unsigned int virq; member
|
| /xen/tools/include/xen-sys/NetBSD/ |
| A D | evtchn.h | 40 unsigned int virq; member
|
| /xen/tools/include/xen-sys/NetBSDRump/ |
| A D | evtchn.h | 40 unsigned int virq; member
|
| /xen/tools/include/xen-sys/SunOS/ |
| A D | evtchn.h | 43 unsigned int virq; member
|
| /xen/tools/include/xen-sys/Linux/ |
| A D | evtchn.h | 43 unsigned int virq; member
|
| /xen/xen/include/asm-x86/ |
| A D | event.h | 45 static inline bool arch_virq_is_global(unsigned int virq) in arch_virq_is_global() argument
|