/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Kernel { class ProcFSProcessDirectoryInode final : public ProcFSProcessAssociatedInode { friend class ProcFS; public: static ErrorOr> try_create(ProcFS const&, ProcessID); private: ProcFSProcessDirectoryInode(ProcFS const&, ProcessID); // ^Inode virtual ErrorOr attach(OpenFileDescription& description) override; virtual void did_seek(OpenFileDescription&, off_t) override { } virtual InodeMetadata metadata() const override; virtual ErrorOr traverse_as_directory(Function(FileSystem::DirectoryEntryView const&)>) const override; virtual ErrorOr read_bytes_locked(off_t, size_t, UserOrKernelBuffer& buffer, OpenFileDescription*) const override final; virtual ErrorOr> lookup(StringView name) override; }; }