ia64/xen-unstable

view xen/include/asm-x86/irq.h @ 5374:22e42640bcff

bitkeeper revision 1.1691.1.8 (42a6fb21d3oJwpLmOxa2jKHRJ-8fJg)

First phase of removing IRQ numbers from Xen (transitioning to
IRQ addressing by 'legacy ISA IRQ', 'interrupt vector', and
'I/O APIC address + pin' as appropriate). Overall plan is to move
I/O APIC parsing and setup out of Xen (so we start DOM0 in virtual wire
mode).
Signed-off-by: Keir Fraser <keir@xensource.com>
author kaf24@firebug.cl.cam.ac.uk
date Wed Jun 08 14:05:21 2005 +0000 (2005-06-08)
parents de3abc161c24
children 0be846d7d261
line source
1 #ifndef _ASM_HW_IRQ_H
2 #define _ASM_HW_IRQ_H
4 /* (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar */
6 #include <xen/config.h>
7 #include <asm/atomic.h>
8 #include <asm/asm_defns.h>
9 #include <irq_vectors.h>
11 #define IO_APIC_IRQ(irq) (((irq) >= 16) || ((1<<(irq)) & io_apic_irqs))
12 #define IO_APIC_VECTOR(irq) (irq_vector[irq])
13 #define LEGACY_VECTOR(irq) ((irq) + FIRST_EXTERNAL_VECTOR)
14 #define irq_to_vector(irq) \
15 (IO_APIC_IRQ(irq) ? IO_APIC_VECTOR(irq) : LEGACY_VECTOR(irq))
16 #define vector_to_irq(vec) (vector_irq[vec])
18 extern void disable_irq_nosync(unsigned int);
19 extern void enable_irq(unsigned int);
21 extern int vector_irq[NR_VECTORS];
22 extern u8 irq_vector[NR_IRQ_VECTORS];
23 #define AUTO_ASSIGN -1
25 #define platform_legacy_irq(irq) ((irq) < 16)
27 void disable_8259A_irq(unsigned int irq);
28 void enable_8259A_irq(unsigned int irq);
29 int i8259A_irq_pending(unsigned int irq);
30 void make_8259A_irq(unsigned int irq);
31 void init_8259A(int aeoi);
32 void send_IPI_self(int vector);
33 void init_VISWS_APIC_irqs(void);
34 void setup_IO_APIC(void);
35 void disable_IO_APIC(void);
36 void print_IO_APIC(void);
37 int IO_APIC_get_PCI_irq_vector(int bus, int slot, int fn);
38 void send_IPI(int dest, int vector);
39 void setup_ioapic_dest(void);
41 extern unsigned long io_apic_irqs;
43 extern atomic_t irq_err_count;
44 extern atomic_t irq_mis_count;
46 #endif /* _ASM_HW_IRQ_H */