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 --- kapi/CMakeLists.txt | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 kapi/CMakeLists.txt (limited to 'kapi/CMakeLists.txt') diff --git a/kapi/CMakeLists.txt b/kapi/CMakeLists.txt new file mode 100644 index 0000000..a3cd040 --- /dev/null +++ b/kapi/CMakeLists.txt @@ -0,0 +1,27 @@ +add_library("kapi" OBJECT) +add_library("api::kapi" ALIAS "kapi") + +target_sources("kapi" PUBLIC + FILE_SET HEADERS + BASE_DIRS "include" + FILES + "include/kapi/io.hpp" + "include/kapi/memory.hpp" + "include/kapi/system.hpp" +) + +target_sources("kapi" PRIVATE + "src/system.cpp" +) + +target_include_directories("kapi" PUBLIC + "include" +) + +target_link_libraries("kapi" PUBLIC + "libs::kstd" + + "c" + "gcc" + "stdc++" +) -- 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 --- kapi/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'kapi/CMakeLists.txt') diff --git a/kapi/CMakeLists.txt b/kapi/CMakeLists.txt index a3cd040..3a15fee 100644 --- a/kapi/CMakeLists.txt +++ b/kapi/CMakeLists.txt @@ -1,5 +1,5 @@ add_library("kapi" OBJECT) -add_library("api::kapi" ALIAS "kapi") +add_library("os::kapi" ALIAS "kapi") target_sources("kapi" PUBLIC FILE_SET HEADERS -- 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 --- kapi/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'kapi/CMakeLists.txt') diff --git a/kapi/CMakeLists.txt b/kapi/CMakeLists.txt index 3a15fee..14244bc 100644 --- a/kapi/CMakeLists.txt +++ b/kapi/CMakeLists.txt @@ -5,12 +5,13 @@ target_sources("kapi" PUBLIC FILE_SET HEADERS BASE_DIRS "include" FILES - "include/kapi/io.hpp" + "include/kapi/cio.hpp" "include/kapi/memory.hpp" "include/kapi/system.hpp" ) target_sources("kapi" PRIVATE + "src/cio.cpp" "src/system.cpp" ) -- cgit v1.2.3 From 12dedc7e2e51390fdf2caec3700e75db19be1cd4 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 28 Oct 2025 18:31:39 +0100 Subject: kstd: don't rely on newlib --- kapi/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) (limited to 'kapi/CMakeLists.txt') diff --git a/kapi/CMakeLists.txt b/kapi/CMakeLists.txt index 14244bc..86b0fb6 100644 --- a/kapi/CMakeLists.txt +++ b/kapi/CMakeLists.txt @@ -22,7 +22,6 @@ target_include_directories("kapi" PUBLIC target_link_libraries("kapi" PUBLIC "libs::kstd" - "c" "gcc" "stdc++" ) -- 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 --- kapi/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'kapi/CMakeLists.txt') diff --git a/kapi/CMakeLists.txt b/kapi/CMakeLists.txt index 86b0fb6..553b9ba 100644 --- a/kapi/CMakeLists.txt +++ b/kapi/CMakeLists.txt @@ -5,6 +5,7 @@ target_sources("kapi" PUBLIC FILE_SET HEADERS BASE_DIRS "include" FILES + "include/kapi/boot.hpp" "include/kapi/cio.hpp" "include/kapi/memory.hpp" "include/kapi/system.hpp" -- 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 --- kapi/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'kapi/CMakeLists.txt') diff --git a/kapi/CMakeLists.txt b/kapi/CMakeLists.txt index 553b9ba..ca26615 100644 --- a/kapi/CMakeLists.txt +++ b/kapi/CMakeLists.txt @@ -8,6 +8,10 @@ target_sources("kapi" PUBLIC "include/kapi/boot.hpp" "include/kapi/cio.hpp" "include/kapi/memory.hpp" + "include/kapi/memory/address.hpp" + "include/kapi/memory/frame_allocator.hpp" + "include/kapi/memory/frame.hpp" + "include/kapi/memory/page.hpp" "include/kapi/system.hpp" ) -- 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 --- kapi/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'kapi/CMakeLists.txt') diff --git a/kapi/CMakeLists.txt b/kapi/CMakeLists.txt index ca26615..d0ecb70 100644 --- a/kapi/CMakeLists.txt +++ b/kapi/CMakeLists.txt @@ -11,6 +11,7 @@ target_sources("kapi" PUBLIC "include/kapi/memory/address.hpp" "include/kapi/memory/frame_allocator.hpp" "include/kapi/memory/frame.hpp" + "include/kapi/memory/page_mapper.hpp" "include/kapi/memory/page.hpp" "include/kapi/system.hpp" ) -- cgit v1.2.3 From 4bf9eded3a5d6b007ba79a5716143fa8b3a5aaf6 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 12 Dec 2025 14:26:16 +0100 Subject: kapi: move platform independent implementation --- kapi/CMakeLists.txt | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'kapi/CMakeLists.txt') diff --git a/kapi/CMakeLists.txt b/kapi/CMakeLists.txt index d0ecb70..e513dba 100644 --- a/kapi/CMakeLists.txt +++ b/kapi/CMakeLists.txt @@ -1,4 +1,4 @@ -add_library("kapi" OBJECT) +add_library("kapi" INTERFACE) add_library("os::kapi" ALIAS "kapi") target_sources("kapi" PUBLIC @@ -16,16 +16,11 @@ target_sources("kapi" PUBLIC "include/kapi/system.hpp" ) -target_sources("kapi" PRIVATE - "src/cio.cpp" - "src/system.cpp" -) - -target_include_directories("kapi" PUBLIC +target_include_directories("kapi" INTERFACE "include" ) -target_link_libraries("kapi" PUBLIC +target_link_libraries("kapi" INTERFACE "libs::kstd" "gcc" -- 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 --- kapi/CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'kapi/CMakeLists.txt') diff --git a/kapi/CMakeLists.txt b/kapi/CMakeLists.txt index e513dba..5e914bb 100644 --- a/kapi/CMakeLists.txt +++ b/kapi/CMakeLists.txt @@ -26,3 +26,9 @@ target_link_libraries("kapi" INTERFACE "gcc" "stdc++" ) + +target_compile_definitions("kapi" INTERFACE + "PLATFORM_PAGE_SIZE=${TEACHOS_PLATFORM_PAGE_SIZE}uz" + "PLATFORM_PAGING_LEVELS=${TEACHOS_PLATFORM_PAGING_LEVELS}uz" + "PLATFORM_FRAME_SIZE=${TEACHOS_PLATFORM_FRAME_SIZE}uz" +) -- cgit v1.2.3