From 52a5e34902f5c6d15e8027b281c2a7349ed88162 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 28 Jul 2019 11:37:50 +0200 Subject: [PATCH] Kernel: Convert /proc/PID/vm to JSON. --- Kernel/FileSystem/ProcFS.cpp | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/Kernel/FileSystem/ProcFS.cpp b/Kernel/FileSystem/ProcFS.cpp index ce94ddf1bf..b1ea7d9491 100644 --- a/Kernel/FileSystem/ProcFS.cpp +++ b/Kernel/FileSystem/ProcFS.cpp @@ -222,23 +222,18 @@ ByteBuffer procfs$pid_vm(InodeIdentifier identifier) if (!handle) return {}; auto& process = handle->process(); - StringBuilder builder; - builder.appendf("BEGIN END SIZE COMMIT FLAGS NAME\n"); + JsonArray array; for (auto& region : process.regions()) { - StringBuilder flags_builder; - if (region.is_readable()) - flags_builder.append('R'); - if (region.is_writable()) - flags_builder.append('W'); - builder.appendf("%x -- %x %x %x %-4s %s\n", - region.vaddr().get(), - region.vaddr().offset(region.size() - 1).get(), - region.size(), - region.amount_resident(), - flags_builder.to_string().characters(), - region.name().characters()); + JsonObject region_object; + region_object.set("readable", region.is_readable()); + region_object.set("writable", region.is_writable()); + region_object.set("address", region.vaddr().get()); + region_object.set("size", region.size()); + region_object.set("amount_resident", region.amount_resident()); + region_object.set("name", region.name()); + array.append(move(region_object)); } - return builder.to_byte_buffer(); + return array.serialized().to_byte_buffer(); } ByteBuffer procfs$pci(InodeIdentifier)