summaryrefslogtreecommitdiffstats
path: root/api/syscall.h
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-10-04 10:49:41 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-10-04 10:49:41 -0400
commit8d48bbd9746228b63bafa5f92b621998d7d8f3d3 (patch)
treefbaba69059c2e28d5098da4c9be357c38e406626 /api/syscall.h
parent465cba0c00bfc5d89bf10ce353b0adf40bdc098d (diff)
downloadjove-kernel-8d48bbd9746228b63bafa5f92b621998d7d8f3d3.tar.gz
jove-kernel-8d48bbd9746228b63bafa5f92b621998d7d8f3d3.tar.bz2
jove-kernel-8d48bbd9746228b63bafa5f92b621998d7d8f3d3.zip
move init fully to proc. remove init pages prealloc. prepare for scheduling
Diffstat (limited to 'api/syscall.h')
-rw-r--r--api/syscall.h40
1 files changed, 40 insertions, 0 deletions
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 <stddef.h>
#include <stdint.h>
+#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
* */