mirror of
https://github.com/SmallPond/MIT6.828_OS.git
synced 2026-04-29 13:21:17 +08:00
my solution to lab5
This commit is contained in:
@@ -74,8 +74,11 @@ duppage(envid_t envid, unsigned pn)
|
||||
// 用户空间的地址较低
|
||||
uint32_t va = pn * PGSIZE;
|
||||
|
||||
|
||||
if ( (uvpt[pn] & PTE_W) || (uvpt[pn] & PTE_COW)) {
|
||||
if (uvpt[pn] & PTE_SHARE) {
|
||||
if((ret = sys_page_map(thisenv->env_id, (void *) va, envid, (void * )va, uvpt[pn] & PTE_SYSCALL)) <0 )
|
||||
return ret;
|
||||
}
|
||||
else if ( (uvpt[pn] & PTE_W) || (uvpt[pn] & PTE_COW)) {
|
||||
|
||||
// 子进程标记
|
||||
if ((ret = sys_page_map(thisenv->env_id, (void *) va, envid, (void *) va, PTE_P|PTE_U|PTE_COW)) < 0)
|
||||
|
||||
Reference in New Issue
Block a user