wip on ipc send (copy last page)

This commit is contained in:
2026-02-28 23:53:03 +01:00
parent 6668e412cc
commit 4d9e71d278

View File

@@ -253,9 +253,10 @@ int receive(Vault& v, void* buffer, size_t size) {
for(uint32_t i=0; i<num_pages; i++){ for(uint32_t i=0; i<num_pages; i++){
uintptr_t offset = i==0?Page::offset(ipc->ptr):0; //apply offset only on first page uintptr_t offset = i==0?Page::offset(ipc->ptr):0; //apply offset only on first page
uintptr_t paddr = isMapped((ipc->ptr)+(i*4096), v.thread_list[ipc->pid]->paging_tree->l4); 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)) { if(total_len - (i*4096) > 4096)
return -3; copy_from_phys(v, paddr+offset, buffer, 4096-offset);
} else
copy_from_phys(v, paddr, buffer, total_len - (i*4096));
} }
return ipc->pid; return ipc->pid;