mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-27 23:09:08 +00:00
ProcFS: Expose info about devices in /proc/devices
This commit is contained in:
parent
acccf9ccda
commit
0f8b45c015
Notes:
sideshowbarker
2024-07-19 12:36:34 +09:00
Author: https://github.com/bugaevc
Commit: 0f8b45c015
Pull-request: https://github.com/SerenityOS/serenity/pull/465
1 changed files with 23 additions and 0 deletions
|
@ -47,6 +47,7 @@ enum ProcFileType {
|
||||||
FI_Root_inodes,
|
FI_Root_inodes,
|
||||||
FI_Root_dmesg,
|
FI_Root_dmesg,
|
||||||
FI_Root_pci,
|
FI_Root_pci,
|
||||||
|
FI_Root_devices,
|
||||||
FI_Root_uptime,
|
FI_Root_uptime,
|
||||||
FI_Root_cmdline,
|
FI_Root_cmdline,
|
||||||
FI_Root_self, // symlink
|
FI_Root_self, // symlink
|
||||||
|
@ -269,6 +270,27 @@ Optional<KBuffer> procfs$pci(InodeIdentifier)
|
||||||
return json.serialized<KBufferBuilder>();
|
return json.serialized<KBufferBuilder>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Optional<KBuffer> procfs$devices(InodeIdentifier)
|
||||||
|
{
|
||||||
|
JsonArray json;
|
||||||
|
Device::for_each([&json](auto& device) {
|
||||||
|
JsonObject obj;
|
||||||
|
obj.set("major", device.major());
|
||||||
|
obj.set("minor", device.minor());
|
||||||
|
obj.set("class_name", device.class_name());
|
||||||
|
|
||||||
|
if (device.is_block_device())
|
||||||
|
obj.set("type", "block");
|
||||||
|
else if (device.is_character_device())
|
||||||
|
obj.set("type", "character");
|
||||||
|
else
|
||||||
|
ASSERT_NOT_REACHED();
|
||||||
|
|
||||||
|
json.append(move(obj));
|
||||||
|
});
|
||||||
|
return json.serialized<KBufferBuilder>();
|
||||||
|
}
|
||||||
|
|
||||||
Optional<KBuffer> procfs$uptime(InodeIdentifier)
|
Optional<KBuffer> procfs$uptime(InodeIdentifier)
|
||||||
{
|
{
|
||||||
KBufferBuilder builder;
|
KBufferBuilder builder;
|
||||||
|
@ -1198,6 +1220,7 @@ ProcFS::ProcFS()
|
||||||
m_entries[FI_Root_dmesg] = { "dmesg", FI_Root_dmesg, procfs$dmesg };
|
m_entries[FI_Root_dmesg] = { "dmesg", FI_Root_dmesg, procfs$dmesg };
|
||||||
m_entries[FI_Root_self] = { "self", FI_Root_self, procfs$self };
|
m_entries[FI_Root_self] = { "self", FI_Root_self, procfs$self };
|
||||||
m_entries[FI_Root_pci] = { "pci", FI_Root_pci, procfs$pci };
|
m_entries[FI_Root_pci] = { "pci", FI_Root_pci, procfs$pci };
|
||||||
|
m_entries[FI_Root_devices] = { "devices", FI_Root_devices, procfs$devices };
|
||||||
m_entries[FI_Root_uptime] = { "uptime", FI_Root_uptime, procfs$uptime };
|
m_entries[FI_Root_uptime] = { "uptime", FI_Root_uptime, procfs$uptime };
|
||||||
m_entries[FI_Root_cmdline] = { "cmdline", FI_Root_cmdline, procfs$cmdline };
|
m_entries[FI_Root_cmdline] = { "cmdline", FI_Root_cmdline, procfs$cmdline };
|
||||||
m_entries[FI_Root_sys] = { "sys", FI_Root_sys };
|
m_entries[FI_Root_sys] = { "sys", FI_Root_sys };
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue