/kernel/trunk/core/memory.inc |
---|
267,13 → 267,12 |
pushfd |
cli |
shr eax, 12 ;page index |
mov ebx, sys_pgmap |
bts [ebx], eax ;that's all! |
bts dword [sys_pgmap], eax ;that's all! |
cmc |
adc [pg_data.pages_free], 0 |
shr eax, 3 |
and eax, not 3 ;dword offset from page_map |
add eax, ebx |
add eax, sys_pgmap |
cmp [page_start], eax |
ja @f |
popfd |
1082,7 → 1081,7 |
ret |
@@: |
cmp eax, 19 |
ja .fail |
ja @f |
add ebx, new_app_base |
cmp ebx, new_app_base |
jb .fail |
1090,6 → 1089,14 |
mov [esp+36], eax |
ret |
@@: |
cmp eax, 20 |
ja .fail |
mov eax, ecx |
call user_realloc |
mov [esp+36], eax |
ret |
.fail: |
xor eax, eax |
mov [esp+36], eax |