/* * Copyright (c) 2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Kernel::Memory { class PrivateInodeVMObject final : public InodeVMObject { AK_MAKE_NONMOVABLE(PrivateInodeVMObject); public: virtual ~PrivateInodeVMObject() override; static ErrorOr> try_create_with_inode(Inode&); virtual ErrorOr> try_clone() override; private: virtual bool is_private_inode() const override { return true; } explicit PrivateInodeVMObject(Inode&, FixedArray>&&, Bitmap dirty_pages); explicit PrivateInodeVMObject(PrivateInodeVMObject const&, FixedArray>&&, Bitmap dirty_pages); virtual StringView class_name() const override { return "PrivateInodeVMObject"sv; } PrivateInodeVMObject& operator=(PrivateInodeVMObject const&) = delete; }; }