2008-10-22 22:26:29 -07:00
# ifndef _ASM_X86_IRQ_H
# define _ASM_X86_IRQ_H
2008-05-02 22:14:44 +02:00
/*
* ( C ) 1992 , 1993 Linus Torvalds , ( C ) 1997 Ingo Molnar
*
* IRQ / IPI changes taken from work by Thomas Radke
* < tomsoft @ informatik . tu - chemnitz . de >
*/
# include <asm/apicdef.h>
# include <asm/irq_vectors.h>
static inline int irq_canonicalize ( int irq )
{
return ( ( irq = = 2 ) ? 9 : irq ) ;
}
2010-06-28 14:15:54 +02:00
# ifdef CONFIG_X86_32
extern void irq_ctx_init ( int cpu ) ;
2007-10-11 11:20:03 +02:00
# else
2008-05-02 22:14:44 +02:00
# define irq_ctx_init(cpu) do { } while (0)
# endif
2010-06-28 14:15:54 +02:00
# define __ARCH_HAS_DO_SOFTIRQ
2008-05-02 22:14:44 +02:00
# ifdef CONFIG_HOTPLUG_CPU
# include <linux/cpumask.h>
2008-12-16 17:33:58 -08:00
extern void fixup_irqs ( void ) ;
2009-10-26 14:24:34 -08:00
extern void irq_force_complete_move ( int ) ;
2007-10-11 11:20:03 +02:00
# endif
2008-05-02 22:14:44 +02:00
2009-10-14 09:22:57 -05:00
extern void ( * x86_platform_ipi_callback ) ( void ) ;
2008-05-02 22:14:44 +02:00
extern void native_init_IRQ ( void ) ;
2009-02-06 14:09:40 -08:00
extern bool handle_irq ( unsigned irq , struct pt_regs * regs ) ;
2008-05-02 22:14:44 +02:00
2009-02-06 14:09:41 -08:00
extern unsigned int do_IRQ ( struct pt_regs * regs ) ;
2008-05-02 22:14:44 +02:00
/* Interrupt vector management */
extern DECLARE_BITMAP ( used_vectors , NR_VECTORS ) ;
2008-12-19 15:23:44 -08:00
extern int vector_used_by_percpu_irq ( unsigned int vector ) ;
2008-05-02 22:14:44 +02:00
2009-08-20 09:41:38 +02:00
extern void init_ISA_irqs ( void ) ;
2008-10-22 22:26:29 -07:00
# endif /* _ASM_X86_IRQ_H */