From 8d14c729c43ee555c240a043e3909617e4fa5043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Thu, 27 Feb 2025 09:24:17 +0000 Subject: Add files to cmake and implement gdt flags --- 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 e9f8d5f..8cb1ca2 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -81,6 +81,15 @@ target_sources("_exception" PRIVATE "src/exception_handling/pure_virtual.cpp" ) +#[============================================================================[ +# The Context switching Library +#]============================================================================] + +target_sources("_context" PRIVATE + "src/context_switching/descriptor_table/gdt_flags.cpp" + "src/context_switching/descriptor_table/access_byte.cpp" +) + #[============================================================================[ # The Bootable ISO Image #]============================================================================] -- cgit v1.2.3 From c5151739698620e77622423c109e638f903f01c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Mon, 10 Mar 2025 13:42:38 +0000 Subject: Adjust register segment descriptors to possible states --- 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 8cb1ca2..19c71be 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -88,6 +88,7 @@ target_sources("_exception" PRIVATE target_sources("_context" PRIVATE "src/context_switching/descriptor_table/gdt_flags.cpp" "src/context_switching/descriptor_table/access_byte.cpp" + "src/context_switching/descriptor_table/type_field.cpp" ) #[============================================================================[ -- cgit v1.2.3 From 52fffdf2c76def4a875e0328eb45d74c6e97e805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Mon, 10 Mar 2025 16:05:31 +0000 Subject: Adjust segment descriptor to use defined helpers --- 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 19c71be..1b8349a 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -89,6 +89,7 @@ target_sources("_context" PRIVATE "src/context_switching/descriptor_table/gdt_flags.cpp" "src/context_switching/descriptor_table/access_byte.cpp" "src/context_switching/descriptor_table/type_field.cpp" + "src/context_switching/descriptor_table/segment_descriptor.cpp" ) #[============================================================================[ -- cgit v1.2.3 From 2e4cbd473ff3bb7ac7371af39becf830b4fb753b Mon Sep 17 00:00:00 2001 From: Fabian Imhof Date: Thu, 13 Mar 2025 14:05:45 +0000 Subject: IN_PROGRESS implement gdt initialization --- arch/x86_64/CMakeLists.txt | 12 +++++++----- 1 file changed, 7 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 1b8349a..9d59d87 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -7,6 +7,10 @@ mark_as_advanced(TEACHOS_KERNEL_LINKER_SCRIPT) target_sources("_kernel" PRIVATE "src/kernel/main.cpp" + "src/kernel/cpu/tlb.cpp" + "src/kernel/cpu/control_register.cpp" + "src/kernel/cpu/msr.cpp" + "src/kernel/cpu/ss.cpp" ) target_link_options("_kernel" PRIVATE @@ -53,9 +57,6 @@ target_sources("_memory" PRIVATE "src/memory/paging/virtual_page.cpp" "src/memory/paging/active_page_table.cpp" "src/memory/paging/inactive_page_table.cpp" - "src/memory/cpu/tlb.cpp" - "src/memory/cpu/control_register.cpp" - "src/memory/cpu/msr.cpp" "src/memory/heap/bump_allocator.cpp" "src/memory/heap/memory_block.cpp" "src/memory/heap/linked_list_allocator.cpp" @@ -86,10 +87,11 @@ target_sources("_exception" PRIVATE #]============================================================================] target_sources("_context" PRIVATE - "src/context_switching/descriptor_table/gdt_flags.cpp" "src/context_switching/descriptor_table/access_byte.cpp" - "src/context_switching/descriptor_table/type_field.cpp" + "src/context_switching/descriptor_table/gdt_flags.cpp" + "src/context_switching/descriptor_table/global_descriptor_table.cpp" "src/context_switching/descriptor_table/segment_descriptor.cpp" + "src/context_switching/descriptor_table/type_field.cpp" ) #[============================================================================[ -- cgit v1.2.3 From 11db9338dac611ea32e202add5ce5055b54ebb58 Mon Sep 17 00:00:00 2001 From: Fabian Imhof Date: Thu, 13 Mar 2025 15:46:16 +0000 Subject: fixup typing and continue adding gdt --- 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 9d59d87..53339d2 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -7,10 +7,11 @@ mark_as_advanced(TEACHOS_KERNEL_LINKER_SCRIPT) target_sources("_kernel" PRIVATE "src/kernel/main.cpp" - "src/kernel/cpu/tlb.cpp" "src/kernel/cpu/control_register.cpp" + "src/kernel/cpu/lgdt.cpp" "src/kernel/cpu/msr.cpp" "src/kernel/cpu/ss.cpp" + "src/kernel/cpu/tlb.cpp" ) target_link_options("_kernel" PRIVATE -- cgit v1.2.3 From 2b8e6e7e10f084a9a9ba5c0b79a041f4d1ac459b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Sat, 15 Mar 2025 11:29:26 +0000 Subject: implement loading of gdtr register --- arch/x86_64/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 53339d2..912daf6 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -65,11 +65,11 @@ target_sources("_memory" PRIVATE ) #[============================================================================[ -# The Shared Library +# The STL Library #]============================================================================] -target_sources("_shared" PRIVATE - "src/shared/mutex.cpp" +target_sources("_stl" PRIVATE + "src/stl/mutex.cpp" ) #[============================================================================[ @@ -91,8 +91,8 @@ target_sources("_context" PRIVATE "src/context_switching/descriptor_table/access_byte.cpp" "src/context_switching/descriptor_table/gdt_flags.cpp" "src/context_switching/descriptor_table/global_descriptor_table.cpp" + "src/context_switching/descriptor_table/global_descriptor_table_pointer.cpp" "src/context_switching/descriptor_table/segment_descriptor.cpp" - "src/context_switching/descriptor_table/type_field.cpp" ) #[============================================================================[ -- cgit v1.2.3 From 36758071881088b27a52cee4e5653f6cf6a79a78 Mon Sep 17 00:00:00 2001 From: Fabian Imhof Date: Sun, 16 Mar 2025 12:41:09 +0000 Subject: start implementing TSS --- 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 912daf6..aad7951 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -8,10 +8,11 @@ mark_as_advanced(TEACHOS_KERNEL_LINKER_SCRIPT) target_sources("_kernel" PRIVATE "src/kernel/main.cpp" "src/kernel/cpu/control_register.cpp" - "src/kernel/cpu/lgdt.cpp" + "src/kernel/cpu/gdtr.cpp" "src/kernel/cpu/msr.cpp" "src/kernel/cpu/ss.cpp" "src/kernel/cpu/tlb.cpp" + "src/kernel/cpu/tr.cpp" ) target_link_options("_kernel" PRIVATE -- cgit v1.2.3 From b6ee8bec7ed23fd0c544f67f735e96b2bfe67682 Mon Sep 17 00:00:00 2001 From: Fabian Imhof Date: Thu, 20 Mar 2025 15:30:18 +0000 Subject: begin implementation of IDT --- arch/x86_64/CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index aad7951..a435ef9 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -9,6 +9,9 @@ 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/jmp.cpp" "src/kernel/cpu/msr.cpp" "src/kernel/cpu/ss.cpp" "src/kernel/cpu/tlb.cpp" @@ -90,9 +93,13 @@ target_sources("_exception" PRIVATE target_sources("_context" PRIVATE "src/context_switching/descriptor_table/access_byte.cpp" + "src/context_switching/descriptor_table/gate_descriptor.cpp" "src/context_switching/descriptor_table/gdt_flags.cpp" "src/context_switching/descriptor_table/global_descriptor_table.cpp" "src/context_switching/descriptor_table/global_descriptor_table_pointer.cpp" + "src/context_switching/descriptor_table/initialization.cpp" + "src/context_switching/descriptor_table/interrupt_descriptor_table.cpp" + "src/context_switching/descriptor_table/interrupt_descriptor_table_pointer.cpp" "src/context_switching/descriptor_table/segment_descriptor.cpp" ) -- cgit v1.2.3 From ccb47845d99e098c183f596cd1a3eb1db5c676da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Tue, 25 Mar 2025 12:04:43 +0000 Subject: Adjust file structure and fix compilation issues --- arch/x86_64/CMakeLists.txt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index a435ef9..cf92feb 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -92,15 +92,15 @@ target_sources("_exception" PRIVATE #]============================================================================] target_sources("_context" PRIVATE - "src/context_switching/descriptor_table/access_byte.cpp" - "src/context_switching/descriptor_table/gate_descriptor.cpp" - "src/context_switching/descriptor_table/gdt_flags.cpp" - "src/context_switching/descriptor_table/global_descriptor_table.cpp" - "src/context_switching/descriptor_table/global_descriptor_table_pointer.cpp" - "src/context_switching/descriptor_table/initialization.cpp" - "src/context_switching/descriptor_table/interrupt_descriptor_table.cpp" - "src/context_switching/descriptor_table/interrupt_descriptor_table_pointer.cpp" - "src/context_switching/descriptor_table/segment_descriptor.cpp" + "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.cpp" + "src/context_switching/segment_descriptor_table/global_descriptor_table_pointer.cpp" + "src/context_switching/segment_descriptor_table/segment_descriptor.cpp" + "src/context_switching/main.cpp" + "src/context_switching/interrupt_descriptor_table/gate_descriptor.cpp" + "src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table.cpp" + "src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table_pointer.cpp" ) #[============================================================================[ -- cgit v1.2.3 From 66fefaeb16bcbc4eae5ce5256ae76f51a155cded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Tue, 25 Mar 2025 16:58:24 +0000 Subject: Implement idtr structure and document possible flags. --- arch/x86_64/CMakeLists.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index cf92feb..5242f3d 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -94,13 +94,16 @@ target_sources("_exception" PRIVATE 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.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.cpp" "src/context_switching/main.cpp" "src/context_switching/interrupt_descriptor_table/gate_descriptor.cpp" - "src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table.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" ) #[============================================================================[ -- cgit v1.2.3 From aba154ad01fc0e1e1274f2582b1493e78daa2559 Mon Sep 17 00:00:00 2001 From: Fabian Imhof Date: Sat, 29 Mar 2025 14:47:04 +0000 Subject: fix gdt segments, improve idt and trial&error for triple fault --- 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 5242f3d..5e87594 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -106,6 +106,14 @@ target_sources("_context" PRIVATE "src/context_switching/interrupt_descriptor_table/segment_selector.cpp" ) +#[============================================================================[ +# The Interrupt Handlers +#]============================================================================] + +target_sources("_interrupt_handling" PRIVATE + "src/interrupt_handling/generic_interrupt_handler.cpp" +) + #[============================================================================[ # The Bootable ISO Image #]============================================================================] -- cgit v1.2.3 From a8852f91967a7e55e62e30f5cc07d076092b8b78 Mon Sep 17 00:00:00 2001 From: Fabian Imhof Date: Sat, 5 Apr 2025 15:27:20 +0000 Subject: add wip context switch to user mode --- 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 5e87594..0d52463 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -13,7 +13,7 @@ target_sources("_kernel" PRIVATE "src/kernel/cpu/if.cpp" "src/kernel/cpu/jmp.cpp" "src/kernel/cpu/msr.cpp" - "src/kernel/cpu/ss.cpp" + "src/kernel/cpu/segment_register.cpp" "src/kernel/cpu/tlb.cpp" "src/kernel/cpu/tr.cpp" ) -- cgit v1.2.3 From 8a23a47425162894141f4eac488fb1f1bb3f7dae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Mon, 7 Apr 2025 15:42:38 +0000 Subject: Fix naming from jmp to call for Far Call --- 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 0d52463..8f5b9bd 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -11,7 +11,7 @@ target_sources("_kernel" PRIVATE "src/kernel/cpu/gdtr.cpp" "src/kernel/cpu/idtr.cpp" "src/kernel/cpu/if.cpp" - "src/kernel/cpu/jmp.cpp" + "src/kernel/cpu/call.cpp" "src/kernel/cpu/msr.cpp" "src/kernel/cpu/segment_register.cpp" "src/kernel/cpu/tlb.cpp" -- cgit v1.2.3 From eafe8533bb5ccbe15bd8ffbc917b38122b04a157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Mon, 14 Apr 2025 15:21:52 +0000 Subject: Add stack frame allocator. Fix stl vector bug and create stl stack implementation --- 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 8f5b9bd..71b1946 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -54,6 +54,7 @@ target_sources("_memory" PRIVATE "src/memory/multiboot/elf_symbols_section.cpp" "src/memory/multiboot/reader.cpp" "src/memory/allocator/area_frame_allocator.cpp" + "src/memory/allocator/stack_frame_allocator.cpp" "src/memory/allocator/tiny_frame_allocator.cpp" "src/memory/allocator/physical_frame.cpp" "src/memory/paging/page_entry.cpp" -- cgit v1.2.3 From 7261c64bb236a313ed8846a9c9dbded6890a9e98 Mon Sep 17 00:00:00 2001 From: Fabian Imhof Date: Sun, 27 Apr 2025 11:20:02 +0000 Subject: wip implement syscall in cpp --- 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 71b1946..d5fb913 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -105,6 +105,7 @@ target_sources("_context" PRIVATE "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" + "src/context_switching/syscall_handler.cpp" ) #[============================================================================[ -- cgit v1.2.3 From 13dd2bd5a88ec7efeadf8586778f2c5a26d8cd9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Sun, 27 Apr 2025 14:07:33 +0000 Subject: Move not public methods into anonymous namespace --- arch/x86_64/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index d5fb913..71b1946 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -105,7 +105,6 @@ target_sources("_context" PRIVATE "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" - "src/context_switching/syscall_handler.cpp" ) #[============================================================================[ -- cgit v1.2.3 From 7c045d8ded72017ff11fd4b9b02148987b944caf Mon Sep 17 00:00:00 2001 From: Fabian Imhof Date: Thu, 1 May 2025 12:25:40 +0000 Subject: WIP experiment with converting GDT to 8-Byte entries --- 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 71b1946..58afdb5 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -98,6 +98,8 @@ target_sources("_context" PRIVATE "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.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/interrupt_descriptor_table/gate_descriptor.cpp" "src/context_switching/interrupt_descriptor_table/idt_flags.cpp" -- cgit v1.2.3 From 099a7fbbc35a71f98553fa39899f2d17c555242f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Fri, 2 May 2025 14:49:06 +0000 Subject: Finish implementing 8-byte GDT entries and syscall arg loads. --- arch/x86_64/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 58afdb5..21dbddd 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -97,7 +97,6 @@ target_sources("_context" PRIVATE "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.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" -- cgit v1.2.3 From 5a8c9d2f2e4a3d2810f81c35070c6ef0926cfdd1 Mon Sep 17 00:00:00 2001 From: Fabian Imhof Date: Sat, 3 May 2025 09:45:45 +0000 Subject: write wrapper function for syscall --- 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 21dbddd..0b4eafe 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -100,6 +100,8 @@ target_sources("_context" PRIVATE "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_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" -- cgit v1.2.3 From ccb0fcb78c0d22ebaeb9aa37f1941b0d44c98038 Mon Sep 17 00:00:00 2001 From: Fabian Imhof Date: Sun, 4 May 2025 11:07:48 +0000 Subject: move user-mode code into own namespace and linker section --- 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 0b4eafe..1ce2731 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -118,6 +118,14 @@ 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 #]============================================================================] -- cgit v1.2.3 From c1dff44858ebdb3cd5a49e84179796e44e7eb91c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Mon, 5 May 2025 06:41:31 +0000 Subject: Fix recursive include using extra file --- 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 1ce2731..3d6d2c7 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -101,6 +101,7 @@ target_sources("_context" PRIVATE "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" -- cgit v1.2.3 From 0b62fdb3fe657d056a42d7567b67951ba3468738 Mon Sep 17 00:00:00 2001 From: Fabian Imhof Date: Thu, 8 May 2025 08:51:52 +0000 Subject: wip allocating heap memory in user mode --- 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 3d6d2c7..0a6ab9c 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -64,6 +64,7 @@ target_sources("_memory" PRIVATE "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" -- cgit v1.2.3 From 9f2e780030e2101d5f7f01f42df805db9a5fa809 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Fri, 30 May 2025 12:48:57 +0000 Subject: Clean up files --- arch/x86_64/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) (limited to 'arch/x86_64/CMakeLists.txt') diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 0a6ab9c..57b3a60 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -54,7 +54,6 @@ target_sources("_memory" PRIVATE "src/memory/multiboot/elf_symbols_section.cpp" "src/memory/multiboot/reader.cpp" "src/memory/allocator/area_frame_allocator.cpp" - "src/memory/allocator/stack_frame_allocator.cpp" "src/memory/allocator/tiny_frame_allocator.cpp" "src/memory/allocator/physical_frame.cpp" "src/memory/paging/page_entry.cpp" -- cgit v1.2.3