| /* | 
|  * (C) Copyright 2007 Michal Simek | 
|  * | 
|  * Michal  SIMEK <monstr@monstr.cz> | 
|  * | 
|  * SPDX-License-Identifier:    GPL-2.0+ | 
|  */ | 
|   | 
| typedef volatile struct microblaze_intc_t { | 
|     int isr; /* interrupt status register */ | 
|     int ipr; /* interrupt pending register */ | 
|     int ier; /* interrupt enable register */ | 
|     int iar; /* interrupt acknowledge register */ | 
|     int sie; /* set interrupt enable bits */ | 
|     int cie; /* clear interrupt enable bits */ | 
|     int ivr; /* interrupt vector register */ | 
|     int mer; /* master enable register */ | 
| } microblaze_intc_t; | 
|   | 
| struct irq_action { | 
|     interrupt_handler_t *handler; /* pointer to interrupt rutine */ | 
|     void *arg; | 
|     int count; /* number of interrupt */ | 
| }; | 
|   | 
| /** | 
|  * 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); |