diff --git a/miscellaneous/clion_settings.jar b/miscellaneous/clion_settings.jar new file mode 100644 index 0000000..5cada9d Binary files /dev/null and b/miscellaneous/clion_settings.jar differ diff --git a/x64/makefile b/x64/makefile index bfb4ad2..6e30f93 100644 --- a/x64/makefile +++ b/x64/makefile @@ -18,7 +18,7 @@ ALL_TARGET_DIRS := $(addprefix $(TARGET_DIR)/,$(call rdircard, $(SOURCE_DIR))) ASM_HEADER_DIRS := $(call rdircardex, $(SOURCE_DIR), *.inc) C_FLAGS := -std=c11 -g -c -mcmodel=kernel -fno-exceptions -ffreestanding -mno-red-zone -mno-mmx -mno-sse -mno-sse2 -masm=intel -Wall -Werror -Wextra -Wno-comment $(addprefix -I, $(HEADER_DIRS)) -ASM_FLAGS := -f elf64 -F dwarf -g $(addprefix -I, $(ASM_HEADER_DIRS)) +ASM_FLAGS := -w+all -f elf64 -F dwarf -g $(addprefix -I, $(ASM_HEADER_DIRS)) LD_FLAGS := -lgcc -nodefaultlibs -nostartfiles -nostdlib -Wl,-n -Wl,--build-id=none C_SRC := $(call rwildcard, $(SOURCE_DIR), *.c) diff --git a/x64/src/hal/hal_entry.asm b/x64/src/hal/hal_entry.asm index 00532a4..e4b010d 100644 --- a/x64/src/hal/hal_entry.asm +++ b/x64/src/hal/hal_entry.asm @@ -64,10 +64,10 @@ cld cmp eax,MULTIBOOT_LOADED_MAGIC je .loaded_by_grub hlt -.loaded_by_grub: +.loaded_by_grub: ; set stack pointer -mov esp, 0 +mov esp, GET_PADDR(hal_temp_stack) ; save multiboot_info* mov esi,ebx @@ -81,7 +81,7 @@ hlt .init_x64: ; disable paging first mov eax, cr0 ; Set the A-register to control register 0. -and eax, 01111111111111111111111111111111b ; Clear the PG-bit, which is bit 31. +and eax, 0x7FFFFFFF ; Clear the PG-bit, which is bit 31. mov cr0, eax ; Set control register 0 to the A-register. ; write values for pml4 @@ -188,13 +188,14 @@ KERNEL_HEAP_SIZE equ 8192 KERNEL_STACK_SIZE equ 8192 align 4096 ;4k alignment +hal_temp_heap: times KERNEL_HEAP_SIZE db 0 ; initially 8k heap - align 4096 ;4k alignment times KERNEL_STACK_SIZE db 0 ; initially 8k stack +hal_temp_stack: +; PAGE TABLES YA BOI GUZMA YO! align 4096 -; temporary page table PML4_BASE: times 512 dq 0 ;reserved the rest for page entries diff --git a/x64/src/hal/inc/hal_addr.inc b/x64/src/hal/inc/hal_addr.inc index 0dd54ab..52f665a 100644 --- a/x64/src/hal/inc/hal_addr.inc +++ b/x64/src/hal/inc/hal_addr.inc @@ -2,4 +2,6 @@ HAL_KERNEL_BASE_PADDR equ 0x1000000 ; #16 MB global HAL_KERNEL_BASE_PADDR HAL_KERNEL_BASE_VADDR equ 0xFFFFFFFF80000000 -global HAL_KERNEL_BASE_VADDR \ No newline at end of file +global HAL_KERNEL_BASE_VADDR + +%define GET_PADDR(x) x - HAL_KERNEL_BASE_VADDR \ No newline at end of file