From 9360e493db4dc6c05e5e11a3595a454f2a3abb52 Mon Sep 17 00:00:00 2001 From: vasilito Date: Wed, 8 Jul 2026 13:55:46 +0300 Subject: [PATCH] kernel: add sys mem resource --- src/scheme/sys/mem.rs | 20 ++++++++++++++++++++ src/scheme/sys/mod.rs | 2 ++ 2 files changed, 22 insertions(+) create mode 100644 src/scheme/sys/mem.rs diff --git a/src/scheme/sys/mem.rs b/src/scheme/sys/mem.rs new file mode 100644 index 0000000000..408c95b585 --- /dev/null +++ b/src/scheme/sys/mem.rs @@ -0,0 +1,20 @@ +use crate::{memory, sync::CleanLockToken, syscall::error::Result}; +use alloc::vec::Vec; + +pub fn resource(_token: &mut CleanLockToken) -> Result> { + let total_kib = memory::total_frames() as u64 * memory::PAGE_SIZE as u64 / 1024; + let free_kib = memory::free_frames() as u64 * memory::PAGE_SIZE as u64 / 1024; + + Ok(format!( + "MemTotal: {} kB\n\ +MemFree: {} kB\n\ +MemAvailable: {} kB\n\ +Buffers: 0 kB\n\ +Cached: 0 kB\n\ +SwapTotal: 0 kB\n\ +SwapFree: 0 kB\n\ +SwapCached: 0 kB\n", + total_kib, free_kib, free_kib + ) + .into_bytes()) +} diff --git a/src/scheme/sys/mod.rs b/src/scheme/sys/mod.rs index 81e7920da7..51f0e51add 100644 --- a/src/scheme/sys/mod.rs +++ b/src/scheme/sys/mod.rs @@ -34,6 +34,7 @@ mod fdstat; mod iostat; mod irq; mod log; +mod mem; mod msr; mod stat; mod syscall; @@ -110,6 +111,7 @@ const FILES: &[(&str, Kind)] = &[ ("iostat", Rd(iostat::resource)), ("irq", Rd(irq::resource)), ("log", Rd(log::resource)), + ("mem", Rd(mem::resource)), ("syscall", Rd(syscall::resource)), ("uname", Rd(uname::resource)), ("env", Rd(|_| Ok(Vec::from(crate::startup::init_env())))),