1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 22:18:12 +00:00

Kernel: Split VMObject into two classes: Anonymous- and InodeVMObject

InodeVMObject is a VMObject with an underlying Inode in the filesystem.
AnonymousVMObject has no Inode.

I'm happy that InodeVMObject::inode() can now return Inode& instead of
VMObject::inode() return Inode*. :^)
This commit is contained in:
Andreas Kling 2019-08-07 18:06:17 +02:00
parent cb2d572a14
commit 6bdb81ad87
16 changed files with 286 additions and 200 deletions

View file

@ -7,7 +7,7 @@
#include <Kernel/KResult.h>
#include <Kernel/UnixTypes.h>
class VMObject;
class AnonymousVMObject;
class SharedMemory : public File {
public:
@ -17,8 +17,8 @@ public:
const String& name() const { return m_name; }
virtual KResult truncate(off_t) override;
VMObject* vmo() { return m_vmo.ptr(); }
const VMObject* vmo() const { return m_vmo.ptr(); }
AnonymousVMObject* vmo() { return m_vmo.ptr(); }
const AnonymousVMObject* vmo() const { return m_vmo.ptr(); }
uid_t uid() const { return m_uid; }
gid_t gid() const { return m_gid; }
@ -39,5 +39,5 @@ private:
uid_t m_uid { 0 };
gid_t m_gid { 0 };
mode_t m_mode { 0 };
RefPtr<VMObject> m_vmo;
RefPtr<AnonymousVMObject> m_vmo;
};