From 53fa3cd2bfdb122d773024612d8c1d71f0dd8188 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Sat, 12 Sep 2026 22:00:09 -0400 Subject: add paging support --- hal/memory.h | 10 +++++++++- hal/untyped.c | 6 +++--- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'hal') diff --git a/hal/memory.h b/hal/memory.h index 659263c..ca021ef 100644 --- a/hal/memory.h +++ b/hal/memory.h @@ -2,6 +2,7 @@ #define _JOVE_HAL_MEMORY_H 1 #include "obj.h" +#include "api/syscall.h" typedef struct jove_obj_untyped { @@ -14,11 +15,18 @@ void mem_setup_untyped(void); void *phys_tovirt(uintptr_t phys); +uintptr_t untyped_address(jove_owned_obj_t *tgt); size_t untyped_size(jove_owned_obj_t *tgt); -size_t untyped_align(jove_owned_obj_t *tgt); int untyped_split(jove_owned_obj_t *tgt, jove_owned_obj_t *dst, size_t bytes); int untyped_merge(jove_owned_obj_t *a, jove_owned_obj_t *b); int untyped_retype(jove_owned_obj_t *tgt, uint8_t newtype); +int pagedir_map_frame( + jove_owned_obj_t *tgt, jove_owned_obj_t *untyped_obj, + uintptr_t vptr, struct syscall_pagedir_flags flg); +int pagedir_map_table( + jove_owned_obj_t *tgt, jove_owned_obj_t *untyped_obj, + uintptr_t vptr, struct syscall_pagedir_flags flg); + #endif diff --git a/hal/untyped.c b/hal/untyped.c index 243f3ec..e76dd0e 100644 --- a/hal/untyped.c +++ b/hal/untyped.c @@ -8,10 +8,10 @@ untyped_size(jove_owned_obj_t *tgt) return ((jove_untyped_t*)obj_deref(tgt))->limit; } -size_t -untyped_align(jove_owned_obj_t *tgt) +uintptr_t +untyped_address(jove_owned_obj_t *tgt) { - return (uintptr_t)obj_deref(tgt) & 0xFFF; + return (uintptr_t)obj_deref(tgt); } int -- cgit v1.2.3