summaryrefslogtreecommitdiff
path: root/interrupt/interrupt_enums.h.j2
diff options
context:
space:
mode:
authorVegard Storheil Eriksen <zyp@jvnv.net>2021-01-22 01:13:44 +0100
committerVegard Storheil Eriksen <zyp@jvnv.net>2021-01-22 01:13:44 +0100
commit1a38973eb8fd0f889f7c272e9ef183687034d550 (patch)
treea673e3eda50ee3ec1edbaf7534fafdd7073d1b47 /interrupt/interrupt_enums.h.j2
parent36efee9187390a52a99919b900b8faaea49be928 (diff)
interrupt: Refactor to be more flexible.
Diffstat (limited to 'interrupt/interrupt_enums.h.j2')
-rw-r--r--interrupt/interrupt_enums.h.j220
1 files changed, 12 insertions, 8 deletions
diff --git a/interrupt/interrupt_enums.h.j2 b/interrupt/interrupt_enums.h.j2
index cc05100..4d58077 100644
--- a/interrupt/interrupt_enums.h.j2
+++ b/interrupt/interrupt_enums.h.j2
@@ -1,13 +1,17 @@
#pragma once
-enum class Exception {
- {% for num, name in exceptions.items() %}
- {{ name }} = {{ num }},
- {% endfor %}
-};
+namespace interrupt {
+ {% for type, entries in interrupts.items() %}
+ enum class {{ type }} {
+ {% for num, name in entries.items() %}
+ {{ name }} = {{ num }},
+ {% endfor %}
+ };
+
+ template<{{ type }}>
+ void handler();
-enum class IRQ {
- {% for num, name in irqs.items() %}
- {{ name }} = {{ num }},
{% endfor %}
+
+ typedef void (*vector_t)();
};