diff --git a/src/arch/x86/kmain.cpp b/src/arch/x86/kmain.cpp index d850687a7..8a1c988c4 100644 --- a/src/arch/x86/kmain.cpp +++ b/src/arch/x86/kmain.cpp @@ -54,7 +54,6 @@ void ktask_main() { (new Task(Task::TaskMode::TASKMODE_KERN, templates_tester, "templates_tester"))->start(); (new Task(Task::TaskMode::TASKMODE_KERN, templates_tester, "templates_tester2"))->start(); - // (new Task(Task::TaskMode::TASKMODE_KERN, vfs_tester, "vfs_tester"))->start(); VFSGlobals::root = SharedPtr(new RootNode()); @@ -84,6 +83,16 @@ void ktask_main() { VFSApi::close(fd); + FDT::FD fdh = VFSApi::open(StrToPath("/home")); + File *fh = VFSApi::get(fdh); + + assert2(fh != nullptr,"Home dir not found!"); + assert2(fh->dir().get() != nullptr,"Home dir not dir!"); + + VFSGlobals::mounts.add_mount(new MemFs())->set_root(static_ptr_cast(fh->node())); + VFSApi::close(fdh); + (new Task(Task::TaskMode::TASKMODE_KERN, vfs_tester, "vfs_tester"))->start(); + init->start(); } diff --git a/src/iso/CMakeLists.txt b/src/iso/CMakeLists.txt index 4de9ea406..126afc536 100644 --- a/src/iso/CMakeLists.txt +++ b/src/iso/CMakeLists.txt @@ -3,6 +3,7 @@ add_custom_target(iso_limine) add_custom_target(iso COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/isodir/ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/initramfs/ + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/initramfs/home COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/limine.cfg ${CMAKE_CURRENT_BINARY_DIR}/isodir/ COMMAND ${CMAKE_COMMAND} -E copy_if_different $ ${CMAKE_CURRENT_BINARY_DIR}/isodir/ficus.elf COMMAND ${CMAKE_COMMAND} -E copy_if_different $ ${CMAKE_CURRENT_BINARY_DIR}/initramfs/init diff --git a/src/kernel/vfs/VFSTester.cpp b/src/kernel/vfs/VFSTester.cpp index df3a41eee..c8b1abc3b 100644 --- a/src/kernel/vfs/VFSTester.cpp +++ b/src/kernel/vfs/VFSTester.cpp @@ -8,15 +8,15 @@ #include "VFSApi.hpp" void VFSTester::test() { - VFSApi::mkdir(StrToPath("/hello")); - VFSApi::mkdir(StrToPath("/hello/hellod2")); - VFSApi::touch(StrToPath("/hellof")); - VFSApi::touch(StrToPath("/hello/f2")); + VFSApi::mkdir(StrToPath("/home/hello")); + VFSApi::mkdir(StrToPath("/home/hello/hellod2")); + VFSApi::touch(StrToPath("/home/hellof")); + VFSApi::touch(StrToPath("/home/hello/f2")); - FDT::FD a = VFSApi::open(StrToPath("/hello")); - FDT::FD b = VFSApi::open(StrToPath("/hello/hellod2")); - FDT::FD c = VFSApi::open(StrToPath("/hellof")); - FDT::FD d = VFSApi::open(StrToPath("/hello/f2")); + FDT::FD a = VFSApi::open(StrToPath("/home/hello")); + FDT::FD b = VFSApi::open(StrToPath("/home/hello/hellod2")); + FDT::FD c = VFSApi::open(StrToPath("/home/hellof")); + FDT::FD d = VFSApi::open(StrToPath("/home/hello/f2")); { String t("hello wooooorld"); File *cf = VFSApi::get(c); @@ -31,7 +31,7 @@ void VFSTester::test() { VFSApi::close(c); VFSApi::close(d); - c = VFSApi::open(StrToPath("/hellof")); + c = VFSApi::open(StrToPath("/home/hellof")); assert(c != -1); { String t("aaaaaaaaaaaaaaaaaaaa");