irq.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * linux/include/asm-mips/tx3927/irq.h
  3. *
  4. * This file is subject to the terms and conditions of the GNU General Public
  5. * License. See the file "COPYING" in the main directory of this archive
  6. * for more details.
  7. *
  8. * Copyright (C) 2001 Toshiba Corporation
  9. */
  10. #ifndef __ASM_TX3927_IRQ_H
  11. #define __ASM_TX3927_IRQ_H
  12. #ifndef __ASSEMBLY__
  13. #include <asm/irq.h>
  14. struct tb_irq_space {
  15. struct tb_irq_space* next;
  16. int start_irqno;
  17. int nr_irqs;
  18. void (*mask_func)(int irq_nr, int space_id);
  19. void (*unmask_func)(int irq_no, int space_id);
  20. const char *name;
  21. int space_id;
  22. int can_share;
  23. };
  24. extern struct tb_irq_space* tb_irq_spaces;
  25. static __inline__ void add_tb_irq_space(struct tb_irq_space* sp)
  26. {
  27. sp->next = tb_irq_spaces;
  28. tb_irq_spaces = sp;
  29. }
  30. struct pt_regs;
  31. extern void
  32. toshibaboards_spurious(struct pt_regs *regs, int irq);
  33. extern void
  34. toshibaboards_irqdispatch(struct pt_regs *regs, int irq);
  35. extern struct irqaction *
  36. toshibaboards_get_irq_action(int irq);
  37. extern int
  38. toshibaboards_setup_irq(int irq, struct irqaction * new);
  39. extern int (*toshibaboards_gen_iack)(void);
  40. #endif /* !__ASSEMBLY__ */
  41. #define NR_ISA_IRQS 16
  42. #define TB_IRQ_IS_ISA(irq) \
  43. (0 <= (irq) && (irq) < NR_ISA_IRQS)
  44. #define TB_IRQ_TO_ISA_IRQ(irq) (irq)
  45. #endif /* __ASM_TX3927_IRQ_H */