FileSystem.cpp 797 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /*
  2. * Copyright (c) 2019-2020, Sergey Bugaev <bugaevc@serenityos.org>
  3. * Copyright (c) 2022-2023, Liav A. <liavalb@hotmail.co.il>
  4. *
  5. * SPDX-License-Identifier: BSD-2-Clause
  6. */
  7. #include <Kernel/FileSystem/RAMFS/FileSystem.h>
  8. #include <Kernel/FileSystem/RAMFS/Inode.h>
  9. namespace Kernel {
  10. ErrorOr<NonnullLockRefPtr<FileSystem>> RAMFS::try_create()
  11. {
  12. return TRY(adopt_nonnull_lock_ref_or_enomem(new (nothrow) RAMFS));
  13. }
  14. RAMFS::RAMFS() = default;
  15. RAMFS::~RAMFS() = default;
  16. ErrorOr<void> RAMFS::initialize()
  17. {
  18. m_root_inode = TRY(RAMFSInode::try_create_root(*this));
  19. return {};
  20. }
  21. Inode& RAMFS::root_inode()
  22. {
  23. VERIFY(!m_root_inode.is_null());
  24. return *m_root_inode;
  25. }
  26. unsigned RAMFS::next_inode_index()
  27. {
  28. MutexLocker locker(m_lock);
  29. return m_next_inode_index++;
  30. }
  31. }