diff options
Diffstat (limited to 'kernel/kernel/main.cpp')
| -rw-r--r-- | kernel/kernel/main.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/kernel/kernel/main.cpp b/kernel/kernel/main.cpp index 8dce5143..fef35ed9 100644 --- a/kernel/kernel/main.cpp +++ b/kernel/kernel/main.cpp @@ -107,6 +107,39 @@ auto run_demo() -> void 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 + + // 11) dmp the module before create new directory and file + // -exec monitor memsave 0xffffffff8025b000 0xA00000 dump_before.bin + + // 12) create new folder and file + auto creation_result = kapi::filesystem::mkdir("/test_files").and_then([] { + return kapi::filesystem::create("/test_files/test_file.txt"); + }); + + if (!creation_result) + { + kapi::system::panic("demo failed", creation_result.error()); + } + + // 13) write to the new file + auto fd_4 = kapi::filesystem::open("/test_files/test_file.txt"); + if (fd_4) + { + kstd::println("--> successfully opened /test_files/test_file.txt as a file with file descriptor {}", fd_4.value()); + } + else + { + kapi::system::panic("demo failed"); + } + + kstd::vector<std::byte> test_write_buffer{ + std::byte{'H'}, std::byte{'e'}, std::byte{'l'}, std::byte{'l'}, std::byte{'o'}, std::byte{' '}, std::byte{'T'}, + std::byte{'e'}, std::byte{'a'}, std::byte{'c'}, std::byte{'h'}, std::byte{'O'}, std::byte{'S'}}; + bytes_written = *kapi::filesystem::write(*fd_4, test_write_buffer.data(), test_write_buffer.size()); + kstd::println("--> written {} bytes to /test_files/test_file.txt: {::#04x}", bytes_written, test_write_buffer); + + // 14) dmp the module after create new directory and file + // -exec monitor memsave 0xffffffff8025b000 0xA00000 dump_after.bin } auto main() -> int |
