|
libmetal
|
Macros | |
| #define | METAL_IRQ_NOT_HANDLED 0 |
| #define | METAL_IRQ_HANDLED 1 |
Typedefs | |
| typedef int(* | metal_irq_handler) (int irq, void *priv) |
| type of interrupt handler More... | |
Functions | |
| int | metal_irq_register (int irq, metal_irq_handler irq_handler, struct metal_device *dev, void *drv_id) |
| Register interrupt handler for driver ID/device. More... | |
| int | metal_irq_unregister (int irq, metal_irq_handler irq_handler, struct metal_device *dev, void *drv_id) |
| Unregister interrupt handler for driver ID and/or device. More... | |
| unsigned int | metal_irq_save_disable (void) |
| disable interrupts More... | |
| void | metal_irq_restore_enable (unsigned int flags) |
| restore interrupts to their previous state More... | |
| void | metal_irq_enable (unsigned int vector) |
| metal_irq_enable More... | |
| void | metal_irq_disable (unsigned int vector) |
| metal_irq_disable More... | |
| #define METAL_IRQ_HANDLED 1 |
| #define METAL_IRQ_NOT_HANDLED 0 |
IRQ handled status
| typedef int(* metal_irq_handler) (int irq, void *priv) |
type of interrupt handler
| [in] | irq | interrupt id |
| [in] | priv | private data |
| void metal_irq_disable | ( | unsigned int | vector | ) |
metal_irq_disable
Disables the given interrupt
| vector | - interrupt vector number |
| void metal_irq_enable | ( | unsigned int | vector | ) |
metal_irq_enable
Enables the given interrupt
| vector | - interrupt vector number |
| int metal_irq_register | ( | int | irq, |
| metal_irq_handler | irq_handler, | ||
| struct metal_device * | dev, | ||
| void * | drv_id | ||
| ) |
Register interrupt handler for driver ID/device.
| [in] | irq | interrupt id |
| [in] | irq_handler | interrupt handler |
| [in] | dev | metal device this irq belongs to (can be NULL). |
| [in] | drv_id | driver id is a unique interrupt handler identifier. It can also be used for driver data. |
| void metal_irq_restore_enable | ( | unsigned int | flags | ) |
restore interrupts to their previous state
| [in] | flags | previous interrupts state |
| unsigned int metal_irq_save_disable | ( | void | ) |
disable interrupts
| int metal_irq_unregister | ( | int | irq, |
| metal_irq_handler | irq_handler, | ||
| struct metal_device * | dev, | ||
| void * | drv_id | ||
| ) |
Unregister interrupt handler for driver ID and/or device.
If interrupt handler (hd), driver ID (drv_id) and device (dev)
are NULL, unregister all handlers for this interrupt.
If interrupt handler (hd), device (dev) or driver ID (drv_id),
are not NULL, unregister handlers matching non NULL criterias.
e.g: when call is made with drv_id and dev non NULL,
all handlers matching both are unregistered.
If interrupt is not found, or other criterias not matching,
return -ENOENT
| [in] | irq | interrupt id |
| [in] | irq_handler | interrupt handler |
| [in] | dev | metal device this irq belongs to |
| [in] | drv_id | driver id. It can be used for driver data. |
1.8.16