summaryrefslogtreecommitdiff
path: root/sys/include/vm
diff options
context:
space:
mode:
Diffstat (limited to 'sys/include/vm')
-rw-r--r--sys/include/vm/vm.h15
-rw-r--r--sys/include/vm/vm_physseg.h4
2 files changed, 19 insertions, 0 deletions
diff --git a/sys/include/vm/vm.h b/sys/include/vm/vm.h
index 78038f0..baf7677 100644
--- a/sys/include/vm/vm.h
+++ b/sys/include/vm/vm.h
@@ -32,6 +32,8 @@
#include <sys/types.h>
#include <sys/limine.h>
+#include <sys/cdefs.h>
+#include <vm/vm_page.h>
extern volatile struct limine_hhdm_request g_hhdm_request;
@@ -40,6 +42,19 @@ extern volatile struct limine_hhdm_request g_hhdm_request;
#define PHYS_TO_VIRT(phys) (void *)((uintptr_t)phys + VM_HIGHER_HALF)
#define VIRT_TO_PHYS(virt) ((uintptr_t)virt - VM_HIGHER_HALF)
+/*
+ * Returns the machine's pagesize:
+ *
+ * XXX TODO: This needs to be moved to vmm_init.c
+ * while returning a non-constant value.
+ */
+static inline size_t
+vm_get_page_size(void)
+{
+ return 4096;
+}
+
void vm_init(void);
+struct vas vm_new_vas(void);
#endif /* !_VM_H_ */
diff --git a/sys/include/vm/vm_physseg.h b/sys/include/vm/vm_physseg.h
index 5bf21db..5865a84 100644
--- a/sys/include/vm/vm_physseg.h
+++ b/sys/include/vm/vm_physseg.h
@@ -30,6 +30,10 @@
#ifndef _VM_VM_PHYSSEG_H_
#define _VM_VM_PHYSSEG_H_
+#include <sys/types.h>
+
void vm_physseg_init(void);
+uintptr_t vm_alloc_pageframe(size_t count);
+void vm_free_pageframe(uintptr_t base, size_t count);
#endif /* !_VM_VM_PHYSSEG_H_ */