From 1b5a771a34743a2973a82de5ebdfd22da030b841 Mon Sep 17 00:00:00 2001 From: Fabian Imhof Date: Sun, 18 May 2025 13:21:42 +0000 Subject: update linker file and improve section parsing --- arch/x86_64/src/user/main.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'arch/x86_64/src/user/main.cpp') diff --git a/arch/x86_64/src/user/main.cpp b/arch/x86_64/src/user/main.cpp index 747a8a4..e621327 100644 --- a/arch/x86_64/src/user/main.cpp +++ b/arch/x86_64/src/user/main.cpp @@ -4,22 +4,29 @@ #include "arch/memory/heap/global_heap_allocator.hpp" #include +#include #include +#include namespace teachos::arch::user { auto main() -> void { + // Test writing to VGA Buffer char constexpr syscall_message[] = "Successfully entered user mode and wrote to VGA buffer via syscall!"; context_switching::syscall::syscall(context_switching::syscall::type::WRITE, {reinterpret_cast(&syscall_message)}); - int test = std::max(5, 10); - (void)test; - - std::atomic locked = {false}; - locked.exchange(true); + // Test C++ standard library + std::array, 4> array_test = {std::atomic{5}, std::atomic{10}, + std::atomic{15}, std::atomic{20}}; + std::ranges::for_each(array_test, [](auto & item) { + auto value = item.load(); + uint8_t max_value = std::max(value, uint8_t{10}); + item.exchange(max_value + 2); + }); + // Test user heap auto address = memory::heap::global_heap_allocator::malloc(8U); (void)address; -- cgit v1.2.3