RTEMS  5.0.0
interrupt.h
Go to the documentation of this file.
1 
24 #ifndef _BFIN_INTERRUPT_H_
25 #define _BFIN_INTERRUPT_H_
26 
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
34 typedef enum {
35  IRQ_PLL_WAKEUP_INTERRUPT, /* 0 */
36  IRQ_DMA_ERROR_0, /* 1 */
37  IRQ_DMAR0_BLOCK_INTERRUPT, /* 2 */
38  IRQ_DMAR1_BLOCK_INTERRUPT, /* 3 */
39  IRQ_DMAR0_OVERFLOW_ERROR, /* 4 */
40  IRQ_DMAR1_OVERFLOW_ERROR, /* 5 */
41  IRQ_PPI_STATUS, /* 6 */
42  IRQ_MAC_STATUS, /* 7 */
43  IRQ_SPORT0_STATUS, /* 8 */
44  IRQ_SPORT1_STATUS, /* 9 */
45  IRQ_RESERVED_10, /* 10 */
46  IRQ_RESERVED_11, /* 11 */
47  IRQ_UART0_STATUS, /* 12 */
48  IRQ_UART1_STATUS, /* 13 */
49  IRQ_REAL_TIME_CLOCK, /* 14 */
50  IRQ_DMA0_PPI_NFC, /* 15 */
51  IRQ_DMA3_SPORT0_RX, /* 16 */
52  IRQ_DMA4_SPORT0_TX, /* 17 */
53  IRQ_DMA5_SPORT1_RX, /* 18 */
54  IRQ_DMA6_SPORT1_TX, /* 19 */
55  IRQ_TWI_INTERRUPT, /* 20 */
56  IRQ_DMA7_SPI, /* 21 */
57  IRQ_DMA8_UART0_RX, /* 22 */
58  IRQ_DMA9_UART0_TX, /* 23 */
59  IRQ_DMA10_UART1_RX, /* 24 */
60  IRQ_DMA11_UART1_TX, /* 25 */
61  IRQ_OTP, /* 26 */
62  IRQ_GP_COUNTER, /* 27 */
63  IRQ_DMA1_MAC_RX_HOSTDP, /* 28 */
64  IRQ_PORT_H_INTERRUPT_A, /* 29 */
65  IRQ_DMA2_MAC_TX_NFC, /* 30 */
66  IRQ_PORT_H_INTERRUPT_B, /* 31 */
67  SIC_ISR0_MAX, /* 32 ***/
68  IRQ_TIMER0 = SIC_ISR0_MAX, /* 32 */
69  IRQ_TIMER1, /* 33 */
70  IRQ_TIMER2, /* 34 */
71  IRQ_TIMER3, /* 35 */
72  IRQ_TIMER4, /* 36 */
73  IRQ_TIMER5, /* 37 */
74  IRQ_TIMER6, /* 38 */
75  IRQ_TIMER7, /* 39 */
76  IRQ_PORT_G_INTERRUPT_A, /* 40 */
77  IRQ_PORT_G_INTERRUPT_B, /* 41 */
78  IRQ_MDMA0_STREAM_0_INTERRUPT, /* 42 */
79  IRQ_MDMA1_STREAM_0_INTERRUPT, /* 43 */
80  IRQ_SOFTWARE_WATCHDOG_INTERRUPT, /* 44 */
81  IRQ_PORT_F_INTERRUPT_A, /* 45 */
82  IRQ_PORT_F_INTERRUPT_B, /* 46 */
83  IRQ_SPI_STATUS, /* 47 */
84  IRQ_NFC_STATUS, /* 48 */
85  IRQ_HOSTDP_STATUS, /* 49 */
86  IRQ_HOREAD_DONE_INTERRUPT, /* 50 */
87  IRQ_RESERVED_19, /* 51 */
88  IRQ_USB_INT0_INTERRUPT, /* 52 */
89  IRQ_USB_INT1_INTERRUPT, /* 53 */
90  IRQ_USB_INT2_INTERRUPT, /* 54 */
91  IRQ_USB_DMAINT, /* 55 */
92  IRQ_MAX, /* 56 */
93 } e_isr_t;
94 
95 
96 
97 
98 /* source is the source to the SIC (the bit number in SIC_ISR). isr is
99  the function that will be called when the interrupt is active. */
100 typedef struct bfin_isr_s {
101 #if INTERRUPT_USE_TABLE
102  e_isr_t source;
103  void (*pFunc)(void *arg);
104  void *pArg;
105  int priority;
106 #else
107  int source;
108  void (*isr)(void *arg);
109  void *_arg;
110  /* the following are for internal use only */
111  uint32_t mask0;
112  uint32_t mask1;
113  uint32_t vector;
114  struct bfin_isr_s *next;
115 #endif
116 } bfin_isr_t;
117 
124 
130 
136 void bfin_interrupt_init(void);
137 
138 
139 #ifdef __cplusplus
140 }
141 #endif
142 
143 #endif /* _BFIN_INTERRUPT_H_ */
144 
e_isr_t
Definition: interrupt.h:34
void bfin_interrupt_init(void)
Definition: interrupt.c:50
rtems_status_code
Classic API Status.
Definition: status.h:43
Definition: interrupt.h:100
rtems_status_code bfin_interrupt_register(bfin_isr_t *isr)
Definition: interrupt.c:98
rtems_status_code bfin_interrupt_unregister(bfin_isr_t *isr)
Definition: interrupt.c:126