summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2024-06-23 19:00:54 -0400
committerIan Moffett <ian@osmora.org>2024-06-23 19:00:54 -0400
commit2e2dc610d2abd6c12cf6dcda290b23fb77ecd704 (patch)
treedea9aa721cae9f5ed607db3bb1a8dc84d6ebcee2
parentc43e62b89d8bcb5ccd4f3265375e09a22dab3831 (diff)
kernel: vm: Add g_kvas for kernel VAS
Signed-off-by: Ian Moffett <ian@osmora.org>
-rw-r--r--sys/include/vm/vm.h3
-rw-r--r--sys/vm/vm_init.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/sys/include/vm/vm.h b/sys/include/vm/vm.h
index bf49e67..9c63901 100644
--- a/sys/include/vm/vm.h
+++ b/sys/include/vm/vm.h
@@ -34,6 +34,7 @@
#include <sys/limine.h>
#include <sys/spinlock.h>
#include <vm/tlsf.h>
+#include <vm/pmap.h>
extern volatile struct limine_hhdm_request g_hhdm_request;
@@ -50,6 +51,8 @@ struct vm_ctx {
tlsf_t tlsf_ctx;
};
+extern struct vas g_kvas;
+
struct vm_ctx *vm_get_ctx(void);
void vm_init(void);
diff --git a/sys/vm/vm_init.c b/sys/vm/vm_init.c
index 703942b..b6bb8a1 100644
--- a/sys/vm/vm_init.c
+++ b/sys/vm/vm_init.c
@@ -31,11 +31,13 @@
#include <sys/panic.h>
#include <vm/vm.h>
#include <vm/physmem.h>
+#include <vm/pmap.h>
#include <assert.h>
#define DYNALLOC_POOL_SZ 0x400000 /* 4 MiB */
#define DYNALLOC_POOL_PAGES (DYNALLOC_POOL_SZ / DEFAULT_PAGESIZE)
+struct vas g_kvas;
static struct vm_ctx vm_ctx;
volatile struct limine_hhdm_request g_hhdm_request = {
.id = LIMINE_HHDM_REQUEST,
@@ -55,6 +57,7 @@ vm_init(void)
vm_physmem_init();
+ g_kvas = pmap_read_vas();
vm_ctx.dynalloc_pool_sz = DYNALLOC_POOL_SZ;
vm_ctx.dynalloc_pool_pa = vm_alloc_frame(DYNALLOC_POOL_PAGES);
if (vm_ctx.dynalloc_pool_pa == 0) {