summaryrefslogtreecommitdiffstats
path: root/sys/syscall_objdir.c
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-09-26 17:11:50 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-09-26 17:11:50 -0400
commit5f813d49a08cf3c3f8cf6c422cfb6587df575f62 (patch)
treebd8872ee24580614b3eb845e1de26d465b025a09 /sys/syscall_objdir.c
parentb6765812f7da9feccc271e8e0b06f166e8054386 (diff)
downloadjove-kernel-5f813d49a08cf3c3f8cf6c422cfb6587df575f62.tar.gz
jove-kernel-5f813d49a08cf3c3f8cf6c422cfb6587df575f62.tar.bz2
jove-kernel-5f813d49a08cf3c3f8cf6c422cfb6587df575f62.zip
add docs for syscalls. make syscall code kind-of cleaner
Diffstat (limited to 'sys/syscall_objdir.c')
-rw-r--r--sys/syscall_objdir.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/sys/syscall_objdir.c b/sys/syscall_objdir.c
index 277639f..5a6786d 100644
--- a/sys/syscall_objdir.c
+++ b/sys/syscall_objdir.c
@@ -25,20 +25,15 @@ s_syscall_objdir_objtype(
}
int
-_syscall_handle_objdir(
- jove_owned_obj_t *pcb_obj,
- jove_owned_obj_t *objdir,
- jove_owned_obj_t *message_obj,
- jove_owned_obj_t *target_obj,
- struct syscall_header *header,
- size_t bytes_left,
- void *payload)
+_syscall_handle_objdir(syscall_context_t *ctx)
{
- switch(header->callid) {
+ switch(ctx->header->callid) {
case SYSCALL_OBJDIR_OBJTYPE:
- return s_syscall_objdir_objtype(objdir, target_obj, bytes_left, payload);
+ if(ctx->target.permissions & SYSCALL_PERM_OBJDIR_OBJTYPE)
+ return s_syscall_objdir_objtype(
+ ctx->objdir, ctx->target.obj, ctx->bytes_left, ctx->payload);
+ return -EPERM;
default:
- kprintf("syscall_handle_objdir: Objdir does not support syscall %i\n", header->callid);
- return EBADARG;
+ return -EBADCALL;
}
}