From 8d48bbd9746228b63bafa5f92b621998d7d8f3d3 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Sun, 4 Oct 2026 10:49:41 -0400 Subject: move init fully to proc. remove init pages prealloc. prepare for scheduling --- api/syscall.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'api/syscall.h') diff --git a/api/syscall.h b/api/syscall.h index a116177..2502621 100644 --- a/api/syscall.h +++ b/api/syscall.h @@ -4,6 +4,7 @@ #include #include +#include "process.h" #include "obj.h" /* General syscall behavior: @@ -123,6 +124,45 @@ struct syscall_pagedir_unmap objpath_part_t none_path[]; }; +/**JOVE_OBJ_PCB syscalls. + * */ + +enum +{ + _SYSCALL_PCB_NONE = 0, + SYSCALL_PCB_YIELD, + SYSCALL_PCB_SEND, + SYSCALL_PCB_RECV +}; + +#define SYSCALL_PERM_PCB_YIELD (JOVE_PERM_WRITE) +#define SYSCALL_PERM_PCB_SEND (JOVE_PERM_MUTATE) +#define SYSCALL_PERM_PCB_RECV (JOVE_PERM_MUTATE) + +#define SYSCALL_PERM_PCB_SEND_TGT (JOVE_PERM_MUTATE) +#define SYSCALL_PERM_PCB_RECV_DST (JOVE_PERM_MUTATE) + +struct syscall_pcb_yield +{ + pid_t yield_target; +}; + +struct syscall_pcb_send +{ + pid_t send_target; + uintmax_t send_timeout; + uint16_t send_path_length; + objpath_part_t send_path[]; +}; + +struct syscall_pcb_recv +{ + pid_t recv_target; + uintmax_t recv_timeout; + uint16_t recv_path_length; + objpath_part_t recv_path[]; +}; + /**JOVE_OBJ_INITRD_FILE syscalls * */ -- cgit v1.2.3