From 90d4163c336348cd21db8cbdb292994ddcfa3908 Mon Sep 17 00:00:00 2001 From: Lukas Oesch Date: Mon, 25 May 2026 11:43:00 +0200 Subject: improve demo code --- kernel/src/main.cpp | 50 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 12 deletions(-) (limited to 'kernel/src/main.cpp') diff --git a/kernel/src/main.cpp b/kernel/src/main.cpp index 22d2b1e..25b5c00 100644 --- a/kernel/src/main.cpp +++ b/kernel/src/main.cpp @@ -26,57 +26,83 @@ using namespace kstd::units_literals; auto run_demo() -> void { // 1) open a file + kstd::println("attempting to open /entrance/tickets.txt"); auto fd_1 = kapi::filesystem::open("/entrance/tickets.txt"); if (fd_1 == -1) { - kstd::os::panic("demo failed"); + kapi::system::panic("demo failed"); + } + else + { + kstd::println("--> successfully opened /entrance/tickets.txt with file descriptor {}", fd_1); } // 2) read from the file kstd::vector buffer_1{10}; auto bytes_read = kapi::filesystem::read(fd_1, buffer_1.data(), buffer_1.size()); auto buffer_as_str = std::string_view{reinterpret_cast(buffer_1.data()), static_cast(bytes_read)}; - kstd::println("Read {} bytes from /entrance/tickets.txt: {}", bytes_read, buffer_as_str); + kstd::println("--> read {} bytes from /entrance/tickets.txt: {}", bytes_read, buffer_as_str); + kstd::println(""); // 3) show that /entrance/information/info_1.txt is not accessible before mounting + kstd::println("attempting to open /entrance/information/info_1.txt before mounting"); auto fd_before_mount = kapi::filesystem::open("/entrance/information/info_1.txt"); if (fd_before_mount == -1) { - kstd::println("/entrance/information/info_1.txt is not accessible before mounting, as expected."); + kstd::println("--> as expected the file could not be opened before mounting"); } // 4) mount a new filesystem on top of /entrance - kapi::filesystem::mount("/dev/ram16", "/entrance"); + kstd::println("mount /dev/ram16 to /entrance"); + if (kapi::filesystem::mount("/dev/ram16", "/entrance") == 0) + { + kstd::println("--> successfully mounted /dev/ram16 to /entrance"); + } + else + { + kapi::system::panic("demo failed"); + } + kstd::println(""); // 5) open a file from the new filesystem + kstd::println("attempting to open /entrance/information/info_1.txt"); auto fd_2 = kapi::filesystem::open("/entrance/information/info_1.txt"); - if (fd_2 == -1) + if (fd_2 != -1) + { + kstd::println("--> successfully opened /entrance/information/info_1.txt with file descriptor {}", fd_2); + } + else { - kstd::os::panic("demo failed"); + kapi::system::panic("demo failed"); } // 6) read from the new file kstd::vector buffer_2{10}; bytes_read = kapi::filesystem::read(fd_2, buffer_2.data(), buffer_2.size()); buffer_as_str = std::string_view{reinterpret_cast(buffer_2.data()), static_cast(bytes_read)}; - kstd::println("Read {} bytes from /entrance/information/info_1.txt: {}", bytes_read, buffer_as_str); + kstd::println("--> read {} bytes from /entrance/information/info_1.txt: {} ", bytes_read, buffer_as_str); // 7) open device as file - auto fd_3 = kapi::filesystem::open("/dev/ram48"); - if (fd_3 == -1) + kstd::println("attempting to open /dev/ram32 as a file"); + auto fd_3 = kapi::filesystem::open("/dev/ram32"); + if (fd_3 != -1) + { + kstd::println("--> successfully opened /dev/ram32 as a file with file descriptor {}", fd_3); + } + else { - kstd::os::panic("demo failed"); + kapi::system::panic("demo failed"); } // 8) read from the device file kstd::vector buffer_3{2}; bytes_read = kapi::filesystem::read(fd_3, buffer_3.data(), buffer_3.size()); - kstd::println("Read {} bytes from /dev/ram48: {::#04x}", bytes_read, buffer_3); + kstd::println("--> read {} bytes from /dev/ram32: {::#04x} ", bytes_read, buffer_3); // 9) write to the device file kstd::vector write_buffer{std::byte{0xAA}, std::byte{0xAA}}; auto bytes_written = kapi::filesystem::write(fd_3, write_buffer.data(), write_buffer.size()); - kstd::println("Written {} bytes to /dev/ram48: {::#04x}", bytes_written, write_buffer); + kstd::println("--> written {} bytes to /dev/ram32: {::#04x}", bytes_written, write_buffer); // 10) do memory dump to show that the write to the device file had an effect } -- cgit v1.2.3 From 649bf64b4d4ec0742e56539348761f5957d64922 Mon Sep 17 00:00:00 2001 From: Lukas Oesch Date: Mon, 25 May 2026 14:03:56 +0200 Subject: fix linter warnings --- kernel/src/main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'kernel/src/main.cpp') diff --git a/kernel/src/main.cpp b/kernel/src/main.cpp index 25b5c00..a84ca64 100644 --- a/kernel/src/main.cpp +++ b/kernel/src/main.cpp @@ -13,7 +13,6 @@ #include #include -#include #include #include #include @@ -100,7 +99,8 @@ auto run_demo() -> void kstd::println("--> read {} bytes from /dev/ram32: {::#04x} ", bytes_read, buffer_3); // 9) write to the device file - kstd::vector write_buffer{std::byte{0xAA}, std::byte{0xAA}}; + auto const buffer_fill_byte = std::byte{0xAA}; + kstd::vector write_buffer{buffer_fill_byte, buffer_fill_byte}; auto bytes_written = kapi::filesystem::write(fd_3, write_buffer.data(), write_buffer.size()); kstd::println("--> written {} bytes to /dev/ram32: {::#04x}", bytes_written, write_buffer); -- cgit v1.2.3 From adb1b5f2d6858097227fa610e86d1152b79d0bfa Mon Sep 17 00:00:00 2001 From: Lukas Oesch Date: Mon, 25 May 2026 14:05:38 +0200 Subject: renaming --- kernel/src/main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'kernel/src/main.cpp') diff --git a/kernel/src/main.cpp b/kernel/src/main.cpp index a84ca64..6985e94 100644 --- a/kernel/src/main.cpp +++ b/kernel/src/main.cpp @@ -99,8 +99,8 @@ auto run_demo() -> void kstd::println("--> read {} bytes from /dev/ram32: {::#04x} ", bytes_read, buffer_3); // 9) write to the device file - auto const buffer_fill_byte = std::byte{0xAA}; - kstd::vector write_buffer{buffer_fill_byte, buffer_fill_byte}; + auto const default_buffer_value = std::byte{0xAA}; + kstd::vector write_buffer{default_buffer_value, default_buffer_value}; auto bytes_written = kapi::filesystem::write(fd_3, write_buffer.data(), write_buffer.size()); kstd::println("--> written {} bytes to /dev/ram32: {::#04x}", bytes_written, write_buffer); -- cgit v1.2.3