diff options
author | dzwdz | 2021-07-10 17:41:32 +0200 |
---|---|---|
committer | dzwdz | 2021-07-10 17:41:32 +0200 |
commit | 1bf5e324005ce7122a195af106cec656960648dc (patch) | |
tree | 7a8394a5243ad50d1e8d5574d94908461fe96cc6 /src/platform/boot.s | |
parent | 6cbdc62b5cbe34d7355047722d6d483a4d25c7f3 (diff) |
a sensible source structure
The idea is that src/kernel/ is only allowed to interface with the
hardware using whatever's defined in src/arch/generic.h. I'll probably
write a small script for checking this later on.
This is a giant commit so I've probably fucked something up. It boots
fine on Bochs and QEMU, so at least there's that.
Diffstat (limited to 'src/platform/boot.s')
-rw-r--r-- | src/platform/boot.s | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/src/platform/boot.s b/src/platform/boot.s deleted file mode 100644 index d5bfda5..0000000 --- a/src/platform/boot.s +++ /dev/null @@ -1,47 +0,0 @@ -.set MAGIC, 0x1BADB002 -.set FLAG_ALIGN, 1<<0 /* align modules on page boundaries */ -.set FLAG_MEMINFO, 1<<1 /* memory map */ -.set FLAGS, FLAG_ALIGN | FLAG_MEMINFO -.set CHECKSUM, -(MAGIC + FLAGS) - -.section .multiboot -.align 4 -.long MAGIC -.long FLAGS -.long CHECKSUM - -/* a lil stack */ -.section .bss -.global stack_top -.type stack_top, @object -.align 16 -stack_bottom: -.skip 16384 -stack_top: - - -.section .text -.global _start -.type _start, @function -_start: - mov $stack_top, %esp - call kmain - -.global halt_cpu -.type halt_cpu, @function -halt_cpu: - cli -1: hlt - jmp 1b - -// temporary, will be moved to another file soon -.global change_cs -.type change_cs, @function -change_cs: - /* retf pops off the return address and code segment off the stack. - * it turns out that in the i386 cdecl calling convention they're in - * the correct place already. - */ - retf - -.size _start, . - _start |