From 4d9e71d278ac89a35e33636431c73451308c6551 Mon Sep 17 00:00:00 2001 From: Eggert Jung Date: Sat, 28 Feb 2026 23:53:03 +0100 Subject: [PATCH] wip on ipc send (copy last page) --- kernel/syscall/skeleton.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kernel/syscall/skeleton.cc b/kernel/syscall/skeleton.cc index 7cd8b02..061eb90 100644 --- a/kernel/syscall/skeleton.cc +++ b/kernel/syscall/skeleton.cc @@ -253,9 +253,10 @@ int receive(Vault& v, void* buffer, size_t size) { for(uint32_t i=0; iptr):0; //apply offset only on first page uintptr_t paddr = isMapped((ipc->ptr)+(i*4096), v.thread_list[ipc->pid]->paging_tree->l4); - if (!copy_from_phys(v, paddr+offset, buffer, 4096-offset)) { - return -3; - } + if(total_len - (i*4096) > 4096) + copy_from_phys(v, paddr+offset, buffer, 4096-offset); + else + copy_from_phys(v, paddr, buffer, total_len - (i*4096)); } return ipc->pid;