| 166 | } |
| 167 | |
| 168 | rt_isr_handler_t rt_hw_interrupt_install(int vector, rt_isr_handler_t handler, |
| 169 | void *param, const char *name) |
| 170 | { |
| 171 | rt_isr_handler_t old_handler = RT_NULL; |
| 172 | |
| 173 | if (vector >= 0 && vector < MAX_INTR) |
| 174 | { |
| 175 | old_handler = irq_handle_table[vector].handler; |
| 176 | |
| 177 | #ifdef RT_USING_INTERRUPT_INFO |
| 178 | rt_strncpy(irq_handle_table[vector].name, name, RT_NAME_MAX); |
| 179 | #endif /* RT_USING_INTERRUPT_INFO */ |
| 180 | irq_handle_table[vector].handler = handler; |
| 181 | irq_handle_table[vector].param = param; |
| 182 | } |
| 183 | |
| 184 | if (vector <= 32) |
| 185 | { |
| 186 | mips_unmask_cpu_irq(2); |
| 187 | } |
| 188 | else |
| 189 | { |
| 190 | mips_unmask_cpu_irq(3); |
| 191 | } |
| 192 | |
| 193 | return old_handler; |
| 194 | } |
| 195 | |
| 196 | void rt_do_mips_cpu_irq(rt_uint32_t ip) |
| 197 | { |
no test coverage detected