Kernel: Reimplement /proc/pci as JSON, add some more fields
This commit is contained in:
parent
dce003c7eb
commit
833f0beeed
Notes:
sideshowbarker
2024-07-19 12:41:55 +09:00
Author: https://github.com/deoxxa Commit: https://github.com/SerenityOS/serenity/commit/833f0beeedd Pull-request: https://github.com/SerenityOS/serenity/pull/450
1 changed files with 15 additions and 4 deletions
|
@ -255,11 +255,22 @@ Optional<KBuffer> procfs$pid_vm(InodeIdentifier identifier)
|
|||
|
||||
Optional<KBuffer> procfs$pci(InodeIdentifier)
|
||||
{
|
||||
KBufferBuilder builder;
|
||||
PCI::enumerate_all([&builder](PCI::Address address, PCI::ID id) {
|
||||
builder.appendf("%b:%b.%b %w:%w\n", address.bus(), address.slot(), address.function(), id.vendor_id, id.device_id);
|
||||
JsonArray json;
|
||||
PCI::enumerate_all([&json](PCI::Address address, PCI::ID id) {
|
||||
JsonObject obj;
|
||||
obj.set("bus", address.bus());
|
||||
obj.set("slot", address.slot());
|
||||
obj.set("function", address.function());
|
||||
obj.set("vendor_id", id.vendor_id);
|
||||
obj.set("device_id", id.device_id);
|
||||
obj.set("revision_id", PCI::get_revision_id(address));
|
||||
obj.set("subclass", PCI::get_subclass(address));
|
||||
obj.set("class", PCI::get_class(address));
|
||||
obj.set("subsystem_id", PCI::get_subsystem_id(address));
|
||||
obj.set("subsystem_vendor_id", PCI::get_subsystem_vendor_id(address));
|
||||
json.append(obj);
|
||||
});
|
||||
return builder.build();
|
||||
return json.serialized<KBufferBuilder>();
|
||||
}
|
||||
|
||||
Optional<KBuffer> procfs$uptime(InodeIdentifier)
|
||||
|
|
Loading…
Add table
Reference in a new issue