From 779b7fc1fe91e5a355b6e15de882d46b26ab2270 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Sat, 5 Sep 2026 20:24:13 -0400 Subject: working syscalls. --- sys/syscall.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 sys/syscall.h (limited to 'sys/syscall.h') diff --git a/sys/syscall.h b/sys/syscall.h new file mode 100644 index 0000000..efd3f64 --- /dev/null +++ b/sys/syscall.h @@ -0,0 +1,43 @@ +#ifndef _JOVE_SYS_SYSCALL_H +#define _JOVE_SYS_SYSCALL_H 1 + +#include "hal/obj.h" +#include + +struct syscall_header +{ + uint16_t callid; + uint16_t pathlen; + uint16_t path[]; +}; + +typedef int (*syscall_handle_t)( + jove_owned_obj_t*, //PCB object + jove_owned_obj_t*, //Objdir object + jove_owned_obj_t*, //Message object + jove_owned_obj_t*, //Target object + struct syscall_header*, //Syscall header + size_t, //How many bytes are left in the message + void*); //The bytes left in the message. + +int +_syscall_handle_generic( + 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); + +int +syscall_handle_arch( + 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); + +#endif -- cgit v1.2.3