summaryrefslogtreecommitdiffstats
path: root/sys/syscall_pcb.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/syscall_pcb.c')
-rw-r--r--sys/syscall_pcb.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/sys/syscall_pcb.c b/sys/syscall_pcb.c
new file mode 100644
index 0000000..b77be95
--- /dev/null
+++ b/sys/syscall_pcb.c
@@ -0,0 +1,26 @@
+#include "api/error.h"
+#include "lib/printf.h"
+#include "syscall.h"
+
+int
+s_syscall_pcb_yield(jove_owned_obj_t *pcb_obj,
+ size_t bytes_left,
+ void *payload_data)
+{
+ kprintf("%s: Stub!\n", __func__);
+ return 0;
+}
+
+int
+_syscall_handle_pcb(syscall_context_t *ctx)
+{
+ switch(ctx->header->callid) {
+ case SYSCALL_PCB_YIELD:
+ if(ctx->target.permissions & SYSCALL_PERM_PCB_YIELD)
+ return s_syscall_pcb_yield(ctx->target.obj, ctx->bytes_left, ctx->payload);
+ return -EPERM;
+
+ default:
+ return -EBADCALL;
+ }
+}