]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blob - include/asm-x86/mach-voyager/irq_vectors.h
x86: convert to generic helpers for IPI function calls
[linux-2.6-omap-h63xx.git] / include / asm-x86 / mach-voyager / irq_vectors.h
1 /* -*- mode: c; c-basic-offset: 8 -*- */
2
3 /* Copyright (C) 2002
4  *
5  * Author: James.Bottomley@HansenPartnership.com
6  *
7  * linux/arch/i386/voyager/irq_vectors.h
8  *
9  * This file provides definitions for the VIC and QIC CPIs
10  */
11
12 #ifndef _ASM_IRQ_VECTORS_H
13 #define _ASM_IRQ_VECTORS_H
14
15 /*
16  * IDT vectors usable for external interrupt sources start
17  * at 0x20:
18  */
19 #define FIRST_EXTERNAL_VECTOR   0x20
20
21 #define SYSCALL_VECTOR          0x80
22
23 /*
24  * Vectors 0x20-0x2f are used for ISA interrupts.
25  */
26
27 /* These define the CPIs we use in linux */
28 #define VIC_CPI_LEVEL0                  0
29 #define VIC_CPI_LEVEL1                  1
30 /* now the fake CPIs */
31 #define VIC_TIMER_CPI                   2
32 #define VIC_INVALIDATE_CPI              3
33 #define VIC_RESCHEDULE_CPI              4
34 #define VIC_ENABLE_IRQ_CPI              5
35 #define VIC_CALL_FUNCTION_CPI           6
36 #define VIC_CALL_FUNCTION_SINGLE_CPI    7
37
38 /* Now the QIC CPIs:  Since we don't need the two initial levels,
39  * these are 2 less than the VIC CPIs */
40 #define QIC_CPI_OFFSET                  1
41 #define QIC_TIMER_CPI                   (VIC_TIMER_CPI - QIC_CPI_OFFSET)
42 #define QIC_INVALIDATE_CPI              (VIC_INVALIDATE_CPI - QIC_CPI_OFFSET)
43 #define QIC_RESCHEDULE_CPI              (VIC_RESCHEDULE_CPI - QIC_CPI_OFFSET)
44 #define QIC_ENABLE_IRQ_CPI              (VIC_ENABLE_IRQ_CPI - QIC_CPI_OFFSET)
45 #define QIC_CALL_FUNCTION_CPI           (VIC_CALL_FUNCTION_CPI - QIC_CPI_OFFSET)
46 #define QIC_CALL_FUNCTION_SINGLE_CPI    (VIC_CALL_FUNCTION_SINGLE_CPI - QIC_CPI_OFFSET)
47
48 #define VIC_START_FAKE_CPI              VIC_TIMER_CPI
49 #define VIC_END_FAKE_CPI                VIC_CALL_FUNCTION_SINGLE_CPI
50
51 /* this is the SYS_INT CPI. */
52 #define VIC_SYS_INT                     8
53 #define VIC_CMN_INT                     15
54
55 /* This is the boot CPI for alternate processors.  It gets overwritten
56  * by the above once the system has activated all available processors */
57 #define VIC_CPU_BOOT_CPI                VIC_CPI_LEVEL0
58 #define VIC_CPU_BOOT_ERRATA_CPI         (VIC_CPI_LEVEL0 + 8)
59
60 #define NR_VECTORS 256
61 #define NR_IRQS 224
62 #define NR_IRQ_VECTORS NR_IRQS
63
64 #define FPU_IRQ                         13
65
66 #define FIRST_VM86_IRQ          3
67 #define LAST_VM86_IRQ           15
68 #define invalid_vm86_irq(irq)   ((irq) < 3 || (irq) > 15)
69
70 #ifndef __ASSEMBLY__
71 extern asmlinkage void vic_cpi_interrupt(void);
72 extern asmlinkage void vic_sys_interrupt(void);
73 extern asmlinkage void vic_cmn_interrupt(void);
74 extern asmlinkage void qic_timer_interrupt(void);
75 extern asmlinkage void qic_invalidate_interrupt(void);
76 extern asmlinkage void qic_reschedule_interrupt(void);
77 extern asmlinkage void qic_enable_irq_interrupt(void);
78 extern asmlinkage void qic_call_function_interrupt(void);
79 #endif /* !__ASSEMBLY__ */
80
81 #endif /* _ASM_IRQ_VECTORS_H */