Reimplemented space handling by introducing an address_space structure.

- Fixed potential concurrency bugs due to preemption being enabled.
- Introduced a new address space structure to better account for
  address spaces and page tables.
- Currently executes fine up to forking. Will investigate.
This commit is contained in:
Bahadir Balban
2009-05-08 23:35:19 +03:00
parent 2df8875a88
commit 7415546410
12 changed files with 403 additions and 81 deletions

View File

@@ -29,7 +29,7 @@ int sys_map(syscall_context_t *regs)
target = current;
goto found;
} else /* else search the tcb from its hash list */
if ((target = find_task(tid)))
if ((target = tcb_find(tid)))
goto found;
BUG();
@@ -56,7 +56,7 @@ int sys_unmap(syscall_context_t *regs)
if (tid == current->tid)
target = current;
else if (!(target = find_task(tid)))
else if (!(target = tcb_find(tid)))
return -ESRCH;
for (int i = 0; i < npages; i++) {