mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 08:58:11 +00:00
Kernel: Move SharedMemory.{cpp,h} into FileSystem/
This commit is contained in:
parent
f4cec2f110
commit
23a6c2086b
5 changed files with 4 additions and 4 deletions
43
Kernel/FileSystem/SharedMemory.h
Normal file
43
Kernel/FileSystem/SharedMemory.h
Normal file
|
@ -0,0 +1,43 @@
|
|||
#pragma once
|
||||
|
||||
#include <AK/AKString.h>
|
||||
#include <AK/RefPtr.h>
|
||||
#include <AK/RefCounted.h>
|
||||
#include <Kernel/FileSystem/File.h>
|
||||
#include <Kernel/KResult.h>
|
||||
#include <Kernel/UnixTypes.h>
|
||||
|
||||
class VMObject;
|
||||
|
||||
class SharedMemory : public File {
|
||||
public:
|
||||
static KResultOr<NonnullRefPtr<SharedMemory>> open(const String& name, int flags, mode_t);
|
||||
static KResult unlink(const String& name);
|
||||
virtual ~SharedMemory() override;
|
||||
|
||||
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(); }
|
||||
uid_t uid() const { return m_uid; }
|
||||
gid_t gid() const { return m_gid; }
|
||||
|
||||
private:
|
||||
// ^File
|
||||
virtual bool can_read(FileDescription&) const override { return true; }
|
||||
virtual bool can_write(FileDescription&) const override { return true; }
|
||||
virtual int read(FileDescription&, u8*, int) override;
|
||||
virtual int write(FileDescription&, const u8*, int) override;
|
||||
virtual String absolute_path(const FileDescription&) const override;
|
||||
virtual const char* class_name() const override { return "SharedMemory"; }
|
||||
virtual bool is_shared_memory() const override { return true; }
|
||||
virtual KResultOr<Region*> mmap(Process&, FileDescription&, VirtualAddress, size_t offset, size_t size, int prot) override;
|
||||
|
||||
SharedMemory(const String& name, uid_t, gid_t, mode_t);
|
||||
|
||||
String m_name;
|
||||
uid_t m_uid { 0 };
|
||||
gid_t m_gid { 0 };
|
||||
mode_t m_mode { 0 };
|
||||
RefPtr<VMObject> m_vmo;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue