ptos: pm: Print usable memory in pretty units

Signed-off-by: Chloe M <chloe@yiffware.org>
This commit is contained in:
2026-07-10 19:17:13 -04:00
parent 0d2d5d3412
commit c8e6cfe697
+28
View File
@@ -11,6 +11,7 @@
#include <ke/bpal.h> #include <ke/bpal.h>
#include <ex/trace.h> #include <ex/trace.h>
#include <string.h> #include <string.h>
#include <units.h>
#define DTRACE(Fmt, ...) \ #define DTRACE(Fmt, ...) \
TRACE("[ PM ]: " Fmt, ##__VA_ARGS__) TRACE("[ PM ]: " Fmt, ##__VA_ARGS__)
@@ -66,6 +67,30 @@ typedef struct {
/* Standard usable memory list */ /* Standard usable memory list */
static MM_PFD_LIST AvlList; static MM_PFD_LIST AvlList;
/* Memory statistics */
static USIZE UsableMemory;
/*
* Used to convert bytes into human readable units
*/
static inline VOID
PmZoneSize(const CHAR *TypeName, USIZE Length)
{
if (TypeName == NULL) {
return;
}
if (Length >= UNIT_GIB) {
DTRACE("%s : %d GiB\n", TypeName, Length / UNIT_GIB);
} else if (Length >= UNIT_MIB) {
DTRACE("%s : %d MiB\n", TypeName, Length / UNIT_MIB);
} else if (Length >= UNIT_KIB) {
DTRACE("%s : %d KiB\n", TypeName, Length / UNIT_KIB);
} else {
DTRACE("%s : %d bytes\n", TypeName, Length);
}
}
/* /*
* Appends a page frame descriptor to a page frame descriptor * Appends a page frame descriptor to a page frame descriptor
* list. * list.
@@ -179,9 +204,12 @@ PmProbe(VOID)
} }
++ZoneCount; ++ZoneCount;
UsableMemory += Entry.Length;
} }
/* Log some statistics */
DTRACE("%d pfds, %d zones\n", PfdCount, ZoneCount); DTRACE("%d pfds, %d zones\n", PfdCount, ZoneCount);
PmZoneSize("usable", UsableMemory);
} }
MM_PFN MM_PFN