diff options
Diffstat (limited to 'Kernel/Memory/SharedInodeVMObject.h')
-rw-r--r-- | Kernel/Memory/SharedInodeVMObject.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Kernel/Memory/SharedInodeVMObject.h b/Kernel/Memory/SharedInodeVMObject.h new file mode 100644 index 0000000000..05fb8968eb --- /dev/null +++ b/Kernel/Memory/SharedInodeVMObject.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include <AK/Bitmap.h> +#include <Kernel/Memory/InodeVMObject.h> +#include <Kernel/UnixTypes.h> + +namespace Kernel { + +class SharedInodeVMObject final : public InodeVMObject { + AK_MAKE_NONMOVABLE(SharedInodeVMObject); + +public: + static RefPtr<SharedInodeVMObject> try_create_with_inode(Inode&); + virtual RefPtr<VMObject> try_clone() override; + +private: + virtual bool is_shared_inode() const override { return true; } + + explicit SharedInodeVMObject(Inode&, size_t); + explicit SharedInodeVMObject(SharedInodeVMObject const&); + + virtual StringView class_name() const override { return "SharedInodeVMObject"sv; } + + SharedInodeVMObject& operator=(SharedInodeVMObject const&) = delete; +}; + +} |