summaryrefslogtreecommitdiffstats
path: root/sys/syscall_region.c
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-10-16 16:42:22 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-10-16 16:42:22 -0400
commitd8aca3ff2501f9a77e22e5afb7a30380aed205af (patch)
treea27db1749a35aea07317406f170a2d9b2a799ce7 /sys/syscall_region.c
parent548506392b789f58b1556a6ffca917441e1d89fd (diff)
downloadjove-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 'sys/syscall_region.c')
-rw-r--r--sys/syscall_region.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/syscall_region.c b/sys/syscall_region.c
index 959d615..dc81634 100644
--- a/sys/syscall_region.c
+++ b/sys/syscall_region.c
@@ -7,7 +7,7 @@
static int
s_syscall_region_alloc(jove_owned_obj_t *region_obj,
- jove_owned_obj_t *objdir_obj,
+ jove_obj_t *objdir_obj,
lockstack_t *lockstack,
size_t bytes_left,
void *payload_data)
@@ -20,8 +20,9 @@ s_syscall_region_alloc(jove_owned_obj_t *region_obj,
CHECK_TOOSMALL(bytes_needed, bytes_left, "Message too small for subject path");
- jove_perm_obj_t subject = link_try_traverse_objdir(
- objdir_obj, lockstack, payload->dest_pathlen, payload->dest_path);
+ jove_perm_obj_t subject = link_traverse_objdir(objdir_obj, payload->dest_pathlen, payload->dest_path);
+ lockstack_push(lockstack, subject.obj);
+
CHECK_OBJEXISTS(subject.obj, "Destination path is bad.");
CHECK_OBJPERM(subject, SYSCALL_PERM_REGION_ALLOC_TGT, "Destination path does not have correct permissions.");
CHECK_OBJTYPE(subject.obj, JOVE_OBJ_NONE, "Destination object is not JOVE_OBJ_NONE");