aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2025-07-24 15:37:36 +0000
committerFelix Morgner <felix.morgner@ost.ch>2025-07-24 15:37:36 +0000
commitc6629ba11c17601695b0542d7d1d1bf5dc036d84 (patch)
tree7c0c5fc0f334d92629640b79aee2dc6f0dea03dd
parent4edbe94ce1266c9acc6a695fedf1d2edd4ce11cd (diff)
downloadteachos-c6629ba11c17601695b0542d7d1d1bf5dc036d84.tar.xz
teachos-c6629ba11c17601695b0542d7d1d1bf5dc036d84.zip
build: clean up configuration
-rw-r--r--CMakeLists.txt2
-rw-r--r--arch/CMakeLists.txt3
-rw-r--r--arch/x86_64/CMakeLists.txt192
-rw-r--r--arch/x86_64/kapi/io.cpp (renamed from arch/x86_64/src/io.cpp)0
-rw-r--r--arch/x86_64/kapi/memory.cpp (renamed from arch/x86_64/src/memory.cpp)0
-rw-r--r--arch/x86_64/kapi/system.cpp (renamed from arch/x86_64/src/system.cpp)0
6 files changed, 12 insertions, 185 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5dd4044..64fb08f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -35,7 +35,7 @@ add_compile_options(
# Kernel Executable
#]============================================================================]
-add_subdirectory("arch")
+add_subdirectory("arch/${CMAKE_SYSTEM_PROCESSOR}")
add_subdirectory("kapi")
add_subdirectory("libs")
diff --git a/arch/CMakeLists.txt b/arch/CMakeLists.txt
deleted file mode 100644
index 516bfe9..0000000
--- a/arch/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-set(KERNEL_LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_SYSTEM_PROCESSOR}/scripts/kernel.ld" PARENT_SCOPE)
-
-add_subdirectory("${CMAKE_SYSTEM_PROCESSOR}")
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-$<CONFIGURATION>.iso"
-# "${CMAKE_CURRENT_BINARY_DIR}/isofs"
-# "$<TARGET_FILE:teachos::kernel>"
-# "2>/dev/null"
-# DEPENDS
-# "$<TARGET_FILE:teachos::kernel>"
-# "isofs/boot/grub/grub.cfg"
-# BYPRODUCTS "${PROJECT_BINARY_DIR}/teachos-$<CONFIGURATION>.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
diff --git a/arch/x86_64/src/io.cpp b/arch/x86_64/kapi/io.cpp
index eab6473..eab6473 100644
--- a/arch/x86_64/src/io.cpp
+++ b/arch/x86_64/kapi/io.cpp
diff --git a/arch/x86_64/src/memory.cpp b/arch/x86_64/kapi/memory.cpp
index d1c1f03..d1c1f03 100644
--- a/arch/x86_64/src/memory.cpp
+++ b/arch/x86_64/kapi/memory.cpp
diff --git a/arch/x86_64/src/system.cpp b/arch/x86_64/kapi/system.cpp
index 2d4c3fe..2d4c3fe 100644
--- a/arch/x86_64/src/system.cpp
+++ b/arch/x86_64/kapi/system.cpp