static inline int format_irq_proc(unsigned int irq, struct xnvfile_regular_iterator *it) { struct xnintr *intr; spl_t s; if (xnintr_is_timer_irq(irq)) { xnvfile_puts(it, " [timer]"); return 0; } #ifdef CONFIG_SMP if (irq == RTHAL_TIMER_IPI) { xnvfile_puts(it, " [timer-ipi]"); return 0; } if (irq == RTHAL_RESCHEDULE_IPI) { xnvfile_puts(it, " [reschedule]"); return 0; } if (irq == RTHAL_CRITICAL_IPI) { xnvfile_puts(it, " [sync]"); return 0; } #endif /* CONFIG_SMP */ if (rthal_virtual_irq_p(irq)) { xnvfile_puts(it, " [virtual]"); return 0; } xnlock_get_irqsave(&intrlock, s); intr = xnintr_shirq_first(irq); if (intr) { xnvfile_puts(it, " "); do { xnvfile_putc(it, ' '); xnvfile_puts(it, intr->name); intr = xnintr_shirq_next(intr); } while (intr); } xnlock_put_irqrestore(&intrlock, s); return 0; }
static inline int format_irq_proc(unsigned int irq, struct xnvfile_regular_iterator *it) { struct xnintr *intr; if (irq == XNARCH_TIMER_IRQ) { xnvfile_puts(it, " [timer]"); return 0; } #ifdef CONFIG_SMP if (irq == RTHAL_RESCHEDULE_IPI) { xnvfile_puts(it, " [reschedule]"); return 0; } if (irq == RTHAL_CRITICAL_IPI) { xnvfile_puts(it, " [sync]"); return 0; } #endif /* CONFIG_SMP */ if (rthal_virtual_irq_p(irq)) { xnvfile_puts(it, " [virtual]"); return 0; } down(&intrlock); intr = xnintr_shirq_first(irq); if (intr) { xnvfile_puts(it, " "); do { xnvfile_putc(it, ' '); xnvfile_puts(it, intr->name); intr = xnintr_shirq_next(intr); } while (intr); } up(&intrlock); return 0; }
static int format_irq_proc(unsigned int irq, char *str) { xnintr_t *intr; char *p = str; spl_t s; if (rthal_virtual_irq_p(irq)) { p += sprintf(p, " [virtual]"); return p - str; } else if (irq == XNARCH_TIMER_IRQ) { p += sprintf(p, " [timer]"); return p - str; #ifdef CONFIG_SMP } else if (irq == RTHAL_SERVICE_IPI0) { p += sprintf(p, " [IPI]"); return p - str; } else if (irq == RTHAL_CRITICAL_IPI) { p += sprintf(p, " [critical sync]"); return p - str; #endif /* CONFIG_SMP */ } xnlock_get_irqsave(&intrlock, s); intr = xnintr_shirq_first(irq); if (intr) { strcpy(p, " "); p += 8; do { *p = ' '; p += 1; strcpy(p, intr->name); p += strlen(intr->name); intr = xnintr_shirq_next(intr); } while (intr); } xnlock_put_irqrestore(&intrlock, s); return p - str; }