mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 09:38:11 +00:00

We now use AK::Error and AK::ErrorOr<T> in both kernel and userspace! This was a slightly tedious refactoring that took a long time, so it's not unlikely that some bugs crept in. Nevertheless, it does pass basic functionality testing, and it's just real nice to finally see the same pattern in all contexts. :^)
33 lines
876 B
C++
33 lines
876 B
C++
/*
|
|
* 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::Memory {
|
|
|
|
class SharedInodeVMObject final : public InodeVMObject {
|
|
AK_MAKE_NONMOVABLE(SharedInodeVMObject);
|
|
|
|
public:
|
|
static ErrorOr<NonnullRefPtr<SharedInodeVMObject>> try_create_with_inode(Inode&);
|
|
virtual ErrorOr<NonnullRefPtr<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;
|
|
};
|
|
|
|
}
|