Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[pandora-kernel.git] / include / asm-x86 / hw_irq_64.h
index 09dfc18..0062ef3 100644 (file)
  * cleanup after irq migration.
  */
 #define IRQ_MOVE_CLEANUP_VECTOR        FIRST_EXTERNAL_VECTOR
+
 /*
  * Vectors 0x30-0x3f are used for ISA interrupts.
  */
-#define IRQ0_VECTOR            FIRST_EXTERNAL_VECTOR + 0x10
-#define IRQ1_VECTOR            IRQ0_VECTOR + 1
-#define IRQ2_VECTOR            IRQ0_VECTOR + 2
-#define IRQ3_VECTOR            IRQ0_VECTOR + 3
-#define IRQ4_VECTOR            IRQ0_VECTOR + 4
-#define IRQ5_VECTOR            IRQ0_VECTOR + 5 
-#define IRQ6_VECTOR            IRQ0_VECTOR + 6
-#define IRQ7_VECTOR            IRQ0_VECTOR + 7
-#define IRQ8_VECTOR            IRQ0_VECTOR + 8
-#define IRQ9_VECTOR            IRQ0_VECTOR + 9
-#define IRQ10_VECTOR           IRQ0_VECTOR + 10
-#define IRQ11_VECTOR           IRQ0_VECTOR + 11
-#define IRQ12_VECTOR           IRQ0_VECTOR + 12
-#define IRQ13_VECTOR           IRQ0_VECTOR + 13
-#define IRQ14_VECTOR           IRQ0_VECTOR + 14
-#define IRQ15_VECTOR           IRQ0_VECTOR + 15
+#define IRQ0_VECTOR            (FIRST_EXTERNAL_VECTOR + 0x10)
+#define IRQ1_VECTOR            (IRQ0_VECTOR + 1)
+#define IRQ2_VECTOR            (IRQ0_VECTOR + 2)
+#define IRQ3_VECTOR            (IRQ0_VECTOR + 3)
+#define IRQ4_VECTOR            (IRQ0_VECTOR + 4)
+#define IRQ5_VECTOR            (IRQ0_VECTOR + 5)
+#define IRQ6_VECTOR            (IRQ0_VECTOR + 6)
+#define IRQ7_VECTOR            (IRQ0_VECTOR + 7)
+#define IRQ8_VECTOR            (IRQ0_VECTOR + 8)
+#define IRQ9_VECTOR            (IRQ0_VECTOR + 9)
+#define IRQ10_VECTOR           (IRQ0_VECTOR + 10)
+#define IRQ11_VECTOR           (IRQ0_VECTOR + 11)
+#define IRQ12_VECTOR           (IRQ0_VECTOR + 12)
+#define IRQ13_VECTOR           (IRQ0_VECTOR + 13)
+#define IRQ14_VECTOR           (IRQ0_VECTOR + 14)
+#define IRQ15_VECTOR           (IRQ0_VECTOR + 15)
 
 /*
  * Special IRQ vectors used by the SMP architecture, 0xf0-0xff
@@ -135,11 +135,13 @@ extern void init_8259A(int aeoi);
 extern void send_IPI_self(int vector);
 extern void init_VISWS_APIC_irqs(void);
 extern void setup_IO_APIC(void);
+extern void enable_IO_APIC(void);
 extern void disable_IO_APIC(void);
 extern void print_IO_APIC(void);
 extern int IO_APIC_get_PCI_irq_vector(int bus, int slot, int fn);
 extern void send_IPI(int dest, int vector);
 extern void setup_ioapic_dest(void);
+extern void native_init_IRQ(void);
 
 extern unsigned long io_apic_irqs;
 
@@ -148,9 +150,6 @@ extern atomic_t irq_mis_count;
 
 #define IO_APIC_IRQ(x) (((x) >= 16) || ((1<<(x)) & io_apic_irqs))
 
-#define __STR(x) #x
-#define STR(x) __STR(x)
-
 #include <asm/ptrace.h>
 
 #define IRQ_NAME2(nr) nr##_interrupt(void)
@@ -160,13 +159,12 @@ extern atomic_t irq_mis_count;
  *     SMP has a few special interrupts for IPI messages
  */
 
-#define BUILD_IRQ(nr) \
-asmlinkage void IRQ_NAME(nr); \
-__asm__( \
-"\n.p2align\n" \
-"IRQ" #nr "_interrupt:\n\t" \
-       "push $~(" #nr ") ; " \
-       "jmp common_interrupt");
+#define BUILD_IRQ(nr)                          \
+       asmlinkage void IRQ_NAME(nr);           \
+       asm("\n.p2align\n"                      \
+           "IRQ" #nr "_interrupt:\n\t"         \
+           "push $~(" #nr ") ; "               \
+           "jmp common_interrupt");
 
 #define platform_legacy_irq(irq)       ((irq) < 16)