~ubuntu-branches/debian/wheezy/linux-2.6/wheezy

« back to all changes in this revision

Viewing changes to arch/x86/include/asm/irq_vectors.h

  • Committer: Bazaar Package Importer
  • Author(s): Ben Hutchings, Ben Hutchings, Aurelien Jarno, Martin Michlmayr
  • Date: 2011-04-06 13:53:30 UTC
  • mfrom: (43.1.5 sid)
  • Revision ID: james.westby@ubuntu.com-20110406135330-wjufxhd0tvn3zx4z
Tags: 2.6.38-3
[ Ben Hutchings ]
* [ppc64] Add to linux-tools package architectures (Closes: #620124)
* [amd64] Save cr4 to mmu_cr4_features at boot time (Closes: #620284)
* appletalk: Fix bugs introduced when removing use of BKL
* ALSA: Fix yet another race in disconnection
* cciss: Fix lost command issue
* ath9k: Fix kernel panic in AR2427
* ses: Avoid kernel panic when lun 0 is not mapped
* PCI/ACPI: Report ASPM support to BIOS if not disabled from command line

[ Aurelien Jarno ]
* rtlwifi: fix build when PCI is not enabled.

[ Martin Michlmayr ]
* rtlwifi: Eliminate udelay calls with too large values (Closes: #620204)

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
#define MCE_VECTOR                      0x12
29
29
 
30
30
/*
31
 
 * IDT vectors usable for external interrupt sources start
32
 
 * at 0x20:
 
31
 * IDT vectors usable for external interrupt sources start at 0x20.
 
32
 * (0x80 is the syscall vector, 0x30-0x3f are for ISA)
33
33
 */
34
34
#define FIRST_EXTERNAL_VECTOR           0x20
35
 
 
 
35
/*
 
36
 * We start allocating at 0x21 to spread out vectors evenly between
 
37
 * priority levels. (0x80 is the syscall vector)
 
38
 */
 
39
#define VECTOR_OFFSET_START             1
 
40
 
 
41
/*
 
42
 * Reserve the lowest usable vector (and hence lowest priority)  0x20 for
 
43
 * triggering cleanup after irq migration. 0x21-0x2f will still be used
 
44
 * for device interrupts.
 
45
 */
 
46
#define IRQ_MOVE_CLEANUP_VECTOR         FIRST_EXTERNAL_VECTOR
 
47
 
 
48
#define IA32_SYSCALL_VECTOR             0x80
36
49
#ifdef CONFIG_X86_32
37
50
# define SYSCALL_VECTOR                 0x80
38
 
# define IA32_SYSCALL_VECTOR            0x80
39
 
#else
40
 
# define IA32_SYSCALL_VECTOR            0x80
41
51
#endif
42
52
 
43
53
/*
44
 
 * Reserve the lowest usable priority level 0x20 - 0x2f for triggering
45
 
 * cleanup after irq migration.
46
 
 */
47
 
#define IRQ_MOVE_CLEANUP_VECTOR         FIRST_EXTERNAL_VECTOR
48
 
 
49
 
/*
50
54
 * Vectors 0x30-0x3f are used for ISA interrupts.
 
55
 *   round up to the next 16-vector boundary
51
56
 */
52
 
#define IRQ0_VECTOR                     (FIRST_EXTERNAL_VECTOR + 0x10)
 
57
#define IRQ0_VECTOR                     ((FIRST_EXTERNAL_VECTOR + 16) & ~15)
53
58
 
54
59
#define IRQ1_VECTOR                     (IRQ0_VECTOR +  1)
55
60
#define IRQ2_VECTOR                     (IRQ0_VECTOR +  2)
106
111
/*
107
112
 * Generic system vector for platform specific use
108
113
 */
109
 
#define GENERIC_INTERRUPT_VECTOR        0xed
 
114
#define X86_PLATFORM_IPI_VECTOR         0xed
110
115
 
111
116
/*
112
 
 * Performance monitoring pending work vector:
 
117
 * IRQ work vector:
113
118
 */
114
 
#define LOCAL_PENDING_VECTOR            0xec
 
119
#define IRQ_WORK_VECTOR                 0xec
115
120
 
116
 
#define UV_BAU_MESSAGE                  0xec
 
121
#define UV_BAU_MESSAGE                  0xea
117
122
 
118
123
/*
119
124
 * Self IPI vector for machine checks
120
125
 */
121
126
#define MCE_SELF_VECTOR                 0xeb
122
127
 
123
 
/*
124
 
 * First APIC vector available to drivers: (vectors 0x30-0xee) we
125
 
 * start at 0x31(0x41) to spread out vectors evenly between priority
126
 
 * levels. (0x80 is the syscall vector)
127
 
 */
128
 
#define FIRST_DEVICE_VECTOR             (IRQ15_VECTOR + 2)
 
128
/* Xen vector callback to receive events in a HVM domain */
 
129
#define XEN_HVM_EVTCHN_CALLBACK         0xe9
129
130
 
130
131
#define NR_VECTORS                       256
131
132
 
154
155
 
155
156
#define NR_IRQS_LEGACY                    16
156
157
 
157
 
#define CPU_VECTOR_LIMIT                (  8 * NR_CPUS      )
158
158
#define IO_APIC_VECTOR_LIMIT            ( 32 * MAX_IO_APICS )
159
159
 
160
160
#ifdef CONFIG_X86_IO_APIC
161
161
# ifdef CONFIG_SPARSE_IRQ
 
162
#  define CPU_VECTOR_LIMIT              (64 * NR_CPUS)
162
163
#  define NR_IRQS                                       \
163
164
        (CPU_VECTOR_LIMIT > IO_APIC_VECTOR_LIMIT ?      \
164
165
                (NR_VECTORS + CPU_VECTOR_LIMIT)  :      \
165
166
                (NR_VECTORS + IO_APIC_VECTOR_LIMIT))
166
167
# else
167
 
#  if NR_CPUS < MAX_IO_APICS
168
 
#   define NR_IRQS                      (NR_VECTORS + 4*CPU_VECTOR_LIMIT)
169
 
#  else
170
 
#   define NR_IRQS                      (NR_VECTORS + IO_APIC_VECTOR_LIMIT)
171
 
#  endif
 
168
#  define CPU_VECTOR_LIMIT              (32 * NR_CPUS)
 
169
#  define NR_IRQS                                       \
 
170
        (CPU_VECTOR_LIMIT < IO_APIC_VECTOR_LIMIT ?      \
 
171
                (NR_VECTORS + CPU_VECTOR_LIMIT)  :      \
 
172
                (NR_VECTORS + IO_APIC_VECTOR_LIMIT))
172
173
# endif
173
174
#else /* !CONFIG_X86_IO_APIC: */
174
175
# define NR_IRQS                        NR_IRQS_LEGACY