mirror of
https://github.com/usatiuk/ficus.git
synced 2025-10-29 00:27:52 +01:00
VFS: memfs in home dir for now
This commit is contained in:
@@ -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_tester"))->start();
|
||||||
(new Task(Task::TaskMode::TASKMODE_KERN, templates_tester, "templates_tester2"))->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());
|
VFSGlobals::root = SharedPtr<RootNode>(new RootNode());
|
||||||
|
|
||||||
@@ -84,6 +83,16 @@ void ktask_main() {
|
|||||||
|
|
||||||
VFSApi::close(fd);
|
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();
|
init->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ add_custom_target(iso_limine)
|
|||||||
add_custom_target(iso
|
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}/isodir/
|
||||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/initramfs/
|
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_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: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
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:init> ${CMAKE_CURRENT_BINARY_DIR}/initramfs/init
|
||||||
|
|||||||
@@ -8,15 +8,15 @@
|
|||||||
#include "VFSApi.hpp"
|
#include "VFSApi.hpp"
|
||||||
|
|
||||||
void VFSTester::test() {
|
void VFSTester::test() {
|
||||||
VFSApi::mkdir(StrToPath("/hello"));
|
VFSApi::mkdir(StrToPath("/home/hello"));
|
||||||
VFSApi::mkdir(StrToPath("/hello/hellod2"));
|
VFSApi::mkdir(StrToPath("/home/hello/hellod2"));
|
||||||
VFSApi::touch(StrToPath("/hellof"));
|
VFSApi::touch(StrToPath("/home/hellof"));
|
||||||
VFSApi::touch(StrToPath("/hello/f2"));
|
VFSApi::touch(StrToPath("/home/hello/f2"));
|
||||||
|
|
||||||
FDT::FD a = VFSApi::open(StrToPath("/hello"));
|
FDT::FD a = VFSApi::open(StrToPath("/home/hello"));
|
||||||
FDT::FD b = VFSApi::open(StrToPath("/hello/hellod2"));
|
FDT::FD b = VFSApi::open(StrToPath("/home/hello/hellod2"));
|
||||||
FDT::FD c = VFSApi::open(StrToPath("/hellof"));
|
FDT::FD c = VFSApi::open(StrToPath("/home/hellof"));
|
||||||
FDT::FD d = VFSApi::open(StrToPath("/hello/f2"));
|
FDT::FD d = VFSApi::open(StrToPath("/home/hello/f2"));
|
||||||
{
|
{
|
||||||
String t("hello wooooorld");
|
String t("hello wooooorld");
|
||||||
File *cf = VFSApi::get(c);
|
File *cf = VFSApi::get(c);
|
||||||
@@ -31,7 +31,7 @@ void VFSTester::test() {
|
|||||||
VFSApi::close(c);
|
VFSApi::close(c);
|
||||||
VFSApi::close(d);
|
VFSApi::close(d);
|
||||||
|
|
||||||
c = VFSApi::open(StrToPath("/hellof"));
|
c = VFSApi::open(StrToPath("/home/hellof"));
|
||||||
assert(c != -1);
|
assert(c != -1);
|
||||||
{
|
{
|
||||||
String t("aaaaaaaaaaaaaaaaaaaa");
|
String t("aaaaaaaaaaaaaaaaaaaa");
|
||||||
|
|||||||
Reference in New Issue
Block a user