]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_GCC/freedom-metal/src/interrupt.c
1b3c6b8de64279302230d16fd7e7dce4ffa4eb3a
[freertos] / FreeRTOS / Demo / RISC-V_RV32_SiFive_HiFive1_GCC / freedom-metal / src / interrupt.c
1 /* Copyright 2018 SiFive, Inc */
2 /* SPDX-License-Identifier: Apache-2.0 */
3
4 #include <metal/interrupt.h>
5 #include <metal/machine.h>
6
7 extern inline void metal_interrupt_init(struct metal_interrupt *controller);
8
9 extern inline int metal_interrupt_register_handler(struct metal_interrupt *controller,
10                                                  int id,
11                                                  metal_interrupt_handler_t handler,
12                                                  void *priv);
13
14 extern inline int metal_interrupt_enable(struct metal_interrupt *controller, int id);
15
16 extern inline int metal_interrupt_disable(struct metal_interrupt *controller, int id);
17
18 extern inline int metal_interrupt_vector_enable(struct metal_interrupt *controller,
19                                                      int id, metal_vector_mode mode);
20
21 extern inline int metal_interrupt_vector_disable(struct metal_interrupt *controller, int id);
22
23 extern inline int _metal_interrupt_command_request(struct metal_interrupt *controller,
24                                                 int cmd, void *data);