From 22fbbf849497c32f5b237ab70e9ed8aef63e54cf Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 14 Jul 2025 15:21:32 +0000 Subject: libs: extract multiboot library --- arch/x86_64/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 57b3a60..bd06ea7 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -69,6 +69,10 @@ target_sources("_memory" PRIVATE "src/memory/heap/global_heap_allocator.cpp" ) +target_link_libraries("_memory" PUBLIC + "multiboot2::multiboot2" +) + #[============================================================================[ # The STL Library #]============================================================================] -- cgit v1.2.3 From e7eedd234954509f4f5ec52b2d62cbc4a1723936 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 14 Jul 2025 15:39:09 +0000 Subject: libs: begin extraction of kernel std --- arch/x86_64/CMakeLists.txt | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index bd06ea7..511fe43 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -71,14 +71,7 @@ target_sources("_memory" PRIVATE target_link_libraries("_memory" PUBLIC "multiboot2::multiboot2" -) - -#[============================================================================[ -# The STL Library -#]============================================================================] - -target_sources("_stl" PRIVATE - "src/stl/mutex.cpp" + "libs::kstd" ) #[============================================================================[ @@ -115,6 +108,10 @@ target_sources("_context" PRIVATE "src/context_switching/interrupt_descriptor_table/segment_selector.cpp" ) +target_link_libraries("_context" PUBLIC + "libs::kstd" +) + #[============================================================================[ # The Interrupt Handlers #]============================================================================] -- cgit v1.2.3 From 1b603d1145b9ee10b1b12a0f765bd2bc1ebe2b3c Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 14 Jul 2025 15:39:59 +0000 Subject: libs: rename multiboot alias --- arch/x86_64/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 511fe43..c8ff216 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -70,8 +70,8 @@ target_sources("_memory" PRIVATE ) target_link_libraries("_memory" PUBLIC - "multiboot2::multiboot2" "libs::kstd" + "libs::multiboot2" ) #[============================================================================[ -- cgit v1.2.3 From ec572bff8150e2f8cd2dc99e053c5e8c8a0b99e3 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 14 Jul 2025 16:25:00 +0000 Subject: arch: prepare interfaces --- arch/x86_64/CMakeLists.txt | 314 +++++++++++++++++++++++++-------------------- 1 file changed, 178 insertions(+), 136 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index c8ff216..19bc78c 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -1,156 +1,198 @@ -#[============================================================================[ -# The Kernel Library -#]============================================================================] - -set(TEACHOS_KERNEL_LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/kernel.ld") -mark_as_advanced(TEACHOS_KERNEL_LINKER_SCRIPT) - -target_sources("_kernel" PRIVATE - "src/kernel/main.cpp" - "src/kernel/cpu/control_register.cpp" - "src/kernel/cpu/gdtr.cpp" - "src/kernel/cpu/idtr.cpp" - "src/kernel/cpu/if.cpp" - "src/kernel/cpu/call.cpp" - "src/kernel/cpu/msr.cpp" - "src/kernel/cpu/segment_register.cpp" - "src/kernel/cpu/tlb.cpp" - "src/kernel/cpu/tr.cpp" -) - -target_link_options("_kernel" PRIVATE - "-T${TEACHOS_KERNEL_LINKER_SCRIPT}" -) - -set_target_properties("_kernel" PROPERTIES - LINK_DEPENDS "${TEACHOS_KERNEL_LINKER_SCRIPT}" -) +add_library("arch-x86_64" OBJECT) +add_library("arch::x86_64" ALIAS "arch-x86_64") -#[============================================================================[ -# The Bootstrap Library -#]============================================================================] - -target_sources("_boot" PRIVATE - "src/boot/boot.s" - "src/boot/crti.s" - "src/boot/crtn.s" - "src/boot/multiboot.s" +target_include_directories("arch-x86_64" PUBLIC + "include" ) -#[============================================================================[ -# The Video Library -#]============================================================================] +target_link_libraries("arch-x86_64" PUBLIC + "kern" -target_sources("_video" PRIVATE - "src/video/vga/text.cpp" + "libs::multiboot2" ) -#[============================================================================[ -# The Memory Library -#]============================================================================] - -target_sources("_memory" PRIVATE - "src/memory/main.cpp" - "src/memory/multiboot/elf_symbols_section.cpp" - "src/memory/multiboot/reader.cpp" - "src/memory/allocator/area_frame_allocator.cpp" - "src/memory/allocator/tiny_frame_allocator.cpp" - "src/memory/allocator/physical_frame.cpp" - "src/memory/paging/page_entry.cpp" - "src/memory/paging/page_table.cpp" - "src/memory/paging/temporary_page.cpp" - "src/memory/paging/virtual_page.cpp" - "src/memory/paging/active_page_table.cpp" - "src/memory/paging/inactive_page_table.cpp" - "src/memory/heap/bump_allocator.cpp" - "src/memory/heap/user_heap_allocator.cpp" - "src/memory/heap/memory_block.cpp" - "src/memory/heap/linked_list_allocator.cpp" - "src/memory/heap/global_heap_allocator.cpp" +target_link_options("arch-x86_64" PUBLIC + "-T${CMAKE_CURRENT_SOURCE_DIR}/scripts/kernel.ld" ) -target_link_libraries("_memory" PUBLIC - "libs::kstd" - "libs::multiboot2" +set_target_properties("arch-x86_64" PROPERTIES + LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/kernel.ld" ) #[============================================================================[ -# The Exception handling Library +# arch::any Implementation #]============================================================================] -target_sources("_exception" PRIVATE - "src/exception_handling/assert.cpp" - "src/exception_handling/abort.cpp" - "src/exception_handling/panic.cpp" - "src/exception_handling/pure_virtual.cpp" +target_sources("arch-x86_64" PRIVATE + "src/io.cpp" + "src/memory.cpp" + "src/system.cpp" ) #[============================================================================[ -# The Context switching Library +# Bootstrap Code #]============================================================================] -target_sources("_context" PRIVATE - "src/context_switching/segment_descriptor_table/access_byte.cpp" - "src/context_switching/segment_descriptor_table/gdt_flags.cpp" - "src/context_switching/segment_descriptor_table/global_descriptor_table_pointer.cpp" - "src/context_switching/segment_descriptor_table/global_descriptor_table.cpp" - "src/context_switching/segment_descriptor_table/segment_descriptor_base.cpp" - "src/context_switching/segment_descriptor_table/segment_descriptor_extension.cpp" - "src/context_switching/main.cpp" - "src/context_switching/syscall/main.cpp" - "src/context_switching/syscall/syscall_enable.cpp" - "src/context_switching/syscall/syscall_handler.cpp" - "src/context_switching/interrupt_descriptor_table/gate_descriptor.cpp" - "src/context_switching/interrupt_descriptor_table/idt_flags.cpp" - "src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table_pointer.cpp" - "src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table.cpp" - "src/context_switching/interrupt_descriptor_table/ist_offset.cpp" - "src/context_switching/interrupt_descriptor_table/segment_selector.cpp" +target_sources("arch-x86_64" PRIVATE + "src/boot/boot.s" + "src/boot/crti.s" + "src/boot/crtn.s" + "src/boot/multiboot.s" ) -target_link_libraries("_context" PUBLIC - "libs::kstd" -) - -#[============================================================================[ -# The Interrupt Handlers -#]============================================================================] - -target_sources("_interrupt_handling" PRIVATE - "src/interrupt_handling/generic_interrupt_handler.cpp" -) - -#[============================================================================[ -# The User code -#]============================================================================] - -target_sources("_context" PRIVATE - "src/user/main.cpp" -) - -#[============================================================================[ -# The Bootable ISO Image -#]============================================================================] - -find_package("grub-mkrescue") - -if(grub-mkrescue_FOUND) - file(GENERATE - OUTPUT "isofs/boot/grub/grub.cfg" - INPUT "support/grub.cfg.in" - ) - - add_custom_target("bootable-iso" - COMMAND "${GRUB_MKRESCUE_EXE}" - "-o" - "${PROJECT_BINARY_DIR}/teachos-$.iso" - "${CMAKE_CURRENT_BINARY_DIR}/isofs" - "$" - "2>/dev/null" - DEPENDS - "$" - "isofs/boot/grub/grub.cfg" - BYPRODUCTS "${PROJECT_BINARY_DIR}/teachos-$.iso" - COMMENT "Creating bootable ISO image" - ) -endif() +# #[============================================================================[ +# # The Kernel Library +# #]============================================================================] + +# set(TEACHOS_KERNEL_LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/kernel.ld") +# mark_as_advanced(TEACHOS_KERNEL_LINKER_SCRIPT) + +# target_sources("_kernel" PRIVATE +# "src/kernel/main.cpp" +# "src/kernel/cpu/control_register.cpp" +# "src/kernel/cpu/gdtr.cpp" +# "src/kernel/cpu/idtr.cpp" +# "src/kernel/cpu/if.cpp" +# "src/kernel/cpu/call.cpp" +# "src/kernel/cpu/msr.cpp" +# "src/kernel/cpu/segment_register.cpp" +# "src/kernel/cpu/tlb.cpp" +# "src/kernel/cpu/tr.cpp" +# ) + +# target_link_options("_kernel" PRIVATE +# "-T${TEACHOS_KERNEL_LINKER_SCRIPT}" +# ) + +# set_target_properties("_kernel" PROPERTIES +# LINK_DEPENDS "${TEACHOS_KERNEL_LINKER_SCRIPT}" +# ) + +# #[============================================================================[ +# # The Bootstrap Library +# #]============================================================================] + +# target_sources("_boot" PRIVATE +# "src/boot/boot.s" +# "src/boot/crti.s" +# "src/boot/crtn.s" +# "src/boot/multiboot.s" +# ) + +# #[============================================================================[ +# # The Video Library +# #]============================================================================] + +# target_sources("_video" PRIVATE +# "src/video/vga/text.cpp" +# ) + +# #[============================================================================[ +# # The Memory Library +# #]============================================================================] + +# target_sources("_memory" PRIVATE +# "src/memory/main.cpp" +# "src/memory/multiboot/elf_symbols_section.cpp" +# "src/memory/multiboot/reader.cpp" +# "src/memory/allocator/area_frame_allocator.cpp" +# "src/memory/allocator/tiny_frame_allocator.cpp" +# "src/memory/allocator/physical_frame.cpp" +# "src/memory/paging/page_entry.cpp" +# "src/memory/paging/page_table.cpp" +# "src/memory/paging/temporary_page.cpp" +# "src/memory/paging/virtual_page.cpp" +# "src/memory/paging/active_page_table.cpp" +# "src/memory/paging/inactive_page_table.cpp" +# "src/memory/heap/bump_allocator.cpp" +# "src/memory/heap/user_heap_allocator.cpp" +# "src/memory/heap/memory_block.cpp" +# "src/memory/heap/linked_list_allocator.cpp" +# "src/memory/heap/global_heap_allocator.cpp" +# ) + +# target_link_libraries("_memory" PUBLIC +# "libs::kstd" +# "libs::multiboot2" +# ) + +# #[============================================================================[ +# # The Exception handling Library +# #]============================================================================] + +# target_sources("_exception" PRIVATE +# "src/exception_handling/assert.cpp" +# "src/exception_handling/abort.cpp" +# "src/exception_handling/panic.cpp" +# "src/exception_handling/pure_virtual.cpp" +# ) + +# #[============================================================================[ +# # The Context switching Library +# #]============================================================================] + +# target_sources("_context" PRIVATE +# "src/context_switching/segment_descriptor_table/access_byte.cpp" +# "src/context_switching/segment_descriptor_table/gdt_flags.cpp" +# "src/context_switching/segment_descriptor_table/global_descriptor_table_pointer.cpp" +# "src/context_switching/segment_descriptor_table/global_descriptor_table.cpp" +# "src/context_switching/segment_descriptor_table/segment_descriptor_base.cpp" +# "src/context_switching/segment_descriptor_table/segment_descriptor_extension.cpp" +# "src/context_switching/main.cpp" +# "src/context_switching/syscall/main.cpp" +# "src/context_switching/syscall/syscall_enable.cpp" +# "src/context_switching/syscall/syscall_handler.cpp" +# "src/context_switching/interrupt_descriptor_table/gate_descriptor.cpp" +# "src/context_switching/interrupt_descriptor_table/idt_flags.cpp" +# "src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table_pointer.cpp" +# "src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table.cpp" +# "src/context_switching/interrupt_descriptor_table/ist_offset.cpp" +# "src/context_switching/interrupt_descriptor_table/segment_selector.cpp" +# ) + +# target_link_libraries("_context" PUBLIC +# "libs::kstd" +# ) + +# #[============================================================================[ +# # The Interrupt Handlers +# #]============================================================================] + +# target_sources("_interrupt_handling" PRIVATE +# "src/interrupt_handling/generic_interrupt_handler.cpp" +# ) + +# #[============================================================================[ +# # The User code +# #]============================================================================] + +# target_sources("_context" PRIVATE +# "src/user/main.cpp" +# ) + +# #[============================================================================[ +# # The Bootable ISO Image +# #]============================================================================] + +# find_package("grub-mkrescue") + +# if(grub-mkrescue_FOUND) +# file(GENERATE +# OUTPUT "isofs/boot/grub/grub.cfg" +# INPUT "support/grub.cfg.in" +# ) + +# add_custom_target("bootable-iso" +# COMMAND "${GRUB_MKRESCUE_EXE}" +# "-o" +# "${PROJECT_BINARY_DIR}/teachos-$.iso" +# "${CMAKE_CURRENT_BINARY_DIR}/isofs" +# "$" +# "2>/dev/null" +# DEPENDS +# "$" +# "isofs/boot/grub/grub.cfg" +# BYPRODUCTS "${PROJECT_BINARY_DIR}/teachos-$.iso" +# COMMENT "Creating bootable ISO image" +# ) +# endif() -- cgit v1.2.3 From d1aaaeb615e148a13f46223c84819ba828e5209f Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 14 Jul 2025 16:42:26 +0000 Subject: arch: make linkable --- arch/x86_64/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 19bc78c..dd54b39 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -6,8 +6,7 @@ target_include_directories("arch-x86_64" PUBLIC ) target_link_libraries("arch-x86_64" PUBLIC - "kern" - + "arch::any" "libs::multiboot2" ) -- cgit v1.2.3 From 3a47a8bd0edcfa3aa03562d0a5c390ef85ad0c6b Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 14 Jul 2025 21:08:02 +0000 Subject: x86_64: move basic text output implementation --- arch/x86_64/CMakeLists.txt | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index dd54b39..86c9559 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -7,6 +7,7 @@ target_include_directories("arch-x86_64" PUBLIC target_link_libraries("arch-x86_64" PUBLIC "arch::any" + "os::kern" "libs::multiboot2" ) @@ -39,6 +40,14 @@ target_sources("arch-x86_64" PRIVATE "src/boot/multiboot.s" ) +#[============================================================================[ +# VGA Code +#]============================================================================] + +target_sources("arch-x86_64" PRIVATE + "src/vga/text.cpp" +) + # #[============================================================================[ # # The Kernel Library # #]============================================================================] -- cgit v1.2.3 From 14ed096fc5de6844cb116f3319c0d03043d26ea2 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 17 Jul 2025 21:09:02 +0000 Subject: x86-64: prepare new architecture --- arch/x86_64/CMakeLists.txt | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 86c9559..d1af777 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -40,6 +40,14 @@ target_sources("arch-x86_64" PRIVATE "src/boot/multiboot.s" ) +#[============================================================================[ +# Memory Code +#]============================================================================] + +target_sources("arch-x86_64" PRIVATE + "src/memory/region_allocator.cpp" +) + #[============================================================================[ # VGA Code #]============================================================================] -- cgit v1.2.3 From ce8683e63fc9ef59e1800927afb1753507a42ef6 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 22 Jul 2025 20:48:11 +0000 Subject: x86_64: extract constants from bootstrap code --- arch/x86_64/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index d1af777..a32a0f5 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -34,7 +34,7 @@ target_sources("arch-x86_64" PRIVATE #]============================================================================] target_sources("arch-x86_64" PRIVATE - "src/boot/boot.s" + "src/boot/boot.S" "src/boot/crti.s" "src/boot/crtn.s" "src/boot/multiboot.s" -- cgit v1.2.3 From c8cb4346064c69ab8431aa0d3c287e2fad60ce80 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 22 Jul 2025 21:23:23 +0000 Subject: x86_64: split bootstrap code along mode lines --- arch/x86_64/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index a32a0f5..6bb9e53 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -34,9 +34,10 @@ target_sources("arch-x86_64" PRIVATE #]============================================================================] target_sources("arch-x86_64" PRIVATE - "src/boot/boot.S" + "src/boot/boot32.S" "src/boot/crti.s" "src/boot/crtn.s" + "src/boot/entry64.s" "src/boot/multiboot.s" ) -- cgit v1.2.3 From f62b05c93c6c539d899d2656c0638d404a036f1a Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 24 Jul 2025 12:28:23 +0000 Subject: x86_64: implement robust C++ global initialization Implement a comprehensive mechanism to ensure correct C++ runtime initialization before the kernel main function is called. This replaces the previous, incomplete reliance on an `_init` function. The new design robustly handles both legacy `.ctors` and modern `.init_array` initialization schemes used by the GNU toolchain. A single C++ function, `invoke_global_constructors`, now iterates through both arrays of function pointers to ensure all types of global initializers are executed. --- arch/x86_64/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 6bb9e53..58daa3b 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -35,9 +35,8 @@ target_sources("arch-x86_64" PRIVATE target_sources("arch-x86_64" PRIVATE "src/boot/boot32.S" - "src/boot/crti.s" - "src/boot/crtn.s" "src/boot/entry64.s" + "src/boot/initialize_runtime.cpp" "src/boot/multiboot.s" ) -- cgit v1.2.3 From 2b8fafa2bddc48ddec047de517115c8e65ee61e8 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 24 Jul 2025 15:05:17 +0000 Subject: build: move linker script dependency to kernel --- arch/x86_64/CMakeLists.txt | 8 -------- 1 file changed, 8 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 58daa3b..431520e 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -11,14 +11,6 @@ target_link_libraries("arch-x86_64" PUBLIC "libs::multiboot2" ) -target_link_options("arch-x86_64" PUBLIC - "-T${CMAKE_CURRENT_SOURCE_DIR}/scripts/kernel.ld" -) - -set_target_properties("arch-x86_64" PROPERTIES - LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/scripts/kernel.ld" -) - #[============================================================================[ # arch::any Implementation #]============================================================================] -- cgit v1.2.3 From 4edbe94ce1266c9acc6a695fedf1d2edd4ce11cd Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 24 Jul 2025 15:31:31 +0000 Subject: build: factor out kernel API --- arch/x86_64/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 431520e..4cb20b6 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -6,8 +6,7 @@ target_include_directories("arch-x86_64" PUBLIC ) target_link_libraries("arch-x86_64" PUBLIC - "arch::any" - "os::kern" + "api::kapi" "libs::multiboot2" ) -- cgit v1.2.3 From c6629ba11c17601695b0542d7d1d1bf5dc036d84 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 24 Jul 2025 15:37:36 +0000 Subject: build: clean up configuration --- arch/x86_64/CMakeLists.txt | 192 +++------------------------------------------ 1 file changed, 11 insertions(+), 181 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 4cb20b6..1cb2f9a 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -10,196 +10,26 @@ target_link_libraries("arch-x86_64" PUBLIC "libs::multiboot2" ) -#[============================================================================[ -# arch::any Implementation -#]============================================================================] - target_sources("arch-x86_64" PRIVATE - "src/io.cpp" - "src/memory.cpp" - "src/system.cpp" -) - -#[============================================================================[ -# Bootstrap Code -#]============================================================================] + # api::kapi implementation + "kapi/io.cpp" + "kapi/memory.cpp" + "kapi/system.cpp" -target_sources("arch-x86_64" PRIVATE + # Low-level bootstrap "src/boot/boot32.S" "src/boot/entry64.s" "src/boot/initialize_runtime.cpp" "src/boot/multiboot.s" -) -#[============================================================================[ -# Memory Code -#]============================================================================] - -target_sources("arch-x86_64" PRIVATE + # Memory management "src/memory/region_allocator.cpp" -) - -#[============================================================================[ -# VGA Code -#]============================================================================] -target_sources("arch-x86_64" PRIVATE + # VGA text mode "src/vga/text.cpp" ) -# #[============================================================================[ -# # The Kernel Library -# #]============================================================================] - -# set(TEACHOS_KERNEL_LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/kernel.ld") -# mark_as_advanced(TEACHOS_KERNEL_LINKER_SCRIPT) - -# target_sources("_kernel" PRIVATE -# "src/kernel/main.cpp" -# "src/kernel/cpu/control_register.cpp" -# "src/kernel/cpu/gdtr.cpp" -# "src/kernel/cpu/idtr.cpp" -# "src/kernel/cpu/if.cpp" -# "src/kernel/cpu/call.cpp" -# "src/kernel/cpu/msr.cpp" -# "src/kernel/cpu/segment_register.cpp" -# "src/kernel/cpu/tlb.cpp" -# "src/kernel/cpu/tr.cpp" -# ) - -# target_link_options("_kernel" PRIVATE -# "-T${TEACHOS_KERNEL_LINKER_SCRIPT}" -# ) - -# set_target_properties("_kernel" PROPERTIES -# LINK_DEPENDS "${TEACHOS_KERNEL_LINKER_SCRIPT}" -# ) - -# #[============================================================================[ -# # The Bootstrap Library -# #]============================================================================] - -# target_sources("_boot" PRIVATE -# "src/boot/boot.s" -# "src/boot/crti.s" -# "src/boot/crtn.s" -# "src/boot/multiboot.s" -# ) - -# #[============================================================================[ -# # The Video Library -# #]============================================================================] - -# target_sources("_video" PRIVATE -# "src/video/vga/text.cpp" -# ) - -# #[============================================================================[ -# # The Memory Library -# #]============================================================================] - -# target_sources("_memory" PRIVATE -# "src/memory/main.cpp" -# "src/memory/multiboot/elf_symbols_section.cpp" -# "src/memory/multiboot/reader.cpp" -# "src/memory/allocator/area_frame_allocator.cpp" -# "src/memory/allocator/tiny_frame_allocator.cpp" -# "src/memory/allocator/physical_frame.cpp" -# "src/memory/paging/page_entry.cpp" -# "src/memory/paging/page_table.cpp" -# "src/memory/paging/temporary_page.cpp" -# "src/memory/paging/virtual_page.cpp" -# "src/memory/paging/active_page_table.cpp" -# "src/memory/paging/inactive_page_table.cpp" -# "src/memory/heap/bump_allocator.cpp" -# "src/memory/heap/user_heap_allocator.cpp" -# "src/memory/heap/memory_block.cpp" -# "src/memory/heap/linked_list_allocator.cpp" -# "src/memory/heap/global_heap_allocator.cpp" -# ) - -# target_link_libraries("_memory" PUBLIC -# "libs::kstd" -# "libs::multiboot2" -# ) - -# #[============================================================================[ -# # The Exception handling Library -# #]============================================================================] - -# target_sources("_exception" PRIVATE -# "src/exception_handling/assert.cpp" -# "src/exception_handling/abort.cpp" -# "src/exception_handling/panic.cpp" -# "src/exception_handling/pure_virtual.cpp" -# ) - -# #[============================================================================[ -# # The Context switching Library -# #]============================================================================] - -# target_sources("_context" PRIVATE -# "src/context_switching/segment_descriptor_table/access_byte.cpp" -# "src/context_switching/segment_descriptor_table/gdt_flags.cpp" -# "src/context_switching/segment_descriptor_table/global_descriptor_table_pointer.cpp" -# "src/context_switching/segment_descriptor_table/global_descriptor_table.cpp" -# "src/context_switching/segment_descriptor_table/segment_descriptor_base.cpp" -# "src/context_switching/segment_descriptor_table/segment_descriptor_extension.cpp" -# "src/context_switching/main.cpp" -# "src/context_switching/syscall/main.cpp" -# "src/context_switching/syscall/syscall_enable.cpp" -# "src/context_switching/syscall/syscall_handler.cpp" -# "src/context_switching/interrupt_descriptor_table/gate_descriptor.cpp" -# "src/context_switching/interrupt_descriptor_table/idt_flags.cpp" -# "src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table_pointer.cpp" -# "src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table.cpp" -# "src/context_switching/interrupt_descriptor_table/ist_offset.cpp" -# "src/context_switching/interrupt_descriptor_table/segment_selector.cpp" -# ) - -# target_link_libraries("_context" PUBLIC -# "libs::kstd" -# ) - -# #[============================================================================[ -# # The Interrupt Handlers -# #]============================================================================] - -# target_sources("_interrupt_handling" PRIVATE -# "src/interrupt_handling/generic_interrupt_handler.cpp" -# ) - -# #[============================================================================[ -# # The User code -# #]============================================================================] - -# target_sources("_context" PRIVATE -# "src/user/main.cpp" -# ) - -# #[============================================================================[ -# # The Bootable ISO Image -# #]============================================================================] - -# find_package("grub-mkrescue") - -# if(grub-mkrescue_FOUND) -# file(GENERATE -# OUTPUT "isofs/boot/grub/grub.cfg" -# INPUT "support/grub.cfg.in" -# ) - -# add_custom_target("bootable-iso" -# COMMAND "${GRUB_MKRESCUE_EXE}" -# "-o" -# "${PROJECT_BINARY_DIR}/teachos-$.iso" -# "${CMAKE_CURRENT_BINARY_DIR}/isofs" -# "$" -# "2>/dev/null" -# DEPENDS -# "$" -# "isofs/boot/grub/grub.cfg" -# BYPRODUCTS "${PROJECT_BINARY_DIR}/teachos-$.iso" -# COMMENT "Creating bootable ISO image" -# ) -# endif() +set(KERNEL_LINKER_SCRIPT + "${CMAKE_CURRENT_SOURCE_DIR}/scripts/kernel.ld" + PARENT_SCOPE +) \ No newline at end of file -- cgit v1.2.3 From f00a0149b55a0fd57cc731b015c6f425bc720aba Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 24 Jul 2025 15:41:58 +0000 Subject: build: rename targets --- arch/x86_64/CMakeLists.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 1cb2f9a..ddc2d46 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -1,16 +1,16 @@ -add_library("arch-x86_64" OBJECT) -add_library("arch::x86_64" ALIAS "arch-x86_64") +add_library("x86_64" OBJECT) +add_library("os::arch" ALIAS "x86_64") -target_include_directories("arch-x86_64" PUBLIC +target_include_directories("x86_64" PUBLIC "include" ) -target_link_libraries("arch-x86_64" PUBLIC - "api::kapi" +target_link_libraries("x86_64" PUBLIC + "os::kapi" "libs::multiboot2" ) -target_sources("arch-x86_64" PRIVATE +target_sources("x86_64" PRIVATE # api::kapi implementation "kapi/io.cpp" "kapi/memory.cpp" -- cgit v1.2.3 From 1b65136a11453fe7e89320dfe6170a0cd75e60dd Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 24 Jul 2025 16:33:10 +0000 Subject: x86_64: clean up hw details --- arch/x86_64/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index ddc2d46..c585cbf 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -22,7 +22,11 @@ target_sources("x86_64" PRIVATE "src/boot/initialize_runtime.cpp" "src/boot/multiboot.s" + # CPU intrinsics + "src/cpu/registers.cpp" + # Memory management + "src/memory/mmu.cpp" "src/memory/region_allocator.cpp" # VGA text mode -- cgit v1.2.3 From dd04850c27e8bc273506f4a64bb28b7ddf111dc5 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 24 Jul 2025 20:51:55 +0000 Subject: kapi: rework text device interface --- arch/x86_64/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index c585cbf..e8b5162 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -12,7 +12,7 @@ target_link_libraries("x86_64" PUBLIC target_sources("x86_64" PRIVATE # api::kapi implementation - "kapi/io.cpp" + "kapi/cio.cpp" "kapi/memory.cpp" "kapi/system.cpp" -- cgit v1.2.3 From 7671b1f0e4790b43bb8f8747b63cd44b7a65e10f Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 27 Oct 2025 13:58:55 +0000 Subject: x86_64: move kapi implementation to src --- arch/x86_64/CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index e8b5162..9be7b04 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -11,11 +11,6 @@ target_link_libraries("x86_64" PUBLIC ) target_sources("x86_64" PRIVATE - # api::kapi implementation - "kapi/cio.cpp" - "kapi/memory.cpp" - "kapi/system.cpp" - # Low-level bootstrap "src/boot/boot32.S" "src/boot/entry64.s" @@ -25,6 +20,11 @@ target_sources("x86_64" PRIVATE # CPU intrinsics "src/cpu/registers.cpp" + # api::kapi implementation + "src/kapi/cio.cpp" + "src/kapi/memory.cpp" + "src/kapi/system.cpp" + # Memory management "src/memory/mmu.cpp" "src/memory/region_allocator.cpp" -- cgit v1.2.3 From e7b04ef7f5da8e014e8b85fcf65448b317cca8ff Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Wed, 29 Oct 2025 11:15:50 +0100 Subject: kapi: move halt to cpu namespace --- arch/x86_64/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 9be7b04..a681347 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -22,8 +22,8 @@ target_sources("x86_64" PRIVATE # api::kapi implementation "src/kapi/cio.cpp" + "src/kapi/cpu.cpp" "src/kapi/memory.cpp" - "src/kapi/system.cpp" # Memory management "src/memory/mmu.cpp" -- cgit v1.2.3 From a5ca21e45e9c8ead0b5895771c0b2f3fe3baf96b Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 21 Nov 2025 14:53:37 +0100 Subject: x86_64: rework control register access --- arch/x86_64/CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index a681347..9c6d818 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -17,9 +17,6 @@ target_sources("x86_64" PRIVATE "src/boot/initialize_runtime.cpp" "src/boot/multiboot.s" - # CPU intrinsics - "src/cpu/registers.cpp" - # api::kapi implementation "src/kapi/cio.cpp" "src/kapi/cpu.cpp" -- cgit v1.2.3 From 1a3c20cc9ea191a862eb7e8ac55b3a69ac74ad5e Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 24 Nov 2025 16:59:24 +0100 Subject: x86_64/vga: rely less on magic state --- arch/x86_64/CMakeLists.txt | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 9c6d818..cf85b36 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -30,6 +30,30 @@ target_sources("x86_64" PRIVATE "src/vga/text.cpp" ) +target_sources("x86_64" PRIVATE + FILE_SET HEADERS + BASE_DIRS "include" + FILES + # Low-level bootstrap + "include/x86_64/boot/boot.hpp" + "include/x86_64/boot/ld.hpp" + + # Low-level CPU access + "include/x86_64/cpu/registers.hpp" + "include/x86_64/cpu/impl/control_registers.hpp" + "include/x86_64/cpu/impl/model_specific_register.hpp" + + # Low-level device I/O + "include/x86_64/device_io/port_io.hpp" + + # Memory management + "include/x86_64/memory/mmu.hpp" + "include/x86_64/memory/region_allocator.hpp" + + # VGA I/O + "include/x86_64/vga/text.hpp" +) + set(KERNEL_LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/kernel.ld" PARENT_SCOPE -- cgit v1.2.3 From 1db039ca1c67e8daba8b5ec6d5158cb2110e1410 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 28 Nov 2025 16:06:15 +0100 Subject: x86_64: port basic page and page table abstractions --- arch/x86_64/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index cf85b36..8451945 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -24,6 +24,8 @@ target_sources("x86_64" PRIVATE # Memory management "src/memory/mmu.cpp" + "src/memory/page_table.cpp" + "src/memory/paging_root.cpp" "src/memory/region_allocator.cpp" # VGA text mode @@ -48,6 +50,8 @@ target_sources("x86_64" PRIVATE # Memory management "include/x86_64/memory/mmu.hpp" + "include/x86_64/memory/page_table.hpp" + "include/x86_64/memory/paging_root.hpp" "include/x86_64/memory/region_allocator.hpp" # VGA I/O -- cgit v1.2.3 From 203355e51690073e571d4906d53f2494c3dad41b Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 1 Dec 2025 19:32:19 +0100 Subject: x86_64/memory: prepare scoped_mapping extraction --- arch/x86_64/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 8451945..4d32f76 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -27,6 +27,7 @@ target_sources("x86_64" PRIVATE "src/memory/page_table.cpp" "src/memory/paging_root.cpp" "src/memory/region_allocator.cpp" + "src/memory/scoped_mapping.cpp" # VGA text mode "src/vga/text.cpp" @@ -53,6 +54,7 @@ target_sources("x86_64" PRIVATE "include/x86_64/memory/page_table.hpp" "include/x86_64/memory/paging_root.hpp" "include/x86_64/memory/region_allocator.hpp" + "include/x86_64/memory/scoped_mapping.hpp" # VGA I/O "include/x86_64/vga/text.hpp" -- cgit v1.2.3 From be86be1facfce8fe3f376153b9c582f2c5c026aa Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 2 Dec 2025 12:31:53 +0100 Subject: x86_64/memory: extend scoped_mapping --- arch/x86_64/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 4d32f76..f010dcf 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -52,6 +52,7 @@ target_sources("x86_64" PRIVATE # Memory management "include/x86_64/memory/mmu.hpp" "include/x86_64/memory/page_table.hpp" + "include/x86_64/memory/page_utilities.hpp" "include/x86_64/memory/paging_root.hpp" "include/x86_64/memory/region_allocator.hpp" "include/x86_64/memory/scoped_mapping.hpp" -- cgit v1.2.3 From 44d4844ce63e7c00b4028bb918eed5d9fb795578 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 2 Dec 2025 18:43:29 +0100 Subject: x86_64/build: automatically collect headers --- arch/x86_64/CMakeLists.txt | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index f010dcf..9afbce3 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -33,32 +33,12 @@ target_sources("x86_64" PRIVATE "src/vga/text.cpp" ) +file(GLOB_RECURSE ARCH_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "include/**.hpp") + target_sources("x86_64" PRIVATE FILE_SET HEADERS BASE_DIRS "include" - FILES - # Low-level bootstrap - "include/x86_64/boot/boot.hpp" - "include/x86_64/boot/ld.hpp" - - # Low-level CPU access - "include/x86_64/cpu/registers.hpp" - "include/x86_64/cpu/impl/control_registers.hpp" - "include/x86_64/cpu/impl/model_specific_register.hpp" - - # Low-level device I/O - "include/x86_64/device_io/port_io.hpp" - - # Memory management - "include/x86_64/memory/mmu.hpp" - "include/x86_64/memory/page_table.hpp" - "include/x86_64/memory/page_utilities.hpp" - "include/x86_64/memory/paging_root.hpp" - "include/x86_64/memory/region_allocator.hpp" - "include/x86_64/memory/scoped_mapping.hpp" - - # VGA I/O - "include/x86_64/vga/text.hpp" + FILES ${ARCH_HEADERS} ) set(KERNEL_LINKER_SCRIPT -- cgit v1.2.3 From 331c070547634a2096c5e2165559fb0f11ee6330 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 2 Dec 2025 18:49:36 +0100 Subject: kapi: make PLATFORM_*_SIZE constexpr --- arch/x86_64/CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 9afbce3..4d984cf 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -41,7 +41,12 @@ target_sources("x86_64" PRIVATE FILES ${ARCH_HEADERS} ) +target_compile_definitions("x86_64" PUBLIC + "PLATFORM_PAGE_SIZE=4096" + "PLATFORM_FRAME_SIZE=PLATFORM_PAGE_SIZE" +) + set(KERNEL_LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/kernel.ld" PARENT_SCOPE -) \ No newline at end of file +) -- cgit v1.2.3 From 148c54a3d470c6019ebebe1387a7d889a2b8808e Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 2 Dec 2025 19:17:42 +0100 Subject: x86_64/memory: introduce frame allocation buffer --- arch/x86_64/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 4d984cf..7f01744 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -35,7 +35,7 @@ target_sources("x86_64" PRIVATE file(GLOB_RECURSE ARCH_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "include/**.hpp") -target_sources("x86_64" PRIVATE +target_sources("x86_64" PUBLIC FILE_SET HEADERS BASE_DIRS "include" FILES ${ARCH_HEADERS} -- cgit v1.2.3 From b9d445bf92725d79269becf978059e040519c00a Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Wed, 10 Dec 2025 16:51:44 +0100 Subject: x86_64/memory: implement simple kernel remapper --- arch/x86_64/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 7f01744..0b9009c 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -23,6 +23,7 @@ target_sources("x86_64" PRIVATE "src/kapi/memory.cpp" # Memory management + "src/memory/kernel_mapper.cpp" "src/memory/mmu.cpp" "src/memory/page_table.cpp" "src/memory/paging_root.cpp" -- cgit v1.2.3 From eafbf588760c289b7f54a4771b39af0ccfe8cf59 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Wed, 10 Dec 2025 21:55:42 +0100 Subject: kapi: extract page_mapper interface --- arch/x86_64/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 0b9009c..7bd8d07 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -27,6 +27,7 @@ target_sources("x86_64" PRIVATE "src/memory/mmu.cpp" "src/memory/page_table.cpp" "src/memory/paging_root.cpp" + "src/memory/recursive_page_mapper.cpp" "src/memory/region_allocator.cpp" "src/memory/scoped_mapping.cpp" -- cgit v1.2.3 From 5f695cd3519d8a09a53485c08971f49ed92969ff Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 12 Dec 2025 14:11:25 +0100 Subject: x86_64/memory: silence linter warning --- arch/x86_64/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 7bd8d07..2a6c878 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -45,6 +45,7 @@ target_sources("x86_64" PUBLIC target_compile_definitions("x86_64" PUBLIC "PLATFORM_PAGE_SIZE=4096" + "PLATFORM_PAGING_LEVELS=4uz" "PLATFORM_FRAME_SIZE=PLATFORM_PAGE_SIZE" ) -- cgit v1.2.3 From 2846867da7e88c3a665d0a8bed6ccec60e6476a1 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 12 Dec 2025 17:41:26 +0100 Subject: build: move platform configuration to preset --- arch/x86_64/CMakeLists.txt | 6 ------ 1 file changed, 6 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 2a6c878..54f04cb 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -43,12 +43,6 @@ target_sources("x86_64" PUBLIC FILES ${ARCH_HEADERS} ) -target_compile_definitions("x86_64" PUBLIC - "PLATFORM_PAGE_SIZE=4096" - "PLATFORM_PAGING_LEVELS=4uz" - "PLATFORM_FRAME_SIZE=PLATFORM_PAGE_SIZE" -) - set(KERNEL_LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/scripts/kernel.ld" PARENT_SCOPE -- cgit v1.2.3