summaryrefslogtreecommitdiffstats
path: root/sys/syscall.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/syscall.c')
-rw-r--r--sys/syscall.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/syscall.c b/sys/syscall.c
index 1eadf50..6c3fa33 100644
--- a/sys/syscall.c
+++ b/sys/syscall.c
@@ -31,7 +31,7 @@ static const syscall_handle_t s_syscall_handles[128] = {
[JOVE_OBJ_PAGEFRAME] = _syscall_handle_generic,
[JOVE_OBJ_INITRD_FILE] = _syscall_handle_generic,
[JOVE_OBJ_FRAMEBUFFER] = _syscall_handle_generic,
- [JOVE_OBJ_VIRTTERM] = _syscall_handle_generic,
+ [JOVE_OBJ_VIRTTERM] = _syscall_handle_vtt,
[JOVE_OBJ_MESSAGE] = _syscall_handle_generic,
};
@@ -47,7 +47,6 @@ syscall_handler(uintmax_t message_path_raw, uint16_t message_pathlen)
pcb_t *pcb = obj_deref(pcb_obj);
jove_owned_obj_t *objdir = pcb_rootdir(pcb);
- kprintf("Syscall: %p : %P \n", objdir, message_path, message_pathlen);
jove_owned_obj_t *message_obj = objdir_getobj(objdir, message_path, message_pathlen);
if(message_obj == 0) {
@@ -73,7 +72,6 @@ syscall_handler(uintmax_t message_path_raw, uint16_t message_pathlen)
size_t header_bytes = sizeof(struct syscall_header) + header->pathlen * 2;
int bytes_left = messagelen - header_bytes;
- kprintf("syscall: Payload %p len %i\n", messagedata, header->pathlen);
if(bytes_left < 0) {
//Target path exceeds message length.
kprintf("syscall: Process %i tried to call syscall with OOB target path.\n", pcb_pid(pcb));
@@ -92,7 +90,8 @@ syscall_handler(uintmax_t message_path_raw, uint16_t message_pathlen)
uint8_t target_type = obj_gettype(target);
if(target_type > 0x7F) {
- sysret = syscall_handle_arch(pcb_obj, objdir, message_obj, target,
+ sysret = _syscall_handle_arch(
+ pcb_obj, objdir, message_obj, target,
header, bytes_left, messagedata + header_bytes);
}else{
syscall_handle_t call_handle = s_syscall_handles[obj_gettype(target)];
@@ -101,8 +100,9 @@ syscall_handler(uintmax_t message_path_raw, uint16_t message_pathlen)
pcb_pid(pcb), header->path, header->pathlen);
sysret = EBADOBJ;
}else
- sysret = call_handle(pcb_obj, objdir, message_obj, target,
- header, bytes_left, message_data + header_bytes);
+ sysret = call_handle(
+ pcb_obj, objdir, message_obj, target,
+ header, bytes_left, messagedata + header_bytes);
}
obj_release(target);