From c4f8ef91f18d854a4ede7a94e95b2eab898d6963 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Sun, 10 Aug 2025 15:40:19 -0400 Subject: working usermode objdir iteration --- include/syscall.h | 44 +++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 23 deletions(-) (limited to 'include/syscall.h') diff --git a/include/syscall.h b/include/syscall.h index c9c26d8..e70ba82 100644 --- a/include/syscall.h +++ b/include/syscall.h @@ -1,9 +1,7 @@ #ifndef _JOVE_SYSCALL_H #define _JOVE_SYSCALL_H 1 -#include #include -#include "object.h" enum { @@ -12,35 +10,35 @@ enum SYSCALL_SEND, SYSCALL_RECV, - SYSCALL_DEBUG_PUTC, - SYSCALL_DEBUG_IDENTIFY + SYSCALL_DEBUG_PUTC }; -typedef uint16_t invokeid_t; - -struct syscallInvokeHeader -{ - obj_path_t target_path; - invokeid_t func_id; -}; +/* Generic payload of SYSCALL_INVOKE: + * [ n bytes ][ uint8_t ][ payload ] + * target entry funcid + * */ +/**@ENUM objdir invokes*/ enum { + /*[target path][u8 funcid][u8 ret]*/ INVOKE_OBJDIR_NMEMB = 0, - INVOKE_OBJDIR_GETMEMB -}; - -struct syscallInvoke_objdir_nmemb -{ - struct syscallInvokeHeader header; - size_t value; + /*[target path][u8 funcid][u8 memb][u16 ret]*/ + INVOKE_OBJDIR_GETMEMB, + /*[target path][u8 funcid][u8 ret]*/ + INVOKE_OBJDIR_LASTFREE }; - -struct syscallInvoke_objdir_getmemb +/**@ENUM untyped invokes*/ +enum { - struct syscallInvokeHeader header; - uint8_t member; - obj_type_t value; + /*[target path][u8 funcid][size_t ret]*/ + INVOKE_UNTYPED_SIZE = 0, + /*[target path][u8 funcid][dest path][dest bytes]*/ + INVOKE_UNTYPED_SPLIT, + /*[first path][u8 funcid][second path]*/ + INVOKE_UNTYPED_MERGE, + /*[target path][u8 funcid][size_t ret]*/ + INVOKE_UNTYPED_ALIGNMENT }; #endif -- cgit v1.2.1