FileSystem.h 716 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/Types.h>
  8. #include <Kernel/FileSystem/FileSystem.h>
  9. #include <Kernel/FileSystem/Inode.h>
  10. #include <Kernel/Forward.h>
  11. namespace Kernel {
  12. class ProcFSInode;
  13. class ProcFS final : public FileSystem {
  14. friend class ProcFSInode;
  15. public:
  16. virtual ~ProcFS() override;
  17. static ErrorOr<NonnullLockRefPtr<FileSystem>> try_create();
  18. virtual ErrorOr<void> initialize() override;
  19. virtual StringView class_name() const override { return "ProcFS"sv; }
  20. virtual Inode& root_inode() override;
  21. private:
  22. ProcFS();
  23. LockRefPtr<ProcFSInode> m_root_inode;
  24. };
  25. }