#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