diff options
| -rw-r--r-- | mos/sys/Makefile | 6 | ||||
| -rw-r--r-- | mos/sys/arch/x86_64/cpu/locore.S | 4 | ||||
| -rw-r--r-- | mos/sys/kern/Makefile | 16 | ||||
| -rw-r--r-- | mos/sys/kern/kern_init.c | 12 |
4 files changed, 37 insertions, 1 deletions
diff --git a/mos/sys/Makefile b/mos/sys/Makefile index 59b4a84..47f70b7 100644 --- a/mos/sys/Makefile +++ b/mos/sys/Makefile @@ -10,7 +10,11 @@ SYS_CFLAGS = ARCH = .PHONY: all -all: arch +all: kern arch + +.PHONY: kern +kern: + cd kern/; make CC=$(CC) LD=$(LD) SYS_CFLAGS="$(SYS_CFLAGS)" .PHONY: arch arch: diff --git a/mos/sys/arch/x86_64/cpu/locore.S b/mos/sys/arch/x86_64/cpu/locore.S index c8ffc4c..d96170b 100644 --- a/mos/sys/arch/x86_64/cpu/locore.S +++ b/mos/sys/arch/x86_64/cpu/locore.S @@ -5,10 +5,14 @@ .text .globl _start + .globl kern_main _start: cli cld + xor %rbp, %rbp /* Terminate callstack */ + call kern_main /* Call kernel main */ + 1: cli hlt jmp 1b diff --git a/mos/sys/kern/Makefile b/mos/sys/kern/Makefile new file mode 100644 index 0000000..1ee87c2 --- /dev/null +++ b/mos/sys/kern/Makefile @@ -0,0 +1,16 @@ +# +# Copyright (c) 2025, Ian Moffett. +# Provided under the BSD-3 clause. +# + +CFILES = $(shell find . -name "*.c") +OFILES = $(CFILES:.c=.o) + +SYS_CFLAGS = +CFLAGS = $(SYS_CFLAGS) -I../../../usr/sdk/inc/ + +.PHONY: all +all: $(OFILES) + +%.o: %.c + $(CC) -c $(CFLAGS) $< -o $@ diff --git a/mos/sys/kern/kern_init.c b/mos/sys/kern/kern_init.c new file mode 100644 index 0000000..62d73fb --- /dev/null +++ b/mos/sys/kern/kern_init.c @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2025, Ian Moffett. + * Provided under the BSD-3 clause. + */ + +/* Forward declaration */ +void kern_main(void); + +void +kern_main(void) +{ +} |
