Interrupts¶
API for registering and manipulating interrupts.
Typedefs
-
typedef enum metal_vector_mode_
metal_vector_mode
¶ Possible mode of interrupts to operate.
-
typedef void (*
metal_interrupt_handler_t
)(int, void *)¶ Function signature for interrupt callback handlers.
Enums
Functions
-
void
metal_interrupt_init
(struct metal_interrupt *controller)¶ Initialize a given interrupt controller.
Initialize a given interrupt controller. This function must be called before any interrupts are registered or enabled with the handler. It is invalid to initialize an interrupt controller more than once.
- Parameters
controller
: The handle for the interrupt controller
-
int
metal_interrupt_register_handler
(struct metal_interrupt *controller, int id, metal_interrupt_handler_t handler, void *priv_data)¶ Register an interrupt handler.
- Return
- 0 upon success
- Parameters
controller
: The handle for the interrupt controllerid
: The interrupt ID to registerhandler
: The interrupt handler callbackpriv_data
: Private data for the interrupt handler
-
int
metal_interrupt_enable
(struct metal_interrupt *controller, int id)¶ Enable an interrupt.
- Return
- 0 upon success
- Parameters
controller
: The handle for the interrupt controllerid
: The interrupt ID to enable
-
int
metal_interrupt_disable
(struct metal_interrupt *controller, int id)¶ Disable an interrupt.
- Return
- 0 upon success
- Parameters
controller
: The handle for the interrupt controllerid
: The interrupt ID to disable
-
int
metal_interrupt_vector_enable
(struct metal_interrupt *controller, int id, metal_vector_mode mode)¶ Enable an interrupt vector.
- Return
- 0 upon success
- Parameters
controller
: The handle for the interrupt controllerid
: The interrupt ID to enablemode
: The interrupt mode type to enable
-
int
metal_interrupt_vector_disable
(struct metal_interrupt *controller, int id)¶ Disable an interrupt vector.
- Return
- 0 upon success
- Parameters
controller
: The handle for the interrupt controllerid
: The interrupt ID to disable
-
struct
metal_interrupt
¶ - #include <interrupt.h>
A handle for an interrupt.