From: Dave A. <ai...@us...> - 2001-02-24 23:49:49
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv22500/kernel Modified Files: interrupt.c Log Message: added a get_irq_list function.. v. primitive ... need to add kernel stats stuff Index: interrupt.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/interrupt.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- interrupt.c 2001/02/22 23:55:27 1.9 +++ interrupt.c 2001/02/24 23:50:57 1.10 @@ -14,6 +14,7 @@ #include <linux/sched.h> #include <linux/mm.h> #include <linux/string.h> +#include <linux/kernel_stat.h> #include <asm/pgalloc.h> #include <asm/scb.h> @@ -615,3 +616,27 @@ return retval; } +int get_irq_list(char *buf) +{ + int i, len=0; + struct irqvector *vector; + unsigned char *inside_vec; + + for (i=0; i<NR_IRQS; i++) + { + if (!scb_vec_free(i)) + { + inside_vec = SCB_VECTOR(i); + + /* We must mask off the bottom two bits. They have meaning to + to the hardware, and are not part of the actual target address */ + + inside_vec = (unsigned char *) ((unsigned long)(inside_vec) & ~0x3); + + vector = (struct irqvector *)(inside_vec - + offsetof(struct irqvector, inst_jsb)); + len += sprintf(buf+len, "%4d: %8d %s\n", vector->vec_num, 0, vector->action.name); + } + } + return len; +} |