irq.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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 <linux/config.h>
  14. #include <asm/irq.h>
  15. struct tb_irq_space {
  16. struct tb_irq_space* next;
  17. int start_irqno;
  18. int nr_irqs;
  19. void (*mask_func)(int irq_nr, int space_id);
  20. void (*unmask_func)(int irq_no, int space_id);
  21. const char *name;
  22. int space_id;
  23. int can_share;
  24. };
  25. extern struct tb_irq_space* tb_irq_spaces;
  26. static __inline__ void add_tb_irq_space(struct tb_irq_space* sp)
  27. {
  28. sp->next = tb_irq_spaces;
  29. tb_irq_spaces = sp;
  30. }
  31. struct pt_regs;
  32. extern void
  33. toshibaboards_spurious(struct pt_regs *regs, int irq);
  34. extern void
  35. toshibaboards_irqdispatch(struct pt_regs *regs, int irq);
  36. extern struct irqaction *
  37. toshibaboards_get_irq_action(int irq);
  38. extern int
  39. toshibaboards_setup_irq(int irq, struct irqaction * new);
  40. #ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND
  41. extern void tx_branch_likely_bug_fixup(struct pt_regs *regs);
  42. #endif
  43. extern int (*toshibaboards_gen_iack)(void);
  44. #endif /* !__ASSEMBLY__ */
  45. #define NR_ISA_IRQS 16
  46. #define TB_IRQ_IS_ISA(irq) \
  47. (0 <= (irq) && (irq) < NR_ISA_IRQS)
  48. #define TB_IRQ_TO_ISA_IRQ(irq) (irq)
  49. #endif /* __ASM_TX3927_IRQ_H */