/*===========================================================================* * irqtab_dmp * *===========================================================================*/ PUBLIC void irqtab_dmp() { int i,r; struct irq_hook irq_hooks[NR_IRQ_HOOKS]; int irq_actids[NR_IRQ_VECTORS]; struct irq_hook *e; /* irq tab entry */ char *irq[] = { "clock", /* 00 */ "keyboard", /* 01 */ "cascade", /* 02 */ "rs232", /* 03 */ "rs232", /* 04 */ "NIC(eth)", /* 05 */ "floppy", /* 06 */ "printer", /* 07 */ "", /* 08 */ "", /* 09 */ "", /* 10 */ "", /* 11 */ "", /* 12 */ "", /* 13 */ "at_wini_0", /* 14 */ "at_wini_1", /* 15 */ }; if ((r = sys_getirqhooks(irq_hooks)) != OK) { report("IS","warning: couldn't get copy of irq hooks", r); return; } if ((r = sys_getirqactids(irq_actids)) != OK) { report("IS","warning: couldn't get copy of irq mask", r); return; } #if 0 printf("irq_actids:"); for (i= 0; i<NR_IRQ_VECTORS; i++) printf(" [%d] = 0x%08x", i, irq_actids[i]); printf("\n"); #endif printf("IRQ policies dump shows use of kernel's IRQ hooks.\n"); printf("-h.id- -proc.nr- -IRQ vector (nr.)- -policy- -notify id-\n"); for (i=0; i<NR_IRQ_HOOKS; i++) { e = &irq_hooks[i]; printf("%3d", i); if (e->proc_nr_e==NONE) { printf(" <unused>\n"); continue; } printf("%10d ", e->proc_nr_e); printf(" %9.9s (%02d) ", irq[e->irq], e->irq); printf(" %s", (e->policy & IRQ_REENABLE) ? "reenable" : " - "); printf(" %d", e->notify_id); if (irq_actids[e->irq] & (1 << i)) printf("masked"); printf("\n"); } printf("\n"); }
/*===========================================================================* * irqtab_dmp * *===========================================================================*/ void irqtab_dmp() { int i,r; struct irq_hook irq_hooks[NR_IRQ_HOOKS]; int irq_actids[NR_IRQ_VECTORS]; struct irq_hook *e; /* irq tab entry */ if ((r = sys_getirqhooks(irq_hooks)) != 0) { report("IS","warning: couldn't get copy of irq hooks", r); return; } if ((r = sys_getirqactids(irq_actids)) != 0) { report("IS","warning: couldn't get copy of irq mask", r); return; } #if 0 printk("irq_actids:"); for (i= 0; i<NR_IRQ_VECTORS; i++) printk(" [%d] = 0x%08x", i, irq_actids[i]); printk("\n"); #endif printk("IRQ policies dump shows use of kernel's IRQ hooks.\n"); printk("-h.id- -proc.nr- -irq nr- -policy- -notify id-\n"); for (i=0; i<NR_IRQ_HOOKS; i++) { e = &irq_hooks[i]; printk("%3d", i); if (e->proc_nr_e==ENDPT_NONE) { printk(" <unused>\n"); continue; } printk("%10d ", e->proc_nr_e); printk(" (%02d) ", e->irq); printk(" %s", (e->policy & IRQ_REENABLE) ? "reenable" : " - "); printk(" %d", e->notify_id); if (irq_actids[e->irq] & (1 << i)) printk("masked"); printk("\n"); } printk("\n"); }