wip on ipc send (copy last page)
This commit is contained in:
@@ -253,9 +253,10 @@ int receive(Vault& v, void* buffer, size_t size) {
|
||||
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 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;
|
||||
|
||||
Reference in New Issue
Block a user