392,20 → 392,21 |
mov [dir_addr], eax |
stdcall map_page,[tmp_task_pdir],eax,dword PG_SW |
|
mov esi, sys_pgdir |
mov edi, [tmp_task_pdir] |
mov ecx, (page_tabs shr 20)/4 |
mov ecx, (LFB_BASE shr 20)/4 ;(page_tabs shr 20)/4 |
xor eax, eax |
rep stosd |
|
mov esi, sys_pgdir+(LFB_BASE shr 20) ;(OS_BASE shr 20) |
mov ecx, (OS_BASE shr 20)/4 |
cld |
rep movsd |
|
mov edi, [tmp_task_pdir] |
mov eax, [dir_addr] |
or eax, PG_SW |
stosd ; [(page_tabs shr 20)]= eax |
mov [edi+(page_tabs shr 20)], eax |
|
mov ecx, 0x800/4 |
xor eax, eax |
rep stosd |
|
mov eax, [dir_addr] |
call set_cr3 |
|
471,7 → 472,6 |
add edx, 0x1000 |
dec [app_pages] |
jnz .alloc |
|
end if |
|
.done: |
557,8 → 557,7 |
and eax, not 0xFFF |
stdcall map_page,[tmp_task_pdir],eax,dword PG_SW |
mov esi, [tmp_task_pdir] |
add esi, 0x800 |
mov edi, 0x800/4 |
mov edi, (LFB_BASE shr 20)/4 |
.destroy: |
mov eax, [esi] |
test eax, 1 |