Lines Matching refs:vector

23 static void rt_hw_interrupt_handler(int vector, void *param)  in rt_hw_interrupt_handler()  argument
25 rt_kprintf("Unhandled interrupt %d occured!!!\n", vector); in rt_hw_interrupt_handler()
70 void rt_hw_interrupt_mask(int vector) in rt_hw_interrupt_mask() argument
73 if ((vector < 0) || (vector >= INTERRUPTS_MAX)) in rt_hw_interrupt_mask()
78 index = (vector & 0xE0) != 0; in rt_hw_interrupt_mask()
79 vector = (vector & 0x1F); in rt_hw_interrupt_mask()
81 INTC->mask_reg[index] |= 1 << vector; in rt_hw_interrupt_mask()
89 void rt_hw_interrupt_umask(int vector) in rt_hw_interrupt_umask() argument
92 if ((vector < 0) || (vector >= INTERRUPTS_MAX)) in rt_hw_interrupt_umask()
97 index = (vector & 0xE0) != 0; in rt_hw_interrupt_umask()
98 vector = (vector & 0x1F); in rt_hw_interrupt_umask()
100 INTC->mask_reg[index] &= ~(1 << vector); in rt_hw_interrupt_umask()
111 rt_isr_handler_t rt_hw_interrupt_install(int vector, rt_isr_handler_t handler, in rt_hw_interrupt_install() argument
117 if ((vector < 0) || (vector >= INTERRUPTS_MAX)) in rt_hw_interrupt_install()
122 old_handler = isr_table[vector].handler; in rt_hw_interrupt_install()
125 rt_strncpy(isr_table[vector].name, name, RT_NAME_MAX); in rt_hw_interrupt_install()
127 isr_table[vector].handler = handler; in rt_hw_interrupt_install()
128 isr_table[vector].param = param; in rt_hw_interrupt_install()
130 index = (vector & 0xE0) != 0; in rt_hw_interrupt_install()
131 vector = (vector & 0x1F); in rt_hw_interrupt_install()
133 INTC->pend_reg[index] &= ~(0x1 << vector); in rt_hw_interrupt_install()
134 INTC->en_reg[index] |= 0x1 << vector; in rt_hw_interrupt_install()
142 int vector; in rt_interrupt_dispatch() local
146 vector = INTC->vector_reg - INTC->base_addr_reg; in rt_interrupt_dispatch()
147 vector = vector >> 2; in rt_interrupt_dispatch()
149 isr_func = isr_table[vector].handler; in rt_interrupt_dispatch()
150 param = isr_table[vector].param; in rt_interrupt_dispatch()
153 isr_func(vector, param); in rt_interrupt_dispatch()
156 index = (vector & 0xE0) != 0; in rt_interrupt_dispatch()
157 vector = (vector & 0x1F); in rt_interrupt_dispatch()
159 INTC->pend_reg[index] &= ~(0x1 << vector); in rt_interrupt_dispatch()
162 isr_table[vector].counter ++; in rt_interrupt_dispatch()