summaryrefslogtreecommitdiffstats
path: root/include/syscall.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/syscall.h')
-rw-r--r--include/syscall.h44
1 files changed, 21 insertions, 23 deletions
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 <stdint.h>
#include <stddef.h>
-#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