mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-27 14:14:37 +08:00
microblaze: intc: Registering interrupt should return value
Return value to find out if un/registration was succesful. Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
parent
e35c05baa1
commit
8706908a25
@ -91,14 +91,13 @@ static void disable_one_interrupt(int irq)
|
||||
#endif
|
||||
}
|
||||
|
||||
/* adding new handler for interrupt */
|
||||
void install_interrupt_handler (int irq, interrupt_handler_t * hdlr, void *arg)
|
||||
int install_interrupt_handler(int irq, interrupt_handler_t *hdlr, void *arg)
|
||||
{
|
||||
struct irq_action *act;
|
||||
/* irq out of range */
|
||||
if ((irq < 0) || (irq > irq_no)) {
|
||||
puts ("IRQ out of range\n");
|
||||
return;
|
||||
return -1;
|
||||
}
|
||||
act = &vecs[irq];
|
||||
if (hdlr) { /* enable */
|
||||
@ -106,11 +105,14 @@ void install_interrupt_handler (int irq, interrupt_handler_t * hdlr, void *arg)
|
||||
act->arg = arg;
|
||||
act->count = 0;
|
||||
enable_one_interrupt (irq);
|
||||
} else { /* disable */
|
||||
act->handler = (interrupt_handler_t *) def_hdlr;
|
||||
act->arg = (void *)irq;
|
||||
disable_one_interrupt (irq);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Disable */
|
||||
act->handler = (interrupt_handler_t *) def_hdlr;
|
||||
act->arg = (void *)irq;
|
||||
disable_one_interrupt(irq);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* initialization interrupt controller - hardware */
|
||||
|
@ -39,7 +39,16 @@ struct irq_action {
|
||||
int count; /* number of interrupt */
|
||||
};
|
||||
|
||||
void install_interrupt_handler (int irq, interrupt_handler_t * hdlr,
|
||||
/**
|
||||
* Register and unregister interrupt handler rutines
|
||||
*
|
||||
* @param irq IRQ number
|
||||
* @param hdlr Interrupt handler rutine
|
||||
* @param arg Pointer to argument which is passed to int. handler rutine
|
||||
* @return 0 if registration pass, 1 if unregistration pass,
|
||||
* or an error code < 0 otherwise
|
||||
*/
|
||||
int install_interrupt_handler(int irq, interrupt_handler_t *hdlr,
|
||||
void *arg);
|
||||
|
||||
int interrupts_init(void);
|
||||
|
Loading…
Reference in New Issue
Block a user