mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-20 17:58:18 +03:00
FileSystem: VFS should require Badge<Device> for device registration.
This commit is contained in:
parent
a1fdda3e20
commit
fa6446fc0d
Notes:
sideshowbarker
2024-07-19 13:49:25 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/fa6446fc0dc
@ -6,12 +6,12 @@ Device::Device(unsigned major, unsigned minor)
|
|||||||
: m_major(major)
|
: m_major(major)
|
||||||
, m_minor(minor)
|
, m_minor(minor)
|
||||||
{
|
{
|
||||||
VFS::the().register_device(*this);
|
VFS::the().register_device({}, *this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Device::~Device()
|
Device::~Device()
|
||||||
{
|
{
|
||||||
VFS::the().unregister_device(*this);
|
VFS::the().unregister_device({}, *this);
|
||||||
}
|
}
|
||||||
|
|
||||||
String Device::absolute_path(FileDescriptor&) const
|
String Device::absolute_path(FileDescriptor&) const
|
||||||
|
@ -584,12 +584,12 @@ InodeIdentifier VFS::Mount::host() const
|
|||||||
return m_host_custody->inode().identifier();
|
return m_host_custody->inode().identifier();
|
||||||
}
|
}
|
||||||
|
|
||||||
void VFS::register_device(Device& device)
|
void VFS::register_device(Badge<Device>, Device& device)
|
||||||
{
|
{
|
||||||
m_devices.set(encoded_device(device.major(), device.minor()), &device);
|
m_devices.set(encoded_device(device.major(), device.minor()), &device);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VFS::unregister_device(Device& device)
|
void VFS::unregister_device(Badge<Device>, Device& device)
|
||||||
{
|
{
|
||||||
m_devices.remove(encoded_device(device.major(), device.minor()));
|
m_devices.remove(encoded_device(device.major(), device.minor()));
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "FileSystem.h"
|
|
||||||
#include "InodeIdentifier.h"
|
|
||||||
#include "InodeMetadata.h"
|
|
||||||
#include <AK/AKString.h>
|
#include <AK/AKString.h>
|
||||||
|
#include <AK/Badge.h>
|
||||||
#include <AK/Function.h>
|
#include <AK/Function.h>
|
||||||
#include <AK/HashMap.h>
|
#include <AK/HashMap.h>
|
||||||
#include <AK/OwnPtr.h>
|
#include <AK/OwnPtr.h>
|
||||||
#include <AK/RetainPtr.h>
|
#include <AK/RetainPtr.h>
|
||||||
#include <AK/Vector.h>
|
#include <AK/Vector.h>
|
||||||
|
#include <Kernel/FileSystem/FileSystem.h>
|
||||||
|
#include <Kernel/FileSystem/InodeIdentifier.h>
|
||||||
|
#include <Kernel/FileSystem/InodeMetadata.h>
|
||||||
#include <Kernel/KResult.h>
|
#include <Kernel/KResult.h>
|
||||||
|
|
||||||
#define O_RDONLY 0
|
#define O_RDONLY 0
|
||||||
@ -83,8 +84,8 @@ public:
|
|||||||
KResult mknod(StringView path, mode_t, dev_t, Custody& base);
|
KResult mknod(StringView path, mode_t, dev_t, Custody& base);
|
||||||
KResultOr<Retained<Custody>> open_directory(StringView path, Custody& base);
|
KResultOr<Retained<Custody>> open_directory(StringView path, Custody& base);
|
||||||
|
|
||||||
void register_device(Device&);
|
void register_device(Badge<Device>, Device&);
|
||||||
void unregister_device(Device&);
|
void unregister_device(Badge<Device>, Device&);
|
||||||
|
|
||||||
size_t mount_count() const { return m_mounts.size(); }
|
size_t mount_count() const { return m_mounts.size(); }
|
||||||
void for_each_mount(Function<void(const Mount&)>) const;
|
void for_each_mount(Function<void(const Mount&)>) const;
|
||||||
|
Loading…
Reference in New Issue
Block a user