summaryrefslogtreecommitdiff
path: root/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_FreedomStudio/freedom-metal/src/interrupt.c
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_FreedomStudio/freedom-metal/src/interrupt.c')
-rw-r--r--FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_FreedomStudio/freedom-metal/src/interrupt.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_FreedomStudio/freedom-metal/src/interrupt.c b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_FreedomStudio/freedom-metal/src/interrupt.c
new file mode 100644
index 000000000..1b3c6b8de
--- /dev/null
+++ b/FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_FreedomStudio/freedom-metal/src/interrupt.c
@@ -0,0 +1,24 @@
+/* Copyright 2018 SiFive, Inc */
+/* SPDX-License-Identifier: Apache-2.0 */
+
+#include <metal/interrupt.h>
+#include <metal/machine.h>
+
+extern inline void metal_interrupt_init(struct metal_interrupt *controller);
+
+extern inline int metal_interrupt_register_handler(struct metal_interrupt *controller,
+ int id,
+ metal_interrupt_handler_t handler,
+ void *priv);
+
+extern inline int metal_interrupt_enable(struct metal_interrupt *controller, int id);
+
+extern inline int metal_interrupt_disable(struct metal_interrupt *controller, int id);
+
+extern inline int metal_interrupt_vector_enable(struct metal_interrupt *controller,
+ int id, metal_vector_mode mode);
+
+extern inline int metal_interrupt_vector_disable(struct metal_interrupt *controller, int id);
+
+extern inline int _metal_interrupt_command_request(struct metal_interrupt *controller,
+ int cmd, void *data);