irq.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. #ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND
  40. extern void tx_branch_likely_bug_fixup(struct pt_regs *regs);
  41. #endif
  42. extern int (*toshibaboards_gen_iack)(void);
  43. #endif /* !__ASSEMBLY__ */
  44. #define NR_ISA_IRQS 16
  45. #define TB_IRQ_IS_ISA(irq) \
  46. (0 <= (irq) && (irq) < NR_ISA_IRQS)
  47. #define TB_IRQ_TO_ISA_IRQ(irq) (irq)
  48. #endif /* __ASM_TX3927_IRQ_H */