Lines Matching refs:isrc

207 intr_register_source(struct intsrc *isrc)
211 KASSERT(intr_pic_registered(isrc->is_pic), ("unregistered PIC"));
212 vector = isrc->is_pic->pic_vector(isrc);
217 error = intr_event_create(&isrc->is_event, isrc, 0, vector,
218 intr_disable_src, (mask_fn)isrc->is_pic->pic_enable_source,
219 (mask_fn)isrc->is_pic->pic_eoi_source, intr_assign_cpu, "irq%d:",
226 intr_event_destroy(isrc->is_event);
229 intrcnt_register(isrc);
230 interrupt_sources[vector] = isrc;
231 isrc->is_handlers = 0;
249 struct intsrc *isrc;
252 isrc = intr_lookup_source(vector);
253 if (isrc == NULL)
255 error = intr_event_add_handler(isrc->is_event, name, filter, handler,
259 intrcnt_updatename(isrc);
260 isrc->is_handlers++;
261 if (isrc->is_handlers == 1) {
262 isrc->is_pic->pic_enable_intr(isrc);
263 isrc->is_pic->pic_enable_source(isrc);
273 struct intsrc *isrc;
276 isrc = intr_handler_source(cookie);
280 isrc->is_handlers--;
281 if (isrc->is_handlers == 0) {
282 isrc->is_pic->pic_disable_source(isrc, PIC_NO_EOI);
283 isrc->is_pic->pic_disable_intr(isrc);
285 intrcnt_updatename(isrc);
294 struct intsrc *isrc;
296 isrc = intr_lookup_source(vector);
297 if (isrc == NULL)
299 return (isrc->is_pic->pic_config_intr(isrc, trig, pol));
305 struct intsrc *isrc;
307 isrc = arg;
308 isrc->is_pic->pic_disable_source(isrc, PIC_EOI);
312 intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame)
323 (*isrc->is_count)++;
326 ie = isrc->is_event;
332 vector = isrc->is_pic->pic_vector(isrc);
341 isrc->is_pic->pic_disable_source(isrc, PIC_EOI);
342 (*isrc->is_straycount)++;
343 if (*isrc->is_straycount < MAX_STRAY_LOG)
345 else if (*isrc->is_straycount == MAX_STRAY_LOG)
385 struct intsrc *isrc;
400 isrc = arg;
402 error = isrc->is_pic->pic_assign_cpu(isrc, cpu_apic_ids[cpu]);
432 KASSERT(is->is_event != NULL, ("%s: isrc with no event", __func__));
510 struct intsrc *isrc;
513 isrc = intr_lookup_source(vector);
514 if (isrc == NULL)
516 error = intr_event_describe_handler(isrc->is_event, ih, descr);
519 intrcnt_updatename(isrc);
546 struct intsrc **isrc;
554 isrc = interrupt_sources;
555 for (i = 0; i < num_io_irqs && !db_pager_quit; i++, isrc++)
556 if (*isrc != NULL)
557 db_dump_intr_event((*isrc)->is_event, verbose);
604 struct intsrc *isrc;
606 isrc = intr_lookup_source(vector);
607 if (isrc == NULL)
609 return (intr_event_bind(isrc->is_event, cpu));
637 struct intsrc *isrc;
648 isrc = interrupt_sources[i];
649 if (isrc != NULL && isrc->is_handlers > 0) {
657 if (isrc->is_event->ie_cpu != NOCPU)
658 (void)isrc->is_pic->pic_assign_cpu(isrc,
659 cpu_apic_ids[isrc->is_event->ie_cpu]);
660 else if (isrc->is_pic->pic_assign_cpu(isrc,