mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 12:37:45 +00:00
Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace
This commit is contained in:
parent
a1d7ebf85a
commit
93d98d4976
153 changed files with 473 additions and 467 deletions
|
@ -10,7 +10,7 @@
|
|||
|
||||
namespace Kernel {
|
||||
|
||||
AnonymousFile::AnonymousFile(NonnullRefPtr<AnonymousVMObject> vmobject)
|
||||
AnonymousFile::AnonymousFile(NonnullRefPtr<Memory::AnonymousVMObject> vmobject)
|
||||
: m_vmobject(move(vmobject))
|
||||
{
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ AnonymousFile::~AnonymousFile()
|
|||
{
|
||||
}
|
||||
|
||||
KResultOr<Region*> AnonymousFile::mmap(Process& process, FileDescription&, const Range& range, u64 offset, int prot, bool shared)
|
||||
KResultOr<Memory::Region*> AnonymousFile::mmap(Process& process, FileDescription&, Memory::Range const& range, u64 offset, int prot, bool shared)
|
||||
{
|
||||
if (offset != 0)
|
||||
return EINVAL;
|
||||
|
|
|
@ -13,14 +13,14 @@ namespace Kernel {
|
|||
|
||||
class AnonymousFile final : public File {
|
||||
public:
|
||||
static RefPtr<AnonymousFile> create(NonnullRefPtr<AnonymousVMObject> vmobject)
|
||||
static RefPtr<AnonymousFile> create(NonnullRefPtr<Memory::AnonymousVMObject> vmobject)
|
||||
{
|
||||
return adopt_ref_if_nonnull(new (nothrow) AnonymousFile(move(vmobject)));
|
||||
}
|
||||
|
||||
virtual ~AnonymousFile() override;
|
||||
|
||||
virtual KResultOr<Region*> mmap(Process&, FileDescription&, const Range&, u64 offset, int prot, bool shared) override;
|
||||
virtual KResultOr<Memory::Region*> mmap(Process&, FileDescription&, Memory::Range const&, u64 offset, int prot, bool shared) override;
|
||||
|
||||
private:
|
||||
virtual StringView class_name() const override { return "AnonymousFile"; }
|
||||
|
@ -30,9 +30,9 @@ private:
|
|||
virtual KResultOr<size_t> read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override { return ENOTSUP; }
|
||||
virtual KResultOr<size_t> write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override { return ENOTSUP; }
|
||||
|
||||
explicit AnonymousFile(NonnullRefPtr<AnonymousVMObject>);
|
||||
explicit AnonymousFile(NonnullRefPtr<Memory::AnonymousVMObject>);
|
||||
|
||||
NonnullRefPtr<AnonymousVMObject> m_vmobject;
|
||||
NonnullRefPtr<Memory::AnonymousVMObject> m_vmobject;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -132,7 +132,7 @@ bool Ext2FS::initialize()
|
|||
|
||||
auto blocks_to_read = ceil_div(m_block_group_count * sizeof(ext2_group_desc), block_size());
|
||||
BlockIndex first_block_of_bgdt = block_size() == 1024 ? 2 : 1;
|
||||
m_cached_group_descriptor_table = KBuffer::try_create_with_size(block_size() * blocks_to_read, Region::Access::Read | Region::Access::Write, "Ext2FS: Block group descriptors");
|
||||
m_cached_group_descriptor_table = KBuffer::try_create_with_size(block_size() * blocks_to_read, Memory::Region::Access::Read | Memory::Region::Access::Write, "Ext2FS: Block group descriptors");
|
||||
if (!m_cached_group_descriptor_table) {
|
||||
dbgln("Ext2FS: Failed to allocate memory for group descriptor table");
|
||||
return false;
|
||||
|
@ -1505,7 +1505,7 @@ KResultOr<Ext2FS::CachedBitmap*> Ext2FS::get_bitmap_block(BlockIndex bitmap_bloc
|
|||
return cached_bitmap;
|
||||
}
|
||||
|
||||
auto block = KBuffer::try_create_with_size(block_size(), Region::Access::Read | Region::Access::Write, "Ext2FS: Cached bitmap block");
|
||||
auto block = KBuffer::try_create_with_size(block_size(), Memory::Region::Access::Read | Memory::Region::Access::Write, "Ext2FS: Cached bitmap block");
|
||||
if (!block)
|
||||
return ENOMEM;
|
||||
auto buffer = UserOrKernelBuffer::for_kernel_buffer(block->data());
|
||||
|
|
|
@ -40,7 +40,7 @@ KResult File::ioctl(FileDescription&, unsigned, Userspace<void*>)
|
|||
return ENOTTY;
|
||||
}
|
||||
|
||||
KResultOr<Region*> File::mmap(Process&, FileDescription&, const Range&, u64, int, bool)
|
||||
KResultOr<Memory::Region*> File::mmap(Process&, FileDescription&, Memory::Range const&, u64, int, bool)
|
||||
{
|
||||
return ENODEV;
|
||||
}
|
||||
|
|
|
@ -88,7 +88,7 @@ public:
|
|||
virtual KResultOr<size_t> read(FileDescription&, u64, UserOrKernelBuffer&, size_t) = 0;
|
||||
virtual KResultOr<size_t> write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) = 0;
|
||||
virtual KResult ioctl(FileDescription&, unsigned request, Userspace<void*> arg);
|
||||
virtual KResultOr<Region*> mmap(Process&, FileDescription&, const Range&, u64 offset, int prot, bool shared);
|
||||
virtual KResultOr<Memory::Region*> mmap(Process&, FileDescription&, Memory::Range const&, u64 offset, int prot, bool shared);
|
||||
virtual KResult stat(::stat&) const { return EBADF; }
|
||||
|
||||
virtual String absolute_path(const FileDescription&) const = 0;
|
||||
|
|
|
@ -380,7 +380,7 @@ InodeMetadata FileDescription::metadata() const
|
|||
return {};
|
||||
}
|
||||
|
||||
KResultOr<Region*> FileDescription::mmap(Process& process, const Range& range, u64 offset, int prot, bool shared)
|
||||
KResultOr<Memory::Region*> FileDescription::mmap(Process& process, Memory::Range const& range, u64 offset, int prot, bool shared)
|
||||
{
|
||||
MutexLocker locker(m_lock);
|
||||
return m_file->mmap(process, *this, range, offset, prot, shared);
|
||||
|
|
|
@ -96,7 +96,7 @@ public:
|
|||
Custody* custody() { return m_custody.ptr(); }
|
||||
const Custody* custody() const { return m_custody.ptr(); }
|
||||
|
||||
KResultOr<Region*> mmap(Process&, const Range&, u64 offset, int prot, bool shared);
|
||||
KResultOr<Memory::Region*> mmap(Process&, Memory::Range const&, u64 offset, int prot, bool shared);
|
||||
|
||||
bool is_blocking() const { return m_is_blocking; }
|
||||
void set_blocking(bool b) { m_is_blocking = b; }
|
||||
|
|
|
@ -141,7 +141,7 @@ KResult Inode::decrement_link_count()
|
|||
return ENOTIMPL;
|
||||
}
|
||||
|
||||
void Inode::set_shared_vmobject(SharedInodeVMObject& vmobject)
|
||||
void Inode::set_shared_vmobject(Memory::SharedInodeVMObject& vmobject)
|
||||
{
|
||||
MutexLocker locker(m_inode_lock);
|
||||
m_shared_vmobject = vmobject;
|
||||
|
@ -271,7 +271,7 @@ KResult Inode::prepare_to_write_data()
|
|||
return KSuccess;
|
||||
}
|
||||
|
||||
RefPtr<SharedInodeVMObject> Inode::shared_vmobject() const
|
||||
RefPtr<Memory::SharedInodeVMObject> Inode::shared_vmobject() const
|
||||
{
|
||||
MutexLocker locker(m_inode_lock);
|
||||
return m_shared_vmobject.strong_ref();
|
||||
|
|
|
@ -84,8 +84,8 @@ public:
|
|||
|
||||
void will_be_destroyed();
|
||||
|
||||
void set_shared_vmobject(SharedInodeVMObject&);
|
||||
RefPtr<SharedInodeVMObject> shared_vmobject() const;
|
||||
void set_shared_vmobject(Memory::SharedInodeVMObject&);
|
||||
RefPtr<Memory::SharedInodeVMObject> shared_vmobject() const;
|
||||
|
||||
static void sync();
|
||||
|
||||
|
@ -116,7 +116,7 @@ protected:
|
|||
private:
|
||||
FileSystem& m_file_system;
|
||||
InodeIndex m_index { 0 };
|
||||
WeakPtr<SharedInodeVMObject> m_shared_vmobject;
|
||||
WeakPtr<Memory::SharedInodeVMObject> m_shared_vmobject;
|
||||
RefPtr<LocalSocket> m_socket;
|
||||
HashTable<InodeWatcher*> m_watchers;
|
||||
bool m_metadata_dirty { false };
|
||||
|
|
|
@ -93,14 +93,14 @@ KResult InodeFile::ioctl(FileDescription& description, unsigned request, Userspa
|
|||
}
|
||||
}
|
||||
|
||||
KResultOr<Region*> InodeFile::mmap(Process& process, FileDescription& description, const Range& range, u64 offset, int prot, bool shared)
|
||||
KResultOr<Memory::Region*> InodeFile::mmap(Process& process, FileDescription& description, Memory::Range const& range, u64 offset, int prot, bool shared)
|
||||
{
|
||||
// FIXME: If PROT_EXEC, check that the underlying file system isn't mounted noexec.
|
||||
RefPtr<InodeVMObject> vmobject;
|
||||
RefPtr<Memory::InodeVMObject> vmobject;
|
||||
if (shared)
|
||||
vmobject = SharedInodeVMObject::try_create_with_inode(inode());
|
||||
vmobject = Memory::SharedInodeVMObject::try_create_with_inode(inode());
|
||||
else
|
||||
vmobject = PrivateInodeVMObject::try_create_with_inode(inode());
|
||||
vmobject = Memory::PrivateInodeVMObject::try_create_with_inode(inode());
|
||||
if (!vmobject)
|
||||
return ENOMEM;
|
||||
return process.space().allocate_region_with_vmobject(range, vmobject.release_nonnull(), offset, description.absolute_path(), prot, shared);
|
||||
|
|
|
@ -33,7 +33,7 @@ public:
|
|||
virtual KResultOr<size_t> read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override;
|
||||
virtual KResultOr<size_t> write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override;
|
||||
virtual KResult ioctl(FileDescription&, unsigned request, Userspace<void*> arg) override;
|
||||
virtual KResultOr<Region*> mmap(Process&, FileDescription&, const Range&, u64 offset, int prot, bool shared) override;
|
||||
virtual KResultOr<Memory::Region*> mmap(Process&, FileDescription&, Memory::Range const&, u64 offset, int prot, bool shared) override;
|
||||
virtual KResult stat(::stat& buffer) const override { return inode().metadata().stat(buffer); }
|
||||
|
||||
virtual String absolute_path(const FileDescription&) const override;
|
||||
|
|
|
@ -560,7 +560,7 @@ KResult Plan9FS::read_and_dispatch_one_message()
|
|||
if (result.is_error())
|
||||
return result;
|
||||
|
||||
auto buffer = KBuffer::try_create_with_size(header.size, Region::Access::Read | Region::Access::Write);
|
||||
auto buffer = KBuffer::try_create_with_size(header.size, Memory::Region::Access::Read | Memory::Region::Access::Write);
|
||||
if (!buffer)
|
||||
return ENOMEM;
|
||||
// Copy the already read header into the buffer.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue