summaryrefslogtreecommitdiff
path: root/interrupt/default_handlers.cpp.j2
diff options
context:
space:
mode:
authorVegard Storheil Eriksen <zyp@jvnv.net>2021-01-16 01:25:21 +0100
committerVegard Storheil Eriksen <zyp@jvnv.net>2021-01-16 01:25:21 +0100
commit172d694cf7ba582635ac38454bad0f0fdaa14773 (patch)
treeefb0d145ed7fb3eeb44541714568680a6451ab3d /interrupt/default_handlers.cpp.j2
parent9921c9db409ad5b00fe4a43a2459e2fd2de6b0cf (diff)
interrupt: Generate interrupts from platform spec.
Diffstat (limited to 'interrupt/default_handlers.cpp.j2')
-rw-r--r--interrupt/default_handlers.cpp.j219
1 files changed, 19 insertions, 0 deletions
diff --git a/interrupt/default_handlers.cpp.j2 b/interrupt/default_handlers.cpp.j2
new file mode 100644
index 0000000..cc4c16d
--- /dev/null
+++ b/interrupt/default_handlers.cpp.j2
@@ -0,0 +1,19 @@
+#include "interrupt.h"
+
+extern "C" void default_blocking_handler() {
+ while(1);
+}
+
+{% for exc in exceptions.values() %}
+template<>
+[[gnu::weak, gnu::alias("default_blocking_handler")]]
+void interrupt<Exception::{{ exc }}>();
+
+{% endfor %}
+
+{% for irq in irqs.values() %}
+template<>
+[[gnu::weak, gnu::alias("default_blocking_handler")]]
+void interrupt<IRQ::{{ irq }}>();
+
+{% endfor %}