From d8aca3ff2501f9a77e22e5afb7a30380aed205af Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Fri, 16 Oct 2026 16:42:22 -0400 Subject: remove explicit framebuffer in kernel. reduce locking in syscalls --- hal/framebuffer.h | 14 -------------- hal/memory.h | 3 +++ hal/shmem.c | 12 ++++++++++++ 3 files changed, 15 insertions(+), 14 deletions(-) delete mode 100644 hal/framebuffer.h (limited to 'hal') diff --git a/hal/framebuffer.h b/hal/framebuffer.h deleted file mode 100644 index e070889..0000000 --- a/hal/framebuffer.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _JOVE_HAL_FRAMEBUFFER_H -#define _JOVE_HAL_FRAMEBUFFER_H 1 - -#include -#include "hal/obj.h" - -size_t fb_width(jove_owned_obj_t *fb); -size_t fb_height(jove_owned_obj_t *fb); -int fb_blit(jove_owned_obj_t *obj, uint32_t *data, size_t x, size_t y, size_t width, size_t height); - -void *fb_remap(uintptr_t fb_address, size_t fb_size); -void fb_init(void); - -#endif diff --git a/hal/memory.h b/hal/memory.h index 9e799c0..a8fdc86 100644 --- a/hal/memory.h +++ b/hal/memory.h @@ -49,6 +49,7 @@ extern virtaddr_t *__syscall_stack_mapping; extern virtaddr_t *__interrupt_stack_mapping; void mem_setup_regions(void); +void mem_setup_modules(void); physaddr_t phys_fromvirt(virtaddr_t virt); void *phys_tovirt(physaddr_t phys); @@ -107,5 +108,7 @@ int pagedir_unmap_shmem_frame( jove_owned_obj_t *tgt, uintptr_t vptr); int shmem_new(jove_owned_obj_t *untyped_obj); +size_t shmem_numpages(jove_owned_obj_t *shmem_obj); +void *shmem_deref(jove_owned_obj_t *shmem_obj); #endif diff --git a/hal/shmem.c b/hal/shmem.c index 3785c2e..2928a1b 100644 --- a/hal/shmem.c +++ b/hal/shmem.c @@ -18,3 +18,15 @@ shmem_new(jove_owned_obj_t *untyped_obj) memset(untyped, 0, untyped->limit); return 0; } + +inline size_t +shmem_numpages(jove_owned_obj_t *shmem_obj) +{ + return obj_getvalue(shmem_obj) & JOVE_SMHEM_MAXPAGES; +} + +inline void* +shmem_deref(jove_owned_obj_t *shmem_obj) +{ + return phys_tovirt(obj_getvalue(shmem_obj) & ~JOVE_SMHEM_MAXPAGES); +} -- cgit v1.2.3