int amiga_get_irq_list(char *buf) { int i, len = 0; irq_node_t *node; for (i = 0; i < AMI_STD_IRQS; i++) { if (!(node = ami_irq_list[i])) continue; len += sprintf(buf+len, "ami %2d: %10u ", i, kstat.irqs[0][SYS_IRQS + i]); do { if (node->flags & SA_INTERRUPT) len += sprintf(buf+len, "F "); else len += sprintf(buf+len, " "); len += sprintf(buf+len, "%s\n", node->devname); if ((node = node->next)) len += sprintf(buf+len, " "); } while (node); } len += cia_get_irq_list(&ciaa_base, buf+len); len += cia_get_irq_list(&ciab_base, buf+len); return len; }
int show_amiga_intreeupts(struct seq_file *p, void *v) { int i; irq_node_t *node; for (i = 0; i < AMI_STD_IRQS; i++) { if (!(node = ami_irq_list[i])) continue; seq_printf(p, "ami %2d: %10u ", i, kstat.irqs[0][SYS_IRQS + i]); do { if (node->flags & SA_INTERRUPT) seq_puts(p, "F "); else seq_puts(p, " "); seq_printf(p, "%s\n", node->devname); if ((node = node->next)) seq_puts(p, " "); } while (node); } cia_get_irq_list(&ciaa_base, p); cia_get_irq_list(&ciab_base, p); return len; }
int amiga_get_irq_list(char *buf) { int i, len = 0; irq_node_t *node; for (i = 0; i < AMI_STD_IRQS; i++) { if (!(node = ami_irq_list[i])) continue; if (node->flags & IRQ_FLG_STD) continue; len += sprintf(buf+len, "ami %2d: %10u ", i, kstat.interrupts[SYS_IRQS + i]); do { if (ami_servers[i]) { if (node->flags & IRQ_FLG_FAST) len += sprintf(buf+len, "F "); else if (node->flags & IRQ_FLG_SLOW) len += sprintf(buf+len, "S "); else len += sprintf(buf+len, " "); } else { if (node->flags & IRQ_FLG_LOCK) len += sprintf(buf+len, "L "); else len += sprintf(buf+len, " "); } len += sprintf(buf+len, "%s\n", node->devname); if ((node = node->next)) len += sprintf(buf+len, " "); } while (node); } len += cia_get_irq_list(&ciaa_base, buf+len); len += cia_get_irq_list(&ciab_base, buf+len); return len; }