1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 14:57:35 +00:00

Kernel/USB: Move USB bus information from /proc to /sys

This patch moves all the USB data from /proc/bus/usb to /sys/bus/usb.
This commit is contained in:
Andreas Kling 2021-07-18 00:49:53 +02:00
parent 72a5347f91
commit b975a74a1d
8 changed files with 93 additions and 80 deletions

View file

@ -36,17 +36,6 @@ UNMAP_AFTER_INIT ProcFSComponentRegistry::ProcFSComponentRegistry()
{
}
const ProcFSBusDirectory& ProcFSComponentRegistry::buses_directory() const
{
return *m_root_directory->m_buses_directory;
}
void ProcFSComponentRegistry::register_new_bus_directory(ProcFSExposedDirectory& new_bus_directory)
{
VERIFY(!m_root_directory->m_buses_directory.is_null());
m_root_directory->m_buses_directory->m_components.append(new_bus_directory);
}
void ProcFSComponentRegistry::register_new_process(Process& new_process)
{
Locker locker(m_lock);

View file

@ -56,6 +56,9 @@ KResult SysFSRootDirectory::traverse_as_directory(unsigned fsid, Function<bool(F
SysFSRootDirectory::SysFSRootDirectory()
: SysFSDirectory(".")
{
auto buses_directory = SysFSBusDirectory::must_create(*this);
m_components.append(buses_directory);
m_buses_directory = buses_directory;
}
NonnullRefPtr<SysFS> SysFS::create()
@ -174,6 +177,7 @@ SysFSDirectoryInode::SysFSDirectoryInode(SysFS const& fs, SysFSComponent const&
SysFSDirectoryInode::~SysFSDirectoryInode()
{
}
InodeMetadata SysFSDirectoryInode::metadata() const
{
Locker locker(m_inode_lock);
@ -201,4 +205,26 @@ RefPtr<Inode> SysFSDirectoryInode::lookup(StringView name)
return component->to_inode(m_parent_fs);
}
SysFSBusDirectory& SysFSComponentRegistry::buses_directory()
{
return *m_root_directory->m_buses_directory;
}
void SysFSComponentRegistry::register_new_bus_directory(SysFSDirectory& new_bus_directory)
{
VERIFY(!m_root_directory->m_buses_directory.is_null());
m_root_directory->m_buses_directory->m_components.append(new_bus_directory);
}
UNMAP_AFTER_INIT NonnullRefPtr<SysFSBusDirectory> SysFSBusDirectory::must_create(SysFSRootDirectory const& parent_directory)
{
auto directory = adopt_ref(*new (nothrow) SysFSBusDirectory(parent_directory));
return directory;
}
UNMAP_AFTER_INIT SysFSBusDirectory::SysFSBusDirectory(SysFSRootDirectory const& parent_directory)
: SysFSDirectory("bus"sv, parent_directory)
{
}
}

View file

@ -21,6 +21,17 @@ public:
private:
SysFSRootDirectory();
RefPtr<SysFSBusDirectory> m_buses_directory;
};
class SysFSBusDirectory : public SysFSDirectory {
friend class SysFSComponentRegistry;
public:
static NonnullRefPtr<SysFSBusDirectory> must_create(SysFSRootDirectory const&);
private:
explicit SysFSBusDirectory(SysFSRootDirectory const&);
};
class SysFSComponentRegistry {
@ -35,6 +46,9 @@ public:
SysFSDirectory& root_directory() { return m_root_directory; }
Mutex& get_lock() { return m_lock; }
void register_new_bus_directory(SysFSDirectory&);
SysFSBusDirectory& buses_directory();
private:
Mutex m_lock;
NonnullRefPtr<SysFSRootDirectory> m_root_directory;