diff options
| author | Jon Santmyer <jon@jonsantmyer.com> | 2026-10-16 16:42:22 -0400 |
|---|---|---|
| committer | Jon Santmyer <jon@jonsantmyer.com> | 2026-10-16 16:42:22 -0400 |
| commit | d8aca3ff2501f9a77e22e5afb7a30380aed205af (patch) | |
| tree | a27db1749a35aea07317406f170a2d9b2a799ce7 /hal | |
| parent | 548506392b789f58b1556a6ffca917441e1d89fd (diff) | |
| download | jove-kernel-d8aca3ff2501f9a77e22e5afb7a30380aed205af.tar.gz jove-kernel-d8aca3ff2501f9a77e22e5afb7a30380aed205af.tar.bz2 jove-kernel-d8aca3ff2501f9a77e22e5afb7a30380aed205af.zip | |
remove explicit framebuffer in kernel. reduce locking in syscalls
Diffstat (limited to 'hal')
| -rw-r--r-- | hal/framebuffer.h | 14 | ||||
| -rw-r--r-- | hal/memory.h | 3 | ||||
| -rw-r--r-- | hal/shmem.c | 12 |
3 files changed, 15 insertions, 14 deletions
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 <stddef.h> -#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); +} |
