aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/loader.s
diff options
context:
space:
mode:
authorRobin Krahl <robin.krahl@ireas.org>2017-03-05 21:43:19 +0100
committerRobin Krahl <robin.krahl@ireas.org>2017-03-05 21:43:19 +0100
commitd42b629d983de336ddd3c22782caa2791ab78897 (patch)
treeac3a3052c154ca88803df5754eb6c8459e246b2f /arch/x86_64/loader.s
downloadgarmos-d42b629d983de336ddd3c22782caa2791ab78897.tar.gz
garmos-d42b629d983de336ddd3c22782caa2791ab78897.tar.bz2
initial commit
Diffstat (limited to 'arch/x86_64/loader.s')
-rw-r--r--arch/x86_64/loader.s27
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/x86_64/loader.s b/arch/x86_64/loader.s
new file mode 100644
index 0000000..b283a64
--- /dev/null
+++ b/arch/x86_64/loader.s
@@ -0,0 +1,27 @@
+.set MAGIC, 0x1badb002
+.set FLAGS, (1<<0 | 1<<1)
+.set CHECKSUM, -(MAGIC + FLAGS)
+
+.section .multiboot
+ .long MAGIC
+ .long FLAGS
+ .long CHECKSUM
+
+.section .text
+.extern kernel_main
+.global loader
+
+loader:
+ mov $kernel_stack, %esp
+ push %eax
+ push %ebx
+ call kernel_main
+
+_stop:
+ cli
+ hlt
+ jmp _stop
+
+.section .bss
+.space 2*1024*1024 # 2 MiB
+kernel_stack: