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_minor(minor)
|
||||
{
|
||||
VFS::the().register_device(*this);
|
||||
VFS::the().register_device({}, *this);
|
||||
}
|
||||
|
||||
Device::~Device()
|
||||
{
|
||||
VFS::the().unregister_device(*this);
|
||||
VFS::the().unregister_device({}, *this);
|
||||
}
|
||||
|
||||
String Device::absolute_path(FileDescriptor&) const
|
||||
|
@ -584,12 +584,12 @@ InodeIdentifier VFS::Mount::host() const
|
||||
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);
|
||||
}
|
||||
|
||||
void VFS::unregister_device(Device& device)
|
||||
void VFS::unregister_device(Badge<Device>, Device& device)
|
||||
{
|
||||
m_devices.remove(encoded_device(device.major(), device.minor()));
|
||||
}
|
||||
|
@ -1,14 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include "FileSystem.h"
|
||||
#include "InodeIdentifier.h"
|
||||
#include "InodeMetadata.h"
|
||||
#include <AK/AKString.h>
|
||||
#include <AK/Badge.h>
|
||||
#include <AK/Function.h>
|
||||
#include <AK/HashMap.h>
|
||||
#include <AK/OwnPtr.h>
|
||||
#include <AK/RetainPtr.h>
|
||||
#include <AK/Vector.h>
|
||||
#include <Kernel/FileSystem/FileSystem.h>
|
||||
#include <Kernel/FileSystem/InodeIdentifier.h>
|
||||
#include <Kernel/FileSystem/InodeMetadata.h>
|
||||
#include <Kernel/KResult.h>
|
||||
|
||||
#define O_RDONLY 0
|
||||
@ -83,8 +84,8 @@ public:
|
||||
KResult mknod(StringView path, mode_t, dev_t, Custody& base);
|
||||
KResultOr<Retained<Custody>> open_directory(StringView path, Custody& base);
|
||||
|
||||
void register_device(Device&);
|
||||
void unregister_device(Device&);
|
||||
void register_device(Badge<Device>, Device&);
|
||||
void unregister_device(Badge<Device>, Device&);
|
||||
|
||||
size_t mount_count() const { return m_mounts.size(); }
|
||||
void for_each_mount(Function<void(const Mount&)>) const;
|
||||
|
Loading…
Reference in New Issue
Block a user