diff options
| author | Jon Santmyer <jon@jonsantmyer.com> | 2026-09-29 12:53:57 -0400 |
|---|---|---|
| committer | Jon Santmyer <jon@jonsantmyer.com> | 2026-09-29 12:53:57 -0400 |
| commit | c2788174198632e0c8bdbfa7762081f595460bdf (patch) | |
| tree | 373b1f5c7cfe0e87f29c1c8956579c58b4f22bf9 /sys/syscall_pagedir.c | |
| parent | 8de23ca36173cfdb3c609074496115ebd9045887 (diff) | |
| download | jove-kernel-c2788174198632e0c8bdbfa7762081f595460bdf.tar.gz jove-kernel-c2788174198632e0c8bdbfa7762081f595460bdf.tar.bz2 jove-kernel-c2788174198632e0c8bdbfa7762081f595460bdf.zip | |
move process code into proc. add panic folder
Diffstat (limited to 'sys/syscall_pagedir.c')
| -rw-r--r-- | sys/syscall_pagedir.c | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/sys/syscall_pagedir.c b/sys/syscall_pagedir.c index 961c477..7b8f315 100644 --- a/sys/syscall_pagedir.c +++ b/sys/syscall_pagedir.c @@ -28,10 +28,9 @@ s_get_untyped( "Message too small for untyped path."); errno = 0; - jove_perm_obj_t untyped = link_try_traverse( - lockstack_push(lockstack, objdir_trygetobj( - objdir, payload->untyped_path, payload->untyped_pathlen)), - lockstack); + jove_perm_obj_t untyped = link_try_traverse_objdir( + objdir, lockstack, payload->untyped_pathlen, payload->untyped_path); + if(errno) { kprintf("%s: Untyped obj failed for the reason: %s\n", __func__, errstr(errno)); return errno; @@ -81,10 +80,9 @@ s_syscall_pagedir_unmap( CHECK_TOOSMALL(bytes_needed, payload_bytes, "Message too small for none path"); - jove_perm_obj_t none = link_try_traverse( - lockstack_push(lockstack, objdir_trygetobj( - objdir, payload->none_path, payload->none_pathlen)), - lockstack); + jove_perm_obj_t none = link_try_traverse_objdir( + objdir, lockstack, payload->none_pathlen, payload->none_path); + if(errno) { kprintf("%s: None obj retrieval failed for the reason: %s\n", __func__, errstr(errno)); @@ -163,15 +161,14 @@ s_syscall_pagedir_map_shmem( bytes_needed += payload->shmem_pathlen << 1; CHECK_TOOSMALL(bytes_needed, payload_bytes, - "Message too small for untyped path."); + "Message too small for shared memory path."); errno = 0; - jove_perm_obj_t shmem = link_try_traverse( - lockstack_push(lockstack, objdir_trygetobj( - objdir, payload->shmem_path, payload->shmem_pathlen)), - lockstack); + jove_perm_obj_t shmem = link_try_traverse_objdir( + objdir, lockstack, payload->shmem_pathlen, payload->shmem_path); if(errno) { - klogf("Shared memory obj failed for the reason: %s\n", errstr(errno)); + klogf("Unable to retrieve shared memory object %P : %s\n", + payload->shmem_path, payload->shmem_pathlen, errstr(errno)); return errno; } @@ -179,7 +176,7 @@ s_syscall_pagedir_map_shmem( "Shared memory path does not point to a shared memory object."); uintmax_t shmem_value = obj_getvalue(shmem.obj); - uint8_t shmem_pages = shmem_value & 0xFF; + uint8_t shmem_pages = shmem_value & 0xFFF; if(payload->page_offset >= shmem_pages) { klogf("Page offset goes beyond size of shared memory object: (%i >= %i)\n", |
