patch-2.4.7 linux/include/asm-mips64/irq.h

Next file: linux/include/asm-mips64/mipsregs.h
Previous file: linux/include/asm-mips64/ioctl.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.6/linux/include/asm-mips64/irq.h linux/include/asm-mips64/irq.h
@@ -6,15 +6,32 @@
  * Copyright (C) 1994 by Waldorf GMBH, written by Ralf Baechle
  * Copyright (C) 1995, 96, 97, 98, 1999, 2000 by Ralf Baechle
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+ * Copyright (C) 2001 Kanoj Sarcar
  */
 #ifndef _ASM_IRQ_H
 #define _ASM_IRQ_H
 
 #include <linux/config.h>
+#include <asm/sn/arch.h>
 
 #define NR_IRQS 256
 
-#define TIMER_IRQ 0
+/*
+ * Number of levels in INT_PEND0. Can be set to 128 if we also
+ * consider INT_PEND1.
+ */
+#define PERNODE_LEVELS	64
+
+extern int node_level_to_irq[MAX_COMPACT_NODES][PERNODE_LEVELS];
+
+/*
+ * we need to map irq's up to at least bit 7 of the INT_MASK0_A register
+ * since bits 0-6 are pre-allocated for other purposes.
+ */
+#define LEAST_LEVEL	7
+#define FAST_IRQ_TO_LEVEL(i)	((i) + LEAST_LEVEL)
+#define LEVEL_TO_IRQ(c, l) \
+			(node_level_to_irq[CPUID_TO_COMPACT_NODEID(c)][(l)])
 
 #ifdef CONFIG_I8259
 static inline int irq_cannonicalize(int irq)

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)