version 1.130, 2018/09/20 05:08:45 |
version 1.131, 2018/10/06 16:44:55 |
Line 1264 intr_establish_xname(int legacy_irq, str |
|
Line 1264 intr_establish_xname(int legacy_irq, str |
|
#if NPCI > 0 || NISA > 0 |
#if NPCI > 0 || NISA > 0 |
struct pintrhand *pih; |
struct pintrhand *pih; |
intr_handle_t irq; |
intr_handle_t irq; |
int evtchn; |
int vector, evtchn; |
|
|
KASSERTMSG(legacy_irq == -1 || (0 <= legacy_irq && legacy_irq < NUM_XEN_IRQS), |
KASSERTMSG(legacy_irq == -1 || (0 <= legacy_irq && legacy_irq < NUM_XEN_IRQS), |
"bad legacy IRQ value: %d", legacy_irq); |
"bad legacy IRQ value: %d", legacy_irq); |
Line 1290 intr_establish_xname(int legacy_irq, str |
|
Line 1290 intr_establish_xname(int legacy_irq, str |
|
intrstr = intr_create_intrid(irq, pic, pin, intrstr_buf, |
intrstr = intr_create_intrid(irq, pic, pin, intrstr_buf, |
sizeof(intrstr_buf)); |
sizeof(intrstr_buf)); |
|
|
evtchn = xen_pirq_alloc(&irq, type); |
vector = xen_pirq_alloc(&irq, type); |
irq = (legacy_irq == -1) ? irq : legacy_irq; /* ISA compat */ |
irq = (legacy_irq == -1) ? irq : legacy_irq; /* ISA compat */ |
|
|
|
#if NIOAPIC > 0 |
|
extern struct cpu_info phycpu_info_primary; /* XXX */ |
|
struct cpu_info *ci = &phycpu_info_primary; |
|
pic->pic_addroute(pic, ci, pin, vector, type); |
|
#else |
|
|
|
#endif /* NIOAPIC */ |
|
evtchn = irq2port[vect2irq[vector]]; |
|
KASSERT(evtchn > 0); |
|
|
pih = pirq_establish(irq & 0xff, evtchn, handler, arg, level, |
pih = pirq_establish(irq & 0xff, evtchn, handler, arg, level, |
intrstr, xname); |
intrstr, xname); |
pih->pic_type = pic->pic_type; |
pih->pic_type = pic->pic_type; |
return pih; |
return pih; |
#endif /* NPCI > 0 || NISA > 0 */ |
#endif /* NPCI > 0 || NISA > 0 */ |