aboutsummaryrefslogtreecommitdiff
path: root/sys/include
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2024-05-23 01:31:02 -0400
committerIan Moffett <ian@osmora.org>2024-05-23 03:18:13 -0400
commite0b34937b1bd674c05d609331501f81740fbb87f (patch)
tree0cf3fc3dca22b4322b174cf6fbbfcff075e7c010 /sys/include
parent5559da2299dc50b50c62d7d1b92b769803fb9321 (diff)
kernel: vm: Add memory stats
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/include')
-rw-r--r--sys/include/vm/physseg.h7
-rw-r--r--sys/include/vm/vm.h6
2 files changed, 13 insertions, 0 deletions
diff --git a/sys/include/vm/physseg.h b/sys/include/vm/physseg.h
index aced4cb..af8cae8 100644
--- a/sys/include/vm/physseg.h
+++ b/sys/include/vm/physseg.h
@@ -32,8 +32,15 @@
#include <sys/types.h>
+struct physmem_stat {
+ size_t reserved_kib; /* Reserved memory */
+ size_t total_kib; /* Total memory */
+};
+
void vm_physseg_init(void);
uintptr_t vm_alloc_pageframe(size_t count);
+
void vm_free_pageframe(uintptr_t base, size_t count);
+struct physmem_stat vm_phys_memstat(void);
#endif /* !_VM_VM_PHYSSEG_H_ */
diff --git a/sys/include/vm/vm.h b/sys/include/vm/vm.h
index 975eff0..f6fba66 100644
--- a/sys/include/vm/vm.h
+++ b/sys/include/vm/vm.h
@@ -39,6 +39,7 @@
#include <sys/cdefs.h>
#include <vm/page.h>
#include <vm/pmap.h>
+#include <vm/physseg.h>
extern volatile struct limine_hhdm_request g_hhdm_request;
@@ -52,6 +53,10 @@ struct vm_range {
uintptr_t end;
};
+struct vm_memstat {
+ struct physmem_stat pmem_stat;
+};
+
/*
* Returns the machine's pagesize:
*
@@ -67,5 +72,6 @@ vm_get_page_size(void)
void vm_init(void);
struct vm_ctx *vm_get_ctx(void);
struct vas vm_get_kvas(void);
+struct vm_memstat vm_memstat(void);
#endif /* !_VM_H_ */