libmetal
|
Linux libmetal irq operations. More...
#include <pthread.h>
#include <sched.h>
#include <metal/device.h>
#include <metal/irq.h>
#include <metal/sys.h>
#include <metal/mutex.h>
#include <metal/list.h>
#include <metal/utilities.h>
#include <metal/alloc.h>
#include <sys/time.h>
#include <sys/eventfd.h>
#include <stdint.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
#include <poll.h>
Data Structures | |
struct | metal_irq_hddesc |
struct | metal_irqs_state |
Macros | |
#define | MAX_IRQS FD_SETSIZE |
#define | METAL_IRQ_STOP 0xFFFFFFFF |
Functions | |
int | metal_irq_register (int irq, metal_irq_handler hd, struct metal_device *dev, void *drv_id) |
Register interrupt handler for driver ID/device. More... | |
int | metal_irq_unregister (int irq, metal_irq_handler hd, struct metal_device *dev, void *drv_id) |
Unregister interrupt handler for driver ID and/or device. More... | |
unsigned int | metal_irq_save_disable () |
disable interrupts More... | |
void | metal_irq_restore_enable (unsigned flags) |
void | metal_irq_enable (unsigned int vector) |
metal_irq_enable More... | |
void | metal_irq_disable (unsigned int vector) |
metal_irq_disable More... | |
static void * | metal_linux_irq_handling (void *args) |
IRQ handler. More... | |
int | metal_linux_irq_init () |
irq handling initialization More... | |
void | metal_linux_irq_shutdown () |
irq handling shutdown More... | |
Variables | |
struct metal_irqs_state | _irqs |
Linux libmetal irq operations.
#define MAX_IRQS FD_SETSIZE |
maximum number of irqs
#define METAL_IRQ_STOP 0xFFFFFFFF |
stop interrupts handling thread
void metal_irq_restore_enable | ( | unsigned | flags | ) |
|
static |
IRQ handler.
[in] | args | not used. required for pthread. |
< irq handler descriptor
< metal device IRQ belongs to
< flag to indicate if irq is handled
int metal_linux_irq_init | ( | ) |
irq handling initialization
void metal_linux_irq_shutdown | ( | ) |
irq handling shutdown
struct metal_irqs_state _irqs |