libmetal
Macros | Typedefs | Functions
Interrupt Handling Interfaces

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 or register interrupt handling of a specific interrupt. 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...
 

Detailed Description

Macro Definition Documentation

◆ METAL_IRQ_HANDLED

#define METAL_IRQ_HANDLED   1

◆ METAL_IRQ_NOT_HANDLED

#define METAL_IRQ_NOT_HANDLED   0

IRQ handled status

Typedef Documentation

◆ metal_irq_handler

typedef int(* metal_irq_handler) (int irq, void *priv)

type of interrupt handler

Parameters
[in]irqinterrupt id
[in]privprivate data
Returns
irq handled status

Function Documentation

◆ metal_irq_disable()

void metal_irq_disable ( unsigned int  vector)

metal_irq_disable

Disables the given interrupt

Parameters
vector- interrupt vector number

◆ metal_irq_enable()

void metal_irq_enable ( unsigned int  vector)

metal_irq_enable

Enables the given interrupt

Parameters
vector- interrupt vector number

◆ metal_irq_register()

int metal_irq_register ( int  irq,
metal_irq_handler  irq_handler,
struct metal_device dev,
void *  drv_id 
)

Register interrupt or register interrupt handling of a specific interrupt.

If the interrupt handler parameter (irq_handler) is NULL, deregister the interrupt handler.

If the interrupt handler, device (dev), and driver ID (drv_id) are NULL, deregister all handlers corresponding to the interrupt.

If the interrupt handler is NULL, but either the device or the driver ID is not NULL, only deregister the interrupt handler Which has been registered with the same device and driver ID.

Parameters
[in]irqinterrupt id
[in]irq_handlerinterrupt handler
[in]devmetal device this irq belongs to
[in]drv_iddriver id. It can be used for driver data.
Returns
0 for success, non-zero on failure

◆ metal_irq_restore_enable()

void metal_irq_restore_enable ( unsigned int  flags)

restore interrupts to their previous state

Parameters
[in]flagsprevious interrupts state

◆ metal_irq_save_disable()

unsigned int metal_irq_save_disable ( void  )

disable interrupts

Returns
interrupts state