2005-04-16 15:20:36 -07:00
/*
* include / asm - parisc / irq . h
*
* Copyright 2005 Matthew Wilcox < matthew @ wil . cx >
*/
# ifndef _ASM_PARISC_IRQ_H
# define _ASM_PARISC_IRQ_H
2005-11-17 16:28:37 -05:00
# include <linux/cpumask.h>
2005-04-16 15:20:36 -07:00
# include <asm/types.h>
# define NO_IRQ (-1)
# ifdef CONFIG_GSC
# define GSC_IRQ_BASE 16
# define GSC_IRQ_MAX 63
# define CPU_IRQ_BASE 64
# else
# define CPU_IRQ_BASE 16
# endif
# define TIMER_IRQ (CPU_IRQ_BASE + 0)
# define IPI_IRQ (CPU_IRQ_BASE + 1)
# define CPU_IRQ_MAX (CPU_IRQ_BASE + (BITS_PER_LONG - 1))
# define NR_IRQS (CPU_IRQ_MAX + 1)
static __inline__ int irq_canonicalize ( int irq )
{
return ( irq = = 2 ) ? 9 : irq ;
}
2006-08-13 22:25:45 -04:00
struct irq_chip ;
2011-02-06 20:45:52 +00:00
struct irq_data ;
2005-04-16 15:20:36 -07:00
2011-02-06 20:45:52 +00:00
void cpu_ack_irq ( struct irq_data * d ) ;
void cpu_eoi_irq ( struct irq_data * d ) ;
2005-04-16 15:20:36 -07:00
extern int txn_alloc_irq ( unsigned int nbits ) ;
extern int txn_claim_irq ( int ) ;
extern unsigned int txn_alloc_data ( unsigned int ) ;
extern unsigned long txn_alloc_addr ( unsigned int ) ;
2005-11-17 16:28:37 -05:00
extern unsigned long txn_affinity_addr ( unsigned int irq , int cpu ) ;
2005-04-16 15:20:36 -07:00
2006-08-13 22:25:45 -04:00
extern int cpu_claim_irq ( unsigned int irq , struct irq_chip * , void * ) ;
2011-02-06 20:45:52 +00:00
extern int cpu_check_affinity ( struct irq_data * d , const struct cpumask * dest ) ;
2005-04-16 15:20:36 -07:00
/* soft power switch support (power.c) */
extern struct tasklet_struct power_tasklet ;
# endif /* _ASM_PARISC_IRQ_H */