VFS: memfs in home dir for now

This commit is contained in:
2024-05-04 20:09:05 +02:00
parent 72de2c4586
commit feb2ed21cd
3 changed files with 20 additions and 10 deletions

View File

@@ -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<RootNode>(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<NodeDir>(fh->node()));
VFSApi::close(fdh);
(new Task(Task::TaskMode::TASKMODE_KERN, vfs_tester, "vfs_tester"))->start();
init->start();
}

View File

@@ -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 $<TARGET_FILE:kernel.elf> ${CMAKE_CURRENT_BINARY_DIR}/isodir/ficus.elf
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:init> ${CMAKE_CURRENT_BINARY_DIR}/initramfs/init

View File

@@ -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");