Lines Matching refs:vector

108 status_t mask_interrupt(unsigned int vector) {  in mask_interrupt()  argument
109 LTRACEF("vector %u, current hart %u\n", vector, riscv_current_hart()); in mask_interrupt()
110 *REG32(PLIC_ENABLE(vector, riscv_current_hart())) &= ~(1 << (vector % 32)); in mask_interrupt()
114 status_t unmask_interrupt(unsigned int vector) { in unmask_interrupt() argument
115 LTRACEF("vector %u, current hart %u\n", vector, riscv_current_hart()); in unmask_interrupt()
116 *REG32(PLIC_ENABLE(vector, riscv_current_hart())) |= (1 << (vector % 32)); in unmask_interrupt()
121 void register_int_handler(unsigned int vector, int_handler handler, void *arg) { in register_int_handler() argument
122 LTRACEF("vector %u handler %p arg %p, hart %u\n", vector, handler, arg, riscv_current_hart()); in register_int_handler()
124 DEBUG_ASSERT(vector < num_irqs); in register_int_handler()
126 handlers[vector].handler = handler; in register_int_handler()
127 handlers[vector].arg = arg; in register_int_handler()
130 void register_int_handler_msi(unsigned int vector, int_handler handler, void *arg, bool edge) { in register_int_handler_msi() argument
136 uint32_t vector = *REG32(PLIC_CLAIM(riscv_current_hart())); in riscv_platform_irq() local
137 LTRACEF("vector %u\n", vector); in riscv_platform_irq()
139 if (unlikely(vector == 0)) { in riscv_platform_irq()
145 KEVLOG_IRQ_ENTER(vector); in riscv_platform_irq()
148 if (handlers[vector].handler) { in riscv_platform_irq()
149 ret = handlers[vector].handler(handlers[vector].arg); in riscv_platform_irq()
153 *REG32(PLIC_COMPLETE(riscv_current_hart())) = vector; in riscv_platform_irq()
155 KEVLOG_IRQ_EXIT(vector); in riscv_platform_irq()