aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/generate_vectors.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--kernel/generate_vectors.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/kernel/generate_vectors.py b/kernel/generate_vectors.py
new file mode 100644
index 0000000..8471ef8
--- /dev/null
+++ b/kernel/generate_vectors.py
@@ -0,0 +1,19 @@
+if __name__ == "__main__":
+ with open("interrupts/vectors.s", "w") as f:
+ for i in range(256):
+ f.write("global vector" + '{}'.format(i) + "\n")
+ f.write("extern s_trap_start\n")
+ f.write("extern s_trap_end\n")
+ f.write("\n")
+ f.write("section .text\n")
+ f.write("align 4\n")
+ f.write("\n")
+ for i in range(256):
+ upper = '{0:02X}'.format((i >> 16) & 0xFF)
+ lower = '{0:02X}'.format(i & 0xFF)
+ f.write("vector" + '{}'.format(i) + ":\n")
+ f.write(" push 0x" + upper + "\n")
+ f.write(" push 0x" + lower + "\n")
+ f.write(" jmp s_trap_start\n")
+ f.write("\n")
+ f.write("\n")