stos: init: Add kernel C entry
Signed-off-by: Chloe M. <chloe@mensia.org>
This commit is contained in:
@@ -12,6 +12,9 @@ include ../../../mk/stos.mk
|
||||
ASMFILES = $(shell find . -name "*.S")
|
||||
ASMOFILES = $(ASMFILES:.S=.S.o)
|
||||
|
||||
MISC_OFILES = $(ASMOFILES)
|
||||
MISC_OFILES += $(shell find $(ST_PROJECT_ROOT)/paw/stos/ -name "*.o" | grep -v "arch")
|
||||
|
||||
KERNEL_PATH = \
|
||||
$(ST_PROJECT_ROOT)/artifacts/stoskrnl.sys
|
||||
CFLAGS = \
|
||||
@@ -23,7 +26,7 @@ all: bin
|
||||
.PHONY: bin
|
||||
bin: $(ASMOFILES)
|
||||
$(PROMPT) "LD" $(KERNEL_PATH)
|
||||
$(SYS_LD) -Tdevel/link.ld $(ASMOFILES) -o $(KERNEL_PATH)
|
||||
$(SYS_LD) -Tdevel/link.ld $(MISC_OFILES) -o $(KERNEL_PATH)
|
||||
|
||||
%.S.o: %.S
|
||||
$(PROMPT) "AS" $<
|
||||
|
||||
@@ -8,12 +8,14 @@
|
||||
|
||||
.text
|
||||
.globl _start
|
||||
.extern KiKernelEntry
|
||||
_start:
|
||||
cli /* Just in case */
|
||||
xor %rbp, %rbp /* Terminate callstack */
|
||||
|
||||
lea g_GDTR(%rip), %rdi
|
||||
call MdGdtLoad
|
||||
call KiKernelEntry
|
||||
|
||||
mfence /* Flush caches */
|
||||
1: cli /* Disable interrupts */
|
||||
|
||||
Reference in New Issue
Block a user