[HAL]
[reactos.git] / reactos / hal / halppc / include / halirq.h
1 /*
2 * $Id: halirq.h 23669 2006-08-23 16:58:43Z ion $
3 */
4
5 #pragma once
6
7 #ifdef CONFIG_SMP
8
9 #define FIRST_DEVICE_VECTOR (0x30)
10 #define FIRST_SYSTEM_VECTOR (0xef)
11
12 #define IRQ_BASE FIRST_DEVICE_VECTOR
13 #define NR_IRQS (FIRST_SYSTEM_VECTOR - FIRST_DEVICE_VECTOR)
14
15 /*
16 * FIXME:
17 * This does not work if we have more than 24 IRQs (ie. more than one I/O APIC)
18 */
19 #define VECTOR2IRQ(vector) (23 - (vector - IRQ_BASE) / 8)
20 #define VECTOR2IRQL(vector) (PROFILE_LEVEL - VECTOR2IRQ(vector))
21 #define IRQ2VECTOR(irq) (((23 - (irq)) * 8) + FIRST_DEVICE_VECTOR)
22
23 #else
24
25 #define IRQ_BASE (0x30)
26 #define NR_IRQS (16)
27
28 #define VECTOR2IRQ(vector) ((vector) - IRQ_BASE)
29 #define VECTOR2IRQL(vector) (PROFILE_LEVEL - VECTOR2IRQ(vector))
30 #define IRQ2VECTOR(irq) ((irq) + IRQ_BASE)
31
32 #endif