Subversion Repositories shark

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
424 giacomo 1
#ifndef _ASM_IRQ_VECTORS_H
2
#define _ASM_IRQ_VECTORS_H
3
 
4
/*
5
 * IDT vectors usable for external interrupt sources start
6
 * at 0x20:
7
 */
8
#define FIRST_EXTERNAL_VECTOR   0x20
9
 
10
#define SYSCALL_VECTOR          0x80
11
 
12
/*
13
 * Vectors 0x20-0x2f are used for ISA interrupts.
14
 */
15
 
16
/*
17
 * Special IRQ vectors used by the SMP architecture, 0xf0-0xff
18
 *
19
 *  some of the following vectors are 'rare', they are merged
20
 *  into a single vector (CALL_FUNCTION_VECTOR) to save vector space.
21
 *  TLB, reschedule and local APIC vectors are performance-critical.
22
 *
23
 *  Vectors 0xf0-0xfa are free (reserved for future Linux use).
24
 */
25
#define SPURIOUS_APIC_VECTOR    0xff
26
#define ERROR_APIC_VECTOR       0xfe
27
#define INVALIDATE_TLB_VECTOR   0xfd
28
#define RESCHEDULE_VECTOR       0xfc
29
#define CALL_FUNCTION_VECTOR    0xfb
30
 
31
#define THERMAL_APIC_VECTOR     0xf0
32
/*
33
 * Local APIC timer IRQ vector is on a different priority level,
34
 * to work around the 'lost local interrupt if more than 2 IRQ
35
 * sources per level' errata.
36
 */
37
#define LOCAL_TIMER_VECTOR      0xef
38
 
39
/*
40
 * First APIC vector available to drivers: (vectors 0x30-0xee)
41
 * we start at 0x31 to spread out vectors evenly between priority
42
 * levels. (0x80 is the syscall vector)
43
 */
44
#define FIRST_DEVICE_VECTOR     0x31
45
#define FIRST_SYSTEM_VECTOR     0xef
46
 
47
#define TIMER_IRQ 0
48
 
49
/*
50
 *
51
 */
52
#define NR_IRQS 224
53
#define NR_IRQ_VECTORS NR_IRQS
54
 
55
#define FPU_IRQ                 13
56
 
57
#define FIRST_VM86_IRQ          3
58
#define LAST_VM86_IRQ           15
59
#define invalid_vm86_irq(irq)   ((irq) < 3 || (irq) > 15)
60
 
61
#endif /* _ASM_IRQ_VECTORS_H */