summaryrefslogtreecommitdiffstats
path: root/sys/syscall.h
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-09-07 19:19:24 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-09-07 19:19:24 -0400
commitdf0688efa326a03a22bcbc36d1900926b7b1c986 (patch)
treec67df82b0a6cd94693278a809ed0c9a69daf840f /sys/syscall.h
parent4ca0bdf61196d0c3fd3f0fdbfb2d72481025cca2 (diff)
downloadjove-kernel-df0688efa326a03a22bcbc36d1900926b7b1c986.tar.gz
jove-kernel-df0688efa326a03a22bcbc36d1900926b7b1c986.tar.bz2
jove-kernel-df0688efa326a03a22bcbc36d1900926b7b1c986.zip
split syscall info into api subfolder. untyped syscalls
Diffstat (limited to 'sys/syscall.h')
-rw-r--r--sys/syscall.h32
1 files changed, 20 insertions, 12 deletions
diff --git a/sys/syscall.h b/sys/syscall.h
index 6ad221f..ea75152 100644
--- a/sys/syscall.h
+++ b/sys/syscall.h
@@ -1,15 +1,27 @@
#ifndef _JOVE_SYS_SYSCALL_H
#define _JOVE_SYS_SYSCALL_H 1
+#include "api/syscall.h"
#include "hal/obj.h"
#include <stdint.h>
-struct syscall_header
-{
- uint16_t callid;
- uint16_t pathlen;
- uint16_t path[];
-};
+#define CHECK_TOOSMALL(required, present, fail_msg) \
+ do { if(present < required) { \
+ kprintf("%s: %s\n", __func__, fail_msg); \
+ return ETOOSMALL; \
+ } } while(0)
+
+#define CHECK_OBJEXISTS(obj, fail_msg) \
+do { if(obj == NULL) { \
+ kprintf("%s: %s\n", __func__, fail_msg); \
+ return EBADOBJ; \
+} } while(0)
+
+#define CHECK_OBJTYPE(obj, type, fail_msg) \
+ do { if(obj_gettype(obj) != type) { \
+ kprintf("%s: %s\n", __func__, fail_msg); \
+ return EBADOBJ; \
+ } } while(0)
#define SYSCALL_FUNCTION_ARGS \
jove_owned_obj_t*, /*PCB object*/ \
@@ -25,12 +37,8 @@ typedef int (*syscall_handle_t)(SYSCALL_FUNCTION_ARGS);
int _syscall_handle_generic(SYSCALL_FUNCTION_ARGS);
int _syscall_handle_arch(SYSCALL_FUNCTION_ARGS);
-#define SYSCALL_VTT_WRITE 0
-struct syscall_vtt_write
-{
- size_t len;
- char data[];
-};
int _syscall_handle_vtt(SYSCALL_FUNCTION_ARGS);
+int _syscall_handle_objdir(SYSCALL_FUNCTION_ARGS);
+int _syscall_handle_untyped(SYSCALL_FUNCTION_ARGS);
#endif