#pragma once #include "fs/VFS.h" #include "fs/devices/DeviceRegistry.h" #include namespace TmpFS { class FileSystem : public VFS::FileSystem { public: SharedPtr root_inode() const override { return m_root_inode; } Result> create_file_inode() override; Result> create_dir_inode(SharedPtr parent) override; Result> create_device_inode(u32 major, u32 minor) override; Result> create_symlink_inode(StringView link) override; Result set_mount_dir(SharedPtr parent) override; Result reset_mount_dir() override; static Result> create(); dev_t host_device_id() const override { return m_host_device_id; } virtual ~FileSystem() = default; private: FileSystem(); void set_root(SharedPtr root); SharedPtr m_root_inode; Atomic m_next_inode_number { 2 }; dev_t m_host_device_id; }; }